Skip to main content
Glama
patwalls

feedhook-mcp

by patwalls

feedhook-mcp

MCP server for Feedhook — turn a YouTube channel into a webhook: your endpoint gets a signed HTTP POST ~8 seconds after a new video is published. No polling, no YouTube API quota. Feedhook does YouTube's WebSub plumbing (hub subscription, verification handshake, ~5-day lease renewals, retries with backoff) and resells it as a clean API; this package is the agent front door.

Use it

claude mcp add feedhook -e FEEDHOOK_API_KEY=fh_your_key -- npx -y feedhook-mcp

Or in any MCP client config:

{
  "mcpServers": {
    "feedhook": {
      "command": "npx",
      "args": ["-y", "feedhook-mcp"],
      "env": { "FEEDHOOK_API_KEY": "fh_your_key" }
    }
  }
}

No key yet? Add the server without the env var and ask your agent to call create_account (free plan: 1 feed) — the key is returned once; save it as FEEDHOOK_API_KEY.

Related MCP server: Youtube-MCP

Tools

Tool

Does

create_account

Free signup → API key (returned once)

get_account

Plan, feed limit, feeds in use

create_subscription

channel id + callback URL → webhook on every new video

list_subscriptions

All subscriptions with state + delivery counts

get_subscription

One subscription incl. recent delivery log (per-attempt HTTP results)

test_subscription

Send a signed test.ping through the real pipeline to verify your receiver

upgrade_plan

Free → Pro ($9/mo, 10 feeds): returns a Stripe Checkout URL to open in a browser

delete_subscription

Unsubscribe + stop deliveries

The webhook your endpoint receives

POST <your callbackUrl>
x-feedhook-event: video.published
x-feedhook-delivery: <uuid>
x-feedhook-signature: sha256=<hex HMAC-SHA256 of the raw body, keyed with your subscription secret>

{
  "event": "video.published",
  "subscriptionId": "…",
  "videoId": "dQw4w9WgXcQ",
  "channelId": "UC…",
  "title": "…",
  "author": "…",
  "publishedAt": "2026-06-11T15:54:18+00:00",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "receivedAt": "…"
}

Non-2xx responses are retried 5 times with backoff. Respond within 15 seconds.

