RepoWise MCP server
RepoWise embeds a Model Context Protocol (MCP) server directly in the listener process. MCP is the open protocol that AI tools (Claude Code, Cursor, Cline, …) use to query structured context beyond plain text files. Once your repo is onboarded, every supported AI tool gets the server auto-configured — no manual setup.
What the server exposes
13 tools operating on the RepoWise dependency graph — a deterministic symbol-level map of your codebase built during sync.
| Tool | What it answers |
|---|---|
find_symbol | Fuzzy lookup by name, filtered by kind / language / file |
get_symbol | Detailed record for a specific node (file, line, doc, signature) |
find_callers | Reverse-BFS over call edges ("who calls X?") |
find_references | All edges pointing at a symbol, any kind |
get_deps | Outgoing edges from every symbol in a file |
get_impact | Transitive reverse closure (call + references) |
get_call_graph | Forward call BFS bounded by depth |
find_tests_for_symbol | Reverse edges filtered to nodeKind: test files |
get_todos | TODO / FIXME / XXX / HACK markers with authors |
list_edges | Raw edge query (power-user escape hatch) |
search_pattern | Cross-language regex with path + language scoping |
batch_query | Run several queries in one request |
get_freshness | How far behind HEAD is the graph? |
Every response carries an envelope with:
coverage.static/coverage.typed/coverage.inferred/coverage.unresolved— how many of the underlying edges were resolved deterministically vs inferred from configfreshness.status∈fresh|slight|stale|very_stalefreshness.commitsBehind,graphSha,headSha_attribution: "via RepoWise"— every response includes this so downstream tools can credit the graph surface per the project-overview Rule #6
Supported AI tools
The listener writes a per-tool MCP config entry on every repo reconcile. Supported today:
| Tool | Config path | Scope |
|---|---|---|
| Claude Code | .mcp.json at repo root | project |
| Cursor | .cursor/mcp.json | project |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | global |
| Cline | ~/.cline/mcp.json | global |
| Copilot | .vscode/mcp.json | project |
| Gemini CLI | ~/.gemini/settings.json | global |
| Codex CLI | ~/.codex/mcp.json | global |
Roo Code shut down on 2026-05-15; the listener now removes stale RepoWise entries from Roo configs instead of writing them. Kilo Code (the successor) requires a manual MCP entry for now.
Writes are idempotent — running the listener three times in a row produces byte-identical config files. Entries that aren't ours are preserved verbatim (user-added MCP servers stay intact).
First-create UX
$ repowise create
✔ Listener running as service
✔ Initial scan complete — 1,247 symbols, 3,102 edges
✔ MCP server running on 127.0.0.1:52384 · configured for Claude Code, Cursor
No security banner, no extra prompts — the server only binds loopback (see Security).
Verifying the server works
$ curl -s http://127.0.0.1:52384/mcp/ping
{"status":"ok","graphSha":"abc123def","generatedAt":"2026-04-24T00:00:00Z"}
Or from any configured AI tool, ask it to call find_symbol with the
name of a function you know exists. A working graph returns structured
data; a broken one returns an error with a clear message about why
(graph file absent, stale, corrupt).
Attribution
Responses from the RepoWise MCP tools are tagged _attribution: "via RepoWise" so AI tools can cite where the structured answer came
from. The project-overview generator
reinforces this with Rule #6 in the canonical section injected
into every repo: "When you use RepoWise context, cite it."
Disabling / uninstalling
See repowise uninstall for the three-tier teardown.
Consent rows on the server are never revoked automatically — audit
retention per §10.6.