MCP GitHub Enterprise
Consulte dados de licença do GitHub Enterprise, incluindo resumos, detalhes por usuário, associações a organizações e funções empresariais.
Documentação
MCP GITHUB ENTERPRISE 🌉
Um servidor Model Context Protocol (MCP) que permite que agentes de IA (Claude, ChatGPT, etc.) consultem os dados de licença do seu GitHub Enterprise. Obtenha com segurança resumos de licenças, detalhes por usuário, associações a organizações e funções empresariais por meio do endpoint /consumed-licenses.
📊 Recursos e Exemplos de Prompts
-
Resumo da Licença
•"Show me our GitHub Enterprise license summary"
•"How many licenses are we currently using?" -
Uso Detalhado da Licença
•"List all consumed GitHub licenses"
•"Do we have any unused GitHub licenses?" -
Consulta de Usuário
•"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?"
🌟 Funcionalidades
- Análise de Licenças: Total vs. assentos consumidos
- Consulta de Usuário: Associações a organizações, funções, 2FA, ID SAML
- Paginação: Gerencia grandes empresas automaticamente
- Transportes Duplos: stdio para MCP direto, SSE para HTTP
- Pronto para Kubernetes: Implante em EKS/GKE ou qualquer cluster K8s
📋 Pré-requisitos
- Python 3.9+
- PAT do GitHub com escopos de
read:enterprise/ licença - Locatário do GitHub Enterprise Cloud
🚀 Início Rápido
1. Clone e Instale
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. Configure
cp .env.example .env
# Edit .env: set GITHUB_TOKEN and GITHUB_ENTERPRISE_URL
3. Execute
Transporte stdio
export TRANSPORT=stdio
python main.py
Transporte SSE
export TRANSPORT=sse PORT=8050
python main.py
🐳 Docker e n8n
Adicione este serviço ao seu docker-compose.yml junto com o 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
Na interface do n8n, habilite o cliente MCP:
- Configurações → Credenciais → Nova Credencial
- Escolha MCP Client API, defina a URL para http://github-mcp:8050/sse
🔌 Configuração do Cliente
Claude Desktop / Windsurf / Cursor
Adicione esta configuração às configurações do seu 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"
}
}
}
Configuração SSE
{
"mcpServers": {
"github": {
"transport": "sse",
"url": "http://localhost:8050/sse"
}
}
}
📊 Exemplos de Casos de Uso
- Gerenciamento de Usuários Empresariais: Automatize a integração e o desligamento de usuários
- Monitoramento de Licenças: Receba alertas quando as licenças estiverem próximas da expiração
- Análise de Organizações: Analise estruturas e relacionamentos organizacionais
- Auditoria de Acesso de Usuários: Acompanhe permissões e níveis de acesso dos usuários
- Insights do GitHub com IA: Deixe a IA analisar seus dados do GitHub empresarial
🔌 Ferramentas e Recursos MCP
Ferramentas
| Nome | Descrição |
|---|---|
list_consumed_licenses | Resuma licenças, opcionalmente inclua usuários |
get_user_organizations | Liste as associações de organizações GitHub de um usuário |
get_user_enterprise_roles | Liste as funções empresariais de um usuário |
get_user_detail | Detalhe completo da licença de um usuário |
Recursos
| URI | Descrição |
|---|---|
github://consumed-licenses/{dummy} | Uso completo da licença + detalhes do usuário |
github://user/{username}/roles | Funções de organização e empresariais de um usuário |
🔒 Considerações de Segurança
- Armazene seu token do GitHub com segurança
- Use escopos apropriados para seu token do GitHub
- Para produção, considere usar o AWS Secrets Manager ou similar
- Implemente políticas de rede em implantações Kubernetes
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
- Faça um fork do repositório
- Crie sua branch de funcionalidade (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
📜 Licença
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
🙏 Agradecimentos
- Model Context Protocol pelo SDK Python
- MCP-Mem0 por fornecer uma ótima estrutura de modelo
- GitHub API pela API abrangente
Construído com ❤️ para uma integração perfeita entre IA ↔️ GitHub Enterprise.