MCP GitHub Enterprise

Consultar datos de licencia de GitHub Enterprise, incluidos resúmenes, detalles por usuario, membresías de

Documentación

MCP GITHUB ENTERPRISE 🌉

Python >=3.9
MCP Protocol
GitHub API

Un servidor de Model Context Protocol (MCP) que permite a los agentes de IA (Claude, ChatGPT, etc.) consultar los datos de licencia de tu GitHub Enterprise. Obtén de forma segura resúmenes de licencias, detalles por usuario, membresías de organizaciones y roles empresariales a través del endpoint /consumed-licenses.


📊 Capacidades y Ejemplos de Prompts

  • Resumen de Licencias
    • "Show me our GitHub Enterprise license summary"
    • "How many licenses are we currently using?"

  • Uso Detallado de Licencias
    • "List all consumed GitHub licenses"
    • "Do we have any unused GitHub licenses?"

  • Búsqueda de Usuarios
    • "What GitHub orgs does johndoe belong to?"
    • "What enterprise roles does johndoe have?"
    • "Is johndoe an owner in our enterprise?"
    • "Get detailed info about johndoe"
    • "Does johndoe have 2FA enabled?"


🌟 Características

  • Analítica de Licencias: Asientos totales vs. consumidos
  • Búsqueda de Usuarios: Membresías de organizaciones, roles, 2FA, ID SAML
  • Paginación: Gestiona grandes empresas automáticamente
  • Transportes Duales: stdio para MCP directo, SSE para HTTP
  • Listo para Kubernetes: Despliega en EKS/GKE o cualquier clúster K8s

📋 Requisitos Previos

  • Python 3.9+
  • PAT de GitHub con alcances de read:enterprise / licencia
  • Tenant de GitHub Enterprise Cloud

🚀 Inicio Rápido

1. Clonar e Instalar

git clone https://github.com/vipink1203/mcp-github-enterprise.git
cd mcp-github-enterprise
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Configurar

cp .env.example .env
# Edit .env: set GITHUB_TOKEN and GITHUB_ENTERPRISE_URL

3. Ejecutar

Transporte stdio

export TRANSPORT=stdio
python main.py

Transporte SSE

export TRANSPORT=sse PORT=8050
python main.py

🐳 Docker y n8n

Añade este servicio a tu docker-compose.yml junto con n8n:

services:
  github-mcp:
    image: ghcr.io/vipink1203/mcp-github-enterprise:latest
    environment:
      - GITHUB_TOKEN=${GITHUB_TOKEN}
      - GITHUB_ENTERPRISE_URL=${GITHUB_ENTERPRISE_URL}
      - TRANSPORT=sse
      - PORT=8050
    ports:
      - "8050:8050"
    restart: unless-stopped
    networks:
      - n8n-network

En la interfaz de n8n, habilita el cliente MCP:

🔌 Configuración del Cliente

Claude Desktop / Windsurf / Cursor

Añade esta configuración a los ajustes de Claude Desktop:

{
  "mcpServers": {
   "github-ent": {
     "command": "/path/to/your/venv/python",
     "args": ["/path/to/main.py"],
     "env": {
       "GITHUB_TOKEN": "",
       "GITHUB_ENTERPRISE_URL": "https://api.github.com/enterprises/{enterprise_name}",
       "TRANSPORT": "stdio"
     }
   }
}

Configuración SSE

{
  "mcpServers": {
    "github": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

📊 Casos de Uso de Ejemplo

  • Gestión de Usuarios Empresariales: Automatiza la incorporación y baja de usuarios
  • Monitoreo de Licencias: Recibe alertas cuando las licencias estén cerca de expirar
  • Análisis de Organizaciones: Analiza estructuras y relaciones organizacionales
  • Auditoría de Acceso de Usuarios: Rastrea permisos y niveles de acceso de usuarios
  • Información de GitHub impulsada por IA: Deja que la IA analice tus datos de GitHub Enterprise

🔌 Herramientas y Recursos MCP

Herramientas

NombreDescripción
list_consumed_licensesResumir licencias, incluir usuarios opcionalmente
get_user_organizationsListar las membresías de organizaciones de GitHub de un usuario
get_user_enterprise_rolesListar los roles empresariales de un usuario
get_user_detailDetalle completo de licencia para un usuario

Recursos

URIDescripción
github://consumed-licenses/{dummy}Uso completo de licencia + detalles del usuario
github://user/{username}/rolesRoles de organización y empresariales para un usuario

🔒 Consideraciones de Seguridad

  • Almacena tu token de GitHub de forma segura
  • Usa alcances apropiados para tu token de GitHub
  • Para producción, considera usar AWS Secrets Manager o similar
  • Implementa políticas de red en despliegues de Kubernetes

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/amazing-feature)
  3. Haz commit de tus cambios (git commit -m 'Add some amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre un Pull Request

📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos


Construido con ❤️ para una integración fluida entre IA ↔️ GitHub Enterprise.