{
  "markdown": "# feedhook-mcp\n\nMCP server for [Feedhook](https://feedhook.walls.sh) — turn a YouTube channel into a\n**webhook**: your endpoint gets a signed HTTP POST ~8 seconds after a new video is\npublished. No polling, no YouTube API quota. Feedhook does YouTube's WebSub plumbing\n(hub subscription, verification handshake, ~5-day lease renewals, retries with backoff)\nand resells it as a clean API; this package is the agent front door.\n\n## Use it\n\n```bash\nclaude mcp add feedhook -e FEEDHOOK_API_KEY=fh_your_key -- npx -y feedhook-mcp\n```\n\nOr in any MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"feedhook\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"feedhook-mcp\"],\n      \"env\": { \"FEEDHOOK_API_KEY\": \"fh_your_key\" }\n    }\n  }\n}\n```\n\nNo key yet? Add the server without the env var and ask your agent to call\n`create_account` (free plan: 1 feed) — the key is returned once; save it as\n`FEEDHOOK_API_KEY`.\n\n## Tools\n\n| Tool | Does |\n|---|---|\n| `create_account` | Free signup → API key (returned once) |\n| `get_account` | Plan, feed limit, feeds in use |\n| `create_subscription` | channel id + callback URL → webhook on every new video |\n| `list_subscriptions` | All subscriptions with state + delivery counts |\n| `get_subscription` | One subscription incl. recent delivery log (per-attempt HTTP results) |\n| `test_subscription` | Send a signed test.ping through the real pipeline to verify your receiver |\n| `upgrade_plan` | Free → Pro ($9/mo, 10 feeds): returns a Stripe Checkout URL to open in a browser |\n| `delete_subscription` | Unsubscribe + stop deliveries |\n\n## The webhook your endpoint receives\n\n```\nPOST <your callbackUrl>\nx-feedhook-event: video.published\nx-feedhook-delivery: <uuid>\nx-feedhook-signature: sha256=<hex HMAC-SHA256 of the raw body, keyed with your subscription secret>\n\n{\n  \"event\": \"video.published\",\n  \"subscriptionId\": \"…\",\n  \"videoId\": \"dQw4w9WgXcQ\",\n  \"channelId\": \"UC…\",\n  \"title\": \"…\",\n  \"author\": \"…\",\n  \"publishedAt\": \"2026-06-11T15:54:18+00:00\",\n  \"url\": \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\n  \"receivedAt\": \"…\"\n}\n```\n\nNon-2xx responses are retried 5 times with backoff. Respond within 15 seconds.\n\n## Environment\n\n- `FEEDHOOK_API_KEY` — your account key (most tools need it)\n- `FEEDHOOK_API_URL` — override the API base (default `https://feedhook.walls.sh`)\n\nMIT · a [walls.sh](https://walls.sh) product\n",
  "bytes": 2353,
  "sha": "97b1cb91356254a2653c178cebc2ad13258426da6eac04db09d927c2ac32d521",
  "repo_slug": "patwalls/feedhook-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_patwalls_feedhook_mcp_a345fc4b/readme"
}