An MCP server that indexes local code into a graph database to provide context to AI assistants with a graphical code visualizations for humans.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"codegraphcontext-codegraphcontext": {
"command": "python",
"args": [
"-m",
"CodeGraphContext"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/CodeGraphContext/CodeGraphContext.git ~/.mcp/CodeGraphContext
cd ~/.mcp/CodeGraphContext Turn code repositories into a queryable graph for AI agents.
🌐 Languages:
🌍 Help translate CodeGraphContext to your language by raising an issue & PR on https://github.com/Shashankss1205/CodeGraphContext/issues!
Bridge the gap between deep code graphs and AI context.
A powerful MCP server and CLI toolkit that indexes local code into a graph database to provide context to AI assistants and developers. Use it as a standalone CLI for comprehensive code analysis or connect it to your favorite AI IDE via MCP for AI-powered code understanding.
Install in seconds with pip and unlock a powerful CLI for code graph analysis.
The CLI intelligently parses your tree-sitter nodes to build the graph.
Use natural language to query complex call-chains via MCP.
CodeGraphContext is created and actively maintained by:
Shashank Shekhar Singh
Contributions and feedback are always welcome! Feel free to reach out for questions, suggestions, or collaboration opportunities.
.cgc bundles - no indexing required! (Learn more)codegraphcontext watch).CodeGraphContext provides comprehensive parsing and analysis for the following languages:
| Language | Language | Language | |||
|---|---|---|---|---|---|
| 🐍 | Python | 📜 | JavaScript | 🔷 | TypeScript |
| ☕ | Java | 🔵 | C | ➕ | C++ |
| #️⃣ | C# | 🐹 | Go | 🦀 | Rust |
| 💎 | Ruby | 🐘 | PHP | 🍎 | Swift |
| 🎨 | Kotlin | 🎯 | Dart | 🐪 | Perl |
| 🌙 | Lua | 🚀 | Scala | λ | Haskell |
| 💧 | Elixir | 📜 | Emacs Lisp (elisp) | 🌐 | HTML |
| 🎨 | CSS | ⚛️ | TSX |
Each language parser extracts functions, classes, methods, parameters, inheritance relationships, function calls, and imports to build a comprehensive code graph.
CodeGraphContext supports multiple graph database backends to suit your environment:
| Feature | KuzuDB | LadybugDB | FalkorDB Lite | Neo4j / Nornic DB |
|---|---|---|---|---|
| Typical default | Standard Default (embedded, powered by KuzuDB) | Specialized Embedded (similar to Kuzu) | Unix (Python 3.12+, when falkordblite works) | When explicitly configured |
| Setup | Zero-config / Embedded | Zero-config / Embedded | Zero-config / In-process | Docker / External |
| Platform | All (Windows Native, macOS, Linux) | All (Windows Native, macOS, Linux) | Unix-only (Linux/macOS/WSL) | All Platforms |
| Use Case | Desktop, IDE, Local development | Custom research projects | Specialized Unix development | Enterprise, Massive graphs |
| Requirement | pip install kuzu | pip install ladybug | pip install falkordblite | Neo4j Server / Docker / Nornic Cloud |
| Speed | ⚡ Extremely Fast | ⚡ Fast | 🚀 Scalable | |
| Persistence | Yes (to disk) | Yes (to disk) | Yes (to disk) |
When SCIP_INDEXER=true in your CGC config (~/.codegraphcontext/.env), some languages use external SCIP indexers for more accurate calls and inheritance than Tree-sitter heuristics alone.
C and C++ use scip-clang, which requires a compile_commands.json file (a JSON compilation database): one entry per translation unit with the real compiler command (include paths, -D defines, -std, etc.). Without it, scip-clang cannot run; CGC logs a warning and falls back to Tree-sitter for that repo. Typical ways to produce the file: CMake with -DCMAKE_EXPORT_COMPILE_COMMANDS=ON, or wrap your real build with Bear (e.g. bear -- make). CGC also looks under build/ and cmake-build-*/ for that filename.
C# uses scip-dotnet (Roslyn); you need a normal .csproj / .sln and a successful restore—no compile_commands.json.
SCIP is independent of which graph database you use (Kuzu, Neo4j, etc.); the same flag applies to all backends.
CodeGraphContext is already being explored by developers and projects for:
If you’re using CodeGraphContext in your project, feel free to open a PR and add it here! 🚀
neo4j>=5.15.0watchdog>=3.0.0stdlibs>=2023.11.18typer>=0.9.0rich>=13.7.0inquirerpy>=0.3.4python-dotenv>=1.0.0tree-sitter>=0.21.0 (not installed on Python 3.13)tree-sitter-language-pack>=0.6.0 (not installed on Python 3.13)pyyamlpathspec>=0.12.1falkordb>=0.1.0falkordblite>=0.1.0 (Unix only)kuzu (KuzuDB engine)fastapi>=0.100.0uvicorn>=0.22.0requests>=2.28.0protobuf>=3.20,<3.21Note: Python 3.10-3.14 is supported.
Install the toolkit:
pip install codegraphcontext
Troubleshooting (Command not found):
If the codegraphcontext command is not found, run this one-line fix:
curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash
Database Setup (Automatic): CodeGraphContext uses an embedded graph database by default.
codegraphcontext neo4j setup to use an external server.Start using immediately with CLI commands:
# Index your current directory
codegraphcontext index .
# List all indexed repositories
codegraphcontext list
# Analyze who calls a function
codegraphcontext analyze callers my_function
# Find complex code
codegraphcontext analyze complexity --threshold 10
# Find dead code
codegraphcontext analyze dead-code
# Watch for live changes (optional)
codegraphcontext watch .
# See all commands
codegraphcontext help
See the full CLI Commands Guide for all available commands and usage scenarios.
CodeGraphContext can generate stunning, interactive knowledge graphs of your code. Unlike static diagrams, these are premium web-based explorers:
# Visualize function calls
codegraphcontext analyze calls my_function --viz
# Explore class hierarchies
codegraphcontext analyze tree MyClass --viz
# Visualize search results
codegraphcontext find pattern "Auth" --viz
Configure your AI assistant to use CodeGraphContext:
Setup: Run the MCP setup wizard to configure your IDE/AI assistant:
codegraphcontext mcp setup
The wizard can automatically detect and configure:
Upon successful configuration, codegraphcontext mcp setup will generate and place the necessary configuration files:
mcp.json file in your current directory for reference.~/.codegraphcontext/.env..claude.json or VS Code’s settings.json).Start: Launch the MCP server:
codegraphcontext mcp start
Use: Now interact with your codebase through your AI assistant using natural language! See examples below.
.cgcignore)You can tell CodeGraphContext to ignore specific files and directories by creating a .cgcignore file in the root of your project. This file uses the same syntax as .gitignore.
Example .cgcignore file:
# Ignore build artifacts
/build/
/dist/
# Ignore dependencies
/node_modules/
/vendor/
# Ignore logs
*.log
The codegraphcontext mcp setup command attempts to automatically configure your IDE/CLI. If you choose not to use the automatic setup, or if your tool is not supported, you can configure it manually.
Add the following server configuration to your client’s settings file (e.g., VS Code’s settings.json or .claude.json):
{
"mcpServers": {
"CodeGraphContext": {
"command": "codegraphcontext",
"args": [
"mcp",
"start"
],
"env": {
"NEO4J_URI": "YOUR_NEO4J_URI",
"NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
"NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
},
"disabled": false,
"alwaysAllow": []
}
}
}
For instructions on installing and configuring MCP servers with OpenCode, see the OpenCode MCP Guide.
If you installed CodeGraphContext using pipx, use the following configuration instead:
{
"mcpServers": {
"CodeGraphContext": {
"command": "pipx",
"args": [
"run",
"codegraphcontext",
"mcp",
"start"
],
"env": {
"NEO4J_URI": "YOUR_NEO4J_URI",
"NEO4J_USERNAME": "YOUR_NEO4J_USERNAME",
"NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD"
},
"disabled": false,
"alwaysAllow": []
}
}
}
Once the server is running, you can interact with it through your AI assistant using plain English. Here are some examples of what you can say:
To index a new project:
/path/to/my-project directory.”
OR~/dev/my-other-project to the code graph.”To start watching a directory for live changes:
/path/to/my-active-project directory for changes.”
OR~/dev/main-app.”When you ask to watch a directory, the system performs two actions at once:
job_id to track its progress.This means you can start by simply telling the system to watch a directory, and it will handle both the initial indexing and the continuous updates automatically.
Finding where code is defined:
process_payment function?”User class for me.”Analyzing relationships and impact:
get_user_by_id function?”calculate_tax function, what other parts of the code will be affected?”BaseController class.”Order class have?”Exploring dependencies:
requests library?”render method.”Advanced Call Chain and Dependency Tracking (Spanning Hundreds of Files): The CodeGraphContext excels at tracing complex execution flows and dependencies across vast codebases. Leveraging the power of graph databases, it can identify direct and indirect callers and callees, even when a function is called through multiple layers of abstraction or across numerous files. This is invaluable for:
Impact Analysis: Understand the full ripple effect of a change to a core function.
Debugging: Trace the path of execution from an entry point to a specific bug.
Code Comprehension: Grasp how different parts of a large system interact.
“Show me the full call chain from the main function to process_data.”
“Find all functions that directly or indirectly call validate_input.”
“What are all the functions that initialize_system eventually calls?”
“Trace the dependencies of the DatabaseManager module.”
Code Quality and Maintenance:
process_data function in src/utils.py.”Repository Management:
/path/to/old-project.”Contributions are welcome! 🎉
Please see our CONTRIBUTING.md for detailed guidelines.
If you have ideas for new features, integrations, or improvements, open an issue or submit a Pull Request.
Join discussions and help shape the future of CodeGraphContext.
A fully-featured coding agent that relies on symbolic code operations by using language servers.
Coding agent with basic read, write and command line tools.
Desktop GUI automation using accessibility APIs. Control Windows, macOS, and Linux applications without vision models or screenshots. Supports workflow recording, structured data extraction, and browser DOM inspection.
A framework for creating multi-agent systems using MCP for coordinated AI collaboration, featuring task management, shared context, and RAG capabilities.
A MCP Server that allows AI such as Claude to read from the directory structure in a VS Code workspace, see problems picked up by linter(s) and the language server, read code files, and make edits.
A coding agent for Max (Max/MSP/Jitter), which is a visual programming language for music and multimedia.