Repo Interrogator
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., "@Repo Interrogatorsearch for 'BM25' in the codebase"
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.
Repo Interrogator
Repo Interrogator is a local-first, deterministic MCP server that helps AI tools inspect one code repository safely.
It is for repository interrogation, not code modification.
What it does:
indexes files inside one
repo_rootruns deterministic BM25 search
outlines code structure via pluggable language adapters
builds context bundles with citations
writes sanitized audit logs
What it does not do:
no LLM calls in v1
no code writes or patching
no multi-repo routing
no HTTP/SSE transport in v1
Supported Environments
Python:
>=3.11Tested in this project: Linux and WSL paths, with explicit Windows path normalization tests
Expected to run on: Linux, macOS, Windows (with Python 3.11+)
Related MCP server: SRC (Structured Repo Context)
Quick Start
Clone this repository and enter it:
git clone https://github.com/taggedzi/Repo-Interrogator
cd repomapInstall (end-user style):
python -m pip install .This installs the console command repo-mcp.
Run against a local repository:
repo-mcp --repo-root /absolute/path/to/target/repoThe server uses STDIO. It waits for newline-delimited JSON requests and writes newline-delimited JSON responses.
Verify it responds:
printf '%s\n' \
'{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}' \
'{"id":2,"jsonrpc":"2.0","method":"tools/call","params":{"name":"repo.status","arguments":{}}}' \
| repo-mcp --repo-root /absolute/path/to/target/repoYou should get two JSON-RPC 2.0 response lines (the notification produces no output):
Line 1:
initializeresult —{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05",...}}Line 2: tool result —
{"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":"{\"index_status\":...}"}]}}
Developer Quick Start
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .
python -m pip install ruff mypy pytest buildRun checks:
python -m ruff format .
python -m ruff check .
python -m mypy src
python -m pytest -qTool Surface (Current)
repo.statusrepo.list_filesrepo.open_filerepo.outlinerepo.searchrepo.referencesrepo.find_definitionrepo.build_context_bundlerepo.refresh_indexrepo.audit_log
Optional Semantic Search
Install the semantic extra (pip install repo-interrogator[semantic]) to
enable mode="semantic"/"hybrid" on repo.search and retrieval_mode on
repo.build_context_bundle. The core package has zero runtime dependencies
and is unaffected when this extra isn't installed. See ADR-0018 and
docs/USAGE.md for details.
Language Adapter Support
repo.outline currently supports these adapters:
Python:
python(AST-based)TypeScript/JavaScript:
ts_js_lexical(lexical)Java:
java_lexical(lexical)Go:
go_lexical(lexical)Rust:
rust_lexical(lexical)C++:
cpp_lexical(lexical)C#:
csharp_lexical(lexical)Fallback:
lexical(empty structural outline for unsupported files)
Important limits:
Non-Python adapters are lexical. They are deterministic and fast, but conservative.
Macro/generated code and advanced language features can be partially represented.
Search, references, and context bundle coverage depend on indexed extensions/excludes.
Start from
examples/repo_mcp.tomlfor stack-aware include/exclude defaults and override guidance.
Documentation
Installation:
docs/INSTALL.mdUsage and request/response examples:
docs/USAGE.mdConfiguration and limits:
docs/CONFIG.mdAI client integration (MCP over STDIO):
docs/AI_INTEGRATION.mdTroubleshooting:
docs/TROUBLESHOOTING.mdIssue labels and triage workflow:
docs/TRIAGE.mdSecurity policy and vulnerability reporting:
SECURITY.mdSecurity model and blocked behavior:
docs/SECURITY.mdRelease process:
docs/release.md
Docs Verification Checklist
Run these commands to validate docs examples against the current codebase:
python -m ruff format .
python -m ruff check .
python -m mypy src
python -m pytest -q
# quick server smoke
printf '%s\n' \
'{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"id":2,"jsonrpc":"2.0","method":"tools/call","params":{"name":"repo.status","arguments":{}}}' \
| python -m repo_mcp.server --repo-root .Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/taggedzi/Repo-Interrogator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server