
GitHub Webhooks MCP Server
from ajaychinthapalli
A simple MCP server that manages GitHub webhooks and lets MCP compatible LLMs interact with the GitHub API.
๐ฅ๐ฅ๐ฅโ VerifiedFreeAdvanced setup
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
Tool Examples
Create Organization Webhook
Copy & paste โ that's it
{
"org": "my-org",
"config": {
"url": "https://example.com/webhook",
"content_type": "json",
"secret": "my-secret"
},
"events": ["push", "pull_request"],
"active": true
}List Organization Webhooks
Copy & paste โ that's it
{
"org": "my-org",
"per_page": 30,
"page": 1
}Update Organization Webhook
Copy & paste โ that's it
{
"org": "my-org",
"hook_id": 12345,
"config": {
"url": "https://example.com/new-webhook"
},
"active": false
}Delete Organization Webhook
Copy & paste โ that's it
{
"org": "my-org",
"hook_id": 12345
}Create Repository Webhook
Copy & paste โ that's it
{
"owner": "username",
"repo": "repository-name",
"config": {
"url": "https://example.com/webhook",
"content_type": "json"
},
"events": ["push", "issues"],
"active": true
}List Repository Webhooks
Copy & paste โ that's it
{
"owner": "username",
"repo": "repository-name"
}Update Repository Webhook
Copy & paste โ that's it
{
"owner": "username",
"repo": "repository-name",
"hook_id": 12345,
"events": ["push", "pull_request", "issues"]
}Delete Repository Webhook
Copy & paste โ that's it
{
"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
Copy & paste โ that's it
npm run buildProject Structure
Copy & paste โ that's it
github-webhooks-mcp-server/
โโโ src/
โ โโโ index.ts # Main server implementation
โโโ dist/ # Compiled JavaScript (generated)
โโโ package.json
โโโ tsconfig.json
โโโ README.mdLicense
MIT
Copy & paste โ that's it
npm install
npm run buildBefore it works, you'll need: GITHUB_TOKEN
Installation
Copy & paste โ that's it
npm install
npm run buildConfiguration
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:
Copy & paste โ that's it
export GITHUB_TOKEN=your_github_token_hereUsage
Running the Server
Copy & paste โ that's it
node dist/index.jsMCP Client Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
Copy & paste โ that's it
{
"mcpServers": {
"github-webhooks": {
"command": "node",
"args": ["/path/to/github-webhooks-mcp-server/dist/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
}Requirements
- Node.js 18 or higher
- GitHub personal access token with appropriate webhook permissions
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.