Skip to content

v2.6.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@leggetter leggetter released this 17 Aug 12:10
f1e1923

Summary

Adds hookdeck outpost mcp, an MCP server giving AI agents access to Outpost, and fixes several things found by driving the previous beta for real.

Still a beta from a feature branch, published for testing before merge. Requires an Outpost project.

New features

hookdeck outpost mcp — 13 tools covering tenants, destinations, destination types, events, attempts, publish, topics, metrics, project config and deployment status, alongside hookdeck_login and hookdeck_projects.

Read-only by default. Write actions are opt-in with --allow-write (or HOOKDECK_MCP_ALLOW_WRITE):

{
  "mcpServers": {
    "hookdeck-outpost": {
      "command": "hookdeck",
      "args": ["outpost", "mcp"]          // add "--allow-write" to enable changes
    }
  }
}

In read-only mode write actions are absent from the tool schema entirely, so an agent is never offered something it cannot do. --read-only is accepted explicitly and wins if both are passed.

Two reads count as writes, because both hand back a reusable credential: outpost_tenants token mints a tenant JWT, and outpost_tenants portal returns a URL granting portal access.

Publishing needs its own credential. outpost_publish requires a Hookdeck Project API key via --publish-api-key or HOOKDECK_OUTPOST_PUBLISH_API_KEY; without one the tool is not registered. It deliberately does not read HOOKDECK_API_KEY, which elsewhere means "exchange this for CLI credentials" and is commonly exported for CI — publishing sends real events to real destinations and should be something you turned on deliberately.

Fixes

  • Project names were missing from MCP responses. Name and organisation are now resolved for any credential, including project-scoped keys from hookdeck ci, where it previously failed silently and left only an opaque project id. Also fixes hookdeck gateway mcp, which had the same gap.
  • Publishing could silently target a different project. The publish credential is fixed at startup while the active project moves with hookdeck_projects use. When they disagreed, events were accepted, delivered nowhere, and left no trace — a success response for something that never happened. Publishing now checks the tenant against the credential's own project and refuses if it cannot see it. This also catches a mistyped or unprovisioned tenant.
  • A publish matching no destinations now says so, rather than returning a bare success for an event that will never be delivered or recorded.
  • Validation errors carry detail. A 422 previously surfaced as a bare validation error; it now includes the field-level reason, e.g. validation error: topic is invalid. This applies to every command, not just Outpost.

Improvements

  • Switching project via MCP affects that session only and does not repoint your CLI. The help text now says so, so an agent can answer honestly when asked.
  • Tool descriptions tell the model to identify destinations by type and target rather than by id, since Outpost destinations have no name field.
  • Internal: the product-agnostic MCP machinery moved to a shared package, so the Gateway and Outpost servers no longer carry two copies. Gateway behaviour is unchanged and covered by its existing tests.

What to test

  • outpost mcp in a real client. Point Claude Desktop or Cursor at it and use it in anger. Read-only first, then --allow-write.
  • Destination types beyond webhook. AWS, GCP, Azure, RabbitMQ and Kafka are validated against the live schema but have never been created against real infrastructure.
  • The tenant portal and custom domain commands remain the least proven surface — they are the only commands with no automated coverage.
  • Error messages. They should name the flag or field that fixes the problem.

Installing

npm install -g hookdeck-cli@beta