repo-context
The server provides a single tool, explore_repository(query, repo_root?, max_turns?, citation?), for read-only exploration of a code repository to gather evidence for coding questions.
Parameters:
query(required): A natural language question or search intent (e.g., "Find the request validation logic").repo_root(optional): Path to the target repository root; defaults to the current directory if not provided.max_turns(optional): Limits the number of model/tool turns to control latency and cost.citation(optional): When enabled, output is restricted to controller-validatedpath:start-endfile/line citations (orNO_CITATIONS_FOUND), suppressing raw prose.
Key behaviors:
Internally uses
read_file,repo_glob, andrepo_grepto gather information — all operations are read-only.Executes independent local tool calls concurrently within the same turn.
For exact path or uniquely defined symbol queries, can resolve deterministically without hitting a model endpoint.
Uses an OpenAI-compatible chat-completion loop backed by a FastContext-style model endpoint for more complex queries.
Integrates with OpenAI-compatible chat completion APIs to enable repository exploration through natural language queries, providing read-only tools like file reading, glob, and grep.
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-contextFind the request validation logic in the repository"
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-context
Read-only repository context explorer for coding agents.
The canonical architecture is a local CLI-first exploration core that talks to an OpenAI-compatible FastContext-style model endpoint. MCP is an adapter around the same core, not the primary abstraction.
Current Status
This repository has the initial Python 3.13+ implementation for spec 001:
CLI, shared exploration core, read-only repository tools, OpenAI-compatible
chat-completions client, optional trajectory logging, and a thin MCP adapter.
It also includes spec 002 hardening for deterministic controller-owned
finalization and citation-mode rendering, plus spec 003 latency controls for
bounded endpoint prompt growth, and spec 004 same-turn parallel local tool
execution. Spec 005 adds a deterministic exact path/symbol fast path for
trivial evidence lookups. Spec 006 fixes configuration ownership to
project-root config.yaml plus .env/environment overrides. Spec 007 adds
raw source snippets for validated, merged citation ranges.
Primary planning artifacts:
Related MCP server: code_nav MCP
FastContext Alignment
This project intentionally follows Microsoft FastContext's explorer shape:
Delegated repository exploration: CLI/MCP call a focused explorer core that returns evidence for a downstream coding agent.
Read-only tools: the only model-callable repository tools are
read_file,repo_glob, andrepo_grep, corresponding to FastContext'sRead,Glob, andGrep.Same-turn parallel tool calling: independent local tool calls from one model message execute concurrently, while model endpoint requests remain serial.
Compact evidence: citation mode renders controller-validated
path:start-endlines, with the model prompted toward a<final_answer>block.
Primary references: Microsoft FastContext README, FastContext model card, and FastContext paper.
Usage
Use the CLI first for local debugging, scripts, CI checks, and one-off questions. It has the smallest moving parts and exposes the exact core result.
Use MCP when an MCP-capable editor or agent should call repository exploration as a tool during its workflow. MCP delegates to the same core as the CLI.
Configure
The default config lives in the repo-context project root:
cp config.yaml.example config.yamlThe inspected repository's config files are not loaded implicitly. This keeps the explorer's operator config independent of whatever target folder is being read.
Relative paths in config.yaml, including explorer.traj_dir, resolve from
the repo-context project root. Environment path overrides are used as
provided.
Use project-root .env or process environment variables for local overrides,
CI, or secrets:
cp .env.example .envConfigure at least:
FASTCONTEXT_BASE_URL=http://localhost:8000/v1
FASTCONTEXT_MODEL=your-model-nameEndpoint requests use a 120 second default timeout. The harness also caps
model-observation payloads, model-requested read spans, completion tokens, and
temperature to reduce latency variance. Independent same-turn local tool calls
execute concurrently with a default worker cap of 4; model endpoint requests
remain serial.
Exact path or uniquely defined symbol queries can complete locally without an endpoint when the controller can validate the citation deterministically.
Configuration precedence:
defaults < project-root config.yaml < project-root .env < process environment < CLI overridesCLI
Text output:
uv run repo-context explore \
--query "Find the request validation logic" \
--repo . \
--max-turns 6 \
--citationIn citation mode, repo-context validates and normalizes citations in the
controller. Text output is only repository-relative path:start-end labels, or
NO_CITATIONS_FOUND; model prose is not emitted. The model is prompted to use a
FastContext-style <final_answer> block, but the public text output is rendered
from controller-validated citations.
JSON output:
uv run repo-context explore \
--query "Find the request validation logic" \
--repo . \
--format jsonMCP
Install optional MCP dependencies:
uv sync --extra mcpDevelopment server command:
uv run repo-context mcp \
--transport stdioTool: explore_repository(query, repo_root?, max_turns?, citation?)
Generic MCP client config shape:
{
"mcpServers": {
"repo-context": {
"command": "uv",
"args": [
"run",
"--project",
"/path/to/repo-context",
"--extra",
"mcp",
"repo-context",
"mcp",
"--transport",
"stdio"
],
"env": {
"FASTCONTEXT_BASE_URL": "http://localhost:8000/v1",
"FASTCONTEXT_MODEL": "your-model-name"
}
}
}
}Validate
uv run pytest
uv run ruff check .
uv run mypyEndpoint-backed e2e tests are opt-in and use this repository as the target repo:
REPO_CONTEXT_RUN_E2E=1 \
FASTCONTEXT_BASE_URL=http://localhost:8000/v1 \
FASTCONTEXT_MODEL=your-model-name \
uv run pytest tests/e2eTo print per-prompt timing for the current-repo multi-prompt e2e:
REPO_CONTEXT_RUN_E2E=1 \
FASTCONTEXT_BASE_URL=http://localhost:8000/v1 \
FASTCONTEXT_MODEL=your-model-name \
uv run pytest tests/e2e/test_current_repo_multi_prompt_timing.py -sScope
In scope:
Local, read-only repository exploration.
Root-scoped
read_file,repo_glob, andrepo_greptools.OpenAI-compatible chat completion loop with bounded tool observations.
Same-turn concurrent execution for independent local tool calls.
CLI output with file paths and line-range citations.
MCP adapter that delegates to the CLI/core implementation.
Out of scope for the MVP:
Repository mutation.
Vector database ownership or embedding/model serving.
MCP-first
context_search,context_pack, andcontext_gettools.OKF bundle output.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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/zyf0717/repo-context'
If you have feedback or need assistance with the MCP directory API, please join our Discord server