GitHub Webhooks MCP Server
Um servidor MCP simples que gerencia webhooks do GitHub e permite que LLMs compatíveis com MCP interajam com a API do GitHub.
GitHubExperimente este MCPPatrocinado
Documentação
GitHub Webhooks MCP Server
Um servidor Model Context Protocol (MCP) para gerenciar webhooks do GitHub em níveis de organização e de repositório.
Recursos
Webhooks em nível de organização
- create_org_webhook - Cria webhooks que se aplicam a todos os repositórios de uma organização
- list_org_webhooks - Lista todos os webhooks em nível de organização
- update_org_webhook - Modifica webhooks de organização existentes
- delete_org_webhook - Remove webhooks de organização
Webhooks em nível de repositório
- create_repo_webhook - Cria webhooks para um repositório específico
- list_repo_webhooks - Lista todos os webhooks de um repositório
- update_repo_webhook - Modifica webhooks de repositório existentes
- delete_repo_webhook - Remove webhooks de repositório
Instalação
npm install
npm run build
Configuração
O servidor requer um token de acesso pessoal do GitHub com as permissões apropriadas:
- Para webhooks de organização: escopo
admin:org_hook - Para webhooks de repositório: escopo
admin:repo_hook
Defina o token como uma variável de ambiente:
export GITHUB_TOKEN=your_github_token_here
Uso
Executando o servidor
node dist/index.js
Configuração do cliente MCP
Adicione à configuração do seu cliente MCP (por exemplo, Claude Desktop):
{
"mcpServers": {
"github-webhooks": {
"command": "node",
"args": ["/path/to/github-webhooks-mcp-server/dist/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}
Exemplos de ferramentas
Criar webhook de organização
{
"org": "my-org",
"config": {
"url": "https://example.com/webhook",
"content_type": "json",
"secret": "my-secret"
},
"events": ["push", "pull_request"],
"active": true
}
Listar webhooks de organização
{
"org": "my-org",
"per_page": 30,
"page": 1
}
Atualizar webhook de organização
{
"org": "my-org",
"hook_id": 12345,
"config": {
"url": "https://example.com/new-webhook"
},
"active": false
}
Excluir webhook de organização
{
"org": "my-org",
"hook_id": 12345
}
Criar webhook de repositório
{
"owner": "username",
"repo": "repository-name",
"config": {
"url": "https://example.com/webhook",
"content_type": "json"
},
"events": ["push", "issues"],
"active": true
}
Listar webhooks de repositório
{
"owner": "username",
"repo": "repository-name"
}
Atualizar webhook de repositório
{
"owner": "username",
"repo": "repository-name",
"hook_id": 12345,
"events": ["push", "pull_request", "issues"]
}
Excluir webhook de repositório
{
"owner": "username",
"repo": "repository-name",
"hook_id": 12345
}
Eventos de webhook
Eventos de webhook comuns incluem:
push- Push do Git para um repositóriopull_request- Atividade de pull requestissues- Atividade de issueissue_comment- Atividade de comentários em issuesrelease- Atividade de releasecreate- Branch ou tag criadadelete- Branch ou tag excluídafork- Repositório bifurcado (fork)star- Repositório marcado com estrelawatch- Repositório acompanhado (watch)
Para uma lista completa de eventos, consulte GitHub Webhook Events Documentation.
Desenvolvimento
Compilação
npm run build
Estrutura do projeto
github-webhooks-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── dist/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md
Requisitos
- Node.js 18 ou superior
- Token de acesso pessoal do GitHub com permissões apropriadas para webhooks
Licença
MIT