codepilot
CodePilot-Agent
Introduce una URL de repositorio de GitHub y obtén tres cosas: un informe de análisis de arquitectura trazable a archivos concretos, un Q&A de código en un solo turno para ese repositorio y una revisión de código con comprobaciones de tres categorías: estructura, manejo de errores y seguridad. La capacidad de análisis de repositorios también se expone como servidor MCP, de modo que clientes como Claude Code o Cursor puedan invocarla directamente.
Qué la diferencia de herramientas similares
Cada resultado del informe debe aterrizar en una ruta de archivo, y eso lo comprueba el propio programa, no restricciones del prompt: las rutas citadas deben existir de verdad y los números de línea deben estar dentro de las líneas reales del archivo. Las conclusiones que no superan la validación se descartan y se anotan en la sección de carencias del informe. Así nunca aparecen frases del estilo «este proyecto usa una arquitectura en capas y el código es claro», que valen para cualquier repositorio.
Related MCP server: Gitingest-MCP
Arquitectura
仓库地址 → clone 与语言识别 → 静态解析层(tree-sitter)
↓
结构骨架:符号表 · 依赖图 · 模块聚类 · 入口点
↓
┌─────────────────────┼─────────────────────┐
↓ ↓ ↓
Planner 定深挖范围 Reviewer 三类检查 切块与向量索引
↓ ↓ ↓
模块子 Agent 并行分析 评审发现 单轮代码问答
↓
汇总 + 引用校验 → 架构报告Lo determinante se hace con métodos deterministas: el árbol de archivos, el grafo de dependencias de import, la agrupación de módulos, los puntos de entrada y la identificación del stack tecnológico salen todos del análisis estático, sin LLM. Solo lo que hay que decidir crenos al agente: el Planner elige qué módulos excavar en profundidad, los subagentes de módulo leen código con herramientas, y a los candidatos del Reviewer los localiza el AST y después los decide la modelo.
El RAG solo sirve para el pipeline de pregunta y respuesta. Las preguntas de arquitectura (cuántas capas hay, quién depende de quién, dónde está la entrada) son preguntas de grafos; la similitud por embeddings no te las responde.
Inicio rápido
Con Docker (recomendado)
cp .env.example .env
# 编辑 .env,至少填 DEEPSEEK_API_KEY
docker compose up --buildAbre http://localhost.
Los dos puertos están unidos solo a 127.0.0.1: el backend no tiene capa de deducción (una decisión deliberada para un solo usuario local), y puede clonar repositorios arbitrarios y consumir presupuesto de LLM. Para acceder puedes cambiaré máquina, tendrás que añadir autenticación tú mismo; no te limites a cambiar a 0.0.0.0.
La caché del índice está en el volumen con nombre codepilot-data, que permanece al reiniciar el contenedor. Un segundo análisis del mismo repositorio encontrará la caché y se saltará la vectorización.
Desarrollo local
# 后端
pip install -e ".[dev]"
python -m uvicorn backend.main:get_app --factory --port 8000
# 前端(另开一个终端)
cd frontend && npm install && npm run devEl frontend está en http://localhost:5173 y el proxy de Vite envía /api al puerto 8000.
Configuración
Copia .env.example como .env. Solo hay una clave obligatoria:
Variable | Descripción |
| La clave API del LLM. El nombre de la variable sigue DeepSeek, pero basta con que el endpoint sea compatible con el protocolo de OpenAI. |
Los ajustes más habituales:
Variable | Valor por defecto | Descripción |
|
| Dowlet compatible con OpenAI |
| — | Perfil de ramificación (alta frecuencia, menos criterio): análisis de módulos. |
| — | Perfil de agregación (baja frecuencia, más criterio): Planner, juicios de revisión y redacción del informe. |
|
| En |
|
| Peticiones LLM simultáneamente. Pasa al pasar por un gateway intermedio, una concurrencia alta no dispara timeouts aguas arriba. |
|
| Límite de admisión. Los projetos TS tienen por cambio naturalillimientos más archivos que un proyecto Python del mismo tamaño; quizá haya que subirlo. |
.env no está en el repositorio ni en la imagen: .dockerignore lo descarta y compose lo inyecta en tiempo de ejecución con env_file.
docker compose configimprime las claves en texto plano. Al resolver la configuración,e composeexpande los valores deenv_file, así que si la salida de ese comando contiene claves reales: no lo pegues en issues, logs ni chats cuando revises. de un problema. Si quieres ver la estructura sin exponer los valores, quita esa variable sección de entorno antes de mirarla.
MCP server
No está en el contenedor (usa transporte stdio y el cliente lo lanza como subproceso). La configuración y la lista de herramientas están en backend/mcp_server/README.md.
Configuración mínima (el .mcp.json de Claude Code):
{
"mcpServers": {
"codepilot": {
"command": "python",
"args": ["-m", "backend.mcp_server.server"],
"cwd": "/绝对路径/CodePilot-Agent"
}
}
}La herramienta solo lee datos locales de repositorios ya alizados, así que envía un análisis primero desde la interfaz o desde la API.
Desarrollo
python -m pytest # 后端测试
python -m mypy backend # 类型检查
cd frontend && npm test # 前端测试
cd frontend && npm run build # 前端构建(含类型检查)Límites conocidos
Son decisiones deliberadas, no tareas pendientes.
El análisis simbólico solo soporta Python y TypeScript. En el resto de lenguajes cuentan en el árbol de archivos y las estadísticas de tamaño, pero no entran en la tabla de símbolos, no generan grafo de dependencias y no se trocen. La sección de carencias del informe los lista.
find_references es una búsqueda diterelens cercada por el grafo de dependencias, no resolución de referencias. La capa de parseo no establece los sitios de llamada; primero localiza el archivo de definición con la tabla de símbolos y después busca el texto en los archivos que la importan. Es mucho más preciso que un grep en todo el repositorio, pero también coinciden variables locales con el mismo nombre within. La tool devuelve esa nota con la respuesta.
El «código muerto» no se no se no se hace no publica como hallazgo. El criterio a nivel de archivo (grado cero de entrada y sin ser punto de entrada) da una tasa de falsos positivos casi del 100 % en repositorios baseline: los demandas de pruebas, configuración y las entrada de herramientas están fuera. Para hacerlo de verdadeta falta un análisis de referencias simbólico. Las revisiones de la categoría estructura ofrecen un recuento, pero no una lista itemizada.
El Q&A es de una sola turno. No conserva contexto ni reescribe consultas.
No hay capa de autenticación. Tanto la API del backend como el MCP server son para un solo usuario en local.
El estado de las tareas de análisis está en la memoria del proceso. Al reiniciar el servicio se pierden los incompletos; la caché de los indexados terminados sigue, y al reenviar el mismo repositorio se obtiene una respuesta en segundos. Es también la razón por la que el backend fija un solo worker.
Licencia
Sin suvisoniar.
This server cannot be deployed
Maintenance
Related MCP Connectors
Ask any GitHub repository a question. Get source-backed answers.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Search indexed code, trace dependencies, assess change impact, and recall repository memory.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to extract and inspect GitHub repository information, including repository summaries, directory structure, and file contents.-
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to quickly extract information about GitHub repositories, including repository summaries, project directory structures, and file contents.-
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to quickly extract information about GitHub repositories, including repository summaries, project directory structures, and file contents.-
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to quickly extract GitHub repository information, including summaries, project directory structures, and file contents.-