Skip to main content
Glama
SmartBear MCP server

SmartBear MCP server

Official
by SmartBear

Contract Testing: Patch Pacticipant

contract-testing_patch_pacticipant

Partially update a pacticipant's metadata by changing only the fields you provide, such as display name, main branch, or repository details.

Instructions

Partially update a pacticipant's metadata — only fields provided are changed.

Toolset: Pacticipants

Parameters:

  • pacticipantName (string) required: Name of the pacticipant to update

  • displayName (string): Human-readable display name

  • mainBranch (string): Name of the main/trunk branch (e.g. 'main')

  • repositoryName (string): Repository name

  • repositoryNamespace (string): Repository namespace/organisation

  • repositoryUrl (string): URL of the source repository

Input Schema

NameRequiredDescriptionDefault
mainBranchNoName of the main/trunk branch (e.g. 'main')
displayNameNoHuman-readable display name
repositoryUrlNoURL of the source repository
repositoryNameNoRepository name
pacticipantNameYesName of the pacticipant to update
repositoryNamespaceNoRepository namespace/organisation

Output Schema

NameRequiredDescriptionDefault
nameNo
titleNo
_linksNo
_embeddedNo
createdAtNo
updatedAtNo
mainBranchNo
displayNameNo
repositoryUrlNo
repositoryNameNo
repositoryNamespaceNo

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"
      +    },
      +    "EmbeddedNamed": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "_links": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "self": {
      +              "$ref": "#/$defs/EmbeddedLink"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "name": {
      +          "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": {
      +        "labels": {
      +          "items": {
      +            "$ref": "#/$defs/EmbeddedNamed"
      +          },
      +          "type": "array"
      +        },
      +        "latest-version": {
      +          "additionalProperties": {},
      +          "description": "Use latestVersion",
      +          "properties": {
      +            "name": {
      +              "type": "string"
      +            },
      +            "number": {
      +              "type": "string"
      +            },
      +            "title": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "latestVersion": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "_links": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "self": {
      +                  "$ref": "#/$defs/EmbeddedLink"
      +                }
      +              },
      +              "type": "object"
      +            },
      +            "number": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "teams": {
      +          "description": "The teams this pacticipant belongs to. Always embedded on the single pacticipant endpoint, and on the collection endpoint when requested via ?include=teams.",
      +          "items": {
      +            "$ref": "#/$defs/EmbeddedTeam"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "_links": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "curies": {
      +          "items": {
      +            "$ref": "#/$defs/EmbeddedLink"
      +          },
      +          "type": "array"
      +        },
      +        "pb:branch-version": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:branches": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:can-i-deploy-badge": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:can-i-deploy-branch-to-environment-badge": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:label": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:teams": {
      +          "description": "Links to the admin team resource for each team this pacticipant belongs to. Present whenever the teams are embedded.",
      +          "items": {
      +            "$ref": "#/$defs/EmbeddedLink"
      +          },
      +          "type": "array"
      +        },
      +        "pb:version": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:version-tag": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "pb:versions": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "self": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        },
      +        "versions": {
      +          "$ref": "#/$defs/EmbeddedLink"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "createdAt": {
      +      "type": "string"
      +    },
      +    "displayName": {
      +      "type": "string"
      +    },
      +    "mainBranch": {
      +      "type": "string"
      +    },
      +    "name": {
      +      "type": "string"
      +    },
      +    "repositoryName": {
      +      "type": "string"
      +    },
      +    "repositoryNamespace": {
      +      "type": "string"
      +    },
      +    "repositoryUrl": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "updatedAt": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Addedv0.40.0
  3. Removedv0.34.0
  4. First observedv0.27.1

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly=false, destructive=false, openWorld=false and idempotent=false, so the safety profile is covered. The description adds genuinely useful behavior (PATCH-style partial assignment, unspecified fields untouched), but says nothing about permission requirements or what happens when pacticipantName does not match an existing pacticipant.

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 first sentence is excellent and front-loaded, but it is followed by a '**Toolset:**' label and a full parameter list that duplicates the input schema word-for-word. That block consumes most of the text while adding no information an agent cannot read from the schema.

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?

An output schema exists and all six parameters are documented, so return-value detail is not needed. Still, for a mutation tool the description omits failure behavior (nonexistent pacticipant, invalid repository URL) and does not reconcile the partial-update semantics with the non-idempotent annotation, leaving gaps in an otherwise compact definition.

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 with the same wording the description repeats verbatim. The only added value is the '(e.g. main)' example on mainBranch; no format constraints (URL syntax, name casing) are elaborated beyond the schema.

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 opens with a specific verb + resource: 'Partially update a pacticipant's metadata', and adds the distinguishing semantic 'only fields provided are changed'. That implicitly separates it from the full-update sibling contract-testing_update_pacticipant, though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied — an agent can infer this should be used for targeted field changes rather than a full replace, but the description never states when to prefer it over update_pacticipant, nor any prerequisites (e.g. the pacticipant must already exist, or required roles).

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