CodeGraph turns source code and project knowledge into a searchable graph for AI agents and developers. It parses code with tree-sitter, stores structural and temporal relationships in FalkorDB, and exposes five focused tools through the Model Context Protocol (MCP).
- Landing page
- npm package
- Source code
- Issues
- Discussions
- Contribution guide
- Security policy
- MIT license
The public npm package is @agntk/codegraph-mcp. Version 0.1.0 provides the codegraph-mcp and codegraph-dashboard bins.
- Searches code by symbol, structure, and meaning.
- Extracts functions, classes, interfaces, variables, types, imports, calls, and other relationships.
- Stores project facts with
valid_atandinvalid_attimestamps for point-in-time queries. - Supports first-class TypeScript, JavaScript, Python, Go, Rust, and Markdown parsing, with generic tree-sitter support for additional languages.
- Runs with embedded FalkorDBLite on Linux x64 and Apple silicon macOS, or an external FalkorDB service on any supported Node.js platform. Apple silicon requires Homebrew
libompandopenssl@3runtime libraries. - Explores exact graph totals in Files or Symbols view with most-connected-first windows, Previous/Next paging, append-style loading, in-place neighbor expansion, and a Files-view toggle for unresolved external modules.
- Exposes
analyze,codebase,knowledge,query, andsearchMCP tools.
CodeGraph requires Node.js 20 or newer. The npm commands below install the public @agntk/codegraph-mcp package from the registry.
Add this server configuration to an MCP client:
{
"mcpServers": {
"codegraph": {
"command": "npx",
"args": ["-y", "@agntk/codegraph-mcp"]
}
}
}In the first conversation, ask the agent to check CodeGraph status:
{"method":"tools/call","params":{"name":"codebase","arguments":{"action":"status"}}}On a fresh install, codebase status returns configured: false and setupRequired: true. An empty database is a valid first run. Configure one absolute project path, then start a full index:
{"method":"tools/call","params":{"name":"codebase","arguments":{"action":"configure","projectAction":"set","projects":["/absolute/path/to/project"]}}}{"method":"tools/call","params":{"name":"codebase","arguments":{"action":"reindex","mode":"full","scope":"/absolute/path/to/project"}}}Configuration saves the project but does not index it. The full reindex parses structure first and then finishes embeddings. With the local provider, codebase status includes model load and indexing state while work is running.
Start the dashboard directly from the package:
npx -y -p @agntk/codegraph-mcp codegraph-dashboardOpen the URL printed by the process. A fresh database opens on the setup flow. Confirm storage and embeddings, choose Browse to select a folder, then select Index project. The page shows model download and indexing progress, finishes remaining embeddings automatically, and reports file, symbol, edge, and embedding counts before opening the graph explorer.
The dashboard and MCP server are separate entry points. They can run at the same time against the same data path.
| Platform | Default driver | Prerequisites | Configuration |
|---|---|---|---|
| Linux x64 | Embedded FalkorDBLite | Node.js 20 or newer | No database configuration when the embedded package is available |
| macOS Apple silicon | Embedded FalkorDBLite | Node.js 20 or newer, brew install libomp openssl@3 |
No database configuration when the libraries and embedded package are available |
| macOS Intel | External FalkorDB | Node.js 20 or newer | Set the external variables below |
| Windows x64 | External FalkorDB | Node.js 20 or newer | Set the external variables below |
| Linux arm64 and other platforms | External FalkorDB | Node.js 20 or newer | Set the external variables below |
An explicit CODEGRAPH_DRIVER always wins. Without it, a configured FALKORDB_URL or FALKORDB_HOST selects external FalkorDB. Otherwise CodeGraph selects embedded FalkorDBLite on Linux x64, or on Apple silicon macOS when its native libraries are present, and falls back to external FalkorDB if the embedded package cannot load. All other platforms default to external FalkorDB.
CODEGRAPH_DATA_DIR defaults to ~/.codegraph; the MCP project configuration is stored at ~/.codegraph/mcp-context.json. Embedded database storage separately defaults to <current working directory>/.codegraph/falkordb. If that database path is too long for a Unix socket, CodeGraph relocates it to ~/.codegraph/graphs/<12-hex-digest>. Set CODEGRAPH_DATA_DIR to a writable directory for MCP configuration, and set CODEGRAPH_DB_PATH to a writable directory for embedded database files.
For external FalkorDB, set either a URL:
CODEGRAPH_DRIVER=falkordb
FALKORDB_URL=host:6379
Or set a host and port:
CODEGRAPH_DRIVER=falkordb
FALKORDB_HOST=host
FALKORDB_PORT=6379
One database server runs per data directory; a second CodeGraph process attaches to it.
| Provider | Model and dimensions | Configuration | First run |
|---|---|---|---|
| Local | nomic-ai/nomic-embed-text-v1.5, 768 |
No key and no provider override | Default no-key path. Downloads approximately 132 MiB, measured as 138,011,417 bytes (131.6 MiB), shows progress, then caches the model locally. |
| Voyage | voyage-code-3, 1024 |
CODEGRAPH_EMBEDDING_PROVIDER=voyage and VOYAGE_API_KEY |
Sends embedding inputs to Voyage. |
| OpenRouter | openai/text-embedding-3-small, 1536 |
CODEGRAPH_EMBEDDING_PROVIDER=openrouter and OPENROUTER_API_KEY |
Sends embedding inputs to OpenRouter. |
| None | No model, 0 | CODEGRAPH_EMBEDDING_PROVIDER=none |
Explicit structural-only mode. Semantic similarity search is unavailable. |
If no provider is set, a configured Voyage key selects Voyage, a configured OpenRouter key selects OpenRouter, and no key selects local. Set CODEGRAPH_EMBEDDING_PROVIDER explicitly when you need to pin the choice.
Provider, model, and dimension are stored with the graph. If any of them changes, CodeGraph blocks graph mutation with this remedy: Run an explicit re-embed migration or a full reindex before using the requested embedding profile.
| Tool | Purpose |
|---|---|
analyze |
Inspect impact, call hierarchy, cycles, dead-code candidates, hotspots, change coupling, and ownership inferred from indexed git history |
search |
Find code and project knowledge by name, structure, or meaning |
knowledge |
Store and recall entities, relationships, facts, and documents |
codebase |
Configure projects, index code, inspect status, and read source |
query |
Run read-only Cypher queries against the graph |
Set CODEGRAPH_RAW_TOOLS=true to expose lower-level handlers alongside the five grouped tools.
| Variable | Purpose |
|---|---|
CODEGRAPH_DRIVER |
falkordblite for embedded storage or falkordb for an external service; defaults by platform as described above |
CODEGRAPH_DATA_DIR |
MCP configuration directory, default ~/.codegraph; must be writable by the CodeGraph process |
CODEGRAPH_DB_PATH |
Embedded FalkorDBLite data path, default <current working directory>/.codegraph/falkordb; must be writable by the CodeGraph process |
FALKORDB_URL |
External FalkorDB host and port |
FALKORDB_HOST |
External FalkorDB host, default localhost |
FALKORDB_PORT |
External FalkorDB port, default 6379 |
FALKORDB_GRAPH |
Graph name, default codegraph |
CODEGRAPH_EMBEDDING_PROVIDER |
local, voyage, openrouter, or none; when unset, resolves Voyage key, then OpenRouter key, then local |
VOYAGE_API_KEY |
Voyage embeddings and optional reranking |
OPENROUTER_API_KEY |
OpenRouter embeddings or LLM features |
CEREBRAS_API_KEY |
Optional LLM-backed knowledge extraction |
API_PORT |
Dashboard and REST API port, default 3001; use the printed URL |
CODEGRAPH_BROWSE_ROOTS |
Additional absolute dashboard Browse roots, separated by commas |
CODEGRAPH_RAW_TOOLS |
Set to the literal value true to expose raw handlers alongside the five grouped MCP tools |
Never commit provider keys. Put secrets in the MCP client's protected environment configuration or a local ignored .env file.
The canonical package command is:
pnpm pack:npmIt builds and validates one publishable tarball under tmp/release. The complete release gate is:
pnpm release:checkThe basic installed-tarball smoke proves the package installs in a clean consumer, both binaries start, all five MCP tools are present, a fresh database is setup-safe, Browse and indexing work, data survives restarts, the dashboard and MCP process share one embedded server, and the exact tarball hash is reported. The release CI runs that installed artifact with embedded storage on Linux x64 and Apple silicon, and checks external FalkorDB guidance on Windows x64. An opt-in local-provider lane proves cold model download progress and a usable 768-dimension vector index.
A clean-consumer local tarball proof verifies that bare npx -y @agntk/codegraph-mcp selects the codegraph-mcp bin and that npx -y -p @agntk/codegraph-mcp codegraph-dashboard selects the dashboard bin. Both forms also resolve and boot from the public npm registry.
pnpm install --frozen-lockfile
pnpm audit:prod
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm docker:db
pnpm test:integration
pnpm test:scripts
pnpm build:mcpb
pnpm release:checkSee CONTRIBUTING.md for the pull request workflow and required evidence.
FalkorDBLite's Linux x64 and Apple silicon macOS binaries are installed with the workspace dependencies. Apple silicon also requires Homebrew libomp and openssl@3.
| Package | Responsibility |
|---|---|
@codegraph/core |
Indexing, search pipelines, services, and git synchronization |
@codegraph/graph |
FalkorDB and FalkorDBLite drivers, graph queries, and knowledge operations |
@codegraph/plugin-nlp |
Embeddings, reranking, entity resolution, and document ingestion |
@codegraph/mcp-server |
MCP transport and the five public tool groups |
@codegraph/cli |
Source-checkout command-line tools |
@agntk/codegraph-mcp |
Public npm distribution staging and entry point |
@codegraph/mcpb |
Platform-local MCPB desktop extension build |
@codegraph/api |
REST API consumed by the dashboard |
@codegraph/dashboard |
Static dashboard UI served by the API |
The marketing site lives in apps/web, and the reproducible search benchmark lives in benchmarks/cgbench-v1.
CodeGraph is available under the MIT License.