Skip to main content
Glama

Connect Stripe or GitHub with one key

anyhook_connect
Destructive

Wire a provider to AnyHook in one call: give a Stripe or GitHub key and AnyHook registers the app's inbound URL as a webhook at the provider, saves the signing secret it yields, and turns on signature verification at the edge. The provider is read from the key; the key is used once and not stored. Without appSlug a new app is created (and removed again if the provider refuses the key). Re-running replaces the registration instead of duplicating it. GitHub sends a signed ping immediately, so the first event appears within seconds. Until the app has a destination (anyhook_destination_add), events are received and logged but not forwarded.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "provider_key": "<provider_key>"
    },
    "name": "anyhook_connect"
  }
}

Input Schema

NameRequiredDescriptionDefault
targetNoGitHub only: "owner/repo", or an organization name for an org-wide hook. Optional when the token administers exactly one repository.
appSlugNoConnect this existing app. Omit to create a new app for the provider.
provider_keyYesA Stripe secret or restricted key (sk_… / rk_…) or a GitHub token (github_pat_… / ghp_…). The provider is read from the key. Used once to register the webhook at the provider; AnyHook does not store it. Least privilege: a Stripe restricted key with Webhook Endpoints = Write, or a fine-grained GitHub token with Webhooks = Read and write.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Changed1 schema field changed
    • removedInput schema / properties / api_key
      Removed value: -{
      -  "description": "API key (ahk_live_...) from anyhook_quickstart. Only needed over HTTP when no Authorization header is set; ignored over stdio.",
      -  "type": "string"
      -}
  3. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and openWorldHint=true, but the description adds substantive behavior the annotations cannot convey: the key is used once and not stored, a new app is created and rolled back if the provider rejects the key, re-running replaces the existing registration, and events are logged but not forwarded until a destination exists. That is exactly the side-effect and post-condition detail an agent needs before committing to a write.

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?

One paragraph, front-loaded with the action and followed by the facts an agent must know in dependency order: key handling, app creation/rollback, idempotency, verification evidence, and the forwarding caveat. No sentence is filler.

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 destructive, open-world mutation with no output schema, the description supplies prerequisites, side effects, rollback semantics, idempotency, verification behavior, and the required follow-up tool. Nothing needed to invoke it safely is missing.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds conditional meaning not spelled out in the schema: provider is inferred from the key format, and appSlug's omission has a concrete consequence (app creation with rollback). The target parameter's GitHub-only scope remains only in the schema, which keeps this from a 5.

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 opening clause gives a specific verb and resource — 'Wire a provider to AnyHook in one call' — and immediately bounds scope to Stripe or GitHub keys. It also disambiguates from anyhook_apps_create by stating that omitting appSlug creates the app implicitly, so an agent can act without opening the sibling schema.

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?

It states the trigger condition clearly (supply a Stripe or GitHub key), the no-appSlug fallback, and the re-run behavior that replaces rather than duplicates. It also routes the agent to anyhook_destination_add for the forwarding step, though it does not explicitly say when to create the app separately with anyhook_apps_create instead.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.