Integration

Hookdeck integration

Hookdeck is an event gateway that receives, queues, filters, transforms and delivers webhooks. Manage sources (inbound URLs), destinations (where events go), connections between them with retry, delay, filter, transform and deduplicate rules, transformations and issue triggers; inspect requests, events and delivery attempts with their raw bodies, retry, replay or cancel them one by one or in bulk, track and resolve issues, bookmark events and query delivery metrics. Organization and project administration (projects, custom domains, API keys), the legacy integrations routes and the deprecated archive, unarchive and mute aliases are not exposed. Stored credentials are never returned: a source's or destination's authentication secrets and a transformation's environment variables can be set but are left out of every answer. Authentication is a Hookdeck project API key sent as a Bearer token; the API allows 240 requests per minute per key.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Hookdeck.Built from the 106 Hookdeck tools below, on the connection you add once.

What you can do with Hookdeck

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Retry, 11 operations

  • create_event_bulk_retryCreate event bulk retryPOSTResends real webhooks: starts a job that re-delivers every event matching query to its destination (a new attempt each). Preview first with generate_event_bulk_retry_plan; stop it with cancel_event_bulk_retry.
  • create_ignored_event_bulk_retryCreate ignored event bulk retryPOSTResends real webhooks: starts a job that retries every ignored event matching query, so they are processed again with the current configuration and delivered where a connection now matches. Preview first with generate_ignored_event_bulk_retry_plan.
  • create_request_bulk_retryCreate request bulk retryPOSTResends real webhooks: starts a job that re-runs every request matching query, creating new events that are delivered to its connections' destinations. Preview first with generate_request_bulk_retry_plan.
  • get_event_bulk_retryGet event bulk retryGETReturns one events bulk retry job with its query, progress, estimated and completed counts.
  • get_ignored_event_bulk_retryGet ignored event bulk retryGETReturns one ignored events bulk retry job with its query, progress and counts.
  • get_request_bulk_retryGet request bulk retryGETReturns one requests bulk retry job with its query, progress and counts.
  • list_event_bulk_retriesList event bulk retriesGETLists bulk retry jobs on events, with their query, progress and counts.
  • list_ignored_event_bulk_retriesList ignored event bulk retriesGETLists bulk retry jobs on ignored events (events a connection's filter or a disabled resource dropped).
  • list_request_bulk_retriesList request bulk retriesGETLists bulk retry jobs on requests, with their query, progress and counts.
  • retry_eventRetry eventPOSTResends a real webhook: Hookdeck makes a new delivery attempt of the event to its destination right away. Returns the retried event with the new attempt.
  • retry_requestRetry requestPOSTResends a real webhook: re-runs a request's event logic, creating new events delivered to its connections' destinations (all matching ones, or only webhook_ids). Useful to retry ignored events.

Cancel, 8 operations

  • cancel_eventCancel eventPUTThis endpoint cancels a pending event. Only events with a status of `QUEUED`, `SCHEDULED`, or `HOLD` can be cancelled.
  • cancel_event_bulk_retryCancel event bulk retryPOSTStops a pending or running events bulk retry job; events already retried stay retried.
  • cancel_ignored_event_bulk_retryCancel ignored event bulk retryPOSTStops a pending or running ignored events bulk retry job.
  • cancel_request_bulk_replayCancel request bulk replayPOSTStops a pending or running requests bulk replay job.
  • cancel_request_bulk_retryCancel request bulk retryPOSTStops a pending or running requests bulk retry job.
  • create_event_bulk_cancelCreate event bulk cancelPOSTStarts a job that cancels every pending event matching query (events that are QUEUED, SCHEDULED or HOLD stop being delivered). Preview first with generate_event_bulk_cancel_plan.
  • get_event_bulk_cancelGet event bulk cancelGETReturns one bulk cancel job with its query, progress, estimated and completed counts.
  • list_event_bulk_cancelsList event bulk cancelsGETLists bulk cancel jobs on events, with their query, progress and counts.

Transformation, 7 operations

  • create_transformationCreate transformationPOSTCreates a transformation from JavaScript code (an addHandler('transform', ...) function) and optional environment variables. Attach it to a connection with a transform rule.
  • delete_transformationDelete transformationDELETEThis endpoint permanently deletes a transformation. This action cannot be undone.
  • get_transformationGet transformationGETThis endpoint retrieves a specific transformation.
  • list_transformationsList transformationsGETLists transformations (JavaScript functions that rewrite event data on a connection), up to 250 per page. Filter by name or id.
  • query_transformation_metricsQuery transformation metricsGETAggregates transformation execution metrics over date_range in time buckets: counts and log levels (measures), grouped by transformation or connection.
  • update_transformationUpdate transformationPUTUpdates a transformation's name, code or environment variables. Leave a field out to keep its current value.
  • upsert_transformationUpsert transformationPUTCreates a transformation, or updates the one with the same name.

Connection, 6 operations

  • create_connectionCreate connectionPOSTCreates a connection from a source to a destination. Reference existing ones with source_id and destination_id, or create them inline with source and destination objects; add retry, delay, filter, transform or deduplicate rules.
  • delete_connectionDelete connectionDELETEThis endpoint permanently deletes a connection. This action cannot be undone.
  • get_connectionGet connectionGETThis endpoint retrieves a specific connection.
  • list_connectionsList connectionsGETLists connections (a source wired to a destination with its rules), up to 250 per page with a next cursor. Filter by source_id, destination_id, name or full_name.
  • update_connectionUpdate connectionPUTUpdates a connection's name, description or rules. rules replaces the whole list; leave it out to keep the current rules.
  • upsert_connectionUpsert connectionPUTCreates a connection, or updates the one with the same name. Its source and destination cannot be changed once created.

Destination, 6 operations

  • create_destinationCreate destinationPOSTCreates a destination. type is HTTP (config.url required), CLI (config.path) or MOCK_API; config also holds the delivery policy (rate limit), HTTP method and outgoing authentication.
  • delete_destinationDelete destinationDELETEThis endpoint permanently deletes a destination. This action cannot be undone.
  • get_destinationGet destinationGETThis endpoint retrieves a specific destination.
  • list_destinationsList destinationsGETLists destinations (where Hookdeck delivers events: an HTTP URL, the CLI or a mock API), up to 250 per page. Filter by name, type or id.
  • update_destinationUpdate destinationPUTUpdates a destination's name, description, type or config. Leave a field out to keep its current value.
  • upsert_destinationUpsert destinationPUTCreates a destination, or updates the one with the same name.

Issue trigger, 6 operations

  • create_issue_triggerCreate issue triggerPOSTCreates an issue trigger: type (delivery, transformation, backpressure or request), its configs (strategy and connections or thresholds) and the notification channels.
  • delete_issue_triggerDelete issue triggerDELETEThis endpoint permanently deletes an issue trigger. This action cannot be undone.
  • get_issue_triggerGet issue triggerGETThis endpoint retrieves a specific issue trigger.
  • list_issue_triggersList issue triggersGETLists issue triggers (rules that open an issue on delivery, transformation, backpressure or request failures and notify channels such as email or Slack).
  • update_issue_triggerUpdate issue triggerPUTUpdates an issue trigger's configs, channels or name. Leave a field out to keep its current value.
  • upsert_issue_triggerUpsert issue triggerPUTCreates an issue trigger, or updates the one with the same name (name is required here).

Source, 6 operations

  • create_sourceCreate sourcePOSTCreates a source and returns its Hookdeck URL to give to the sending service. type (WEBHOOK by default, or a provider such as STRIPE or SHOPIFY) sets how requests are verified.
  • delete_sourceDelete sourceDELETEThis endpoint permanently deletes a source. This action cannot be undone.
  • get_sourceGet sourceGETThis endpoint retrieves a specific source.
  • list_sourcesList sourcesGETLists sources (inbound endpoints that receive webhooks, each with its Hookdeck URL), up to 250 per page with a next cursor. Filter by name, type or id.
  • update_sourceUpdate sourcePUTUpdates a source's name, description, type or config. Leave a field out to keep its current value.
  • upsert_sourceUpsert sourcePUTCreates a source, or updates the one with the same name.

Bookmark, 5 operations

  • create_bookmarkCreate bookmarkPOSTBookmarks an event payload so it can be replayed later with trigger_bookmark. Needs the event_data_id and connection (webhook_id) of the event, plus a label.
  • delete_bookmarkDelete bookmarkDELETEThis endpoint permanently deletes a bookmark. This action cannot be undone.
  • get_bookmarkGet bookmarkGETThis endpoint retrieves a specific bookmark.
  • list_bookmarksList bookmarksGETLists bookmarks (saved event payloads that can be replayed on demand), up to 250 per page. Filter by connection (webhook_id), label or name.
  • update_bookmarkUpdate bookmarkPUTUpdates a bookmark's label, name, connection or event data. Leave a field out to keep its current value.

Count, 5 operations

  • count_connectionsCount connectionsGETCounts connections, optionally filtered by source, destination or disabled and paused dates.
  • count_destinationsCount destinationsGETCounts destinations, optionally filtered by id, name or disabled status.
  • count_issuesCount issuesGETCounts issues matching the same filters as list_issues (status, type, issue trigger, dates).
  • count_sourcesCount sourcesGETCounts the sources of the project.
  • count_transformationsCount transformationsGETCounts the transformations of the project.

Plan, 5 operations

  • generate_event_bulk_cancel_planGenerate event bulk cancel planGETEstimates how many events a bulk cancel with this query would match, without starting it. Pass the same query you will give create_event_bulk_cancel.
  • generate_event_bulk_retry_planGenerate event bulk retry planGETEstimates how many events a bulk retry with this query would match, without starting it. Pass the same query you will give create_event_bulk_retry.
  • generate_ignored_event_bulk_retry_planGenerate ignored event bulk retry planGETEstimates how many ignored events a bulk retry with this query would match, without starting it.
  • generate_request_bulk_replay_planGenerate request bulk replay planGETEstimates how many requests a bulk replay with this query would match, without starting it. Pass the query you will give create_request_bulk_replay (query.target is not a filter).
  • generate_request_bulk_retry_planGenerate request bulk retry planGETEstimates how many requests a bulk retry with this query would match, without starting it.

Replay, 5 operations

  • create_request_bulk_replayCreate request bulk replayPOSTResends real webhooks: starts a job that replays every request matching query through the full pipeline, creating new requests and events delivered to the destinations. query.target picks the source or connections; preview first.
  • get_request_bulk_replayGet request bulk replayGETReturns one requests bulk replay job with its query, progress and counts.
  • list_request_bulk_replaysList request bulk replaysGETLists bulk replay jobs on requests, with their query, target, progress and counts.
  • replay_eventReplay eventPOSTResends a real webhook: replays an event's original request through the full pipeline, creating a new request and new events delivered to the destinations. Defaults to the same connection; pick others with webhook_ids or source_id.
  • replay_requestReplay requestPOSTResends a real webhook: replays a request through the full pipeline with the current rules, creating a new request and new events delivered to the destinations (the original is unchanged). Defaults to the original source's connections.

Disable, 4 operations

  • disable_connectionDisable connectionPUTThis endpoint disables a connection. Notice that a connection is enabled by default when created. A disabled connection will no longer receive or deliver any events.
  • disable_destinationDisable destinationPUTThis endpoint disables a destination. A disabled destination will no longer deliver any events.
  • disable_issue_triggerDisable issue triggerPUTThis endpoint disables an issue trigger so it stops producing issues.
  • disable_sourceDisable sourcePUTThis endpoint disables a source. A disabled source will no longer receive any events, and all connections associated with this source will also be disabled.

Enable, 4 operations

  • enable_connectionEnable connectionPUTThis endpoint enables a connection that has been previously disabled. The associated source and destination will also be enabled if they were previously disabled.
  • enable_destinationEnable destinationPUTThis endpoint enables a destination that was previously disabled.
  • enable_issue_triggerEnable issue triggerPUTThis endpoint enables a previously disabled issue trigger.
  • enable_sourceEnable sourcePUTThis endpoint enables a source that was previously disabled.

Event, 4 operations

  • get_eventGet eventGETReturns one event with its status, attempts count, response status and its original data (body, headers, path, query).
  • list_eventsList eventsGETLists events (one per request and connection), up to 250 per page with a next cursor. Filter by status, connection (webhook_id), source, destination, dates, response status or error code.
  • list_request_eventsList request eventsGETLists the events created from one request (one per matching connection), with the same filters as list_events.
  • query_event_metricsQuery event metricsGETAggregates event metrics over date_range in time buckets (granularity): counts by status, error rate, average attempts (measures), grouped by source, connection, destination and more.

Issue, 4 operations

  • dismiss_issueDismiss issueDELETEDismisses an issue.
  • get_issueGet issueGETThis endpoint retrieves a specific issue.
  • list_issuesList issuesGETLists issues (grouped delivery, transformation, backpressure or request failures), up to 250 per page. Filter by status, type, issue trigger or dates.
  • update_issueUpdate issuePUTSets an issue's status: OPENED, IGNORED, ACKNOWLEDGED or RESOLVED.

Attempt, 3 operations

  • get_attemptGet attemptGETReturns one delivery attempt with its status, response status and duration; a completed attempt includes the destination's response body (NOT_AVAILABLE_YET while it is still being stored).
  • list_attemptsList attemptsGETLists delivery attempts (each HTTP call Hookdeck made to a destination), newest first, up to 250 per page with a next cursor. Filter by event_id to see every attempt of one event.
  • query_attempt_metricsQuery attempt metricsGETAggregates delivery attempt metrics over date_range in time buckets (granularity): counts, error rate, response latency and more (measures), grouped by dimensions.

Raw body, 3 operations

  • get_bookmark_raw_bodyGet bookmark raw bodyGETReturns the raw body of a bookmarked payload exactly as Hookdeck received it. For a multipart body, pick one part with multipart_field and multipart_index.
  • get_event_raw_bodyGet event raw bodyGETReturns the raw body of an event's request exactly as received. For a multipart body, pick one part with multipart_field and multipart_index.
  • get_request_raw_bodyGet request raw bodyGETReturns the raw body of an inbound request exactly as received. For a multipart body, pick one part with multipart_field and multipart_index.

Request, 3 operations

  • get_requestGet requestGETReturns one inbound request with its source, verification and rejection status, events count and original data (body, headers, path, query).
  • list_requestsList requestsGETLists requests (each inbound HTTP call a source received), up to 250 per page with a next cursor. Filter by source, status (accepted or rejected), rejection cause, dates or content.
  • query_request_metricsQuery request metricsGETAggregates request metrics over date_range in time buckets: counts accepted, rejected and discarded, events and ignored counts (measures), grouped by source and more.

Execution, 2 operations

  • get_transformation_executionGet transformation executionGETReturns one transformation execution with its logs, the original and transformed event data.
  • list_transformation_executionsList transformation executionsGETLists the executions of one transformation, with log level and the connection it ran for, up to 250 per page.

Events by issue, 1 operation

  • query_events_by_issue_metricsQuery events by issue metricsGETAggregates event metrics per issue over date_range (one row per issue and time bucket), to see which issues affect the most events.

Events pending timesery, 1 operation

  • query_events_pending_timeseries_metricsQuery events pending timeseries metricsGETReturns the number of pending events over date_range in time buckets, optionally per destination.

Ignored event, 1 operation

  • list_request_ignored_eventsList request ignored eventsGETLists the events of one request that were ignored (filtered out by a rule or blocked by a disabled resource), with the cause.

Pause, 1 operation

  • pause_connectionPause connectionPUTPauses a connection: it keeps receiving events but holds them (status HOLD) until unpause_connection.

Queue depth, 1 operation

  • query_queue_depth_metricsQuery queue depth metricsGETReturns the queue depth (pending events count and age) of destinations and delivery groups over date_range.

Run, 1 operation

  • test_transformationTest transformationPUTRuns transformation code (inline code, or transformation_id) against a sample request without saving anything, and returns the transformed request with its log level.

Trigger, 1 operation

  • trigger_bookmarkTrigger bookmarkPOSTSends a real webhook: replays a bookmark's saved payload against every matching connection, creating new events that are delivered to the destinations. Returns the events created.

Unpause, 1 operation

  • unpause_connectionUnpause connectionPUTResumes a paused connection; held events are queued for delivery (asynchronously) at the destination's delivery rate.

Webhook, 1 operation

  • set_webhook_notificationsSet webhook notificationsPUTTurns the project's webhook notifications on or off and sets the topics to send and the Hookdeck source that receives them.

Use Hookdeck from Claude Code, Cursor or Codex

Connect Hookdeck in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Hookdeck operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Hookdeck

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Hookdeck once

    Add your Hookdeck connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Hookdeck integration FAQ

What can you do with the Hookdeck integration?

LiveContext exposes 106 operations on Hookdeck, covering retry, cancel, transformation and connection.

Popular integrations

Browse the whole catalog