GitHub Webhooks MCP Server

A simple MCP server that manages GitHub webhooks and lets MCP compatible LLMs interact with the GitHub API.

GitHub Webhooks MCP Server

A Model Context Protocol (MCP) server for managing GitHub webhooks at both organization and repository levels.

Features

Organization-level Webhooks

  • create_org_webhook - Create webhooks that apply to all repositories in an organization
  • list_org_webhooks - List all organization-level webhooks
  • update_org_webhook - Modify existing organization webhooks
  • delete_org_webhook - Remove organization webhooks

Repository-level Webhooks

  • create_repo_webhook - Create webhooks for a specific repository
  • list_repo_webhooks - List all webhooks for a repository
  • update_repo_webhook - Modify existing repository webhooks
  • delete_repo_webhook - Remove repository webhooks

Installation

npm install
npm run build

Configuration

The server requires a GitHub personal access token with appropriate permissions:

  • For organization webhooks: admin:org_hook scope
  • For repository webhooks: admin:repo_hook scope

Set the token as an environment variable:

export GITHUB_TOKEN=your_github_token_here

Usage

Running the Server

node dist/index.js

MCP Client Configuration

Add to your MCP client configuration (e.g., Claude Desktop):

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

Tool Examples

Create Organization Webhook

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

List Organization Webhooks

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

Update Organization Webhook

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

Delete Organization Webhook

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

Create Repository Webhook

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

List Repository Webhooks

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

Update Repository Webhook

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

Delete Repository Webhook

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

Webhook Events

Common webhook events include:

  • push - Git push to a repository
  • pull_request - Pull request activity
  • issues - Issue activity
  • issue_comment - Issue comment activity
  • release - Release activity
  • create - Branch or tag created
  • delete - Branch or tag deleted
  • fork - Repository forked
  • star - Repository starred
  • watch - Repository watched

For a complete list of events, see GitHub Webhook Events Documentation.

Development

Build

npm run build

Project Structure

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

Requirements

  • Node.js 18 or higher
  • GitHub personal access token with appropriate webhook permissions

License

MIT

İlgili Sunucular

NotebookLM Web Importer

Web sayfalarını ve YouTube videolarını tek tıkla NotebookLM'e aktarın. 200.000'den fazla kullanıcı tarafından güveniliyor.

Chrome Eklentisini Yükle