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_hookscope - For repository webhooks:
admin:repo_hookscope
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 repositorypull_request- Pull request activityissues- Issue activityissue_comment- Issue comment activityrelease- Release activitycreate- Branch or tag createddelete- Branch or tag deletedfork- Repository forkedstar- Repository starredwatch- 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
관련 서버
GitHub MCP Server
An MCP server for interacting with GitHub, allowing you to manage repositories, issues, and pull requests.
GitHub
Interact with GitHub APIs for automation and repository management.
GitLab
A GitLab integration server providing access to GitLab's RESTful API tools, built on the fastmcp framework.
CData Bitbucket
A read-only MCP server for Bitbucket, enabling LLMs to query live data using the CData JDBC Driver.
MCP Git Ingest
Reads the structure and important files of a GitHub repository.
GitLab
Manage GitLab projects, repositories, issues, files, and milestones using the GitLab API.
GitHub Projects V2
Manage GitHub Projects V2 using the GitHub GraphQL API.
Personal Bitbucket MCP Server
Bitbucket MCP Server Build on Top of Quarkus Framework
MCP GitHub Project Manager
AI-powered GitHub project management with complete requirements traceability.
GitHub
Manage GitHub repositories using a personal access token via CLI or environment variables.