code-graph

السجل الرسمي أدوات المطورين

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

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

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

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  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.

الأسئلة الشائعة

ما هو code-graph؟

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

كيف أثبّت code-graph؟

يعمل على جهازك. في Claude Code: claude mcp add code-graph -- uvx cg-code-graph==0.23.13 --db --tools. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج code-graph إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل code-graph مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون code-graph؟

ينشره cyberchronos00. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.