MCP GitHub Enterprise
Consultar datos de licencia de GitHub Enterprise, incluidos resúmenes, detalles por usuario, membresías de
Documentación
MCP GITHUB ENTERPRISE 🌉
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 → Credenciales → Nueva Credencial
- Elige MCP Client API, establece la URL a http://github-mcp:8050/sse
🔌 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
| Nombre | Descripción |
|---|---|
list_consumed_licenses | Resumir licencias, incluir usuarios opcionalmente |
get_user_organizations | Listar las membresías de organizaciones de GitHub de un usuario |
get_user_enterprise_roles | Listar los roles empresariales de un usuario |
get_user_detail | Detalle completo de licencia para un usuario |
Recursos
| URI | Descripción |
|---|---|
github://consumed-licenses/{dummy} | Uso completo de licencia + detalles del usuario |
github://user/{username}/roles | Roles 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.
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Haz commit de tus cambios (
git commit -m 'Add some amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
📜 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
🙏 Agradecimientos
- Model Context Protocol por el SDK de Python
- MCP-Mem0 por proporcionar una excelente estructura de plantilla
- GitHub API por la API completa
Construido con ❤️ para una integración fluida entre IA ↔️ GitHub Enterprise.