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 verb在 access_hosted_inbox 中
  • LOWTool 'update_request' description lacks action verb在 update_request 中
  • LOWTool 'extract_links_from_request' description lacks action verb在 extract_links_from_request 中
  • LOWTool 'create_webhook' suggests web access but openWorldHint=false在 create_webhook 中
  • LOWTool 'configure_webhook' suggests web access but openWorldHint=false在 configure_webhook 中
  • LOWTool 'get_webhook_info' suggests web access but openWorldHint=false在 get_webhook_info 中
  • LOWTool 'get_webhook_email' suggests web access but openWorldHint=false在 get_webhook_email 中
  • LOWTool 'delete_webhook' suggests web access but openWorldHint=false在 delete_webhook 中
  • LOWTool 'rotate_webhook_token' suggests web access but openWorldHint=false在 rotate_webhook_token 中
  • LOWTool 'get_webhook_requests' suggests web access but openWorldHint=false在 get_webhook_requests 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,337token 数(工具定义)
~860 B典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.61%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `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 个工具