Servidor MCP de Greptile [COMPLETO]
Hoja de trucos del comando de ejecución rápida
✅ ESTADO DEL PROYECTO: TODAS LAS TAREAS COMPLETADAS (11/11)
Consulte PROJECT_COMPLETION.md para obtener un resumen del trabajo completado y USER_GUIDE.md para obtener instrucciones de uso.
Ambiente | Configuración e instalación | Comando Ejecutar |
Local (Python) |
|
|
Estibador |
|
|
Herrería |
|
(ver smithery.yaml) |
Complete
.env
usando.env.example
y configure suGREPTILE_API_KEY
yGITHUB_TOKEN
antes de ejecutar.
Para conocer los requisitos previos completos, el uso avanzado del agente, la integración y la resolución de problemas: consulte la
Una implementación de servidor MCP (Protocolo de contexto de modelo) que se integra con la API de Greptile para proporcionar capacidades de búsqueda y consulta de código a agentes de IA.
Características
El servidor proporciona cuatro herramientas Greptile esenciales que permiten a los agentes de IA interactuar con las bases de código:
index_repository
: Indexa un repositorio para búsqueda y consulta de código.Procesar un repositorio para que se pueda buscar
Actualizar los índices existentes cuando cambian los repositorios
Configurar las preferencias de notificación
query_repository
: consulta repositorios para obtener respuestas con referencias de código.Haga preguntas en lenguaje natural sobre el código base
Obtenga respuestas detalladas que hagan referencia a ubicaciones de códigos específicos
Compatibilidad con el historial de conversaciones con identificadores de sesión
search_repository
: busca repositorios de archivos relevantes sin generar una respuesta completa.Encuentre archivos relacionados con conceptos o características específicos
Obtenga coincidencias contextuales clasificadas por relevancia
Más rápido que las consultas completas cuando solo se necesitan ubicaciones de archivos
get_repository_info
: obtiene información sobre un repositorio indexado.Comprobar el estado y el progreso de la indexación
Verificar qué repositorios están disponibles para realizar consultas
Obtener metadatos sobre repositorios indexados
Despliegue de herrería
El servidor Greptile MCP admite la implementación mediante Smithery. El archivo de configuración smithery.yaml
se incluye en la raíz del proyecto.
Configuración de herrería
La configuración de Smithery se define en smithery.yaml
y admite las siguientes opciones:
Uso con herrería
Para implementar usando Smithery:
Instalar Smithery:
npm install -g smithery
Implementar el servidor:
smithery deploy
Configure su cliente Smithery con las claves API necesarias
Documentación adicional
Para obtener instrucciones de uso detalladas de los agentes de IA, consulte la Guía de uso de agentes .
Prerrequisitos
Python 3.12+
Clave API de Greptile (desde https://app.greptile.com/settings/api )
Token de acceso personal (PAT) de GitHub o GitLab con permisos
repo
(o lectura equivalente) para los repositorios que desea indexarDocker (recomendado para implementación)
Paquetes de Python necesarios
fastmcp
- Implementación del servidor MCPhttpx
- Cliente HTTP asíncronopython-dotenv
- Gestión de variables de entornouvicorn
- Servidor ASGI para transporte SSE
Instalación
Usando pip (para desarrollo o pruebas locales)
Clonar este repositorio:
git clone https://github.com/sosacrazy126/greptile-mcp.git cd greptile-mcpCrear un entorno virtual (recomendado):
python -m venv .venv source .venv/bin/activate # On Windows use `.venv\Scripts\activate`Instalar dependencias:
pip install -e .Cree un archivo
.env
basado en.env.example
:cp .env.example .envConfigure sus variables de entorno en el archivo
.env
:GREPTILE_API_KEY=your_api_key_here GITHUB_TOKEN=your_github_token_here
Uso de Docker (recomendado para la implementación)
Clonar el repositorio:
git clone https://github.com/sosacrazy126/greptile-mcp.git cd greptile-mcpCree un archivo
.env
basado en.env.example
y configure sus variables de entorno.Construya la imagen de Docker:
docker build -t greptile-mcp .
Ejecución del servidor
Usando pip
Transporte SSE (predeterminado)
Asegúrese de que TRANSPORT=sse
y PORT=8050
(o el puerto elegido) estén configurados en su archivo .env
.
El servidor escuchará en http://<HOST>:<PORT>/sse
.
Transporte de Studio
Establezca TRANSPORT=stdio
en su archivo .env
. Con stdio, el cliente MCP normalmente inicia el proceso del servidor MCP.
Usando Docker
Transporte SSE (predeterminado)
El servidor escuchará en http://localhost:8050/sse
(o la IP del host si no es localhost).
Transporte de Studio
Configure su cliente MCP para ejecutar el contenedor Docker con TRANSPORT=stdio
.
Integración con clientes MCP
Ejemplo de configuración de SSE
Agregue esto a la configuración de su cliente MCP (por ejemplo, mcp_config.json
):
Ejemplo de configuración de Python con Stdio
Asegúrese de que TRANSPORT=stdio
esté configurado en el entorno donde se ejecuta el comando:
Ejemplo de configuración de Docker con Stdio
Guía de uso detallada
Flujo de trabajo para el análisis de código base
Repositorios de índices que desea analizar utilizando
index_repository
Verifique el estado de indexación con
get_repository_info
para garantizar que el procesamiento esté completoConsulta los repositorios usando lenguaje natural con
query_repository
Encuentre archivos específicos relacionados con características o conceptos usando
search_repository
Gestión de sesiones para el contexto de conversación
Al interactuar con el servidor Greptile MCP a través de cualquier cliente (incluido Smithery), la gestión adecuada de la sesión es crucial para mantener el contexto de la conversación:
Generar un ID de sesión único al comienzo de una conversación
Reutilice el mismo ID de sesión para todas las consultas de seguimiento relacionadas
Crear un nuevo ID de sesión al iniciar una nueva conversación
Ejemplo de gestión de ID de sesión:
Importante para la integración de Smithery : Los agentes que se conectan a través de Smithery deben generar y mantener sus propios ID de sesión. El servidor MCP de Greptile no genera ID de sesión automáticamente. El ID de sesión debe formar parte del estado de conversación del agente.
Mejores prácticas
Rendimiento de indexación : Los repositorios pequeños indexan más rápido. Para repositorios mono grandes, considere indexar ramas o etiquetas específicas.
Optimización de consultas : Sea específico en sus consultas. Incluya términos técnicos relevantes para obtener mejores resultados.
Selección de repositorio : al consultar varios repositorios, enumérelos en orden de relevancia para obtener los mejores resultados.
Gestión de sesiones : utilice identificadores de sesión para preguntas de seguimiento a fin de mantener el contexto en todas las consultas.
Referencia de API
1. Repositorio de índices
Indexa un repositorio para que pueda buscarse en futuras consultas.
Parámetros:
remote
(cadena): el host del repositorio, ya sea "github" o "gitlab"repository
(cadena): El repositorio en formato propietario/repositorio (por ejemplo, "greptileai/greptile")branch
(cadena): La rama a indexar (por ejemplo, "principal")reload
(booleano, opcional): si se debe forzar el reprocesamiento de un repositorio previamente indexadonotify
(booleano, opcional): si se debe enviar una notificación por correo electrónico cuando se complete la indexación
Ejemplo:
Respuesta:
2. Repositorio de consultas
Consulta repositorios con lenguaje natural para obtener respuestas con referencias de código.
Parámetros:
query
(cadena): La consulta en lenguaje natural sobre el código baserepositories
(matriz): Lista de repositorios para consultar, cada uno con el formato:{ "remote": "github", "repository": "owner/repo", "branch": "main" }session_id
(cadena, opcional): ID de sesión para continuar una conversaciónstream
(booleano, opcional): si se debe transmitir la respuestagenius
(booleano, opcional): si se deben utilizar capacidades de consulta mejoradas
Ejemplo:
Respuesta:
3. Buscar en el repositorio
Busca repositorios para encontrar archivos relevantes sin generar una respuesta completa.
Parámetros:
query
(cadena): La consulta de búsqueda sobre el código baserepositories
(matriz): Lista de repositorios para buscarsession_id
(cadena, opcional): ID de sesión para continuar una conversacióngenius
(booleano, opcional): si se deben utilizar capacidades de búsqueda mejoradas
Ejemplo:
Respuesta:
4. Obtener información del repositorio
Obtiene información sobre un repositorio específico que ha sido indexado.
Parámetros:
remote
(cadena): el host del repositorio, ya sea "github" o "gitlab"repository
(cadena): El repositorio en formato propietario/repositoriobranch
(cadena): La rama que fue indexada
Ejemplo:
Respuesta:
Ejemplos de integración
1. Integración con Claude.ai a través de la API antrópica
2. Integración con un chatbot basado en LLM
3. Herramienta de consulta de código de línea de comandos
Solución de problemas
Problemas comunes
1. Fallos de autenticación
Síntoma : recibe el error 401 Unauthorized
o Repository not found with configured credentials
.
Soluciones :
Verifique que su clave API de Greptile sea válida y esté configurada correctamente en el archivo
.env
Comprueba si tu token de GitHub/GitLab ha expirado (normalmente expiran después de un período determinado)
Asegúrese de que su token de GitHub/GitLab tenga el alcance
repo
para acceder a los repositoriosPruebe su token de GitHub directamente con la API de GitHub para verificar que funciona
Prueba del token de GitHub :
2. Repositorio no encontrado
Síntoma : la API devuelve un error 404 o el mensaje "Repositorio no encontrado".
Soluciones :
Verifique que el repositorio exista y sea accesible con su token de GitHub/GitLab
Verifique nuevamente el formato del repositorio (debe ser
owner/repo
)Para repositorios privados, asegúrese de que su token tenga los permisos de acceso adecuados
Verifique que el nombre de la sucursal sea correcto
3. Problemas de conexión
Síntoma : No se puede conectar al servidor MCP.
Soluciones :
Comprueba si el servidor está en ejecución (
ps aux | grep src.main
)Verifique que el puerto no esté siendo utilizado por otra aplicación
Compruebe la configuración de red y la configuración del firewall
Pruebe un puerto diferente cambiando el valor
PORT
en su archivo.env
4. Problemas con Docker
Síntoma : el contenedor Docker no se inicia o no funciona correctamente.
Soluciones :
Comprobar los registros de Docker:
docker logs <container_id>
Verifique que el archivo
.env
esté montado correctamenteAsegúrese de que la asignación de puertos sea correcta en su comando
docker run
Compruebe si la configuración de red de Docker permite las conexiones necesarias
Registros y depuración
Para habilitar un registro más detallado, configure las siguientes variables de entorno:
Para solucionar problemas de interacciones específicas de MCP, examine los registros del servidor MCP:
Configuración avanzada
Variables de entorno
Variable | Descripción | Por defecto |
| Método de transporte (
o
) |
|
| Host al que vincularse para el transporte SSE |
|
| Puerto para transporte SSE |
|
| Su clave API de Greptile | (requerido) |
| Token de acceso personal de GitHub/GitLab | (requerido) |
| URL base de la API de Greptile |
|
| Habilitar el modo de depuración |
|
| Nivel de registro |
|
Puntos finales de API personalizados
Si necesita utilizar un punto final de API de Greptile personalizado (por ejemplo, para instalaciones empresariales), modifique la variable de entorno GREPTILE_BASE_URL
:
Ajuste del rendimiento
Para implementaciones de producción, considere estas optimizaciones de rendimiento:
Configuración del trabajador : al utilizar el transporte SSE con Uvicorn, configure la cantidad de trabajadores adecuada:
# For CPU-bound applications: workers = 1-2 × CPU cores uvicorn src.main:app --workers 4Configuración de tiempo de espera : ajuste los tiempos de espera para repositorios grandes:
# Add to .env GREPTILE_TIMEOUT=120.0 # Default is 60.0 secondsOptimización de la memoria : para implementaciones grandes, tenga en cuenta los límites de recursos del contenedor:
docker run --rm --env-file .env -p 8050:8050 --memory="1g" --cpus="1.0" greptile-mcp
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Bifurcar el repositorio
Crea tu rama de funciones (
git checkout -b feature/amazing-feature
)Confirme sus cambios (
git commit -m 'Add some amazing feature'
)Empujar a la rama (
git push origin feature/amazing-feature
)Abrir una solicitud de extracción
Configuración de desarrollo
Para el desarrollo, instale dependencias adicionales:
Ejecutar pruebas:
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
Desarrollado por ( https://github.com/sosacrazy126 )
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
greptile-mcp
Related MCP Servers
- Apache 2.0
- Apache 2.0
- MIT License