Python code intelligence for coding agents: call paths, control flow, and change impact.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Understand an unfamiliar Python system before spending thousands of tokens reading it file by file.
CodeCanvas is a local static-analysis Model Context Protocol server for Python. It turns project-wide call paths and control flow into compact, citation-ready answers about branches, callers, callees, side effects, and change impact.
The benchmark now spans pinned revisions of Google ADK, LangGraph, and
FastAPI. On an Apple M4 Pro, measured cold analysis ranged from 4.38s to
61.62s, and median warm find_symbols latency ranged from 48.264ms to
293.778ms across those repositories. In a controlled 54-session agent suite,
both conditions kept the same built-in code-search tools; the treatment added
only logic_flow. That single addition used a median 22.95% fewer total
tokens across three paired repetitions, demonstrating meaningful incremental
value on top of ordinary code exploration. Uncached tokens increased by 0.78%,
and the answers are not yet blind-graded. See the methodology, full tables, and
limitations.
Use it to answer questions such as:
CodeCanvas is Python-only and requires Python 3.10 or newer.
Ask one question:
Excerpt from the actual response on the included FastAPI sample:
That single response exposes the early return, success path, downstream database work, exact source locations, and how cautiously the agent may summarize the result.
Install uv if uvx is not already available.
The repository includes one shared plugin package with native manifests for
both Claude Code and Codex. Install it from the CodeCanvas marketplace:
Both plugins start uvx codecanvas-mcp and expose the complete tool catalog.
See the plugin package for local-checkout testing
and validation commands.
If your client does not support plugins, register the server directly. For Claude Code:
That command exposes the complete tool catalog. Keep the full catalog enabled when your MCP client supports on-demand tool discovery or tool search: the client can load the relevant schemas only when they are needed, so the other CodeCanvas tools remain available without paying their schema cost on every model request.
If your client eagerly injects every enabled tool schema into every model request, use this compatibility profile instead:
The three-tool allow-list is a fallback for eager-schema clients, not a recommendation to discard the rest of CodeCanvas. For another MCP client, use the equivalent stdio configuration:
Pass an absolute project_path on the first tool call. CodeCanvas remembers the
last explicitly selected project for the rest of the server session.
With the complete catalog enabled, project_status reports candidate analysis
roots for nested Python projects. Compact-profile users should pass the intended
nested root explicitly.
Adding tools does not guarantee that an agent will choose them at the right
time. Put a short instruction like this in AGENTS.md, CLAUDE.md, or the
equivalent file used by your coding agent:
Then ask your agent naturally:
With the complete catalog enabled, CodeCanvas can also answer:
CodeCanvas complements both. It is for behavioral questions that otherwise require repeated searches and manual reconstruction.
| Need | grep | LSP | CodeCanvas |
|---|---|---|---|
| Exact text | Best fit | Not its job | Keep using grep |
| Definitions and direct references | Manual | Best fit | Resolves symbols inside structural results |
| Transitive callers and callees | Repeated manual hops | References are not a call path | Bounded upstream and downstream graphs |
| Branch guards and outcomes | Read and reconstruct source | Usually not modeled | Structured flow and guarded returns/raises |
| Side effects and change impact | Infer manually | Usually not modeled | Effects attributed through call paths and entrypoints |
| Uncertainty | No confidence model | Resolution-dependent | Evidence grade, ambiguity, truncation, and guidance |
Static analysis is not runtime truth, so CodeCanvas makes uncertainty visible instead of hiding it.
Every successful MCP response identifies the selected analysis_root and
includes metadata that helps an agent decide how strongly it may state the
result:
evidence_grade describes the strength of the resolved evidence.inferred_edge_count and ambiguous_calls expose uncertain call edges.truncated says whether the bounded response omitted results.safe_to_summarize says whether the result supports an unconditional claim.response_guidance explains how to qualify a result when it does not.verify_claim goes further by combining candidate call paths with branch and
return/raise guards. It returns true, false, or uncertain; unsupported
qualifiers and inferred-only paths cannot silently become a definite true.
| Tool | Use it for |
|---|---|
project_status | Inspect the active root, Python file count, cache, worker interpreter, and nested project candidates |
list_entrypoints | Find FastAPI routes, scripts, function entrypoints, and distributed library exports |
find_symbols | Locate functions, methods, and classes with exact-first name, semantic, or hybrid search |
logic_flow | Get one compact, citation-ready view of a function's branches, outcomes, downstream calls, and effects |
what_does | Triage a function from its signature, docstring, calls, effects, exceptions, and direct risk |
function_flow | Inspect a structured branch tree with subjects, conditions, scopes, and nesting |
reaching_conditions | Get the enclosing guards for each return or raise, plus complexity and unreachable code |
| Tool | Use it for |
|---|---|
who_calls | Walk direct or transitive callers upstream |
call_tree | Walk project-internal callees downstream and attribute direct/transitive effects |
verify_claim | Conservatively check a qualified source reaches target claim against paths and guards |
analyze_impact | Map an inline diff or git ref to changed functions and affected entrypoints/public surfaces |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/codecanvas)<a href="https://allmcps.com/mcp/codecanvas"><img src="https://allmcps.com/api/badge/codecanvas?style=directory" alt="Codecanvas on AllMCPs" /></a>