Openhook

Webhook, email and DNS inboxes for AI agents to capture callbacks and test integrations.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
93%
Vollständigkeit des Schemas
76%
Qualität der Benennung
94%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
10%
Einhaltung des Protokolls
100%

Befunde (12)

  • LOWTool 'access_hosted_inbox' description lacks action verbin access_hosted_inbox
  • LOWTool 'update_request' description lacks action verbin update_request
  • LOWTool 'extract_links_from_request' description lacks action verbin extract_links_from_request
  • LOWTool 'create_webhook' suggests web access but openWorldHint=falsein create_webhook
  • LOWTool 'configure_webhook' suggests web access but openWorldHint=falsein configure_webhook
  • LOWTool 'get_webhook_info' suggests web access but openWorldHint=falsein get_webhook_info
  • LOWTool 'get_webhook_email' suggests web access but openWorldHint=falsein get_webhook_email
  • LOWTool 'delete_webhook' suggests web access but openWorldHint=falsein delete_webhook
  • LOWTool 'rotate_webhook_token' suggests web access but openWorldHint=falsein rotate_webhook_token
  • LOWTool 'get_webhook_requests' suggests web access but openWorldHint=falsein get_webhook_requests

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,337Tokens (Tool-Definitionen)
~860 BTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.61% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "openhook-inbox": {
      "url": "https://openhook.dev/mcp"
    }
  }
}

Remote-Endpunkte

https://openhook.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (29)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢server_status

Inspect native storage, retention, and enabled capture transports.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "title": "server_statusArguments"
}
🟡create_webhook(expiry, name, account_key)

Create an inbox. Save its private token; share only public capture addresses. A hosted Pro account_key creates a persistent owned inbox.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "expiry": {
      "default": 604800,
      "title": "Expiry",
      "type": "integer"
    },
    "name": {
      "default": "",
      "title": "Name",
      "type": "string"
    },
    "account_key": {
      "default": "",
      "title": "Account Key",
      "type": "string"
    }
  },
  "title": "create_webhookArguments"
}
🟢get_hosted_inboxes(account_key)

Hosted only: list your persistent inboxes and usage using a private account agent key.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "account_key": {
      "title": "Account Key",
      "type": "string"
    }
  },
  "required": [
    "account_key"
  ],
  "title": "get_hosted_inboxesArguments"
}
⚪access_hosted_inbox(account_key, inbox_id)

Hosted only: issue a private inbox token for an inbox you own. Keep the returned token private.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "account_key": {
      "title": "Account Key",
      "type": "string"
    },
    "inbox_id": {
      "title": "Inbox Id",
      "type": "string"
    }
  },
  "required": [
    "account_key",
    "inbox_id"
  ],
  "title": "access_hosted_inboxArguments"
}
🟡configure_webhook(webhook_token, default_status, default_content, default_content_type, cors, ...)

Set HTTP responses and optional SHA256 HMAC verification, preserving unspecified fields.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "default_status": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Default Status"
    },
    "default_content": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "items": {},
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Default Content"
    },
    "default_content_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Default Content Type"
    },
    "cors": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cors"
    },
    "verification_secret": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Verification Secret"
    },
    "signature_provider": {
      "anyOf": [
        {
          "enum": [
            "generic",
            "github",
            "stripe",
            "linear"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Signature Provider"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "configure_webhookArguments"
}
🟢get_webhook_info(webhook_token)

Read addresses, expiry, response settings, and retained event count.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "get_webhook_infoArguments"
}
🟢get_webhook_email(webhook_token)

Read the email address, available when this deployment runs SMTP.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "get_webhook_emailArguments"
}
🟡register_github_webhook(access_token, repository, events, account_key)

Create a signed GitHub repository subscription and native inbox. Requires webhook-write permission.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "access_token": {
      "title": "Access Token",
      "type": "string"
    },
    "repository": {
      "title": "Repository",
      "type": "string"
    },
    "events": {
      "items": {
        "type": "string"
      },
      "title": "Events",
      "type": "array"
    },
    "account_key": {
      "default": "",
      "title": "Account Key",
      "type": "string"
    }
  },
  "required": [
    "access_token",
    "repository",
    "events"
  ],
  "title": "register_github_webhookArguments"
}
🟡register_stripe_webhook(access_token, events, account_key)

Create a signed Stripe webhook endpoint and native inbox. Provider credentials are not stored.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "access_token": {
      "title": "Access Token",
      "type": "string"
    },
    "events": {
      "items": {
        "type": "string"
      },
      "title": "Events",
      "type": "array"
    },
    "account_key": {
      "default": "",
      "title": "Account Key",
      "type": "string"
    }
  },
  "required": [
    "access_token",
    "events"
  ],
  "title": "register_stripe_webhookArguments"
}
🟡register_linear_webhook(access_token, resource_types, team_id, account_key)

Create a signed Linear subscription and native inbox. Requires admin scope; optional team filter.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "access_token": {
      "title": "Access Token",
      "type": "string"
    },
    "resource_types": {
      "items": {
        "type": "string"
      },
      "title": "Resource Types",
      "type": "array"
    },
    "team_id": {
      "default": "",
      "title": "Team Id",
      "type": "string"
    },
    "account_key": {
      "default": "",
      "title": "Account Key",
      "type": "string"
    }
  },
  "required": [
    "access_token",
    "resource_types"
  ],
  "title": "register_linear_webhookArguments"
}
🔴unregister_webhook(webhook_token, access_token)

Remove the registered provider subscription and permanently delete its native inbox and events.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "access_token": {
      "title": "Access Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token",
    "access_token"
  ],
  "title": "unregister_webhookArguments"
}
🔴delete_webhook(webhook_token)

