Grafyx
Grafyx is an MCP server that provides real-time codebase understanding for AI coding assistants by parsing your project into a semantic graph and exposing 14 tools for architecture analysis, code inspection, and natural language search.
Project Structure & Navigation
get_project_skeleton– Full project skeleton with file tree and statistics.get_module_context– Symbols overview in a directory/package with pagination.get_file_context– Comprehensive context for a file: functions, classes, imports, relationships.
Function & Class Insights
get_function_context– Detailed context for a function: signature, callers, callees, dependencies.get_class_context– Class details: methods, inheritance chain, usages.get_subclasses– Find all subclasses of a base class recursively.
Dependency & Impact Analysis
get_call_graph– Recursive call chain tracing (callers/callees).get_dependency_graph– Dependency mapping for impact analysis.get_unused_symbols– Detect dead code (functions/classes with no inbound references).
Search & Discovery
find_related_code– Natural language semantic search for related functions, classes, files.find_related_files– Find files relevant to a concept/feature using ML embeddings.
Code Quality & Conventions
get_conventions– Detect coding patterns and conventions used in the codebase.
Runtime Management
set_project– Switch the analyzed project directory at runtime.refresh_graph– Force a full re-parse of the codebase graph.
The server automatically watches files and updates the graph in real time, keeping code understanding current.
Integrates with Windsurf (Codeium) to deliver codebase relationship graph analysis and live updates through MCP.
Enables GitHub Copilot in VS Code to access codebase structure, function context, and dependency graphs via MCP.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Grafyxget the call chain for the main function"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Grafyx
Real-time codebase understanding for AI coding assistants.
What is Grafyx?
AI coding tools read raw files with zero architectural understanding -- they don't know what calls what, which classes inherit from where, or how your modules connect. Grafyx fixes this by parsing your entire codebase into a full relationship graph using Graph-sitter (built on tree-sitter), then exposing that graph to any AI assistant through the Model Context Protocol (MCP). Your assistant can trace call chains, map dependencies, find related code by description, detect conventions, and understand your project's architecture -- all in real time, with a file watcher that keeps the graph current as you edit.
Related MCP server: tree-sitter-analyzer
Quick Start
Claude Code
# Zero-install (recommended)
claude mcp add --scope user grafyx -- uvx --from grafyx-mcp grafyx
# Or install with pip first
pip install grafyx-mcp
claude mcp add --scope user grafyx -- grafyxCursor / Windsurf / Cline
Add to your MCP config file:
Cursor:
.cursor/mcp.json(project) or~/.cursor/mcp.json(global)Windsurf:
~/.codeium/windsurf/mcp_config.jsonCline: Cline MCP settings in VS Code
{
"mcpServers": {
"grafyx": {
"command": "uvx",
"args": ["--from", "grafyx-mcp", "grafyx"]
}
}
}VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"grafyx": {
"command": "uvx",
"args": ["--from", "grafyx-mcp", "grafyx"]
}
}
}Using pip instead of uvx? Replace the command with:
"command": "grafyx"(no args needed).
Available Tools
Tool | Description |
| Full project structure with stats per module |
| Everything about a function: callers, callees, deps |
| File contents, imports, dependencies |
| Class methods, inheritance, usages |
| Natural language search across the codebase |
| Find files relevant to a feature by matching symbols |
| Impact analysis: what depends on what |
| Detected coding patterns and conventions |
| Call chain tracing upstream and downstream |
| Force re-parse of the codebase |
| Symbols in a directory/package (intermediate zoom) |
| Inheritance tree for a base class |
| Dead code detection |
| Switch the served project at runtime |
How It Works
Your AI Assistant
|
| MCP Protocol (stdio)
v
+-----------+
| Grafyx | FastMCP server with 14 tools
| Server |
+-----------+
|
+-----------+ +-----------+ +-------------+
| Graph |---->| Search | | Convention |
| Engine |---->| Engine | | Detector |
+-----------+ +-----------+ +-------------+
|
v
+-----------+
| Graph- | Tree-sitter based parsing
| sitter |
+-----------+
|
+-----------+
| Watchdog | File watcher for live updates
+-----------+Startup -- Grafyx detects languages in your project and parses all source files into a semantic graph via Graph-sitter.
Serving -- The FastMCP server exposes 14 tools over stdio. Your AI assistant calls them as needed.
Live updates -- Watchdog monitors file changes. When you save, the graph is automatically re-parsed after a short debounce.
ML-augmented search
Grafyx's find_related_code uses a pretrained code embedding model (default:
jinaai/jina-embeddings-v2-base-code, Apache-2.0, 161M params) running on CPU
via ONNX through fastembed. The model
is downloaded on first use and cached locally — no GPU, no daemon, no cloud
calls.
Since 0.2.1, fastembed is a hard dependency, so the default install
already includes the encoder — no extra needed.
Benchmark (0.2.0, 278 docstring→function queries across FastAPI + Django):
Encoder | nDCG@10 | MRR@10 | p50 latency |
jina-v2 (default) | 0.787 | 0.741 | ~1.5 s |
coderankembed | 0.663 | 0.623 | ~1.3 s |
tokens-only (no fastembed) | 0.335 | 0.297 | ~0.9 s |
The default encoder more than doubles retrieval quality over plain source-token search (+135% nDCG@10).
Full breakdown + per-query JSONL: docs/benchmarks/0.2.0/.
Switch encoders via the GRAFYX_ENCODER env var:
jina-v2(default) — Apache-2.0, fastembed-native, ~150 MB. Wins on accuracy; recommended unless you have a specific reason to switch.coderankembed— MIT, 137M, ONNX-int8, ~140 MB. Lower latency but ~12 nDCG@10 points behind jina-v2 in our eval. Hosted atBilal7Dev/grafyx-coderankembed-onnx.
Supporting numpy-only MLPs (~5 MB total weights, bundled in the wheel):
M1 Relevance ranker — 33-feature MLP that re-ranks the encoder's top candidates using structural signals (caller count, name overlap, exports).
M3 Source token filter — suppresses noise tokens (imports, strings, magic methods) from full-text search.
M4 Symbol importance — weights symbols by caller count, exports, and structural signals.
Gibberish detector — character-bigram MLP that blocks nonsense queries before they hit the index.
Reproducible benchmarks against FastAPI, Django, and Home Assistant ship in
benchmarks/ (python -m scripts.run_all).
Supported Languages
Language | Extensions |
Python |
|
TypeScript |
|
JavaScript |
|
Languages are auto-detected. To specify manually:
grafyx --languages python,typescriptOptions
grafyx [OPTIONS]
--project PATH Project to analyze (default: current directory)
--languages LANGS Comma-separated languages (default: auto-detect)
--ignore PATTERNS Additional directories to ignore
--no-watch Disable file watching
--verbose, -v Debug logging
--version Show versionDefault ignored: node_modules, .git, __pycache__, .venv, venv, .env, dist, build, .tox, .mypy_cache, .pytest_cache, .ruff_cache, egg-info, .eggs, .next, .nuxt, coverage, .coverage, .nyc_output
Multi-Agent Support
Grafyx works with agent teams. A single Grafyx instance serves all agents connected to the same project. When one agent modifies code, the file watcher updates the graph automatically, so other agents immediately see the changes.
Contributing
git clone https://github.com/bilal07karadeniz/Grafyx.git
cd Grafyx
pip install -e ".[dev]"
pytestTroubleshooting
Windows: Graph-sitter requires Linux. Use WSL and configure your MCP client to launch via wsl:
{
"mcpServers": {
"grafyx": {
"command": "wsl",
"args": ["-e", "bash", "-c", "source ~/your-venv/bin/activate && grafyx"]
}
}
}License
MIT -- see LICENSE for details.
Maintenance
Related MCP Servers
- Alicense-qualityDmaintenanceProvides AI assistants with a structured, token-efficient map of a codebase's symbols, dependencies, and relationships via MCP tools like overview, query, and impact analysis.Last updated8MIT
- AlicenseAqualityAmaintenanceAn MCP code-intelligence server for AI agents with pre-indexed AST cache, 62 MCP tools, and TOON-compressed output, enabling token-efficient code analysis and project health grading entirely locally.Last updated946MIT
- Alicense-qualityCmaintenanceProvides AI-powered architecture analysis and visualization of codebases, exposing 17 MCP tools for querying components, dependencies, and generating interactive diagrams.Last updatedMIT
- Alicense-qualityAmaintenanceProvides code intelligence for AI coding agents by indexing repositories into a hybrid knowledge graph, enabling agents to query dependencies, impact, and context through 28 MCP tools.Last updated2Apache 2.0
Related MCP Connectors
AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Give your AI agent a persistent map of your project's structure, dependencies, and bugs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bilal07karadeniz/Grafyx'
If you have feedback or need assistance with the MCP directory API, please join our Discord server