Update Webhook
Use this to rename a Webhook, enable/disable it, or rotate its secret.
MCP name: update_webhook
Tool contract
{
"annotations": {
"destructiveHint": true,
"openWorldHint": true,
"readOnlyHint": false,
"title": "Update Webhook"
},
"description": "Use this to rename a Webhook, enable/disable it, or rotate its secret. Re-enable is `{enabled: true}` and resets the consecutive-failure counter. `{rotate_secret: true}` replaces the secret immediately and returns the new one once; the old secret stops working.",
"execution": {
"taskSupport": "forbidden"
},
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"enabled": {
"description": "`true` re-enables the Webhook; `false` disables it (owner-disabled)",
"type": "boolean"
},
"name": {
"description": "A new label for the Webhook",
"maxLength": 80,
"minLength": 1,
"type": "string"
},
"rotate_secret": {
"description": "`true` replaces the secret and returns the new one once",
"type": "boolean"
},
"webhook_id": {
"description": "The Webhook id (`webhook_<uuid>` form) to update",
"minLength": 1,
"type": "string"
}
},
"required": [
"webhook_id"
],
"type": "object"
},
"name": "update_webhook",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"advisories": {
"description": "Structured non-fatal advisories, including authoring issues and unread staff feedback responses. Each advisory.summary is also appended to the text content for the LLM path.",
"items": {
"additionalProperties": false,
"properties": {
"data": {
"additionalProperties": {},
"description": "Kind-specific structured payload. Shape varies per advisory kind.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"doc_url": {
"description": "Optional docs pointer for this advisory kind.",
"type": "string"
},
"kind": {
"description": "Stable advisory identifier (e.g. \"legacy-bridge\").",
"type": "string"
},
"severity": {
"description": "Severity; omitted advisories are treated as 'info'.",
"enum": [
"info",
"warn"
],
"type": "string"
},
"summary": {
"description": "Agent-facing summary. Self-sufficient; no extra context required.",
"type": "string"
},
"userSummary": {
"description": "End-user-facing summary. Set when the advisory should render in-app.",
"type": "string"
}
},
"required": [
"kind",
"summary"
],
"type": "object"
},
"type": "array"
},
"ok": {
"const": true,
"description": "Indicates success. Errors arrive as content with isError:true.",
"type": "boolean"
},
"secret": {
"description": "Present only when the update rotated the secret. Shown once.",
"type": "string"
},
"webhook": {
"additionalProperties": false,
"properties": {
"app_id": {
"description": "UUID of the app this Webhook targets.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"consecutive_failures": {
"description": "Consecutive failed deliveries since the last success. Diagnostic only; nothing disables at a threshold.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"disabled_reason": {
"anyOf": [
{
"enum": [
"owner"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "`owner` when disabled manually; `null` when enabled. Webhooks never auto-disable."
},
"enabled": {
"description": "`false` when the owner disabled the Webhook.",
"type": "boolean"
},
"id": {
"description": "Public Webhook id, `webhook_<uuid>` form. Use this with update_webhook/delete_webhook.",
"type": "string"
},
"last_error": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"kind": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"kind",
"message"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Classified failure detail from the most recent failed delivery. `null` on success or if never delivered."
},
"last_outcome": {
"description": "Result of the most recent delivery (`success`, `failure`, or `deferred`). `null` if never delivered.",
"type": [
"string",
"null"
]
},
"last_run_at": {
"description": "ISO-8601 timestamp of the most recent delivery. `null` if never delivered.",
"type": [
"string",
"null"
]
},
"name": {
"description": "The owner's label for the Webhook; defaults from the op.",
"type": "string"
},
"op": {
"description": "The declared op an inbound delivery invokes.",
"type": "string"
},
"secret_prefix": {
"description": "First characters of the secret, for matching a stored copy by eye.",
"type": "string"
},
"url": {
"description": "The delivery URL an external sender POSTs to.",
"type": "string"
}
},
"required": [
"id",
"app_id",
"op",
"name",
"url",
"secret_prefix",
"enabled",
"disabled_reason",
"last_run_at",
"last_outcome",
"last_error",
"consecutive_failures"
],
"type": "object"
}
},
"required": [
"ok",
"webhook"
],
"type": "object"
}
}