Skip to main content
Glama
SmartBear MCP server

SmartBear MCP server

Official
by SmartBear

Contract Testing: Update Webhook

contract-testing_update_webhook
Idempotent

Updates an existing webhook's configuration—events, request details, enabled status, and consumer or provider restrictions—so you can adjust contract-testing notifications without creating a new webhook.

Instructions

Update an existing webhook's configuration.

Toolset: Webhooks

Parameters:

  • webhookId (string) required: UUID of the webhook to update

  • description (string): Human-readable description

  • events (array): Events that trigger this webhook

  • request (object): HTTP request to send when triggered

  • consumer (object): Restrict to a specific consumer

  • provider (object): Restrict to a specific provider

  • enabled (boolean): Whether the webhook is enabled

  • teamUuid (string): UUID of the owning team

Input Schema

NameRequiredDescriptionDefault
eventsNoEvents that trigger this webhook
enabledNoWhether the webhook is enabled
requestNoHTTP request to send when triggered
consumerNoRestrict to a specific consumer
providerNoRestrict to a specific provider
teamUuidNoUUID of the owning team
webhookIdYesUUID of the webhook to update
descriptionNoHuman-readable description

Output Schema

NameRequiredDescriptionDefault
uuidNo
_linksNo
eventsNo
enabledNo
requestNo
consumerNo
providerNo
teamUuidNo
_embeddedNo
createdAtNo
updatedAtNo
descriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.43.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$defs": {
      +    "EmbeddedLink": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "href": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "templated": {
      +          "type": "boolean"
      +        },
      +        "title": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "EmbeddedTeam": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "_links": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "self": {
      +              "$ref": "#/$defs/EmbeddedLink"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "isDefault": {
      +          "type": "boolean"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "uuid": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "_embedded": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "team": {
      +          "$ref": "#/$defs/EmbeddedTeam"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "_links": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "pb:consumer": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:execute": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:pact-webhooks": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:provider": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:webhooks": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "self": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "consumer": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "createdAt": {
      +      "type": "string"
      +    },
      +    "description": {
      +      "type": "string"
      +    },
      +    "enabled": {
      +      "type": "boolean"
      +    },
      +    "events": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "provider": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "name": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "request": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "body": {},
      +        "headers": {
      +          "additionalProperties": {},
      +          "description": "Request headers. Values support template expressions and auth helper functions.",
      +          "properties": {},
      +          "type": "object"
      +        },
      +        "method": {
      +          "type": "string"
      +        },
      +        "password": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        },
      +        "username": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "teamUuid": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "updatedAt": {
      +      "type": "string"
      +    },
      +    "uuid": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Addedv0.40.0
  3. Removedv0.34.0
  4. First observedv0.27.1

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare non-destructive, idempotent update behavior, and the description does not contradict them. However, the description adds no behavioral context beyond the annotations, such as whether omitted fields are preserved or cleared, authentication requirements, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is concise and front-loaded, but the subsequent toolset label and full parameter list largely duplicate information already fully present in the schema. The parameter list is readable but not efficient given the 100% schema description coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is adequate for a complex update tool with eight parameters, nested objects, annotations, and an output schema. It does not explain partial-update semantics or field omission behavior, but those gaps are partially mitigated by the rich schema and existing annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all eight parameters. The description repeats the same parameter meanings without adding syntax, format, or behavioral nuance, which is the expected baseline when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb and resource: 'Update an existing webhook's configuration.' It distinguishes the operation from create, delete, get, list, and execute siblings by implication, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as contract-testing_create_webhook or contract-testing_get_webhook. The phrase 'existing webhook' implies a webhook must already exist, but no prerequisites, exclusions, or alternative-selection advice are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools