# Openhook (remote · openhook.dev)

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

- Trust score: 62/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `openhook.dev`: 62/100 (this document), [markdown](https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook.md), [page](https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook)

## Channel facts

- Endpoint: `https://openhook.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_webhook).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 1481 tokens (~46/item across 32 items; 29 tools + 3 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Openhook MCP server?

Openhook is a hosted endpoint at https://openhook.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http openhook-dev-openhook-inbox 'https://openhook.dev/mcp'
```

### Cursor

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

### VS Code

```json
{
  "servers": {
    "openhook-dev-openhook-inbox": {
      "type": "http",
      "url": "https://openhook.dev/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.openhook-dev-openhook-inbox]
url = "https://openhook.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "openhook-dev-openhook-inbox": {
      "type": "remote",
      "url": "https://openhook.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add openhook-dev-openhook-inbox --url 'https://openhook.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  openhook-dev-openhook-inbox:
    url: "https://openhook.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "openhook-dev-openhook-inbox": {
      "Transport": "http",
      "Url": "https://openhook.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add openhook-dev-openhook-inbox -t streamable-http -u 'https://openhook.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "openhook-dev-openhook-inbox": {
      "type": "http",
      "url": "https://openhook.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 62, 0)

- [security] Tool “access_hosted_inbox” is now declared destructive
- [security] Tool “configure_webhook” is now declared destructive
- [security] Tool “create_webhook” is now declared destructive
- [security] Tool “register_github_webhook” is now declared destructive
- [security] Tool “register_linear_webhook” is now declared destructive
- [security] Tool “register_stripe_webhook” is now declared destructive
- [security] Tool “respond_to_next_request” is now declared destructive
- [security] Tool “send_requests” is now declared destructive
- [security] Tool “update_request” is now declared destructive
- [cosmetic] Tool “access_hosted_inbox” changed its title: Access hosted inbox
- [cosmetic] Tool “check_for_callbacks” changed its title: Check for new callbacks
- [cosmetic] Tool “configure_webhook” changed its title: Configure webhook inbox
- [cosmetic] Tool “create_webhook” changed its title: Create webhook inbox
- [cosmetic] Tool “delete_all_requests” changed its title: Delete all captured events
- [cosmetic] Tool “delete_request” changed its title: Delete captured event
- [cosmetic] Tool “delete_webhook” changed its title: Delete webhook inbox
- [cosmetic] Tool “download_request_file” changed its title: Download captured content
- [cosmetic] Tool “export_webhook_data” changed its title: Export captured events
- [cosmetic] Tool “extract_links_from_request” changed its title: Extract captured links
- [cosmetic] Tool “generate_oob_payloads” changed its title: Get out-of-band callback addresses
- [cosmetic] Tool “get_hosted_inboxes” changed its title: List hosted inboxes
- [cosmetic] Tool “get_request” changed its title: Read captured event
- [cosmetic] Tool “get_webhook_activity” changed its title: Read inbox activity
- [cosmetic] Tool “get_webhook_email” changed its title: Get inbox email address
- [cosmetic] Tool “get_webhook_info” changed its title: Inspect webhook inbox
- [cosmetic] Tool “get_webhook_requests” changed its title: List captured events
- [cosmetic] Tool “register_github_webhook” changed its title: Register GitHub webhook
- [cosmetic] Tool “register_linear_webhook” changed its title: Register Linear webhook
- [cosmetic] Tool “register_stripe_webhook” changed its title: Register Stripe webhook
- [cosmetic] Tool “respond_to_next_request” changed its title: Configure next callback response
- [cosmetic] Tool “rotate_webhook_token” changed its title: Rotate inbox token
- [cosmetic] Tool “search_requests” changed its title: Search captured events
- [cosmetic] Tool “send_requests” changed its title: Create test events
- [cosmetic] Tool “server_status” changed its title: Inspect server status
- [cosmetic] Tool “unregister_webhook” changed its title: Unregister provider webhook
- [cosmetic] Tool “update_request” changed its title: Annotate captured event
- [cosmetic] Tool “wait_for_email” changed its title: Wait for email
- [cosmetic] Tool “wait_for_request” changed its title: Wait for a callback

### 2026-10-16 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-15 (score 61, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-14 (score 61)

First indexed and scored.

## MCP tools (29)

### `server_status` (~19 tokens)

Inspect server status

Inspect native storage, retention, and enabled capture transports.

### `create_webhook` (~57 tokens)

Create webhook inbox

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

Input parameters:

- `account_key` (string)
- `expiry` (integer)
- `name` (string)

### `get_hosted_inboxes` (~36 tokens)

List hosted inboxes

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

Input parameters:

- `account_key` (string, required)

### `access_hosted_inbox` (~47 tokens)

Access hosted inbox

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

Input parameters:

- `account_key` (string, required)
- `inbox_id` (string, required)

### `configure_webhook` (~68 tokens)

Configure webhook inbox

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

Input parameters:

- `cors`
- `default_content`
- `default_content_type`
- `default_status`
- `signature_provider`
- `verification_secret`
- `webhook_token` (string, required)

### `get_webhook_info` (~31 tokens)

Inspect webhook inbox

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

Input parameters:

- `webhook_token` (string, required)

### `get_webhook_email` (~30 tokens)

Get inbox email address

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

Input parameters:

- `webhook_token` (string, required)

### `register_github_webhook` (~57 tokens)

Register GitHub webhook

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

Input parameters:

- `access_token` (string, required)
- `account_key` (string)
- `events` (array, required)
- `repository` (string, required)

### `register_stripe_webhook` (~50 tokens)

Register Stripe webhook

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

Input parameters:

- `access_token` (string, required)
- `account_key` (string)
- `events` (array, required)

### `register_linear_webhook` (~59 tokens)

Register Linear webhook

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

Input parameters:

- `access_token` (string, required)
- `account_key` (string)
- `resource_types` (array, required)
- `team_id` (string)

### `unregister_webhook` (~39 tokens)

Unregister provider webhook

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

Input parameters:

- `access_token` (string, required)
- `webhook_token` (string, required)

### `delete_webhook` (~27 tokens)

Delete webhook inbox

Permanently delete this inbox and its stored events.

Input parameters:

- `webhook_token` (string, required)

### `rotate_webhook_token` (~35 tokens)

Rotate inbox token

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

Input parameters:

- `webhook_token` (string, required)

### `get_webhook_requests` (~55 tokens)

List captured events

Read events with pagination or a durable sequence cursor.

Input parameters:

- `limit` (integer)
- `page` (integer)
- `request_type`
- `since` (integer)
- `webhook_token` (string, required)

### `get_webhook_activity` (~48 tokens)

Read inbox activity

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

Input parameters:

- `limit` (integer)
- `since` (integer)
- `webhook_token` (string, required)

### `search_requests` (~56 tokens)

Search captured events

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

Input parameters:

- `limit` (integer)
- `page` (integer)
- `query` (string, required)
- `request_type`
- `webhook_token` (string, required)

### `get_request` (~36 tokens)

Read captured event

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

Input parameters:

- `request_id`
- `webhook_token` (string, required)

### `update_request` (~42 tokens)

Annotate captured event

Annotate an event without changing its original captured body.

Input parameters:

- `note` (string, required)
- `request_id` (string, required)
- `webhook_token` (string, required)

### `download_request_file` (~40 tokens)

Download captured content

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

Input parameters:

- `request_id` (string, required)
- `webhook_token` (string, required)

### `delete_request` (~34 tokens)

Delete captured event

Permanently delete one event belonging to this inbox.

Input parameters:

- `request_id` (string, required)
- `webhook_token` (string, required)

### `delete_all_requests` (~29 tokens)

Delete all captured events

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

Input parameters:

- `webhook_token` (string, required)

### `export_webhook_data` (~52 tokens)

Export captured events

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

Input parameters:

- `format` (string)
- `since` (integer)
- `webhook_token` (string, required)

### `wait_for_request` (~62 tokens)

Wait for a callback

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

Input parameters:

- `request_type`
- `return_existing` (boolean)
- `since`
- `timeout_seconds` (number)
- `webhook_token` (string, required)

### `wait_for_email` (~50 tokens)

Wait for email

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

Input parameters:

- `return_existing` (boolean)
- `since`
- `timeout_seconds` (number)
- `webhook_token` (string, required)

### `send_requests` (~36 tokens)

Create test events

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

Input parameters:

- `payloads` (array, required)
- `webhook_token` (string, required)

### `extract_links_from_request` (~35 tokens)

Extract captured links

Extract HTTP links and verification codes without visiting the URLs.

Input parameters:

- `request_id`
- `webhook_token` (string, required)

### `generate_oob_payloads` (~29 tokens)

Get out-of-band callback addresses

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

Input parameters:

- `webhook_token` (string, required)

### `check_for_callbacks` (~35 tokens)

Check for new callbacks

Check for callbacks newer than a sequence cursor without waiting.

Input parameters:

- `since` (integer)
- `webhook_token` (string, required)

### `respond_to_next_request` (~69 tokens)

Configure next callback response

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

Input parameters:

- `content` (string, required)
- `content_type` (string)
- `status` (integer)
- `timeout_seconds` (number)
- `webhook_token` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook#diagnostics

## Score history

- 2026-10-17: 62
- 2026-10-16: 62
- 2026-10-15: 61
- 2026-10-14: 61

## Common questions

### What is the Openhook MCP server?

Openhook is an MCP server listed in the public MCP registry as io.github.openhook-dev/openhook-inbox. Webhook, email and DNS inboxes for AI agents to capture callbacks and test integrations. This page covers its hosted endpoint (https://openhook.dev/mcp).

### Is the Openhook MCP server safe to use?

Openhook scores 62 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Openhook MCP server expose?

Openhook exposes 29 tools: server_status, create_webhook, get_hosted_inboxes, access_hosted_inbox, configure_webhook, and 24 more. Their descriptions and schemas cost roughly 1,263 tokens of context every time the server is loaded.

### Does the Openhook MCP server require authentication?

No. We connected to Openhook without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Openhook MCP server still maintained?

Openhook is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://openhook.dev/mcp
- Repository: https://github.com/openhook-dev/openhook-inbox
- Website: https://openhook.dev/
- Changelog RSS feed: https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook.xml
- Changelog JSON feed: https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook.json
- HTML version of this page: https://verifymcp.io/servers/openhook-dev-openhook-inbox/openhook
