Skip to main content
Glama
SmartBear MCP server

SmartBear MCP server

Official
by SmartBear

Contract Testing: Create Webhook

contract-testing_create_webhook

Creates a webhook that triggers on selected contract events, letting you configure the HTTP POST request sent when those events occur.

Instructions

Create a new webhook to trigger on contract events.

Toolset: Webhooks

Parameters:

  • description (string) required: Human-readable description of the webhook

  • events (array) required: Events that trigger this webhook

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

  • consumer (object): Restrict to a specific consumer (omit for all)

  • provider (object): Restrict to a specific provider (omit for all)

  • enabled (boolean): Whether the webhook is enabled (default: true)

  • teamUuid (string): UUID of the owning team (null for global)

Input Schema

NameRequiredDescriptionDefault
eventsYesEvents that trigger this webhook
enabledNoWhether the webhook is enabled
requestYesHTTP request to send when triggered
consumerNoRestrict to a specific consumer (omit for all)
providerNoRestrict to a specific provider (omit for all)
teamUuidNoUUID of the owning team (null for global)
descriptionYesHuman-readable description of the webhook

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

B3.2/5.0
Behavior3/5

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

Annotations already declare non-readonly, non-destructive, non-idempotent behavior, so the safety profile is covered. The description adds that the webhook fires on contract events and that a request (including optional basic-auth username/password and headers) is dispatched when triggered, but it does not say whether creation validates the URL, whether the webhook fires immediately, or anything about auth/team ownership requirements.

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 front-loaded and clear, but the following parameter block is a near-verbatim duplication of the input schema, which a competent agent can read directly. It is not wasteful enough to be harmful, but half the text earns no extra value.

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

Completeness4/5

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

With an output schema present, annotations covering the safety profile, and full schema descriptions, the definition is largely self-sufficient for a create operation. The remaining gap is behavioral context around team scoping and whether a newly created webhook is triggered or validated, which the description does not address.

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 every parameter is already documented, including nested fields like request.method being POST-only and the event 'name' example. The description's parameter list largely restates the schema ('omit for all' for consumer/provider is just duplicated), adding no new semantics; baseline 3 applies.

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 starts with a specific verb and resource ('Create a new webhook') and scopes it to 'contract events'. It is clearly distinguishable from contract-testing_update_webhook, contract-testing_delete_webhook, and contract-testing_execute_webhook, though it never names or contrasts those siblings explicitly.

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 instead of contract-testing_update_webhook, contract-testing_list_webhooks, or contract-testing_execute_webhook, nor any prerequisites such as required team context or permissions. The intended use is only implied by the verb 'create'.

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