Index les bases de code dans un graphe de connaissances AST structuré pour permettre la recherche sémantique, le parcours de graphes d'appels et l'analyse d'impact pour les assistants de codage IA.
Aussi connu sous sdsrss/code-graph-mcp, @sdsrs/code-graph
- Étoiles
- 96
- Outils
- 7
- Téléchargements, 30 jours
- —
- Dernière version
- —
- Dernier commit
- 12 nov. 2026
- Licence
- MIT
Qu'est-ce que code-graph MCP ?
code-graph est un serveur MCP. Index les bases de code dans un graphe de connaissances AST structuré pour permettre la recherche sémantique, le parcours de graphes d'appels et l'analyse d'impact pour les assistants de codage IA. Il expose 7 outils, comme project_map, semantic_code_search, get_call_graph.
Résumé généré à partir du README du projet
À propos du MCP server code-graph
Les développeurs utilisant des assistants de codage IA comme Claude Code, Cursor ou Windsurf peuvent utiliser ce serveur pour fournir à leurs modèles une compréhension profonde et structurée de l'intégralité de leurs bases de code. Il fonctionne en indexant le code source dans un graphe de connaissances AST structuré, permettant à une IA de dépasser la simple recherche textuelle pour comprendre les relations complexes entre les symboles. Le serveur s'exécute localement sur votre machine sous la forme d'un binaire unique avec une base de données SQLite intégrée, ne nécessitant aucune API cloud externe ni conteneur Docker.
Il prend en charge l'analyse multi-langage pour des langages tels que TypeScript, Python, Go, Rust, Java et C++, avec des fonctionnalités spécialisées comme le traçage de routes HTTP pour des frameworks tels qu'Express, Flask et FastAPI. Le système utilise une approche de recherche hybride combinant le classement full-text BM25 avec la recherche sémantique vectorielle via sqlite-vec. Il dispose également d'un indexage incrémental utilisant les arbres de Merkle pour garantir que seuls les fichiers modifiés sont retraités, et propose une compression de contexte sensible aux tokens pour aider à intégrer efficacement les extraits de code pertinents dans les fenêtres de contexte des LLM.
Ce que vous pouvez faire avec
- 1Analyser l'impact des modifications de codeDéterminez comment la modification d'une fonction ou d'une variable spécifique affectera d'autres parties du système.
- 2Tracer les flux de requêtes HTTPMappez un chemin URL spécifique directement à la fonction de gestion backend qui traite la requête.
- 3Naviguer dans des chaînes d'appels complexesSuivez le chemin d'exécution d'une fonction de haut niveau à travers plusieurs couches de logique de service.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer code-graph MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller code-graph MCP dans Claude Code
$ claude mcp add code-graph-mcp -- npx -y @sdsrs/code-graphInstaller code-graph MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"code-graph-mcp": {
"command": "npx",
"args": [
"-y",
"@sdsrs/code-graph"
]
}
}
}Installer code-graph MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"code-graph-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@sdsrs/code-graph"
]
}
}
}Installer code-graph MCP dans VS Code CLI
$ code --add-mcp '{"name":"code-graph-mcp","type":"stdio","command":"npx","args":["-y","@sdsrs/code-graph"]}'Installer code-graph MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"code-graph-mcp": {
"command": "npx",
"args": [
"-y",
"@sdsrs/code-graph"
]
}
}
}Installer code-graph MCP dans Codex
$ codex mcp add code-graph-mcp -- npx -y @sdsrs/code-graphInstaller code-graph MCP dans Codex config.toml
~/.codex/config.toml
[mcp_servers.code-graph-mcp] command = "npx" args = ["-y", "@sdsrs/code-graph"]
Installer code-graph MCP dans Gemini CLI
$ gemini mcp add -s user code-graph-mcp npx -- -y @sdsrs/code-graphInstaller code-graph MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"code-graph-mcp": {
"command": "npx",
"args": [
"-y",
"@sdsrs/code-graph"
]
}
}
}Outils MCP code-graph 7
Détectés depuis le READMEproject_mapsemantic_code_searchget_call_graphget_ast_nodemodule_overviewast_searchfind_references
| project_map | — | |
| semantic_code_search | — | |
| get_call_graph | — | |
| get_ast_node | — | |
| module_overview | — | |
| ast_search | — | |
| find_references | — |
Configuration
CODE_GRAPH_MODEL_DIRCODE_GRAPH_QUIET_HOOKS
| Nom | Description | Type |
|---|---|---|
| CODE_GRAPH_MODEL_DIR | — | |
| CODE_GRAPH_QUIET_HOOKS | — |
Vérifications automatisées
Exécuté le 12 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessibleRéussi
- Licence open source (OSI)Réussi
- Commit ou version publiée au cours de l'année écouléeRéussi
- Nom du package non proche d'un package populaireRéussi
- L'endpoint distant utilise HTTPSNon vérifié
- Les outils destructifs sont étiquetésRéussi
- Aucune instruction cachée destinée au modèleRéussi
- Aucun avis critique dans le package ou ses dépendancesNon vérifié
README
Voir sur GitHubcode-graph-mcp
A high-performance code knowledge graph server implementing the Model Context Protocol (MCP). Indexes codebases into a structured AST knowledge graph with semantic search, call graph traversal, and HTTP route tracing — designed to give AI coding assistants deep, structured understanding of your code.
Features
- Multi-language parsing — Tree-sitter AST extraction across tiers of depth:
- Full (calls + imports + inheritance): TypeScript/TSX, JavaScript, Go, Python, Rust, Java. HTTP route extraction additionally covers TypeScript/TSX + JavaScript (Express/Connect), Go (
net/http), Python (Flask/FastAPI), and Rust axum (.route()chains with inline.nest()prefixes; named handlers only) — actix/rocket and Java Spring are not yet route-extracted - Smoke-tested (calls + imports + inheritance): C#, Kotlin, Ruby, PHP, Swift, Dart
- Limited (functions + calls +
#includeimports + gtest test markers + C++ base-class inheritance +Class::methodscope qualification): C, C++ - Scripting: Bash (functions + commands +
source/.imports), Markdown (headings) - File-FTS only (no AST symbol extraction): HTML, CSS, JSON
- Test markers — detected from the AST for Rust (
#[test]/#[cfg(test)]), JavaScript/TypeScript/TSX (describe/it/testblocks and their callbacks) and C/C++ (gtestTESTmacros). Go, Python, Java and the rest fall back to path/name heuristics (tests/,src/test/java/,*_test.*,*.test.js,test_*,*Test) - Value/type references — a
referencesrelation for symbols that are used without being called, imported or inherited (path-qualified constants, type-position uses, functions passed as values): Rust, TypeScript/TSX, JavaScript, Python, Go, Java, C, C++
- Full (calls + imports + inheritance): TypeScript/TSX, JavaScript, Go, Python, Rust, Java. HTTP route extraction additionally covers TypeScript/TSX + JavaScript (Express/Connect), Go (
- Semantic code search — Hybrid BM25 full-text + vector semantic search with Reciprocal Rank Fusion (RRF), powered by sqlite-vec
- Call graph traversal — Recursive CTE queries to trace callers/callees with cycle detection
- HTTP route tracing — Map route paths to backend handler functions (Express, Flask/FastAPI, Go
net/http, Rust axum) - Dead code detection — Find unreferenced symbols with smart Orphan/Exported-Unused classification
- Impact analysis — Determine the blast radius of code changes by tracing all dependents
- Incremental indexing — Merkle tree change detection with a file system watcher; changed files are re-indexed when the next MCP query tool call arrives (
get_index_statusdoes not count). Smart event filtering skips metadata-only changes (chmod, xattr) - Context compression — Token-aware snippet extraction for LLM context windows (L0→full code, L1→summaries, L2→file groups, L3→directory overview). Every MCP tool except
ast_searchtakescompact: true, which drops code bodies from the response; what else it trims is per-tool (get_ast_nodekeeps the signature,module_overviewdrops it), and how much it saves depends on the tool and the repo, so no fixed figure is quoted here - Embedding model — Optional local embedding via Candle (feature-gated
embed-model). Context reordered to prioritize structural relations over code for better embedding quality - Self-healing — Automatic SQLite corruption recovery with rebuild. Startup repair for incomplete indexing (Phase 3 failures)
- MCP protocol — JSON-RPC 2.0 over stdio, plug-and-play with Claude Code, Cursor, Windsurf, and other MCP clients
- Claude Code Plugin — First-class plugin with skills (
explore,index), acode-exploreragent, auto-indexing hooks, StatusLine integration, and self-updating
Why code-graph-mcp?
Unlike naive full-text search or simple AST dumps, code-graph-mcp builds a structured knowledge graph that understands the relationships between symbols across your entire codebase.
Incremental by Design
BLAKE3 Merkle tree tracks every file's content hash. On re-index, only changed files are re-parsed — unchanged directory subtrees are skipped entirely via mtime cache. When a function signature changes, dirty propagation automatically regenerates context for all downstream callers across files.
Hybrid Search, Not Just Grep
Combines BM25 full-text ranking (FTS5) with vector semantic similarity (sqlite-vec) via Reciprocal Rank Fusion (RRF) with raw score blending — so searching "handle user login" finds the right function even if it's named authenticate_session. Results are auto-compressed to fit LLM context windows.
Scope-Aware Relation Extraction
The parser doesn't just find function calls — it tracks them within their proper scope context. Extracts calls, imports, inheritance, interface implementations, exports (ESM export and CommonJS module.exports = { … } / exports.name = …), value/type references, and HTTP route bindings. Same-file targets are preferred over cross-file matches to minimize false-positive edges.
HTTP Request Flow Tracing
Unique to code-graph-mcp: trace from GET /api/users → route handler → service layer → database call in a single query. Supports Express/Connect, Flask/FastAPI, Go net/http, and Rust axum.
Zero External Dependencies at Runtime
Single binary, embedded SQLite, bundled sqlite-vec extension, optional local embedding model via Candle — no database server, no cloud API, no Docker required. Runs entirely on your machine.
Built for AI Assistants
Every design decision — from token-aware compression to node_id-based snippet expansion — is optimized for LLM context windows. Works out of the box with Claude Code, Cursor, Windsurf, and any MCP-compatible client.
Performance
Every row below is a line code-graph-mcp benchmark prints, measured on this
repository (283 files, 5,311 nodes, 11,215 edges) with a release build — median
of three consecutive runs on an otherwise idle machine. Run the same command on
your own project: the numbers that matter are yours, and these scale with tree
size and machine.
benchmark line |
This repo, v0.129.0 |
|---|---|
| Full index | ~2.0s (≈139 files/second, single-threaded) |
| Incremental (noop) | ~28ms no-change detection via BLAKE3 Merkle tree |
| Query latency P50 / P99 | ~655us / ~2.1ms |
| DB size | ~22.4MB (≈4.2MB per 1,000 nodes) |
| Avg tokens/node | ~242 |
Efficiency: code-graph vs Traditional Tools
How many TOOL CALLS each question takes, comparing code-graph-mcp against Grep
- Read + Glob. These are call counts, not token measurements: the left column is the round trips the traditional approach needs before it can answer, the right column is the single call that answers it. Token cost follows call count only loosely — how much source lands in the context window depends on the files, so this table does not claim a token ratio.
Tool Call Reduction
| Scenario | Traditional | code-graph | Savings |
|---|---|---|---|
| Project architecture overview | 5-8 calls | 1 call (project_map) |
~85% |
| Find function by concept | 3-5 calls | 1 call (semantic_code_search) |
~75% |
| Trace 2-level call chain | 8-15 calls | 1 call (get_call_graph) |
~90% |
| Pre-change impact analysis | 10-20+ calls | 1 call (get_ast_node + include_impact) |
~95% |
| Module structure & exports | 5+ calls | 1 call (module_overview) |
~80% |
| File dependency mapping | 3-5 calls | 1 call (module_overview + include_deps) |
~75% |
| Similar code detection | N/A | 1 call (get_ast_node + include_similar) |
unique |
Session token savings
tests/effectiveness_bench.rs is the only reproducible number here, and it is
worth being precise about what it measures. For each of five navigation tasks it
runs the real CLI on a fixture project and compares the response size in bytes
against a hand-set baseline_bytes for the Grep+Read approach. Bytes stand
in for tokens; the baselines are estimates committed once and held fixed, so its
value is regression tracking over releases, not a measurement of your project.
cargo build --no-default-features
cargo test --test effectiveness_bench --no-default-features -- --ignored --nocapture
On the fixture at v0.123.0 that prints 942 / 23000 = 0.04x, and the test fails
if the overall ratio ever exceeds 0.60. Earlier revisions of this README carried
an "Overall Session Efficiency" table (~80% fewer calls, ~95% fewer lines read,
40-60% session savings) whose first rows had no source at all; they are gone
rather than dressed up.
What code-graph Uniquely Enables
- Impact analysis — "Changing
connaffects 33 functions across 4 files, 78 tests at HIGH risk" — impossible to derive manually with Grep - Transitive call tracing — Follow
main→run_serve→handle_message→handle_tools_call→connin one query - Semantic search — Find
authenticate_sessionwhen searching "handle user login" - Dependency strength — Not just "file A imports file B", but "file A uses 38 symbols from file B"
When Traditional Tools Are Still Better
| Use Case | Best Tool |
|---|---|
| Exact string / constant search | Grep |
| Reading a file to edit it | Read |
| Finding files by name pattern | Glob |
What the Graph Does Not See
Call edges are resolved by name, so a few spellings produce no edge. These are known boundaries, not bugs to report:
- A method call reached through a module path.
module::Type::method()produces no call edge — the same whether the path starts with the crate name,crate::, or a bare module. A bareType::method()does resolve, and so does a free function through the same kind of path:my_crate::cli::cmd_grep()binds, whichpath_qualifier_strips_own_crate_nameintests/integration_call_qualifier.rsexists to keep true. It is theType::segment in front of the method that drops the edge, not the length of the path. Measured on this repo at v0.132.0:Database::openhas 173 caller edges and none of them come from the 53 call sites intests/cli_e2e.rsspelledcode_graph_mcp::storage::db::Database::open(...). - A receiver call whose method name is shared by several types.
obj.method()normally resolves: the receiver has no statically-known type, so the resolver binds it when exactly one same-language method carries that name (receiver_call_resolves_unique_method). When several types define the same name it is dropped rather than fanned out (receiver_call_with_ambiguous_method_name_stays_unresolved). - Cross-file constant and type-position uses, callbacks, and function
pointers. None of these are call edges, but none are invisible either: they
are carried as the
referencesrelation, whichfind_referencesreturns andimpactreports separately asvalue reference(s) — callbacks / fn-pointers / type positions. Together with the row above, this is whyinclude_deadresults are candidates to verify rather than a verdict. - Dispatch by name. A function reached through a string key, a reflection
call or an event name (
handlers["save"],getattr(obj, "save"),send(:save),bus.on("save", …)) has no edge. Whencallgraph,impactorrefsfinds no caller for a function, the answer lists up to 5 lines where the name appears in such a shape or is passed as a value (boundariesin--jsonand MCP), and acode-graph-mcp grepthat shows every occurrence. It is a disclosure, not an edge, and a lexical one: a line it does not list is not proof that nothing dispatches to the function.
Architecture
src/
├── domain.rs # Shared constants, relation types, env-var config
├── resolve.rs # Shared symbol resolution + ambiguity verdicts (CLI and MCP)
├── outcome.rs # Retrieval-adoption metrics from session transcripts
├── budget.rs # Output budgets (--budget / max_tokens): rank, shorten, drop, next step
├── cli/ # Every `code-graph-mcp <cmd>` subcommand (one file per command)
├── mcp/ # MCP protocol layer (JSON-RPC, tool registry, server)
│ └── server/ # McpServer with IndexingState + CacheState sub-structs
├── parser/ # Tree-sitter parsing, relation extraction, LanguageConfig dispatch
├── indexer/ # 3-phase pipeline, Merkle tree, file watcher
├── storage/ # SQLite schema (v10), CRUD, FTS5, migrations
├── graph/ # Recursive CTE call graph queries
├── search/ # RRF fusion search combining BM25 + vector
├── embedding/ # Candle embedding model (optional, masked mean pooling)
├── snapshot/ # Portable graph snapshots (create / verify / install)
├── sandbox/ # Context compressor with token estimation
└── utils/ # Language detection, config
Installation
Option 1: Claude Code Plugin (Recommended)
Install as a Claude Code plugin for the best experience — includes skills, the code-explorer agent, auto-indexing hooks, StatusLine health display, and automatic updates:
# Step 1: Add the marketplace
/plugin marketplace add sdsrss/code-graph-mcp
# Step 2: Install the plugin
/plugin install code-graph-mcp
What you get:
- MCP Server — All code-graph tools available to Claude
- Skills —
explore(structure-first navigation before reading files) andindex(health-check / re-index / full rebuild); see Plugin Skills - Code Explorer Agent — Deep code understanding expert via
code-explorer - Auto-indexing — The MCP server's file watcher records edited files, and the next code-graph MCP query (
get_call_graph,find_references, … — notget_index_status) re-indexes them before it answers; a PostToolUse hook that re-indexes per edit is off by default (CODE_GRAPH_HOOK_INDEX=onturns it on for CLI-only use) - StatusLine — Real-time health display (nodes, files, watch status) and what code-graph did in this session (
5 answers · 2 calls: answers its grep, edit, read, subagent and Stop hooks delivered to Claude, code-graph queries Claude ran) — compatible with other plugins' StatusLine via composite multiplexer - Auto-update — Checks for a new version at session start (throttled to at most one check every 2 minutes). Between forced checks the re-check interval is 30 minutes after an "up to date" answer and 6 hours while an update is already pending. Updates install silently.
Manual Update
npm update -g @sdsrs/code-graph
Then reconnect the MCP server in Claude Code with /mcp.
Note: Auto-update is disabled in the source repo directory (dev mode). Use manual update when developing the plugin itself.
Turning auto-update off
| Environment variable | Effect |
|---|---|
CODE_GRAPH_NO_AUTO_UPDATE=1 |
Skips the update check entirely — no version check, no download, and no updater process is started. A missing binary is still installed on first run, so the MCP server can't be left with no engine. Update manually with the command above. |
Set it in the env block of ~/.claude/settings.json (the environment of the
process hosting the MCP server), then reconnect with /mcp.
An update that keeps failing also stops hammering: after 5 failed attempts at
the same release the updater drops to one retry per day (and retries
immediately when a newer release is published), instead of re-downloading on
every session. While it is in that state the statusline shows ⚠ update stuck
and code-graph-mcp doctor prints the manual update command.
Invited-memory mode (quieter prompts)
By default, every user prompt the plugin deems code-related gets a small context injection from code-graph CLI output. If you'd rather rely on explicit tool calls, opt into invited-memory mode:
- Adopt the plugin contract into your project (idempotent, self-heals):
This writes a sentinel-wrapped managed block intocode-graph-mcp adopt<cwd>/CLAUDE.md(auto-loaded each session) plus<cwd>/.claude/plugin_code_graph_mcp.md(the full decision table, opened on demand). Runcode-graph-mcp unadoptto remove both; content outside the managed block is kept. - Set the activation env var in
~/.claude/settings.json:{ "env": { "CODE_GRAPH_QUIET_HOOKS": "1" } } - Restart Claude Code. The hooks inject nothing (the grep, read, edit, prompt, subagent and Stop hooks stay silent, and session startup skips the project-map injection), and the MCP
instructionsshrink to a one-line command pointer.
Option 2: Claude Code MCP Server Only
Register as an MCP server without the plugin features:
claude mcp add code-graph-mcp -- npx -y @sdsrs/code-graph
Option 3: Cursor / Windsurf / Other MCP Clients
Add to your MCP settings file (e.g. ~/.cursor/mcp.json):
{
"mcpServers": {
"code-graph": {
"command": "npx",
"args": ["-y", "@sdsrs/code-graph"]
}
}
}
Option 4: npx (No Install)
Run directly without installing:
npx -y @sdsrs/code-graph
Option 5: npm (Global Install)
Install globally, then run anywhere:
npm install -g @sdsrs/code-graph
code-graph-mcp
Uninstallation
Claude Code Plugin
# Uninstall the plugin
/plugin uninstall code-graph-mcp
# (Optional) Remove the marketplace
/plugin marketplace remove code-graph-mcp
# (Optional) Clean up all config and cache data
node ~/.claude/plugins/cache/code-graph-mcp/code-graph-mcp/*/scripts/lifecycle.js uninstall
Claude Code MCP Server
claude mcp remove code-graph-mcp
Cursor / Windsurf / Other MCP Clients
Remove the code-graph entry from your MCP settings file (e.g. ~/.cursor/mcp.json).
npm (Global)
Run the teardown first, while the CLI still exists — npm 7 removed the
preuninstall/postuninstall lifecycle scripts, so nothing runs on your behalf
during npm uninstall. Doing it in the other order leaves the hook entries in
~/.claude/settings.json and the ~40 MB binary cache behind, with no command
left on disk to remove them.
code-graph-mcp uninstall # restore statusline, strip hooks, drop the cache
npm uninstall -g @sdsrs/code-graph
Built from source (cargo)
uninstall lives in the npm wrapper, so a cargo install / cargo build binary
does not carry it — that binary tells you as much and points here. Run the
teardown through npx without installing globally (npx still downloads the package
and its platform binary into the npm cache), then remove your binary:
npx -y @sdsrs/code-graph uninstall # statusline, hooks, cache
cargo uninstall code-graph-mcp # or delete the target/release binary
MCP Tools
tools/list advertises exactly these seven. Several older niche tools were folded into flags on them, so one call now covers what used to take a separate tool:
| Tool | Description |
|---|---|
project_map |
Full project architecture: modules, dependencies, entry points, hot functions. include_centrality adds architectural chokepoints |
semantic_code_search |
Hybrid BM25 + vector search (RRF) for AST nodes. Supports compact mode |
get_call_graph |
Trace upstream/downstream call chains for a function. Pass route_path='GET /api/x' to trace an HTTP route → handler → downstream instead |
get_ast_node |
One symbol with signature, body and relations. include_impact adds the blast radius, include_similar embedding-similar nodes, include_references callers/callees. Supports compact mode |
module_overview |
Symbols in a directory or file, grouped by type and caller count. include_dead lists unreferenced symbols under the path; include_deps adds the file dependency graph (single-file paths only) |
ast_search |
Search AST nodes by text and/or structural filters (type, return type, params) |
find_references |
Find all references to a symbol (callers, importers, inheritors, implementors, value/type references). Supports compact mode |
Output budget. project_map, module_overview, get_call_graph and get_ast_node take an optional max_tokens (100-100000, counted as bytes/3 of the JSON answer). The answer is ranked by caller count; lower-ranked items are first shortened (no key symbols, no signature, no source body), then left out, and never cut in the middle. A budget object reports what was shortened or left out and budget.next holds the CLI command that returns it (one per section that lost entries, joined by ; ). On module_overview and project_map, budget.over_budget is true when even the fixed part of the answer is larger than the budget. Without max_tokens the answer is unchanged. Every existing size cut in these four tools (hot_functions_truncated, active_capped, the call-graph rollup, compressed_node, _truncated) now carries a next command too.
Hidden aliases. These names are not in tools/list but still dispatch via tools/call, so existing clients keep working: trace_http_chain / find_http_route (→ get_call_graph with route_path), read_snippet (→ get_ast_node), dependency_graph, find_similar_code, find_dead_code, plus the management tools start_watch, stop_watch, get_index_status and rebuild_index. impact_analysis is removed — calling it returns Unknown tool; use get_ast_node with include_impact=true, or the CLI's impact --json for the full report.
Questions sur code-graph MCP
Comment ajouter code-graph MCP à Claude Code ?
Exécutez claude mcp add code-graph-mcp -- npx -y @sdsrs/code-graph dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter code-graph MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Quels outils code-graph MCP fournit-il ?
Il expose 7 outils, dont project_map, semantic_code_search, get_call_graph, get_ast_node, module_overview.
Quels langages de programmation sont pris en charge ?
Il prend en charge un large éventail de langages, notamment TypeScript, JavaScript, Go, Python, Rust, Java, C#, Kotlin, Ruby, PHP, Swift, Dart, C et C++, avec différents niveaux de profondeur d'AST.
Comment gère-t-il les modifications de code ?
Il utilise un indexage incrémental avec une détection de changement par arbre de Merkle et un watcher de système de fichiers pour réindexer uniquement les fichiers modifiés.
Peut-il tracer les routes HTTP ?
Oui, il peut mapper les chemins de routes aux fonctions de gestion backend pour Express/Connect, Flask/FastAPI, Go net/http et Rust axum.