remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Provides access to GitHub Enterprise and GitHub.com repositories, enabling repository management, branch listing, file content retrieval, and issue/PR handling through the GitHub API.
Offers tools for listing, viewing, and triggering GitHub Actions workflows, with capabilities for managing workflow runs and filtering by branch or status.
Servidor MCP de GitHub Enterprise
Un servidor MCP (Protocolo de Contexto de Modelo) para la integración con la API de GitHub Enterprise. Este servidor proporciona una interfaz MCP para acceder fácilmente a la información del repositorio, incidencias, solicitudes de registro y más desde GitHub Enterprise en Cursor.
Compatibilidad
Este proyecto está diseñado principalmente para entornos de GitHub Enterprise Server, pero también funciona con:
- GitHub.com
- Nube empresarial de GitHub
Nota : Algunas funciones específicas de la empresa (como la información de licencia y las estadísticas empresariales) no funcionarán con GitHub.com o GitHub Enterprise Cloud.
Características principales
- Recuperar la lista de repositorios de las instancias de GitHub Enterprise
- Obtenga información detallada del repositorio
- Lista de ramas del repositorio
- Ver el contenido de archivos y directorios
- Gestionar problemas y solicitudes de extracción
- Gestión de repositorios (crear, actualizar, eliminar)
- Gestión de flujos de trabajo de GitHub Actions
- Gestión de usuarios (enumerar, crear, actualizar, eliminar, suspender/reactivar usuarios)
- Acceda a las estadísticas empresariales
- Manejo de errores mejorado y formato de respuesta fácil de usar
Empezando
Prerrequisitos
- Node.js 18 o superior
- Acceso a una instancia de GitHub Enterprise
- Token de acceso personal (PAT)
Instalación y configuración de Docker
Opción 1: Ejecutar con Docker
- Construya la imagen de Docker:Copy
- Ejecute el contenedor Docker con variables de entorno:Copy
Nota : El Dockerfile está configurado para ejecutarse con
--transport http
de forma predeterminada. Si necesita cambiar esto, puede anular el comando:
Opción 2: Usar Docker Compose
- Cree un archivo
.env
en la raíz del proyecto con las variables de entorno requeridas:Copy - Inicie el contenedor con Docker Compose:Copy
- Revisar los registros:Copy
- Detener el contenedor:Copy
Instalación y configuración
Desarrollo local (utilizando el modo concurrente)
Este método se recomienda para el desarrollo activo con recompilación automática y reinicios del servidor:
- Clonar el repositorio e instalar los paquetes necesarios:Copy
- Ejecute el servidor de desarrollo:Esto hará lo siguiente:Copy
- Compilar código TypeScript automáticamente cuando cambian los archivos
- Reiniciar el servidor cuando se actualicen los archivos compilados
- Ejecute el servidor en modo HTTP para conexiones basadas en URL
- Conéctese a Cursor usando el modo URL como se describe a continuación
Instalación y configuración para producción
Opción 1: Usar el modo URL (recomendado para desarrollo local)
Este método es el más estable y recomendado para desarrollo o pruebas locales:
- Clonar el repositorio e instalar los paquetes necesarios:Copy
- Construir el proyecto:Copy
- Ejecutar el servidor:Copy
- Conectarse al Cursor usando el modo URL:
- Agregue lo siguiente al archivo
.cursor/mcp.json
de su Cursor:
Copy - Agregue lo siguiente al archivo
Opción 2: Instalar como comando global (enlace npm)
Este método es útil para el desarrollo local:
Opción 3: Usar npx (cuando se publica el paquete)
Si el paquete se publica en el registro público npm:
Integración con herramientas de IA
Escritorio de Claude
Agregue lo siguiente a su claude_desktop_config.json
:
Reemplace YOUR_GITHUB_TOKEN
y YOUR_GITHUB_ENTERPRISE_URL
con sus valores reales.
Cursor
Recomendado: Modo URL (más estable)
Para obtener el funcionamiento más confiable en Cursor, se recomienda utilizar el modo URL:
- Inicie el servidor en una ventana de terminal independiente:Copy
- Configurar los ajustes MCP del cursor:
- Abra Cursor y vaya a Configuración
- Vaya a AI > Servidores MCP
- Edite su archivo
.cursor/mcp.json
:
Copy - Reinicie el cursor para aplicar los cambios
Alternativa: Modo Comando
Como alternativa, puede configurar Cursor para utilizar el modo de comando, aunque el modo URL es más confiable:
- Abra Cursor y vaya a Configuración
- Vaya a AI > Servidores MCP
- Haga clic en Agregar servidor MCP
- Introduzca los siguientes datos:
- Nombre : GitHub Enterprise
- Comando :
npx
- Argumentos :
@ddukbg/github-enterprise-mcp
- Variables de entorno :
GITHUB_ENTERPRISE_URL
: La URL de tu API de GitHub EnterpriseGITHUB_TOKEN
: Su token de acceso personal de GitHub
Alternativamente, puede editar manualmente su archivo .cursor/mcp.json
para incluir:
Configuración del idioma
Este servidor MCP admite los idiomas inglés y coreano. Puede configurar el idioma mediante:
Variables de entorno
Argumentos de la línea de comandos
El idioma predeterminado es inglés si no se especifica.
Opciones adicionales en el modo HTTP
--debug
: Habilitar el registro de depuración--github-enterprise-url <URL>
: Establecer la URL de la API de GitHub Enterprise--token <TOKEN>
: Establecer el token de acceso personal de GitHub--language <LANG>
: Establece el idioma (en o ko, predeterminado: en)
Herramientas MCP disponibles
Este servidor MCP proporciona las siguientes herramientas:
Nombre de la herramienta | Descripción | Parámetros | Permisos PAT requeridos |
---|---|---|---|
list-repositories | Recuperar la lista de repositorios de un usuario u organización | owner : nombre de usuario/nombre de la organización isOrg : si es una organización type : tipo de repositorio sort : criterios de ordenación page : número de página perPage : elementos por página | repo |
get-repository | Obtenga información detallada del repositorio | owner : Propietario del repositorio repo : Nombre del repositorio | repo |
list-branches | Listar ramas de un repositorio | owner : Propietario del repositorio repo : Nombre del repositorio protected_only : Si se deben mostrar solo las ramas protegidas page : Número de página perPage : Elementos por página | repo |
get-content | Recuperar el contenido de un archivo o directorio | owner : Propietario del repositorio repo : Nombre del repositorio path : Ruta del archivo/directorio ref : Rama/confirmación (opcional) | repo |
list-pull-requests | Listar solicitudes de extracción en un repositorio | owner : Propietario del repositorio repo : Nombre del repositorio state : Estado de PR filter sort : Criterios de ordenación direction : Dirección de ordenación page : Número de página per_page : Elementos por página | repo |
get-pull-request | Obtener detalles de la solicitud de extracción | owner : Propietario del repositorio repo : Nombre del repositorio pull_number : Número de solicitud de extracción | repo |
create-pull-request | Crear una nueva solicitud de extracción | owner : Propietario del repositorio repo : Nombre del repositorio title : Título del PR head : Rama principal base : Rama base body : Descripción del PR draft : Crear como borrador del PR | repo |
merge-pull-request | Fusionar una solicitud de extracción | owner : propietario del repositorio repo : nombre del repositorio pull_number : número de solicitud de extracción merge_method : método de fusión commit_title : título de la confirmación commit_message : mensaje de confirmación | repo |
list-issues | Enumerar problemas en un repositorio | owner : Propietario del repositorio repo : Nombre del repositorio state : Estado del problema filter sort : Criterios de ordenación direction : Dirección de ordenación page : Número de página per_page : Elementos por página | repo |
get-issue | Obtener detalles del problema | owner : Propietario del repositorio repo : Nombre del repositorio issue_number : Número de emisión | repo |
list-issue-comments | Listar comentarios sobre un problema o solicitud de extracción | owner : Propietario del repositorio repo : Nombre del repositorio issue_number : Número de emisión/PR page : Número de página per_page : Elementos por página | repo |
create-issue | Crear un nuevo problema | owner : propietario del repositorio repo : nombre del repositorio title : título del problema body : contenido del cuerpo del problema labels : matriz de nombres de etiquetas assignees : matriz de inicios de sesión de usuarios milestone : ID del hito | repo |
create-repository | Crear un nuevo repositorio | name : Nombre del repositorio description : Descripción del repositorio private : Si es privado auto_init : Inicializar con README gitignore_template : Agregar .gitignore license_template : Agregar licencia org : Nombre de la organización | repo |
update-repository | Actualizar la configuración del repositorio | owner : Propietario del repositorio repo : Nombre del repositorio description : Nueva descripción private : Cambiar privacidad default_branch : Cambiar rama predeterminada has_issues : Habilitar/deshabilitar problemas has_projects : Habilitar/deshabilitar proyectos has_wiki : Habilitar/deshabilitar wiki archived : Archivar/desarchivar | repo |
delete-repository | Eliminar un repositorio | owner : Propietario del repositorio repo : Nombre del repositorio confirm : Confirmación (debe ser verdadera) | delete_repo |
list-workflows | Lista de flujos de trabajo de GitHub Actions | owner : Propietario del repositorio repo : Nombre del repositorio page : Número de página perPage : Elementos por página | actions:read |
list-workflow-runs | Lista de ejecuciones del flujo de trabajo | owner : Propietario del repositorio repo : Nombre del repositorio workflow_id : ID de flujo de trabajo/nombre de archivo branch : Filtrar por rama status : Filtrar por estado page : Número de página perPage : Elementos por página | actions:read |
trigger-workflow | Activar un flujo de trabajo | owner : propietario del repositorio repo : nombre del repositorio workflow_id : ID de flujo de trabajo/nombre de archivo ref : referencia de Git inputs : entradas de flujo de trabajo | actions:write |
get-license-info | Obtener información sobre la licencia de GitHub Enterprise | - | Requiere una cuenta site_admin (Administrador) |
get-enterprise-stats | Obtener estadísticas del sistema de GitHub Enterprise | - | Requiere una cuenta site_admin (Administrador) |
Nota : Para las herramientas específicas de Enterprise (
get-license-info
yget-enterprise-stats
), se requiere un usuario con privilegios de administrador del sitio . Se recomienda un token de acceso personal clásico, ya que los tokens específicos podrían no ser compatibles con estos permisos de nivel empresarial.
Uso de las herramientas en el cursor
Una vez configurado el servidor MCP y Cursor para conectarse a él, puede usar las herramientas de GitHub Enterprise directamente en el chat de IA de Cursor. Aquí hay algunos ejemplos:
Listado de repositorios
Obtención de información del repositorio
Listado de solicitudes de extracción
Gestión de problemas
Trabajar con el contenido del repositorio
Gestión de repositorios
Administración de usuarios (solo Enterprise)
Estas funciones están diseñadas específicamente para entornos de GitHub Enterprise Server y requieren permisos administrativos:
Mejoras de la API
- Configuración flexible de URL de API (admite diversas variables de entorno y argumentos de línea de comandos)
- Manejo mejorado de errores y gestión del tiempo de espera
- Formato de respuesta y mensajes fáciles de usar
Contribuyendo
¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.
Licencia
ISC
You must be authenticated.
Tools
Un servidor MCP que permite la integración con la API de GitHub Enterprise, lo que permite a los usuarios acceder a la información del repositorio, administrar problemas, solicitudes de extracción, flujos de trabajo y otras funciones de GitHub a través de Cursor.