The fastest way to try github-webhook-mcp is using the preview instance:
- Install the GitHub Webhook MCP app on your GitHub account or organization
- Configure your MCP client (see MCP Client Setup below) with:
- Worker URL:
https://github-webhook.smgjp.com
- Worker URL:
- Start receiving webhook notifications
Note: The preview instance at
github-webhook.smgjp.comis provided for evaluation purposes. There is no SLA, and the instance may change or stop without notice. For production use, see Self-Hosting Guide.
Download mcp-server.mcpb from Releases, then:
- Open Claude Desktop -> Settings -> Extensions -> Install Extension...
- Select the
.mcpbfile - Enter your Worker URL when prompted (e.g.
https://github-webhook-mcp.example.workers.dev)
{
"mcpServers": {
"github-webhook-mcp": {
"command": "npx",
"args": ["github-webhook-mcp"],
"env": {
"WEBHOOK_WORKER_URL": "https://github-webhook-mcp.example.workers.dev",
"WEBHOOK_CHANNEL": "1"
}
}
}
}Set WEBHOOK_CHANNEL=1 to enable real-time channel notifications (Claude Code CLI only).
[mcp.github-webhook-mcp]
command = "npx"
args = ["github-webhook-mcp"]
[mcp.github-webhook-mcp.env]
WEBHOOK_WORKER_URL = "https://github-webhook-mcp.example.workers.dev"
WEBHOOK_CHANNEL = "0"Deploy your own Cloudflare Worker instance for full control over webhook processing and data.
| Requirement | Purpose |
|---|---|
| Cloudflare account | Worker and Durable Object hosting |
| Node.js 18+ | Build and deploy tooling |
| wrangler CLI | Cloudflare deployment (npm install -g wrangler) |
cd worker
npm install
npx wrangler deployThis deploys the Worker and Durable Object to your Cloudflare account. Note the Worker URL from the output (e.g. https://github-webhook-mcp.example.workers.dev).
Generate a strong secret and store it as a Cloudflare secret:
npx wrangler secret put GITHUB_WEBHOOK_SECRETEnter the secret value when prompted. Keep this value -- you will need it when configuring the GitHub App.
- Go to GitHub Settings -> Developer settings -> GitHub Apps -> New GitHub App
- Configure the app:
- Webhook URL:
https://github-webhook-mcp.example.workers.dev/webhooks/github - Webhook secret: the same value set in step 2
- Content type:
application/json
- Webhook URL:
- Set permissions based on the events you want to receive:
- Repository permissions: Issues (Read), Pull requests (Read), Contents (Read), etc.
- Subscribe to events:
- Issues, Pull request, Push, Check run, Workflow run, etc.
- After creation, install the app on your account or organization and select which repositories to monitor
Important: Do not create a separate repository webhook for the same endpoint. The GitHub App handles all webhook delivery -- a repository webhook would cause duplicate or malformed requests.
If your deployment uses OAuth-based authentication:
- In the GitHub App settings, set the Callback URL to:
https://github-webhook-mcp.example.workers.dev/auth/callback - Generate a client secret and store it as a Cloudflare secret
To use a custom domain instead of the default *.workers.dev URL:
- In the Cloudflare dashboard, go to Workers & Pages -> your Worker -> Settings -> Domains & Routes
- Add your custom domain (e.g.
github-webhook.example.com) - Update the webhook URL in your GitHub App settings to use the custom domain
- Update the
WEBHOOK_WORKER_URLin your MCP client configuration
The local MCP bridge supports Claude Code's claude/channel capability. When enabled, new webhook events are pushed into your session via SSE in real-time. This feature is available in Claude Code CLI only.
To enable channel notifications, set WEBHOOK_CHANNEL=1 in your MCP client configuration (see Claude Code CLI above), then load the channel:
claude --dangerously-load-development-channels server:github-webhook-mcp