Openhook

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

使うべきか

品質と安全性

B
説明の品質
93%
スキーマの完全性
76%
命名の品質
94%
ポイズニングのリスク
100%
権限の一致
10%
プロトコルへの準拠
100%

検出事項(12)

  • LOWTool 'access_hosted_inbox' description lacks action verbaccess_hosted_inbox 内
  • LOWTool 'update_request' description lacks action verbupdate_request 内
  • LOWTool 'extract_links_from_request' description lacks action verbextract_links_from_request 内
  • LOWTool 'create_webhook' suggests web access but openWorldHint=falsecreate_webhook 内
  • LOWTool 'configure_webhook' suggests web access but openWorldHint=falseconfigure_webhook 内
  • LOWTool 'get_webhook_info' suggests web access but openWorldHint=falseget_webhook_info 内
  • LOWTool 'get_webhook_email' suggests web access but openWorldHint=falseget_webhook_email 内
  • LOWTool 'delete_webhook' suggests web access but openWorldHint=falsedelete_webhook 内
  • LOWTool 'rotate_webhook_token' suggests web access but openWorldHint=falserotate_webhook_token 内
  • LOWTool 'get_webhook_requests' suggests web access but openWorldHint=falseget_webhook_requests 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,337トークン数(ツール定義)
~860 B一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.61%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

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

リモートエンドポイント

https://openhook.dev/mcpstreamable-http

できること

ツール一覧

ツール(29)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢server_status

Inspect native storage, retention, and enabled capture transports.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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.

入力スキーマ

{
  "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"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 29 件