GitHub Webhooks MCP Server

Un servidor MCP simple que gestiona webhooks de GitHub y permite que LLMs compatibles con MCP interactúen con la API de GitHub.

Documentación

Servidor MCP de Webhooks de GitHub

Un servidor de Model Context Protocol (MCP) para gestionar webhooks de GitHub tanto a nivel de organización como de repositorio.

Características

Webhooks a nivel de organización

  • create_org_webhook - Crear webhooks que se aplican a todos los repositorios de una organización
  • list_org_webhooks - Listar todos los webhooks a nivel de organización
  • update_org_webhook - Modificar webhooks de organización existentes
  • delete_org_webhook - Eliminar webhooks de organización

Webhooks a nivel de repositorio

  • create_repo_webhook - Crear webhooks para un repositorio específico
  • list_repo_webhooks - Listar todos los webhooks de un repositorio
  • update_repo_webhook - Modificar webhooks de repositorio existentes
  • delete_repo_webhook - Eliminar webhooks de repositorio

Instalación

npm install
npm run build

Configuración

El servidor requiere un token de acceso personal de GitHub con los permisos adecuados:

  • Para webhooks de organización: alcance admin:org_hook
  • Para webhooks de repositorio: alcance admin:repo_hook

Establezca el token como variable de entorno:

export GITHUB_TOKEN=your_github_token_here

Uso

Ejecutar el servidor

node dist/index.js

Configuración del cliente MCP

Agregue a la configuración de su cliente MCP (por ejemplo, Claude Desktop):

{
  "mcpServers": {
    "github-webhooks": {
      "command": "node",
      "args": ["/path/to/github-webhooks-mcp-server/dist/index.js"],
      "env": {
        "GITHUB_TOKEN": "your_github_token_here"
      }
    }
  }
}

Ejemplos de herramientas

Crear webhook de organización

{
  "org": "my-org",
  "config": {
    "url": "https://example.com/webhook",
    "content_type": "json",
    "secret": "my-secret"
  },
  "events": ["push", "pull_request"],
  "active": true
}

Listar webhooks de organización

{
  "org": "my-org",
  "per_page": 30,
  "page": 1
}

Actualizar webhook de organización

{
  "org": "my-org",
  "hook_id": 12345,
  "config": {
    "url": "https://example.com/new-webhook"
  },
  "active": false
}

Eliminar webhook de organización

{
  "org": "my-org",
  "hook_id": 12345
}

Crear webhook de repositorio

{
  "owner": "username",
  "repo": "repository-name",
  "config": {
    "url": "https://example.com/webhook",
    "content_type": "json"
  },
  "events": ["push", "issues"],
  "active": true
}

Listar webhooks de repositorio

{
  "owner": "username",
  "repo": "repository-name"
}

Actualizar webhook de repositorio

{
  "owner": "username",
  "repo": "repository-name",
  "hook_id": 12345,
  "events": ["push", "pull_request", "issues"]
}

Eliminar webhook de repositorio

{
  "owner": "username",
  "repo": "repository-name",
  "hook_id": 12345
}

Eventos de webhook

Los eventos de webhook comunes incluyen:

  • push - Push de Git a un repositorio
  • pull_request - Actividad de pull requests
  • issues - Actividad de issues
  • issue_comment - Actividad de comentarios en issues
  • release - Actividad de releases
  • create - Rama o etiqueta creada
  • delete - Rama o etiqueta eliminada
  • fork - Repositorio bifurcado
  • star - Repositorio marcado con estrella
  • watch - Repositorio observado

Para obtener una lista completa de eventos, consulte la Documentación de eventos de webhook de GitHub.

Desarrollo

Compilación

npm run build

Estructura del proyecto

github-webhooks-mcp-server/
├── src/
│   └── index.ts          # Main server implementation
├── dist/                 # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

Requisitos

  • Node.js 18 o superior
  • Token de acceso personal de GitHub con permisos de webhook adecuados

Licencia

MIT