hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides tools for Git repository operations including browsing directory structures, reading files, searching code, comparing branches, viewing commit history, and checking local changes.
Enables browsing and analyzing GitHub repositories, including retrieving file contents, searching code, and examining commit history across branches.
Integrates with GitHub Actions for CI/CD workflows, specifically for automating npm package publishing when changes are pushed to the master branch.
Navegador de repositorios Git de MCP (Node.js)
Una implementación de Node.js de un navegador de repositorio Git utilizando el Protocolo de Contexto de Modelo (MCP).
Instalación
NPM (Recomendado)
Instalación manual
Configuración
Agregue esto a su archivo de configuración de MCP:
Para la instalación manual, utilice:
Características
El servidor proporciona las siguientes herramientas:
Operaciones básicas del repositorio
git_directory_structure
: Devuelve una representación en forma de árbol de la estructura de directorios de un repositorio- Entrada: URL del repositorio
- Salida: Representación en árbol ASCII de la estructura del repositorio
git_read_files
: lee y devuelve el contenido de los archivos especificados en un repositorio- Entrada: URL del repositorio y lista de rutas de archivos
- Salida: Diccionario que asigna rutas de archivos a sus contenidos
git_search_code
: busca patrones en el código del repositorio- Entrada: URL del repositorio, patrón de búsqueda, patrones de archivo opcionales, distinción entre mayúsculas y minúsculas y líneas de contexto
- Salida: JSON con resultados de búsqueda que incluyen líneas coincidentes y contexto
Operaciones de sucursal
git_branch_diff
: Compara dos ramas y muestra los archivos modificados entre ellas- Entrada: URL del repositorio, rama de origen, rama de destino y bandera show_patch opcional
- Salida: JSON con recuento de confirmaciones y resumen de diferencias
Operaciones de confirmación
git_commit_history
: obtiene el historial de confirmaciones de una rama con filtrado opcional- Entrada: URL del repositorio, nombre de la rama, recuento máximo, filtro de autor, fecha de inicio, fecha de finalización y mensaje grep
- Salida: JSON con detalles de confirmación
git_commits_details
: Obtenga información detallada sobre las confirmaciones, incluidos mensajes completos y diferencias- Entrada: URL del repositorio, nombre de la rama, recuento máximo, indicador include_diff, filtro de autor, fecha de inicio, fecha de finalización y mensaje grep
- Salida: JSON con información detallada de confirmación
git_local_changes
: Obtener cambios no confirmados en el directorio de trabajo- Entrada: Ruta del repositorio local
- Salida: JSON con información de estado y diferencias
Estructura del proyecto
Detalles de implementación
- Utiliza módulos nativos de Node.js (crypto, path, os) para la funcionalidad principal
- Aprovecha fs-extra para mejorar las operaciones con archivos
- Utiliza simple-git para operaciones del repositorio Git
- Implementa un manejo limpio de errores y limpieza de recursos.
- Crea directorios temporales deterministas basados en hashes de URL del repositorio
- Reutiliza repositorios clonados cuando sea posible para mayor eficiencia
- Estructura de código modular para una mejor mantenibilidad
Requisitos
- Node.js 14.x o superior
- Git instalado en el sistema
Uso
Si se instala globalmente a través de npm:
Si se instala manualmente:
El servidor se ejecuta en stdio, lo que lo hace compatible con los clientes MCP.
CI/CD
Este proyecto utiliza GitHub Actions para la integración y la implementación continuas:
Publicación automática de NPM
El repositorio está configurado con un flujo de trabajo de GitHub Actions que publica automáticamente el paquete en npm cuando se envían cambios a la rama maestra.
Configuración de NPM_AUTOMATION_TOKEN
Para habilitar la publicación automática, debes agregar un token de automatización npm como un secreto de GitHub (esto funciona incluso con cuentas que tienen 2FA habilitado):
- Generar un token de automatización npm:
- Inicie sesión en su cuenta npm en npmjs.com
- Ve a la configuración de tu perfil
- Seleccione "Tokens de acceso"
- Haga clic en "Generar nuevo token"
- Seleccione el tipo de token "Automatización"
- Establezca los permisos adecuados (se requiere "Leer y escribir" para los paquetes)
- Copiar el token generado
- Añade el token a tu repositorio de GitHub:
- Vaya a su repositorio de GitHub
- Vaya a "Configuración" > "Secretos y variables" > "Acciones".
- Haga clic en "Nuevo secreto del repositorio".
- Nombre:
NPM_AUTOMATION_TOKEN
- Valor: Pegue su token de automatización npm
- Haga clic en "Agregar secreto"
Una vez configurado, cualquier envío a la rama maestra activará el flujo de trabajo para publicar el paquete en npm.
Licencia
Licencia MIT: consulte el archivo LICENCIA para obtener más detalles.
Campo de golf
This server cannot be installed
Una implementación de Node.js que permite explorar repositorios de Git a través del Protocolo de Contexto de Modelo, proporcionando funciones como mostrar estructuras de directorios, leer archivos, buscar código, comparar ramas y ver el historial de confirmaciones.