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개