Environment

  • FEEDHOOK_API_KEY — your account key (most tools need it)

  • FEEDHOOK_API_URL — override the API base (default https://feedhook.walls.sh)

MIT · a walls.sh product

Available Tools

8 tools
create_accountA

Create a free Feedhook account (1 feed). Returns the API key ONCE — surface it to the user and have them save it as FEEDHOOK_API_KEY in this server's environment; it cannot be retrieved again. Skip this tool if FEEDHOOK_API_KEY is already set.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesAccount email address.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses that the API key is returned only once and must be saved immediately, which is critical behavioral information. More details on rate limits or auth could be added, but the key trait is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence states the purpose, and the second provides critical behavioral guidance. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers the return (API key once), required action, and account limit. It is complete for the complexity of a simple account creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the email parameter already described. The description does not add extra meaning beyond 'email address' for the parameter itself, but context about account creation is provided. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'create' and the resource 'Feedhook account', including constraints like 'free' and '1 feed'. It distinguishes itself from sibling tools like get_account by focusing on account creation and API key generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to skip the tool ('if FEEDHOOK_API_KEY is already set') and instructs the agent to surface the API key and save it. It could mention when to use alternatives like get_account, but the context of sibling tools helps compensate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_subscriptionA

Turn a YouTube channel into a webhook: Feedhook will POST signed JSON {event:'video.published', videoId, title, author, url, publishedAt, …} to callbackUrl ~8s after every new video. The response includes a per-subscription secret (shown once) for verifying the X-Feedhook-Signature header (sha256 HMAC of the raw body).

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesThe channel as an @handle (e.g. '@mkbhd'), a youtube.com channel URL, or a raw UC… id — resolved server-side.
callbackUrlYesThe http(s) URL that will receive the webhook POSTs.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It discloses key behaviors: signed JSON payload with specific fields, ~8s delivery delay, per-subscription secret for signature verification. This is thorough, though it does not address idempotency or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the purpose and packs in essential details without any fluff. Every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 2 required parameters and no output schema, the description covers the input, the webhook behavior, and the secret usage. It does not cover error cases or limits, but for a create operation, this is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds minimal parameter information beyond what the schema provides. It mentions server-side resolution of the channel, which is a slight addition, but not enough to raise the score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Turn a YouTube channel into a webhook') and the resource, with specific details about the resulting webhook behavior. It distinguishes itself from sibling tools like list_subscriptions and delete_subscription by focusing on creation and the webhook mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (to monitor a YouTube channel via webhook) but does not explicitly state when not to use it or compare it to alternatives. No direct guidance on prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_subscriptionA

Delete a subscription — unsubscribes from YouTube's hub and stops all deliveries.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe subscription id (uuid).

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool is destructive ('unsubscribes', 'stops all deliveries') and mentions an external hub. However, it does not mention whether the action is reversible or any permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is highly efficient and front-loaded. Every word contributes meaningful information with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description covers the main action and side effects adequately. It could mention irreversibility, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter 'id' is well-described in the schema. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Delete a subscription' and the resource (subscription). It also provides specific context about unsubscribing from YouTube's hub and stopping deliveries, which distinguishes it from sibling tools like list_subscriptions or get_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, consequences, or scenarios where deletion might be inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_accountA

Show the current account: email, plan, feed limit, and how many feeds are in use. Requires FEEDHOOK_API_KEY.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

States requirement for FEEDHOOK_API_KEY, adding auth context beyond default. However, does not explicitly confirm read-only nature or other behavioral traits; though implied by 'Show'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and fields, then auth requirement. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, description provides all necessary context: what is returned (email, plan, feed limit, feeds in use) and auth requirement. No output schema, so description fills that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%, so description need not add parameter meanings. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool shows current account info, listing specific fields (email, plan, feed limit, feeds in use). Distinct from sibling tools that create or manage subscriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for viewing account details but provides no explicit guidance on when to use vs alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriptionA

Get one subscription including its recent delivery log — each delivery shows the videoId, status (delivered/retrying/failed), and per-attempt HTTP results. Use this to check whether webhooks are arriving.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe subscription id (uuid).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the response includes delivery log details (videoId, status, per-attempt HTTP results). However, it does not discuss permissions, error conditions, or whether the tool is read-only, which would be helpful for a get operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first defines the action and output, the second gives the use case. No redundant words. Information is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single parameter and no output schema, the description adequately explains the return structure (delivery log with specific fields). It could mention more about error handling or the scope of 'recent', but it's largely complete for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'id' parameter with a clear description ('The subscription id (uuid).'). The tool description does not add any additional meaning about the parameter beyond what's in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Get one subscription including its recent delivery log', clearly specifying the action (get) and resource (subscription with delivery log). This distinguishes it from sibling tools like list_subscriptions (list many) and create_subscription (create). The inclusion of 'recent delivery log' adds specific scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States explicitly 'Use this to check whether webhooks are arriving', providing a clear use case. It doesn't mention when not to use it or compare to alternatives like test_subscription, but the context is clear enough for an agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subscriptionsA

List the account's channel→webhook subscriptions with state (pending/active/unsubscribed), lease expiry, and delivery counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It does not mention that listing is a read-only operation, nor does it address pagination, rate limits, or authentication needs. The description is minimal on behavior beyond the returned fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys purpose and key output details. Every word adds value, no redundancy. Ideal conciseness for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters, no output schema, and no annotations, the description adequately explains what is returned. However, it omits mention of subscription IDs or other common fields, and does not suggest ordering or filtering. Still, it covers the essential behavior for a listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so the schema coverage is 100%. Per guidelines, baseline is 4. No extra parameter information is needed, and the description does not repeat anything from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the action 'List', the resource 'account's channel→webhook subscriptions', and details the output fields (state, lease expiry, delivery counts). It clearly distinguishes from siblings like get_subscription by indicating a collective view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as get_subscription or test_subscription. The use case is implied (listing all subscriptions) but lacks contextual cues for the agent to choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_subscriptionA

Send a signed test.ping through the real delivery pipeline to a subscription's callback URL — verify the receiver works without waiting for a real video. Check get_subscription afterwards for the delivery result.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe subscription id (uuid).

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for transparency. It discloses that the tool sends a signed test ping through the real delivery pipeline and that the effect is verifying the receiver works. It could be improved by mentioning whether the subscription is modified or if there are rate limits, but overall it provides sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences. The first sentence clearly states the action, and the second provides follow-up guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter, no output schema, and no annotations, the description fully covers what the tool does, how to use it, and what to do after. It is complete and self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single required 'id' parameter, which is described as 'The subscription id (uuid).' The description does not add additional meaning beyond the schema, but given the high schema coverage, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: sending a signed test ping through the real delivery pipeline to a subscription's callback URL to verify the receiver works. The verb 'send' and resource 'subscription's callback URL' are specific and distinguish it from sibling tools like create_subscription or get_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using this tool to test callbacks without waiting for real videos, and suggests checking get_subscription afterwards for the delivery result. This provides clear context for when to use it, though it does not explicitly mention when not to use it or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upgrade_planA

Upgrade the account from free (1 feed) to Pro ($9/mo, 10 feeds). Returns a Stripe Checkout URL — give it to the user to open in a browser and pay; the plan flips automatically after checkout. Call this when create_subscription returns a 402 feed-limit error.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that it returns a Stripe Checkout URL and that the plan flips automatically. However, it omits details like authentication requirements, idempotency, or potential side effects if already on Pro.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and details. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no output schema, description covers purpose, trigger, and return value. Lacks mention of error handling or prerequisites like login, but adequate for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. Baseline for 0 params is 4. Description does not need to add parameter info, and it implies the tool uses the current account context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it upgrades account from free to Pro, specifying feed limits and pricing. It distinguishes from sibling create_subscription by explicitly mentioning the trigger condition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call: 'Call this when create_subscription returns a 402 feed-limit error.' Provides clear instruction to give the Stripe URL to the user. However, it does not mention when not to use or alternatives beyond the one trigger.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.4.0
    • First observedcreate_account
    • First observedcreate_subscription
    • First observeddelete_subscription
    • First observedget_account
    • First observedget_subscription
    • First observedlist_subscriptions
    • First observedtest_subscription
    • First observedupgrade_plan

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct action: account management (create, get, upgrade) versus subscription management (create, list, get, test, delete). No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_account, get_subscription), making them predictable and easy to distinguish.

Tool Count5/5

8 tools is well within the ideal 3-15 range, covering the core workflows without being overwhelming or insufficient.

Completeness4/5

Covers account lifecycle and subscription CRUD plus testing and plan upgrades. Missing an update subscription endpoint, but the service design may allow delete+recreate as a workaround.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides production-grade tools for YouTube channel resolution, video metadata extraction, transcripts, and playlist management. It features a quota-aware, AI-friendly design that supports structured searching and listing of public YouTube data.
    7
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Production-grade Model Context Protocol server for YouTube intelligence. Extract, analyze, and automate insights from YouTube channels and videos using the official YouTube Data API v3. Built for AI agents, automation pipelines, and content intelligence workflows.
    16
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/patwalls/feedhook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server