The quickest way: paste this into your coding agent. It signs you in, indexes the repo, connects its own MCP client and tells you the few things only you can do. No key goes into the chat.
Set up Repowise for this repository. Follow https://docs.repowise.dev/hosted/setup.md
That link is the hosted setup runbook. Paste the same prompt again any time to check the setup and finish what is missing.
The rest of this page connects a client by hand.
The URL
One repo:
https://api.repowise.dev/mcp/{owner}/{repo}The {owner}/{repo} segments are the GitHub owner/name of a repo you have
indexed. Coding agents use this per-repo URL.
One workspace, answering across its member repos:
https://api.repowise.dev/mcp/w/{workspace_id}See across a whole workspace below for what
changes. Claude and ChatGPT chat connectors use the account-wide
https://api.repowise.dev/mcp.
Clients that sign in with OAuth
Claude Code, Cursor, VS Code and Claude on the web and desktop sign in with
Repowise in the browser the first time they connect. There is no API key to
mint, copy or store. Replace OWNER/REPO with the repo you're connecting. The
same snippets are on
Settings → Coding agents (MCP),
pre-filled.
If you already run Repowise locally under the name repowise, name the hosted
server repowise-hosted so the two sit side by side.
claude mcp add --transport http repowise https://api.repowise.dev/mcp/OWNER/REPORestart Claude Code, type /mcp, pick repowise and approve Repowise in the
browser.
Use the Install button on Settings → Coding agents (MCP), or paste into
~/.cursor/mcp.json (or your project's .cursor/mcp.json):
{
"mcpServers": {
"repowise": {
"url": "https://api.repowise.dev/mcp/OWNER/REPO"
}
}
}Click Needs login next to the server and approve Repowise.
Use the Install button on Settings → Coding agents (MCP), or run:
code --add-mcp '{"name":"repowise","type":"http","url":"https://api.repowise.dev/mcp/OWNER/REPO"}'Or paste into .vscode/mcp.json. Note the key is servers, not
mcpServers:
{
"servers": {
"repowise": {
"type": "http",
"url": "https://api.repowise.dev/mcp/OWNER/REPO"
}
}
}Start the server when VS Code asks and approve Repowise.
Claude on the web, desktop, and mobile connects as a custom connector.
Nothing goes in claude_desktop_config.json (that file configures local
stdio servers only).
-
In Claude, open Customize → Connectors, click +, then Add custom connector.
-
Paste the server URL as the Remote MCP server URL and click Add. The account-wide URL reaches every repo you can read; a per-repo URL pins one:
https://api.repowise.dev/mcp -
Click Connect. A Repowise sign-in window opens. Approve access.
-
Repowise's tools are now available in your Claude chats.
On a Team or Enterprise plan, an organization owner adds the connector first under Organization settings → Connectors (Add → Custom → Web, then the same URL). Members then connect to it from Customize → Connectors.
Approved clients are listed under Connected apps on the same settings page, one per device, and each can be revoked there.
Clients without OAuth
Codex, Windsurf and other clients that cannot do the browser sign-in use an API key. Keep the key out of config files and chats: put it in an environment variable, and point the config at the variable.
- Open Settings → Coding agents (MCP) and click Generate key. Name it after the editor.
- Set it as
REPOWISE_API_KEYin the environment that starts the editor (your shell profile, or the system environment on Windows), then restart the editor from there. - Add the server:
codex mcp add repowise --url https://api.repowise.dev/mcp/OWNER/REPO \
--bearer-token-env-var REPOWISE_API_KEYOr in ~/.codex/config.toml:
[mcp_servers.repowise]
url = "https://api.repowise.dev/mcp/OWNER/REPO"
bearer_token_env_var = "REPOWISE_API_KEY"Recent Codex releases can also sign in with OAuth: add the server without the
key flag and run codex mcp login repowise.
Paste into ~/.codeium/windsurf/mcp_config.json. Note the key is
serverUrl:
{
"mcpServers": {
"repowise": {
"serverUrl": "https://api.repowise.dev/mcp/OWNER/REPO",
"headers": {
"Authorization": "Bearer ${env:REPOWISE_API_KEY}"
}
}
}
}Any MCP client that speaks the Streamable HTTP transport works with two values:
URL: https://api.repowise.dev/mcp/OWNER/REPO
Header: Authorization: Bearer <the value of REPOWISE_API_KEY>Fill the header from the variable with the client's own environment syntax.
Never paste the key into a chat with your agent. If an agent sets this up for you, it writes the config above and you set the variable yourself.
Across a whole workspace
A workspace groups several indexed repos. Pointing a client at the workspace URL gives you one connection that answers across all of them:
https://api.repowise.dev/mcp/w/{workspace_id}Open the workspace and use its Connect tab, which builds the URL, carries the same editor snippets as above, and lists the aliases below. Everything else about the snippets is identical: swap the URL, keep the rest.
What changes on this shape:
- An extra tool,
list_repos. Call it first. It returns each member repo with the alias to address it by. - Every federatable tool takes an optional
repo. Pass an alias to scope the call to one member; omit it, or pass"all", and the tool answers across every member you can read.get_symbolalways requires one, because a symbol id only means something inside one repo. - Read-only. Write tools are refused here by design, so a re-index still goes through the per-repo endpoint.
- Pro, Teams, or Admin. The per-repo endpoint above is not gated this way and stays available on every plan.
An alias comes from the alias you gave the repo when you added it to the
workspace. If you left it blank it falls back to the owner and name
joined by a hyphen, so acme/billing-api answers to
acme-billing-api. The workspace's Connect tab prints the exact
tokens.
Two members sharing an alias, compared without case, and any member
aliased all both make the workspace endpoint refuse every call, because
a repo argument naming one of them would silently answer from a single
repo. The workspace pages flag this; fix it by removing the repo and
adding it back under a distinct alias.
Verify it works
Ask your agent something the model can't possibly know without calling repowise:
What are the current hotspot files in this repo?
The agent should call get_overview (or get_risk) and answer with
specific file names, churn percentiles, and owners. If it falls back
to greps and reads, the MCP connection isn't established.
Rotate or revoke
Settings → Coding agents (MCP)
lists every API key and every OAuth-connected app. Revoke invalidates
either. For a key, generate a new one, update REPOWISE_API_KEY, and restart
your editor. An OAuth client signs in again on its next use.
Self-hosted instead? No account needed. repowise init writes
.mcp.json for you and the editor talks to a local stdio process.
See Quickstart → Self-hosted.