Skip to main content

Available Tools

The Hooklistener MCP server exposes 73 tools, grouped into seven toolsets.

Toolsets​

To keep your assistant's context small, each session lists only the toolsets your organization uses:

ToolsetListed when
webhooksAlways
rulesYour organization has a mock response rule, request-thread rule, or endpoint alert
casesYour organization has a saved replay case
realtimeYour organization has a real-time endpoint
emailYour organization has an email inbox
monitorsYour organization has an uptime monitor
tunnelsYour organization has an active tunnel investigation case

Each toolset's entry tool (create_response_rule, save_request_case, create_realtime_endpoint, create_inbox, create_monitor) is always listed, so your assistant can start using any product. After it creates the first resource of that kind, reconnect the MCP client to list the rest of that toolset.

To choose toolsets yourself, send the x-hooklistener-toolsets header with a comma-separated list (for example email,monitors) or all. webhooks is always included. See Setup.

Toolsets only change which tools are listed. Every tool stays callable within your grant's scope.

Webhooks​

Listed in every session.

Debug endpoints​

ToolDescription
list_endpointsList debug endpoints in the current organization
get_endpointGet endpoint details and webhook URL
create_endpointCreate a debug endpoint
update_endpointUpdate endpoint name, status, or default response
delete_endpointPreview or permanently delete an endpoint

Captured requests​

ToolDescription
list_requestsList captured requests for an endpoint, or search across the organization with fuzzy text and event, status, or time filters
get_requestGet full request details, including headers and body
wait_for_requestWait for a matching request, check existing traffic, or resume from a cursor
delete_requestPreview or permanently delete a captured request
diagnose_requestSummarize response, forwarding, body, and mock-rule issues for a request
investigate_request_retriesCorrelate repeated deliveries and compare their payloads, timing, and outcomes
verify_request_signatureVerify a Stripe, GitHub, or Slack signature with a stored secret
validate_requestValidate a captured JSON body against a JSON Schema
diff_requestsDeterministically compare two requests, including across endpoints
compare_requestsCompare 2–5 requests with AI-assisted analysis
replay_requestPreview and replay a request, optionally edited or re-signed, to a URL or active CLI listener
list_request_forwardsPage through forward and replay receipts for a request

Secrets, async tasks and feedback​

Secrets are encrypted organization-scoped values that tools can reference, for example to verify or re-sign webhooks.

ToolDescription
list_secretsList secret names and metadata; values are never returned
create_secretCreate an encrypted secret
delete_secretPreview or permanently delete a secret
cancel_taskStop a queued or running asynchronous task
submit_feedbackSend feedback about Hooklistener to its developers, after asking you. Works with every access level.

Rules​

Conditional mock responses, request threads, and alerts.

ToolDescription
create_response_ruleCreate or preview a conditional response rule (always listed)
update_response_ruleUpdate, enable, disable, or preview a response rule
delete_response_rulePreview or permanently delete a response rule
test_response_rulesEvaluate an endpoint's rules against a synthetic request
list_request_threadsList correlation threads for an endpoint
list_thread_requestsList the requests in one thread
set_thread_ruleCreate or update an endpoint's thread correlation rule
delete_thread_rulePreview or delete a thread rule
set_endpoint_alertsTurn request alerts on or off for an endpoint
list_endpoint_anomaliesList anomalies detected in an endpoint's traffic

Cases​

Replay cases save captured requests as repeatable integration tests with optional response assertions.

ToolDescription
save_request_caseSave a captured request as a replay case (always listed)
list_endpoint_casesList saved cases for an endpoint
update_request_caseUpdate case metadata, replay overrides, or assertions
delete_request_casePreview or permanently delete a saved case
replay_request_caseReplay one saved case
list_endpoint_case_suitesList named suites for an endpoint
create_endpoint_case_suiteCreate a named case suite
update_case_suiteUpdate a suite name or description
delete_case_suitePreview or permanently delete a suite
add_case_to_suiteAdd a saved case to a suite
remove_case_from_suiteRemove a saved case from a suite
run_endpoint_casesRun all endpoint cases, or one suite
list_endpoint_case_runsList case run reports for an endpoint
get_case_runGet a case run report
wait_for_case_runWait for a case run to complete

Common replay case fields:

FieldUsed byDescription
endpoint_idList/save/run toolsDebug endpoint ID
request_idsave_request_caseCaptured request ID to save
case_idCase replay/update/delete toolsSaved request case ID
case_suite_idSuite run/report toolsOptional suite ID
target_urlReplay/run toolsDestination URL
target_idReplay/run toolsSaved endpoint replay target ID
targetReplay/run toolsSet to cli to use an active CLI listener
target_namerun_endpoint_casesOptional name to save for a custom URL
expected_status_codeSave/update toolsResponse status assertion
expected_json_body_subset_jsonSave/update toolsJSON object expected in the replay response body
waitrun_endpoint_casesWait for queued forwards and return aggregate results
timeout_msRun/wait toolsMaximum wait time, capped at 120 seconds

Realtime​

WebSocket, Socket.IO, MQTT-over-WebSocket, and SSE debugging.

ToolDescription
create_realtime_endpointCreate a real-time debug endpoint (always listed)
list_realtime_endpointsList real-time endpoints with connection URLs and live session counts
list_realtime_sessionsList open and closed client sessions for an endpoint
get_realtime_messagesRead a session's messages, or search across an endpoint's sessions
send_realtime_messageSend a message to one client, or broadcast to every open session
wait_for_realtime_messageWait for a client message or a new session
manage_realtime_rulesList, create, update, or delete auto-responder rules
delete_realtime_endpointPreview or permanently delete a real-time endpoint

