reference-mcp
The reference-mcp server helps AI agents deeply understand and navigate Python codebases by building a tree-sitter index and exposing structured tools for code exploration:
repo_overview— High-level summary of the repository: languages, layout, file/LOC/symbol counts, entry points, tests, config files, and frameworks.get_file_outline— View the symbol skeleton (classes, methods, functions, variables with line numbers) of a file or directory without reading full source bodies.find_symbol— Locate where a function, class, method, or variable is defined, with optional full source and "did you mean" suggestions.find_references— Find every usage/call site of a symbol across the repo with file:line context.trace_call_graph— Trace callers or callees of a function to N levels, returning an indented call tree with file:line references.get_type_hierarchy— Visualize a class's full type hierarchy: superclasses upward and subclasses/Protocol-ABC implementations downward.search_code— Search via exact text, regex, or natural-language semantic queries (e.g., "where is auth handled?"), with path glob filtering and pagination.get_dependencies— Show what a file imports (internal vs. external) and which files depend on it (blast radius).code_history— Explore git blame, recent commits, churn stats, and author history for a file or specific line range to understand why code exists.find_tests— Map a symbol to the tests that cover it, or a test file to the symbols it exercises.
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., "@reference-mcpwhat is this project about?"
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.
reference-mcp
An MCP server whose tools help an AI agent comprehend a codebase — get oriented, navigate by meaning rather than text, trace relationships, and understand why code is shaped the way it is.
It builds its own tree-sitter index of a Python project (no language servers required) and exposes a small set of consolidated, high-leverage tools designed around current agent tool-design best practices: human-readable returns, built-in token budgeting and pagination, and actionable errors.
Tools
Tool | What it answers |
| "What is this project?" — languages, layout, entry points, tests, configs. |
| "What's in this file?" — symbol skeleton without reading bodies. |
| "Where is X defined?" — locate a function/class/method/var, optionally with body. |
| "Where is X used?" — call sites and usages with context. |
| "Where is the code that …?" — lexical/regex search, or natural-language semantic search (optional). |
| "What does this import / what depends on it?" — forward and reverse deps. |
| "Why is this code here?" — git blame/log/churn for a symbol or region. |
| "What tests cover this?" — symbol ⇄ test mapping. |
| "What calls this / what does it call?" — callers/callees to N levels. |
| "What's the class tree?" — subclasses, superclasses, implementations. |
Related MCP server: Axon.MCP.Server
Quickstart
uv sync --extra dev
# Point the server at a codebase and run it over stdio:
REFERENCE_MCP_REPO=/path/to/your/project uv run reference-mcp
# Or inspect interactively:
npx @modelcontextprotocol/inspector uv run reference-mcpSemantic search (optional)
Lexical search works out of the box. To also enable natural-language search ("where is auth handled?"), install the local-embeddings extra — no API key, no network at query time once the model is cached:
uv sync --extra semanticThen call search_code with mode="semantic". It embeds each symbol
(name + signature + docstring) with fastembed
(ONNX, model BAAI/bge-small-en-v1.5 by default, override via
REFERENCE_MCP_EMBED_MODEL), caches the vectors in the index cache dir, and ranks
by cosine similarity. Without the extra, mode="semantic" returns install guidance
instead of failing.
Register with an MCP client
{
"mcpServers": {
"reference": {
"command": "uv",
"args": ["run", "reference-mcp"],
"env": { "REFERENCE_MCP_REPO": "/path/to/your/project" }
}
}
}Configuration
Env var | Default | Purpose |
| cwd | Absolute path to the codebase to analyze. |
|
| Where the SQLite index is stored (never inside your repo). |
|
| Soft per-response token cap. |
Design notes
Read-only. The server never edits your code; it only reads and indexes it.
Incremental index. Files are re-parsed only when their content hash changes.
Precision tradeoff. Reference/call-graph resolution is scope- and import-aware name matching, not full type inference. Accurate for most Python; a future LSP backend can slot in behind the same tool surface for dynamic-dispatch-heavy code. To curb false positives,
find_referencesignores matches inside strings/comments (tree-sitter span masking), andtrace_call_graphdrops anobj.method()call when its name matches several methods. The residual case it cannot resolve: anobj.method()call whose name matches exactly one project method of an unrelated type (e.g. adict.get()call when the project defines a singlegetmethod) — undecidable without type inference.
Development
uv run ruff check . # lint
uv run ruff format . # format
uv run mypy # type-check (src/)
uv run pytest # unit + integration tests
uv run python evals/run_evals.py # eval harness (must be 100%)CI runs all of the above on every push and PR (see .github/workflows/ci.yml).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server that analyzes codebases and generates contextual prompts, making it easier for AI assistants to understand and work with code repositories.Last updated18MIT
- Flicense-qualityFmaintenanceAn MCP server that transforms codebases into intelligent, queryable knowledge bases, enabling AI assistants to perform semantic search, explore architecture, and analyze code relationships.Last updated165
- Alicense-qualityBmaintenanceAn MCP server that gives AI agents structured code understanding and precise code intelligence via local indexing of AST, call graphs, and semantic search.Last updated964Apache 2.0
- Alicense-qualityDmaintenanceAn MCP server that enables AI agents to navigate and understand codebases through file descriptions, semantic search, and code recommendations without repeatedly scanning files.Last updatedMIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
A MCP server built for developers enabling Git based project management with project and personal…
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/mark-burg/reference-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server