Git Repo Browser MCP

by bsreeram08
Verified

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)

npm install -g git-commands-mcp

Instalación manual

git clone https://github.com/bsreeram08/git-commands-mcp.git cd git-commands-mcp npm install

Configuración

Agregue esto a su archivo de configuración de MCP:

{ "mcpServers": { "git-commands-mcp": { "command": "git-commands-mcp" } } }

Para la instalación manual, utilice:

{ "mcpServers": { "git-commands-mcp": { "command": "node", "args": ["/path/to/git-commands-mcp/src/index.js"] } } }

Características

El servidor proporciona las siguientes herramientas:

Operaciones básicas del repositorio

  1. 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
  2. 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
  3. 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

  1. 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

  1. 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
  2. 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
  3. 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

git-commands-mcp/ ├── src/ │ ├── index.js # Entry point │ ├── server.js # Main server implementation │ ├── handlers/ # Tool handlers │ │ └── index.js # Tool implementation functions │ └── utils/ # Utility functions │ └── git.js # Git-related helper functions ├── package.json └── readme.md

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:

git-commands-mcp

Si se instala manualmente:

node src/index.js

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):

  1. 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
  2. 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

-
security - not tested
A
license - permissive license
-
quality - not tested

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.

  1. Installation
    1. NPM (Recommended)
    2. Manual Installation
  2. Configuration
    1. Features
      1. Basic Repository Operations
      2. Branch Operations
      3. Commit Operations
    2. Project Structure
      1. Implementation Details
        1. Requirements
          1. Usage
            1. CI/CD
              1. Automatic NPM Publishing
            2. License
              1. Links
                ID: tfrxgx5ocf