MCP tools: overview
The small, curated set of MCP tools repowise exposes to Claude Code and any MCP-compatible AI agent. Task-shaped, batched, and built to collapse long tool-call chains into one round-trip.
Most MCP servers expose tools that mirror data entities: one file, one symbol, one diff. That forces the agent into long sequential chains. Repowise exposes a small, curated set of task-shaped tools instead. Pass multiple targets in one call. Get complete context (docs, ownership, metrics, history, decisions) back. Same answer, fewer round-trips, fewer tokens.
The core tools
These ten tools are the documented core surface, available in both single-repo and workspace modes:
| Tool | What it answers | When the agent calls it |
|---|---|---|
get_overview | Architecture summary, module map, entry points, git health | First call on any unfamiliar codebase |
get_answer | One-call RAG: retrieves over the wiki, gates on confidence, synthesizes a cited answer | First call on any code question |
get_context | The workhorse: docs, symbols, ownership, freshness, optional callers/callees/metrics for any targets | Before reading or modifying code |
get_symbol | Raw source bytes for one indexed symbol with exact line bounds | When you need one function/class body |
search_codebase | Hybrid symbol / path / concept search, mode routes by query shape | Finding a symbol or file, or discovering code by topic |
get_risk | Hotspot scores, dependents, co-change partners, blast radius, reviewers, test gaps | Before modifying files |
get_change_risk | Pre-merge defect risk for a whole commit or diff range, plus impacted tests and prior fixes | Before merging a commit or PR range |
get_why | Architectural decision search: NL query, path lookup, or health dashboard | Before architectural changes |
get_dead_code | Unreachable code sorted by confidence tier with cleanup impact | Cleanup tasks |
get_health | Code-health scores across three signals (defect, maintainability, performance): KPIs and worst files, or per-file findings | Self-check before a PR / before refactoring |
get_risk and get_change_risk are the pair people mix up. get_risk
scores indexed files by path and can report blast radius.
get_change_risk scores the shape of a live diff, so it catches
risky small changes that a file-level view misses.
One more tool is on by default: list_repos
enumerates the repos the server can reach. It is mostly useful in
workspace mode, where it lists every workspace repo and the default.
That makes 11 tools advertised by default in single-repo mode, though
only the ten above are worth an agent's attention on a typical task.
In workspace mode, every tool accepts a repo parameter. Pass a
specific repo name, or "all" to federate across the workspace.
Two more, on by default in workspace mode
When the server runs over a workspace (several repos indexed together), two additional tools appear automatically. They answer cross-repo questions that have no single-repo equivalent.
| Tool | What it answers |
|---|---|
get_blast_radius | If you change this service, what breaks across the other repos |
get_architecture | Whole-system coupling, the cyclic core, and a 1-10 architecture score |
They are documented in full on the Workspace MCP mode page.
A third workspace-scoped tool, get_conformance (declared dependency-rule
violations and dependency cycles), is opt-in even inside a
workspace: enable it with mcp.tools: ["+get_conformance"]. Its
findings still surface automatically in get_risk's PR-mode directive
(conformance_violations / dependency_cycles) without opting the
tool itself in.
Three opt-in tools
get_dependency_path (shortest
dependency path between two files or modules),
get_execution_flows (entry points +
call traces), and
generate_refactoring_code
(turns a get_health(include=["refactoring"]) plan into code + a
diff) are registered tools that ship with the server but are off by
default in every mode. Turn them on per repo in
.repowise/config.yaml:
mcp:
tools: ["+get_execution_flows", "+get_dependency_path", "+generate_refactoring_code"]or per launch with repowise mcp --tools "+get_execution_flows". See
Configuring the tool surface for the
full +/- delta syntax and the explicit-allowlist / all shapes.
generate_refactoring_code has a second gate on top of the tool-surface
one: even opted in, it returns an error unless
refactoring.llm.enabled is also set in .repowise/config.yaml.
Truncation is reversible. Responses are token-budgeted, but dropped
content is no longer silently lost: a _meta.omitted envelope lists
refs (repowise#<12-hex>) that resolve via
get_symbol, or repowise expand <ref> from a
shell, with no extra tool. See
Distill for the full reversibility model.
Connecting
repowise init automatically writes .mcp.json at the project root
and (for Claude Code) registers the server in ~/.claude/settings.json.
You don't need to do anything else.
To wire up another editor manually:
{
"mcpServers": {
"repowise": {
"command": "repowise",
"args": ["mcp", "/path/to/your/project"]
}
}
}For the hosted version, use the HTTP transport with an API key from Settings → Editor.
Run repowise agents add --target=cursor. Cursor reads a project-local
.cursor/mcp.json whose entry needs a "type": "stdio" field, so the
generic mcpServers block above does not work here. See
Set up with your agent for the details.
Add the same mcpServers block to claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\). Restart Claude Desktop after editing.
Use the MCP extension and point it at repowise mcp <project>.
Add to Windsurf settings → MCP servers using the same command.
A real five-call task
"Add rate limiting to all API endpoints." Without repowise, an agent greps and reads files for ~30 calls. With repowise, five:
get_overview()
get_context(targets=["middleware", "api/routes", "payments"])
get_risk(targets=["middleware/auth.ts"])
get_why(query="rate limiting")
search_codebase(query="rate limit OR throttle OR retry")That's the design point. Each call returns a task-shaped slice of the codebase, not a single file or symbol, so the agent reaches a decision in one or two passes instead of ten.
How to compose these
Most tasks aren't a single call. These are the hand-offs that come up most often: what a tool's output points you to next.
| Situation | Call this first | Then this |
|---|---|---|
| Any code question | get_answer | Low confidence -> search_codebase or get_context on fallback_targets |
| Before reading or editing a file | get_context | hotspot: true -> get_risk before editing |
A file's decisions list names a record | get_context | get_why(targets=[...]) for the rationale |
| Reviewing a PR / changeset | get_risk(targets, changed_files=[...]) | Read directive first (will_break, missing_tests, tests_to_run) |
| Merging a commit or branch | get_change_risk(revspec) | Lead with risk_percentile, not the raw score |
| Need one function/class body | search_codebase or get_context for the symbol_id | get_symbol(symbol_id) |
| Before a refactor | get_health() | include=["refactoring"] for structured plans, then generate_refactoring_code on one (opt-in tool, see "Three opt-in tools" above) |
| Cleanup sprint | get_dead_code() | safe_only=true for the deletion-ready subset |
| Unfamiliar codebase | get_overview() | get_answer / get_context for anything specific |
Why a curated surface
Repowise's internal modules expose more graph navigation primitives
(callers/callees, dependency paths, graph metrics, execution flows,
community detection). Most of that surfaces as include options on the
core tools rather than separate calls; two of the primitives
(get_dependency_path, get_execution_flows) are real MCP tools but
ship off by default, because every extra tool in the schema is overhead
on tasks that don't need it.
The public tools are deliberately one level up. get_context absorbs
callers, callees, metrics, and community into a single call via its
include parameter. get_risk rolls up hotspot, dependents,
co-changes, reviewers, and test gaps. get_why covers natural-language
search, path lookup, and the global health dashboard. get_health
rolls up the three-signal marker scores plus targeted findings.
If you're building on top of repowise programmatically, the
packages/server Python API exposes the lower-level primitives. The
MCP surface is what AI agents see, and AI agents do better with fewer,
richer tools.
Other commands
One-shot utilities: costs, coverage, dead-code, security scan, doctor, export, generate-claude-md, telemetry, login/logout/whoami, augment, delete.
get_overview
Architecture summary, module map, entry points, ownership, hotspots, and community structure for an entire repository: the first call your agent should make on any unfamiliar codebase.