RepoPilot MCP Server
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., "@RepoPilot MCP Serverfind all references to 'divide' in the calculator repo"
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.
RepoPilot
RepoPilot is a verifiable code agent for Python repositories. It turns an issue into an evidence-backed plan, optionally asks an OpenAI-compatible model for a unified diff, and runs the reviewed patch in an isolated workspace. Every retrieval, tool call, patch, and test result is retained as a compact audit trace.
Why this is not another chat-with-your-code demo
AST-aware indexing: extracts classes, functions, methods, signatures, imports, and call edges instead of splitting source into arbitrary chunks.
Hybrid retrieval: combines issue-token relevance with symbol names, file paths, and call-graph evidence.
Bounded workflow: retrieval, planning, human review, patch validation, isolated execution, and test verification have explicit states.
Standard tools: repository map, symbol search, file reads, and reference lookup are exposed through the official MCP Python SDK.
Guarded execution: patch size, paths, file types, and number of changed files are validated before a copy of the repository is modified.
Objective evaluation: a JSONL benchmark runner reports Recall@K and mean reciprocal rank for related-file retrieval.
Related MCP server: code-intelligence-mcp
Architecture
flowchart LR
UI[Web console] --> API[FastAPI]
API --> IDX[Python AST indexer]
IDX --> STORE[Persistent JSON indexes]
API --> RET[Hybrid retriever]
RET --> PLAN[Bounded planner]
PLAN --> LLM[OpenAI-compatible LLM]
PLAN --> MCP[MCP code tools]
LLM --> REVIEW[Human patch review]
REVIEW --> POLICY[Patch policy]
POLICY --> WS[Isolated workspace]
WS --> TEST[Fixed pytest runner]
TEST --> TRACE[Auditable task trace]The implementation deliberately separates read-only code tools from patch execution. An MCP client can inspect code without receiving a general-purpose shell tool.
Quick start
cd D:\ai-projects\repopilot
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
Copy-Item .env.example .env
.\.venv\Scripts\python.exe -m repopilotOpen http://127.0.0.1:8765.
The repository includes a deliberately broken demo at
examples/buggy_calculator. Index that directory, then use this issue:
divide should raise a clear ValueError when right is zeroIf no model is running, create the plan and paste this reviewed patch into the execution panel:
diff --git a/calculator.py b/calculator.py
--- a/calculator.py
+++ b/calculator.py
@@ -1,2 +1,4 @@
def divide(left: float, right: float) -> float:
+ if right == 0:
+ raise ValueError("right must not be zero")
return left / rightThe patch is applied only to workspaces/<task-id>; the indexed source
repository is not modified.
Model configuration
RepoPilot uses the OpenAI-compatible /chat/completions API. The defaults target
an Ollama installation:
REPOPILOT_LLM_BASE_URL=http://127.0.0.1:11434/v1
REPOPILOT_LLM_MODEL=qwen2.5-coder:7b
REPOPILOT_LLM_API_KEY=ollamaPlanning has a deterministic fallback when the model is offline. Patch generation requires a configured model because silently inventing a patch would make the demo impossible to trust.
MCP server
Start the stdio MCP server:
.\.venv\Scripts\repopilot-mcp.exeTools:
repository_mapsearch_symbolread_filefind_references
Each tool requires the ID of a previously indexed repository.
Evaluation
After indexing the demo repository, copy its ID from the UI or
GET /api/repositories and run:
.\.venv\Scripts\repopilot-eval.exe <repository-id> examples\benchmark.jsonl --k 5Benchmark cases use one JSON object per line:
{"id":"case-1","issue":"describe the failure","expected_files":["module.py"]}The report includes per-case retrieved files, Recall@K, reciprocal rank, mean Recall@K, and MRR. This makes retrieval changes measurable and suitable for ablation experiments.
API overview
Method | Endpoint | Purpose |
|
| Service health |
|
| Index a local Python repository |
|
| List indexed repositories |
|
| Search symbols |
|
| Analyze an issue and create a plan |
|
| Generate a policy-checked diff |
|
| Execute a reviewed patch and tests |
|
| Read the plan, trace, diff, and test result |
Interactive API documentation is available at http://127.0.0.1:8765/docs.
Safety model
The local executor is intentionally constrained:
source repositories are copied before modification;
patch paths must remain inside the workspace;
at most five text/source files and 100 KB may be changed;
test execution is fixed to
python -m pytest -q;subprocesses have a timeout and capped captured output;
network proxy variables and unrelated environment variables are not passed;
task events store concise action summaries, not private chain-of-thought.
The local executor is a development safety boundary, not a hostile-code sandbox. Run untrusted repositories only inside a disposable VM or container. See SECURITY.md.
Development
.\.venv\Scripts\python.exe -m pytest --cov=repopilot --cov-report=term-missingThe Git history is organized as reviewable implementation milestones:
service scaffold;
AST indexing and retrieval;
bounded planning and MCP tools;
guarded patch execution;
evaluation, UI, deployment, and documentation.
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-qualityBmaintenanceAgent-safe code retrieval MCP server that indexes repositories and provides semantic search, file navigation, call graph analysis, and bounded file reading tools for coding agents.Last updated3,814,6963MIT
- Flicense-qualityBmaintenanceIndexes Python codebases using AST and BM25, providing 8 MCP tools for code exploration and search.Last updated
- Flicense-qualityDmaintenanceProvides code intelligence by indexing source code into SQLite and offering MCP tools for symbol search, flow tracing, and context retrieval to assist with code navigation and understanding.Last updated
- AlicenseAqualityAmaintenanceEnables AI coding agents to efficiently explore codebases by providing structural outlines, module digests, symbol bodies, and AST-aware grep via MCP.Last updated453MIT
Related MCP Connectors
Revternal MCP — wraps the Revternal Developer Intelligence API
PyPI MCP — wraps the Python Package Index (PyPI) JSON API (free, no auth).
An MCP server that gives your AI access to the source code and docs of all public github repos
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/ziiyue-eee/RepoPilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server