Skip to main content

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.

ToolWhat it answers
find_symbolFuzzy lookup by name, filtered by kind / language / file
get_symbolDetailed record for a specific node (file, line, doc, signature)
find_callersReverse-BFS over call edges ("who calls X?")
find_referencesAll edges pointing at a symbol, any kind
get_depsOutgoing edges from every symbol in a file
get_impactTransitive reverse closure (call + references)
get_call_graphForward call BFS bounded by depth
find_tests_for_symbolReverse edges filtered to nodeKind: test files
get_todosTODO / FIXME / XXX / HACK markers with authors
list_edgesRaw edge query (power-user escape hatch)
search_patternCross-language regex with path + language scoping
batch_queryRun several queries in one request
get_freshnessHow 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 config
  • freshness.statusfresh | slight | stale | very_stale
  • freshness.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:

ToolConfig pathScope
Claude Code.mcp.json at repo rootproject
Cursor.cursor/mcp.jsonproject
Windsurf~/.codeium/windsurf/mcp_config.jsonglobal
Cline~/.cline/mcp.jsonglobal
Copilot.vscode/mcp.jsonproject
Gemini CLI~/.gemini/settings.jsonglobal
Codex CLI~/.codex/mcp.jsonglobal

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.