Github Webhook MCP logo

Github Webhook MCP

Streams GitHub webhook events to MCP clients through Cloudflare Worker storage and supports inspection, retrieval, and processing.

Install Github Webhook MCP

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for github-webhook-mcp, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

github-webhook-mcp delivers GitHub webhook events to AI assistants through a Cloudflare Worker and Durable Object backed by SQLite. A local MCP bridge proxies tool calls over Streamable HTTP and can also forward real-time event notifications over WebSocket. Use it to monitor repository activity, inspect complete webhook payloads, review CI events, and clear processed notifications without running a local webhook receiver or tunnel. It supports Claude Desktop, Claude Code CLI, and Codex through the provided bridge.

Use cases

  • Monitor repository webhook activity
  • Inspect pull request and CI events
  • Review complete webhook payloads
  • Acknowledge processed notifications
  • Track pending events across selected repositories

Key features

  • GitHub App webhook ingestion
  • Cloudflare Worker and Durable Object storage
  • MCP tools for event summaries and payloads
  • WebSocket real-time notifications
  • Single-event and batch processing
  • Configurable event retention

Tools5

What Github Webhook MCP lets your agent do. Expand a tool for its parameters.

Self-reported~80 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

20/24 checks healthy over the last 90d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 18d ago via OSV.dev

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

Last commit10d agoMost recent push to the default branch.
Tools exposed5Callable tools this server registers over MCP.
Directory activity5 viewsConfig copies, upvotes, and views on AllMCPs.

How Github Webhook MCP works

What github-webhook-mcp does

github-webhook-mcp connects GitHub webhook delivery with MCP-compatible AI clients. The GitHub Web App receives events for selected organizations, accounts, and repositories, while a Cloudflare Worker validates webhook signatures and passes accepted events to a Durable Object backed by SQLite.

Events remain available as pending notifications until they are marked processed. The MCP interface provides both lightweight summaries for triage and complete payload retrieval for detailed analysis. A separate event stream can notify connected clients in real time, while MCP tool calls provide polling and state management.

The design is useful for repository monitoring, pull request review, CI status checks, and workflows that need an assistant to inspect and acknowledge GitHub activity.

How it works

Install the GitHub Webhook MCP app on a GitHub organization or account, then select the repositories that should deliver events. The app handles webhook delivery; creating an additional repository webhook for the same endpoint can produce duplicate or malformed requests.

The Cloudflare Worker stores incoming events in a Durable Object. The local .mcpb bridge connects an MCP client to the Worker and proxies tool requests. Desktop and Codex clients use MCP polling through the bridge, while Claude Code CLI can receive channel notifications through its WebSocket connection. No local webhook listener or tunnel is needed.

Pending status and summary listing exclude workflow_run events with requested or in_progress actions by default. Passing include_intermediate: true includes those events. This filtering affects the status and list results before limits are applied; full retrieval, processing, delivery, and retention behavior are unchanged.

Setup and configuration

The runtime prerequisite is Node.js 18 or newer. Self-hosting also requires a Cloudflare account and deployment of the Worker. A preview instance and client-specific setup instructions are available through the project's installation guide, covering Claude Desktop, Claude Code CLI, Codex, and Cloudflare Workers deployment.

The bridge is launched with npx. A newly started process resolves the package version at startup, so restart the MCP client after updates. If the configuration pins an older bridge version, remove or advance that pin before restarting. The Worker and bridge must use compatible MCP protocol revisions.

Event cleanup runs from a daily Durable Object Alarm. PURGE_AFTER_DAYS controls retention for processed events and defaults to three days. UNPROCESSED_PURGE_AFTER_DAYS controls unprocessed events and defaults to 90 days. Both values are configured in worker/wrangler.toml; a value of 0 removes that class during the sweep. Processed events are also removed promptly when marked.

Tools and capabilities

  • get_pending_status returns pending event counts grouped by type and accepts the optional intermediate-event filter.
  • list_pending_events returns pending-event summaries without full webhook payloads. It uses the same optional filter as the status tool.
  • get_event retrieves the complete payload for one event by ID.
  • get_webhook_events retrieves complete payloads for all pending events.
  • mark_processed acknowledges one event with event_id or a batch with event_ids.

A typical inspection flow checks counts, lists summaries to identify a relevant event, and then retrieves its full payload. After review, one or more IDs can be passed to mark_processed.

Limitations and notes

Retention is based on event age rather than storage volume. A high-volume tenant that never consumes events can still approach Cloudflare's 1 GB Durable Object limit before the unprocessed-event retention period expires.

The WebSocket event stream is separate from MCP tool calls. Real-time notifications may continue appearing even when an outdated bridge can no longer complete tool requests, including processing operations. Restart the client with a compatible bridge after protocol or package updates.

The bridge proxies event data to the Worker and does not store event data locally. Events are stored in Cloudflare Durable Object edge storage.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Github Webhook MCP

github-webhook-mcp is an MCP server that connects GitHub webhook events to AI assistants through a Cloudflare Worker and Durable Object storage. Its tools report pending counts, list event summaries, retrieve individual or all pending payloads, and mark one or more events as processed.

Install the GitHub Webhook MCP app on the required GitHub organization or account, select repositories, and configure an MCP client using the project’s installation guide. The bridge runs through npx, and self-hosting requires Node.js 18+ and a Cloudflare account.

github-webhook-mcp supports Claude Desktop, Claude Code CLI, and Codex through its local MCP bridge. Desktop and Codex use MCP tool polling, while Claude Code CLI can also receive WebSocket channel notifications.

Call get_event with the event ID to retrieve one complete payload, or call get_webhook_events to retrieve complete payloads for all pending events. Use list_pending_events first when you need to identify an event from its summary.

Call mark_processed with event_id for one event or event_ids for a batch. Processing removes events promptly and also makes them subject to the processed-event retention window.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGithub Webhook MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/github-webhook-mcp?style=directory)](https://allmcps.com/mcp/github-webhook-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/github-webhook-mcp"><img src="https://allmcps.com/api/badge/github-webhook-mcp?style=directory" alt="Github Webhook MCP on AllMCPs" /></a>