code-graph

Registre officiel Outils de développement

Local dependency graph: callers, entry points and file:line evidence for what a change affects.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package cg-code-graph
Claude Code
claude mcp add code-graph -- uvx cg-code-graph==0.23.13 --db --tools
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "code-graph": {
            "command": "uvx",
            "args": [
                "cg-code-graph==0.23.13",
                "--db",
                "--tools"
            ]
        }
    }
}

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. code-graph
  2. Quick start
  3. Supported languages
  4. What you get
  5. Docs

code-graph

See everything a change affects before you make it: a local, deterministic dependency graph of routes, calls, tables and config, with file:line evidence for every hop.

For you and your AI agent (CLI + MCP). No LLM in the graph.

Docs · Quick start · CLI · MCP · Changelog

Quick start

pipx install cg-code-graph          # or: uv tool install cg-code-graph
cg index . --db out/graph.db        # prints starter queries for your repo
cg install --host cursor    # or claude, codex, vscode, …: registers the MCP server and a "use cg first" agent rule
cg reaches table:orders --db out/graph.db   # any table, connection or config key

Try it on a bundled sample, link a frontend to a backend, or connect an agent over MCP: Quick start guide. Other install options (install.sh, Windows, exact-mode toolchains): Install.

cg reaches table:store_books on the bundled Django sample:

dependents: 18 nodes  (code: 6, entry points: 9, other: 3)
== RUNTIME (reached from http_route / ... / queue_job / listener): 5 functions/methods
    catalog.api.create_book  depth=1 conf=resolved  http_route(1)
        path: function:catalog.api.create_book
          -WRITES_TABLE[resolved @ catalog/api.py:27]-> table:store_books
    catalog.signals.review_saved  depth=3 conf=resolved  listener(1)
        path: function:catalog.signals.review_saved
          -DISPATCHES[exact @ catalog/signals.py:12]-> job:catalog.tasks.recompute_rating
          -HANDLED_BY[exact @ catalog/tasks.py:13]-> function:catalog.tasks.recompute_rating
          -READS_TABLE[resolved @ catalog/tasks.py:14]-> table:store_books

Supported languages

LanguageFrameworks and factsCallsDocs
Django (+ DRF, django-ninja), FastAPI / Starlette, Flask, Celeryexact (stdlib ast)Python
Nuxt / Vue, NestJS, Next.js, Astro, Express, Fastify, Koa, Hono, Elysia, React Router / Remixexact (TypeScript compiler API)TS frameworks
Laravel (routes, route attributes, middleware, queues, broadcasting, outbound HTTP)exact (nikic/php-parser; needs PHP 8.2+)PHP
Flutterexact (Dart analyzer; needs the Dart SDK)Platforms
Android, Kotlin Multiplatform, Springheuristic; exact with scip-java (opt-in)Kotlin
Spring (routes, guards, beans, tables, clients)heuristic; exact with scip-java (opt-in)Java
iOS / SwiftPMheuristic; exact with the Swift index store (opt-in)Swift
crates / modules, entry points, FFI, #[cfg] / #if gatesheuristic; exact with rust-analyzer / scip-clangRust, C and C++

Go and others: import a SCIP index with cg index --scip FILE. Run cg doctor to see exact / heuristic per language on your machine.

What you get

  • reaches, impact, path: every caller, route, job and page that reaches a table, config key or method.
  • cg affected --base main: the tests and entry points a change reaches (--quiet feeds your test runner).
  • Across repos: cg link matches client HTTP calls (frontends and Laravel / Guzzle backends) to server routes, and checks request keys (Laravel FormRequest, Elysia schemas, Nuxt / TypeScript bodies).
  • Route guards: cg routes --writes --unguarded lists routes that write with no auth guard. Laravel checks inside the action count as inline guards unless --strict.
  • Security views: cg surface lists the inbound / outbound attack surface and findings (hardcoded credentials, plaintext protocols, unverified webhooks, unguarded handlers, listeners on all interfaces, disabled TLS / SSH verification, plaintext gRPC, exposed IPC, outbound URLs built from request input) as text, JSON or SARIF, with --fail-on for CI.
  • MCP server (cg-mcp) so agents query the graph instead of grepping. One server can serve many graphs (graphs plus an optional graph argument); a single --db stays one graph. See MCP.
  • Visual view (cg serve) and plan checks (cg plan check) for planned changes.

Docs

Install · Quick start · CLI · MCP · Configuration · Architecture · Limitations

Changelog · Contributing · Security · MIT License

More recordings: docs/media.

Questions fréquentes

Qu'est-ce que code-graph ?

Local dependency graph: callers, entry points and file:line evidence for what a change affects.

Comment installer code-graph ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add code-graph -- uvx cg-code-graph==0.23.13 --db --tools. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour code-graph ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

code-graph est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient code-graph ?

Il est publié par cyberchronos00. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.