Permanently delete this inbox and its stored events.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "delete_webhookArguments"
}
🔴rotate_webhook_token(webhook_token)

Revoke the old private token and return a new one; capture addresses stay unchanged.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "rotate_webhook_tokenArguments"
}
🟢get_webhook_requests(webhook_token, limit, page, since, request_type)

Read events with pagination or a durable sequence cursor.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "title": "Limit",
      "type": "integer"
    },
    "page": {
      "default": 1,
      "title": "Page",
      "type": "integer"
    },
    "since": {
      "default": 0,
      "title": "Since",
      "type": "integer"
    },
    "request_type": {
      "anyOf": [
        {
          "enum": [
            "web",
            "email",
            "dns"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Type"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "get_webhook_requestsArguments"
}
🟢get_webhook_activity(webhook_token, since, limit)

Read durable receipt and mutation history with a cursor. Bodies and secrets are excluded.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "since": {
      "default": 0,
      "title": "Since",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "get_webhook_activityArguments"
}
🟢search_requests(webhook_token, query, request_type, limit, page)

Search captured bodies, URLs, and headers for a literal substring.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "query": {
      "title": "Query",
      "type": "string"
    },
    "request_type": {
      "anyOf": [
        {
          "enum": [
            "web",
            "email",
            "dns"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Type"
    },
    "limit": {
      "default": 50,
      "title": "Limit",
      "type": "integer"
    },
    "page": {
      "default": 1,
      "title": "Page",
      "type": "integer"
    }
  },
  "required": [
    "webhook_token",
    "query"
  ],
  "title": "search_requestsArguments"
}
🟢get_request(webhook_token, request_id)

Read a complete event; omit request_id to inspect the newest one.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "get_requestArguments"
}
🟡update_request(webhook_token, request_id, note)

Annotate an event without changing its original captured body.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "request_id": {
      "title": "Request Id",
      "type": "string"
    },
    "note": {
      "title": "Note",
      "type": "string"
    }
  },
  "required": [
    "webhook_token",
    "request_id",
    "note"
  ],
  "title": "update_requestArguments"
}
🟢download_request_file(webhook_token, request_id)

Retrieve exact captured bytes as base64, including binary bodies or raw MIME.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "request_id": {
      "title": "Request Id",
      "type": "string"
    }
  },
  "required": [
    "webhook_token",
    "request_id"
  ],
  "title": "download_request_fileArguments"
}
🔴delete_request(webhook_token, request_id)

Permanently delete one event belonging to this inbox.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "request_id": {
      "title": "Request Id",
      "type": "string"
    }
  },
  "required": [
    "webhook_token",
    "request_id"
  ],
  "title": "delete_requestArguments"
}
🔴delete_all_requests(webhook_token)

Clear stored events, keeping the inbox's addresses and settings.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "delete_all_requestsArguments"
}
🟢export_webhook_data(webhook_token, format, since)

Export a bounded page of full events; resume with next_since. Browser export streams the entire inbox.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "format": {
      "default": "json",
      "enum": [
        "json",
        "csv"
      ],
      "title": "Format",
      "type": "string"
    },
    "since": {
      "default": 0,
      "title": "Since",
      "type": "integer"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "export_webhook_dataArguments"
}
🟢wait_for_request(webhook_token, timeout_seconds, request_type, since, return_existing)

Wait up to 120 seconds; pass next_since when reconnecting to avoid missing events.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "timeout_seconds": {
      "default": 60,
      "title": "Timeout Seconds",
      "type": "number"
    },
    "request_type": {
      "anyOf": [
        {
          "enum": [
            "web",
            "email",
            "dns"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Type"
    },
    "since": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Since"
    },
    "return_existing": {
      "default": false,
      "title": "Return Existing",
      "type": "boolean"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "wait_for_requestArguments"
}
🟢wait_for_email(webhook_token, timeout_seconds, since, return_existing)

Wait for an email received by Openhook's SMTP listener.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "timeout_seconds": {
      "default": 60,
      "title": "Timeout Seconds",
      "type": "number"
    },
    "since": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Since"
    },
    "return_existing": {
      "default": false,
      "title": "Return Existing",
      "type": "boolean"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "wait_for_emailArguments"
}
🟡send_requests(webhook_token, payloads)

Create up to ten marked test HTTP events in this inbox.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "payloads": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Payloads",
      "type": "array"
    }
  },
  "required": [
    "webhook_token",
    "payloads"
  ],
  "title": "send_requestsArguments"
}
🟢extract_links_from_request(webhook_token, request_id)

Extract HTTP links and verification codes without visiting the URLs.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "extract_links_from_requestArguments"
}
🟢generate_oob_payloads(webhook_token)

Read callback addresses for authorized out-of-band testing.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "generate_oob_payloadsArguments"
}
🟢check_for_callbacks(webhook_token, since)

Check for callbacks newer than a sequence cursor without waiting.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "since": {
      "default": 0,
      "title": "Since",
      "type": "integer"
    }
  },
  "required": [
    "webhook_token"
  ],
  "title": "check_for_callbacksArguments"
}
⚪respond_to_next_request(webhook_token, content, status, content_type, timeout_seconds)

Respond to the next request using ?openhook_wait=1, within its 20-second response window.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "webhook_token": {
      "title": "Webhook Token",
      "type": "string"
    },
    "content": {
      "title": "Content",
      "type": "string"
    },
    "status": {
      "default": 200,
      "title": "Status",
      "type": "integer"
    },
    "content_type": {
      "default": "text/plain",
      "title": "Content Type",
      "type": "string"
    },
    "timeout_seconds": {
      "default": 60,
      "title": "Timeout Seconds",
      "type": "number"
    }
  },
  "required": [
    "webhook_token",
    "content"
  ],
  "title": "respond_to_next_requestArguments"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet29 Tools