Integrations
Provides enhanced query and search capabilities for code repositories when the 'genius' parameter is enabled, offering improved contextual understanding
Allows accessing and indexing GitHub repositories for code search and querying, supporting both public and private repositories with appropriate authentication
Enables indexing and searching GitLab repositories, providing code search capabilities and repository information retrieval with proper authentication
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) | python -m venv .venv && source .venv/bin/activate && pip install -e . | python -m src.main |
Estibador | docker build -t greptile-mcp . | docker run --rm --env-file .env -p 8050:8050 greptile-mcp |
Herrería | npm install -g smithery | smithery deploy (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 documentación completa en docs/README.md
y los detalles del agente en AGENT_USAGE.md .
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 indexar - Docker (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:Copy
- Crear un entorno virtual (recomendado):Copy
- Instalar dependencias:Copy
- Cree un archivo
.env
basado en.env.example
:Copy - Configure sus variables de entorno en el archivo
.env
:Copy
Uso de Docker (recomendado para la implementación)
- Clonar el repositorio:Copy
- Cree un archivo
.env
basado en.env.example
y configure sus variables de entorno. - Construya la imagen de Docker:Copy
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é completo - Consulta 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:Copysession_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 repositorios - Pruebe 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 correctamente - Asegú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 |
---|---|---|
TRANSPORT | Método de transporte ( sse o stdio ) | sse |
HOST | Host al que vincularse para el transporte SSE | 0.0.0.0 |
PORT | Puerto para transporte SSE | 8050 |
GREPTILE_API_KEY | Su clave API de Greptile | (requerido) |
GITHUB_TOKEN | Token de acceso personal de GitHub/GitLab | (requerido) |
GREPTILE_BASE_URL | URL base de la API de Greptile | https://api.greptile.com/v2 |
DEBUG | Habilitar el modo de depuración | false |
LOG_LEVEL | Nivel de registro | info |
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:Copy
- Configuración de tiempo de espera : ajuste los tiempos de espera para repositorios grandes:Copy
- Optimización de la memoria : para implementaciones grandes, tenga en cuenta los límites de recursos del contenedor:Copy
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 )
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
greptile-mcp
Related MCP Servers
- PythonMIT License
- GoMIT License
- TypeScriptApache 2.0
- TypeScriptMIT License