create_realtime_endpoint and list_realtime_endpoints return each endpoint's connection_url. Socket.IO endpoints also get a socketio object (url, path, transports, token_via and a ready snippet). MQTT endpoints get an mqtt object (host, port, path, transport, protocol_versions, broker, mode, default_topic and auth). See Socket.IO and MQTT.

create_realtime_endpoint takes name, protocol (websocket, socketio, mqtt or sse), auth_token, upstream_url and on_connect_payload. For MQTT it also takes mqtt_broker: true (the default) routes publishes between the endpoint's clients, and false only captures them.

send_realtime_message sends to one session_id, or broadcasts when you leave it out. It takes payload, event_type, event_id and binary (a base64 payload sent as a binary frame), plus protocol fields:

FieldProtocolDescription
namespaceSocket.IONamespace to emit on (default /). The client must have connected it.
spread_argsSocket.IOSend a JSON array payload as one argument per element
topicMQTTTopic to publish on, without + or #. Without one, the client's only plain subscription, else hooklistener. In broker mode a broadcast reaches only clients subscribed to it.
qosMQTT0 (default), 1 or 2
retainMQTTSet the RETAIN flag. On broker endpoints the message also becomes the topic's retained message.

Text payloads may contain {{variables}} such as {{uuid}} or {{now}}; the tool renders them before sending. See Templating.

delete_realtime_endpoint closes the endpoint's open sessions with 1001, then permanently deletes the endpoint with its sessions, messages, rules and scenarios. Call it with dry_run: true to preview what would be deleted, including the number of open sessions, and with confirmed: true to delete. It is in the realtime toolset and needs write access: a Full access grant, or an API key with the write scope. Read-only grants are refused.

Email​

Test inboxes for signup, login and other emails, and forwarding received email to webhooks. See Test emails with AI agents.

ToolDescription
create_inboxCreate a test inbox (always listed)
list_inboxesList inboxes with their addresses, email counts and webhook forwards
list_emailsList captured emails for an inbox, newest first, with filters
get_emailGet a captured email with its likely code, verification_link, codes, links and attachments
wait_for_emailWait for a matching email to arrive, or return one that already arrived after since
delete_emailsPreview or permanently delete one email, or every email in an inbox
delete_inboxPreview or permanently delete an inbox and its emails
set_inbox_forwardCreate or update a webhook forward that POSTs each received email to a URL
delete_inbox_forwardPreview or permanently delete a webhook forward

Common email fields:

FieldUsed byDescription
inbox_idAll but create_inbox and list_inboxesEmail inbox ID
sincewait_for_email, list_emailsOnly emails after this: an ISO 8601 timestamp with a UTC offset, or an email ID from the inbox. wait_for_email returns a matching email that already arrived at once
towait_for_email, list_emails, set_inbox_forwardExact recipient, case-insensitive. Use a unique plus-address per run (<slug>[email protected])
fromwait_for_email, list_emails, set_inbox_forwardCase-insensitive substring of the From header
subject_containswait_for_email, list_emails, set_inbox_forwardCase-insensitive substring of the subject
timeoutwait_for_emailSeconds to wait, default 30, max 60
blockingwait_for_emailWait in the call instead of returning a task receipt. By default the tool returns at once and the result is read from hooklistener://tasks/{task_id}
include_textget_email, wait_for_emailAdd text, a readable plain-text rendering of the email
include_bodyget_email, wait_for_emailAdd the full text and HTML bodies
include_raw_headersget_email, wait_for_emailAdd the parsed headers and every header in order
include_rawget_email, wait_for_emailAdd the raw email source
email_idget_email, delete_emailsEmail ID. delete_emails without it clears the whole inbox
forward_idset_inbox_forward, delete_inbox_forwardForward to update or delete. set_inbox_forward without it creates a forward
urlset_inbox_forwardPublic http(s) URL that receives each email
dry_run, confirmedDelete toolsPreview the deletion, or confirm it

For wait_for_email, include_text applies to blocking and async waits; the other include_* fields apply to blocking waits only.

Email resources:

ResourceContents
hooklistener://email/inboxesThe organization's inboxes
hooklistener://email/inboxes/{inbox_id}/messagesRecent emails of an inbox
hooklistener://email/messages/{email_id}One email, as get_email returns it
hooklistener://email/messages/{email_id}/bodyFull text and HTML bodies
hooklistener://email/messages/{email_id}/headersParsed headers and every header in order
hooklistener://email/messages/{email_id}/attachments/{index}One attachment: text for text/* types, base64 otherwise, up to 1 MiB

Monitors​

ToolDescription
create_monitorCreate an uptime monitor (always listed)
list_monitorsList uptime monitors
get_monitor_statusGet uptime, status, and recent checks for a monitor
update_monitorUpdate monitor configuration
delete_monitorPreview or permanently delete a monitor

Tunnels​

Tunnel investigation tools require a finite grant created through the authenticated Hooklistener API. MCP cannot create or broaden grants.

ToolDescription
plan_tunnel_actionPlan a tunnel action without changing state
read_tunnel_capture_sensitiveRead sensitive capture evidence with an exact scoped grant
add_tunnel_case_captureAdd a capture to a case after explicit confirmation
replay_tunnel_captureReplay a capture after explicit confirmation

Removed tools​

  • search_requests: use list_requests with query or an event, status, or time filter.
  • forward_request: use replay_request with target_url.
  • Datastore and endpoint action tools are no longer available. Use replay cases for repeatable webhook integration testing, and secrets for encrypted configuration values.