xmatters-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xmatters-mcpwho is on-call for the NOC schedule right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
xMatters MCP Server
Connect a local Model Context Protocol (MCP) host to the xMatters REST API. This independent TypeScript server runs on Node.js or Bun and exposes 179 named tools over authenticated Streamable HTTP.
The tools cover people, groups, on-call schedules, events, incidents, workflows, services, integrations, and the other operations in the recorded public API reference. They support JSON requests, multipart uploads, binary downloads, and explicit OAuth token acquisition and refresh. Tools use cataloged endpoints; they cannot request arbitrary URLs.
Writes are disabled by default. To enable them, the operator must set XMATTERS_ALLOW_WRITES=true. Each non-GET call also requires confirm: true. Keep your MCP host's approval controls enabled; a confirmation argument is not proof of human consent.
Start here
Follow Set up a local MCP connection to install the server, supply credentials privately, and connect your host.
You need:
Node.js 22.12+ or Bun 1.4.2+.
A non-browser MCP host that supports Streamable HTTP, custom authorization headers, and MCP 2026-07-28.
An authorized xMatters tenant identity and a separate local MCP access token.
The server listens only on 127.0.0.1. It is not a remote or multi-user service. Its local shared-secret authentication is not MCP OAuth authorization.
Upgrading from 0.1.x
Version 0.2.0 removes the application's stdio transport. Start the server separately and configure your host with its HTTP URL. Legacy HTTP+SSE and clients that require an initialize handshake are not supported. See the connection steps and protocol compatibility notes.
This is a project choice: stdio remains part of the MCP specification. HTTP is not inherently safer than stdio.
Related MCP server: agenzax-mcp
Documentation
Set up a local MCP connection: install, start, connect, troubleshoot, and enable writes deliberately.
Configuration reference: environment variables, authentication modes, defaults, and limits.
Tool reference: inputs, results, pagination, uploads, and write safeguards.
API coverage: endpoint mappings, source evidence, and reproducible audits.
MCP protocol and conformance boundaries: supported behavior, design choices, and SDK limitations.
Security policy: trust boundaries, deployment restrictions, and private vulnerability reporting.
Contributing: development setup, checks, and catalog maintenance.
Coverage and verification
The recorded xMatters reference contains 168 DEFINITION blocks. The catalog expands them into 177 operation/path variants, plus two routes documented in request examples, for 179 tools. The coverage report and source inventory record the evidence and exclusions.
CI tests Node 22, 24, 26, and Bun 1.4.2. Unit tests must meet 80% coverage for statements, branches, functions, and lines in every runtime TypeScript file. Integration tests run separately and do not count toward those thresholds.
Tests use synthetic data and do not contact a tenant or page recipients. Passing tests and documented endpoint coverage do not establish tenant permissions, payload validity, or alert delivery. Check those separately with authorized requests before production use.
The project is available from GitHub; this does not imply an npm-registry release. See package verification before distributing a tarball.
License and affiliation
Copyright 2026 Robert Smieja. Licensed under the Apache License 2.0; see NOTICE. This is a community project, not an official xMatters product. xMatters retains ownership of its documentation and trademarks.
Available Tools
179 toolsxmatters_add_a_comment_to_an_eventAdd a comment to an eventADestructive
Add a comment to an event. POST /api/xm/1/events/{eventId}/annotations. Body fields: comment. Reference: https://help.xmatters.com/xmapi/#add-a-comment-to-an-event Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#add-a-comment-to-an-event | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint, readOnly false), the description discloses that the call may notify recipients and alter tenant data, and that operator write opt-in plus confirm:true are required. This is exactly the kind of side-effect context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: action/endpoint, body payload, and prerequisites/side effects. No filler; every line carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers endpoint, payload field, confirmation requirement, and side effects for a write operation with no output schema. It does not describe expected success/error response, but this is a minor gap given how much context is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds the critical body-field name 'comment', which the generic body schema does not specify. The eventId path parameter and confirm parameter are already documented in the schema, so the description fills an important gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the action as a specific verb + resource ('Add a comment to an event') and reinforces it with the exact POST endpoint. This clearly differentiates from sibling getters like xmatters_get_event_annotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit operational context: operator write opt-in, confirm:true, and notification/tenant-data side effects. It doesn't name alternative tools for read-only annotation retrieval, but the usage context is clear enough to avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_add_a_member_to_a_shiftAdd a member to a shiftADestructive
Add a member to a shift. POST /api/xm/1/groups/{groupID}/shifts/{shiftID}/members. Body fields: recipient, position, delay, escalationType, inRotation, onDuty. Reference: https://help.xmatters.com/xmapi/#add-a-member-to-a-shift Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#add-a-member-to-a-shift | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful side-effect context beyond the annotations: it requires operator write opt-in, confirm:true, and warns that it may notify recipients or change tenant data. This aligns with destructiveHint=true and provides useful behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then supplies the endpoint, key body fields, requirements, and a reference link. It avoids unnecessary prose, though the opening sentence largely restates the tool title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives enough to attempt the call: endpoint, path parameters, body field names, confirm requirement, and side-effect warnings. Still, it lacks details on required body fields, response shape, and error cases, which are important for a destructive, open-world mutation with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists body fields (recipient, position, delay, escalationType, inRotation, onDuty), which adds value because the schema only defines body as an arbitrary JSON payload. However, it does not explain the meaning, types, or allowed values of these fields, leaving important semantics to the external reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation as 'Add a member to a shift' and reinforces it with the exact REST endpoint POST /api/xm/1/groups/{groupID}/shifts/{shiftID}/members. This distinguishes it from siblings like xmatters_add_a_member_to_the_group and xmatters_get_members_in_a_shift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives, such as adding a member to a group or retrieving shift members first. The description focuses on how to invoke the API but not on the decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_add_a_member_to_the_groupAdd a member to the groupADestructive
Add a member to the group. POST /api/xm/1/groups/{groupID}/members. Body fields: id, recipientType. Reference: https://help.xmatters.com/xmapi/#add-a-member-to-the-group Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#add-a-member-to-the-group | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavioral context: it requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. This matches the destructiveHint and non-readOnly annotations and gives an agent a clearer risk picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action, endpoint, body fields, requirements, and side effects each get a short clause. There is slight redundancy with the title's first phrase, but no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool without an output schema, the description covers the essential call context: endpoint, payload field names, prerequisites, and possible side effects. It lacks valid-value guidance for id/recipientType and any response/error hints, but the reference link and body-field listing are enough for a capable agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body parameter is a generic JSON payload, so the description adds value by naming 'id' and 'recipientType' and placing groupID in the endpoint URL. It stops short of explaining valid values or relationships, but it meaningfully compensates for the schema's vagueness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Add a member to the group') and confirms it with the exact endpoint, POST /api/xm/1/groups/{groupID}/members. This clearly distinguishes it from the sibling removal operation (xmatters_remove_a_member_from_the_group).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Add a member to the group' and the POST endpoint, but the description never explicitly states when to use this tool over alternatives or excludes other operations. An agent must infer from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_add_a_timeline_noteAdd a timeline noteADestructive
Add a timeline note. POST /api/xm/1/incidents/{incidentID}/timeline-entries. Body fields: entryType, text. Reference: https://help.xmatters.com/xmapi/#add-a-timeline-note Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#add-a-timeline-note | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, and the description adds meaningful side-effect context: it 'may notify recipients or change tenant data' and requires operator write opt-in plus confirm:true. This goes beyond the structured annotations by warning about notification and tenant-data mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured: a one-line purpose, the endpoint, key body fields, a reference link, and the critical write/confirmation requirement. Every sentence earns its place, and the essential warning about tenant data is front-loaded enough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the essential inputs (incidentID, body fields), the approval requirement, and side effects. It does not need to explain return values since none are defined, and the reference link supplements details on payload structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes body only as a generic 'Complete API JSON payload,' so the description's mention of 'Body fields: entryType, text' adds real semantic value. It also names the path parameter via the endpoint and clarifies confirm's role, complementing the 75% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add a timeline note,' a specific verb plus resource, and reinforces it with the exact endpoint POST /api/xm/1/incidents/{incidentID}/timeline-entries. This clearly distinguishes it from sibling add/comment/event tools like xmatters_add_a_comment_to_an_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the endpoint and body fields, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. The write opt-in and confirm:true requirement gives operational context but no comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_add_subscribersAdd subscribersADestructive
Add subscribers. PUT /api/xm/1/subscriptions/{subscriptionId}/subscribers. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: recipients. Reference: https://help.xmatters.com/xmapi/#add-subscribers Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#add-subscribers | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description substantially expands on annotations: it explains that the request body is a top-level JSON array, warns that preserving existing entries matters, clarifies that PUT is the real method despite a Python sample using POST, and discloses side effects such as notifying recipients or changing tenant data. This is valuable beyond the raw annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the action and endpoint. Each sentence adds a relevant caveat or requirement, though the 'Body fields: recipients' fragment feels slightly abrupt and the official-operation note is redundant with the reference link.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the mutating nature, generic body schema, and lack of output schema, the description covers method, body shape, confirmation requirements, destructive side effects, and preservation behavior. It does not describe response format or recipient entry fields in detail, but the official reference and imperative to consult the operation close most of the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema is generic for body and high-level for confirm, but the description adds needed meaning: the body is a top-level array and the listed body fields describe array entries rather than root keys. It also names 'recipients' and links to official documentation. It leaves recipient field shapes somewhat vague, but it compensates beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add subscribers' and pinpoints the exact REST operation: PUT /api/xm/1/subscriptions/{subscriptionId}/subscribers. This identifies the specific resource and action, and the endpoint distinguishes it from sibling tools such as get_subscribers, unsubscribe_a_user, and create_a_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate: adding subscribers to a subscription, with an explicit requirement for operator write opt-in and confirm:true. It does not explicitly name alternative tools or state when not to use it, but the operation and prerequisites are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_change_the_status_of_an_eventChange the status of an eventADestructive
Change the status of an event. POST /api/xm/1/events. Body fields: id, status. Reference: https://help.xmatters.com/xmapi/#change-the-status-of-an-event Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#change-the-status-of-an-event | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior and non-read-only, but the description adds valuable side-effect context: it may notify recipients or change tenant data, and requires explicit write opt-in. This goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, endpoint, body fields, reference, requirements, and side effects are each covered in short, scannable fragments. No unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential call information: endpoint, required body fields, approval requirements, and side effects. However, it omits valid status values and response/error behavior, and the body schema remains generic enough that an agent may need the linked documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body parameter is a generic recursive anyOf, so the description's 'Body fields: id, status' provides real semantic meaning absent from the schema. It also clarifies query parameters are generic and pagination is explicit, though valid status values are not listed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change the status of an event'), identifies the HTTP endpoint, and lists body fields (id, status). This distinguishes it from related event tools like trigger_an_event or get_an_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisites such as operator write opt-in and confirm:true, but gives no explicit guidance on when to use this tool versus alternatives like triggering an event or adding a comment. The intended context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_change_recordCreate a change recordADestructive
Create a change record. POST /api/xm/1/changes. Body fields: changeType, source, summary, changedAt, changedBy, details, externalIdentifier, service. Reference: https://help.xmatters.com/xmapi/#create-a-change-record Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-change-record | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the call as non-read-only and destructive, and the description adds meaningful behavioral context: 'may notify recipients or change tenant data' and the operator write opt-in requirement. This goes beyond the structured hints and helps the agent anticipate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences cover the operation, endpoint, body fields, reference, and requirements without filler. The field list is a bit long but earns its place because the schema does not enumerate these fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema and a permissive body schema, the description provides endpoint, body fields, auth requirements, and side effects, plus a link to full API docs. It does not describe the expected response or error behavior, but the reference covers the remaining detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The body parameter schema is a generic recursive anyOf with no named fields, so the description's enumeration of allowed body fields (changeType, source, summary, changedAt, changedBy, details, externalIdentifier, service) is essential. It also clarifies the confirm parameter's const true requirement and notes query pagination behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific action and resource: 'Create a change record' with the REST endpoint POST /api/xm/1/changes. The verb 'Create' and the resource 'change record' clearly separate it from sibling retrieval tools such as xmatters_get_changes and xmatters_get_a_change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the operation clear and includes prerequisites ('Requires operator write opt-in and confirm:true'), but it does not explicitly state when to prefer this tool over its get_*/list_* siblings or when it should not be used. Usage context is implied by the verb rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_communication_planCreate a communication planADestructive
Create a communication plan. POST /api/xm/1/plans. Body fields: name, description, enabled, accessibleByAll, position. Reference: https://help.xmatters.com/xmapi/#create-a-communication-plan Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-communication-plan | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds value by stating 'may notify recipients or change tenant data' and the confirmation requirement. It does not contradict annotations and provides context on side effects beyond the flags. No coverage of topics like idempotency or rate limits, but annotations cover idempotency hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary action. It packs endpoint, body fields, a reference, and requirements into two sentences without excessive verbosity. Slight clutter from the HTTPS link, but it earns its place as an authoritative reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with a nested object and no output schema, the description covers the essential operational aspects: side effects, prerequisites, and field hints. It doesn't explain return values, but the absence of an output schema lowers that burden. The reference link and endpoint provide further context. Minor gaps like optional field meanings are not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body description is generic ('Complete API JSON payload'), so the description compensates by listing specific fields (name, description, enabled, accessibleByAll, position). This adds meaning beyond the schema, which only requires name and enabled. The confirm parameter semantics are also clarified in the schema, so the description's mention reinforces it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Create') and resource ('a communication plan'), and includes the HTTP method and endpoint. It distinguishes this from siblings by naming the action explicitly (create vs. get, modify, delete). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the action clearly and lists prerequisites (operator write opt-in, confirm:true), which implies when to use it (to create). It does not explicitly mention when not to use it or alternatives, but the create/resource pairing is obvious within the sibling set. Slight lack of explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_deviceCreate a deviceADestructive
Create a device. POST /api/xm/1/devices. Device-type-specific fields are conditional. Mobile push devices cannot be created by REST; existing push devices can be modified. Body fields and nested structures remain open. Body fields: defaultDevice, delay, deviceType, id, externalKey, externallyOwned, name, owner, priorityThreshold, provider, recipientType, sequence, status, testStatus, timeframes, emailAddress, phoneNumber, twoWayDevice, pin, country. Reference: https://help.xmatters.com/xmapi/#create-a-device Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-device | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by stating the API method, the requirement for operator write opt-in, and the side effects that this mutation may notify recipients or change tenant data. Combined with destructiveHint=true and readOnlyHint=false, the agent gets a clear and accurate picture of the operation's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but not bloated: it front-loads the core action and endpoint, states the key constraint about mobile push devices, lists the body fields, and points to the reference. The field list is long but earns its place given the open body schema and lack of detailed parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and a generic body schema, the description provides necessary context: endpoint, prerequisites, side effects, field names, and a documentation reference. It could add more detail about response behavior or device-type-specific requirements, but the reference and explicit caveats make it reasonably complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, but for the body parameter the schema is a generic recursive open-world type. The description compensates by enumerating the relevant body field names and noting that device-type-specific fields are conditional and nested structures remain open. This adds real meaning beyond the schema's 'Complete API JSON payload' text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a device') and backs it with the exact REST endpoint. It also clarifies scope by noting device-type-specific fields and the mobile push device exception, which helps distinguish this create operation from get, modify, and delete device siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit use-vs-alternative cue: mobile push devices cannot be created via REST and existing push devices can be modified. It also states a prerequisite (operator write opt-in and confirm:true). It does not explicitly name sibling tools like modify_a_device, but the conditional guidance is sufficient for correct routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_device_nameCreate a device nameADestructive
Create a device name. POST /api/xm/1/device-names. The definition plus JavaScript/Python requests use /device-names. A cURL example uses deviceName; the definition is retained. See C12. Body fields: deviceType, name, description, privileged. Reference: https://help.xmatters.com/xmapi/#create-a-device-name Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-device-name | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive=true, readOnly=false, and idempotent=false. The description adds meaningful behavioral context: it requires operator write opt-in and confirm:true, may notify recipients, and may change tenant data. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence and endpoint are clear, but the description includes confusing internal notes about JavaScript/Python requests, cURL examples, and 'C12' that do not help an agent invoke the tool correctly. These should be trimmed or clarified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with a generic body schema, the description provides endpoint, reference, required approval fields, prerequisites, and side effects. There is no output schema, but for a mutation the description is otherwise complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body parameter is a generic anyOf freeform blob, so the description compensates by naming the intended body fields: deviceType, name, description, privileged. It also clarifies the confirm parameter's purpose. Since schema coverage is effectively 100% but shallow, the description adds real value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create a device name' via POST /api/xm/1/device-names. It is clearly distinct from siblings like xmatters_create_a_device, xmatters_modify_a_device_name, and xmatters_delete_a_device_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context—operator write opt-in, confirm:true, possible recipient notification—but it never explicitly says when to use this tool versus alternatives. Usage is strongly implied by the name and endpoint, but no direct routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_form_sectionCreate a form sectionADestructive
Create a form section. POST /api/xm/1/forms/{formId}/sections. Body is a form-section object; section-specific fields and Incident Details fields remain open. Only one section per request. Body fields: id, form, title, type, visible, collapsed, orderNum, bridgeType, properties, targetDeviceNames, otherResponseCountThreshold, priority, expiration, expirationInMinutes, overrideDeviceRestrictions, escalationOverride, bypassPhoneIntro, requirePhonePassword, voicemailOptions, recipients, enableResponseCount, responseCountThreshold, searchableTypes, expandableGroups, callerId, displayName. Reference: https://help.xmatters.com/xmapi/#create-a-form-section Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-form-section | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, and the description meaningfully adds detail: it warns that the operation 'may notify recipients or change tenant data', notes open fields in the body, and states the one-section-per-request constraint. This goes well beyond the structured annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and endpoint, then gives the essential body constraint, field list, reference, and prerequisites. Every sentence earns its place; the field enumeration is justified because the body schema is generic. No filler or redundancy is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and a complex open body, the description provides enough to invoke the tool correctly: endpoint, required path parameter implied by the URL, body shape, field names, the confirm requirement, operator opt-in, side effects, and a documentation reference. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the baseline is 3, but the description adds value by enumerating the allowed body field names in a schema where body is otherwise a generic JSON payload. It also clarifies that section-specific and Incident Details fields remain open. It does not explain the meaning of each field, so it does not reach a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('a form section'), and reinforces it with the exact endpoint POST /api/xm/1/forms/{formId}/sections. This unambiguously differentiates it from sibling tools like xmatters_get_form_sections or xmatters_create_a_plan_form, even without explicitly naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: it targets a specific form, accepts one section per request, and requires confirm:true plus operator write opt-in. It does not explicitly name alternative tools or state when not to use it, so it misses the full 'when-not/exclusion' guidance but is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_groupCreate a groupADestructive
Create a group. POST /api/xm/1/groups. Body fields: allowDuplicates, description, externalKey, externallyOwned, groupType, observedByAll, observers, properties, recipientType, id, site, status, supervisors, targetName, useDefaultDevices, criteria. Reference: https://help.xmatters.com/xmapi/#create-a-group Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-group | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds valuable context: requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. This goes beyond annotation coverage and alerts the agent to 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact with two sentences. It front-loads the core action and endpoint, then provides a field list, reference link, and critical requirements. The field list is long but necessary given the generic schema. Structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent creation tool with nested objects and no output schema, the description covers essential aspects: endpoint, body fields, reference, permission requirements, side effects, and confirmation need. It does not detail each field's semantics, but the reference link fills that gap. Overall, an agent has sufficient information to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for each parameter, but the body schema is a generic recursive anyOf. The description compensates by listing the specific body fields (allowDuplicates, description, externalKey, etc.), providing meaning that the schema itself lacks. For query and confirm, the description largely restates schema info, but the field list adds genuine value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Create a group') and specifies the HTTP endpoint (POST /api/xm/1/groups). It distinguishes itself from sibling tools like modify/delete/get groups by explicitly indicating creation. The list of body fields further clarifies scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating a new group but does not explicitly contrast with alternatives like xmatters_modify_a_group or mention when not to use it. It does provide some usage conditions (requires operator write opt-in, confirm:true, may notify recipients), but lacks explicit 'use this when' guidance versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_an_external_conference_bridgeCreate an external conference bridgeADestructive
Create an external conference bridge. POST /api/xm/1/conference-bridges. Body fields: id, name, description, tollNumber, tollFreeNumber, preferredConnectionType, pauseBeforeBridgePrompt, staticBridgeNumber, bridgeNumber, meetingLink. Reference: https://help.xmatters.com/xmapi/#create-an-external-conference-bridge Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-an-external-conference-bridge | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=true; the description adds meaningful context beyond that by disclosing it 'may notify recipients or change tenant data' and requires operator write opt-in. No contradictions with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the endpoint, field list, reference, and requirements each earn their place. The body-field enumeration is a slightly dense comma run-on but remains compact and directly useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with a nested body payload and no output schema, the description covers the endpoint, fields, prerequisites, and consequences, and provides a reference link. It doesn't describe the response format, but the supplied reference mitigates that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds value beyond the schema by enumerating the concrete body fields (tollNumber, staticBridgeNumber, meetingLink, etc.) that the schema's generic 'Complete API JSON payload' leaves unspecified. This materially helps an agent construct the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact action and resource ('Create an external conference bridge. POST /api/xm/1/conference-bridges') and enumerates the body fields. The verb+resource pairing clearly distinguishes it from siblings like xmatters_get_a_conference_bridge, xmatters_modify_a_conference_bridge, and xmatters_delete_a_conference_bridge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when the tool applies (creating a new external bridge) and states a prerequisite ('Requires operator write opt-in and confirm:true'). It does not explicitly name alternative tools or exclusion conditions, but the action/resource pairing is unambiguous against the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_an_incidentCreate an incidentADestructive
Create an incident. POST /api/xm/1/incidents. Body fields: summary, description, severity, status. Reference: https://help.xmatters.com/xmapi/#create-an-incident Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-an-incident | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context: it explicitly warns that the operation 'may notify recipients or change tenant data' and requires operator write opt-in, which goes beyond the structured hints. It does not contradict the annotations and covers the key side-effect profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: three sentences covering purpose, endpoint, body fields, reference, prerequisites, and side effects. It is front-loaded with the action and includes no fluff. It is slightly dense but well-organized; a brief list format could improve scanability, so it does not earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with nested objects, no output schema, and several sibling alternatives, the description provides the essentials (endpoint, body fields, confirm requirement, side effects). However, it does not explain when to choose this over trigger_an_incident or modify_an_incident, nor does it mention response behavior or error handling. This is adequate but leaves clear gaps for an agent deciding between related operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning by listing 'summary, description, severity, status' as body fields, confirming the required fields and hinting at additional allowed ones. It also explains that confirm must be true and requires the XMATTERS_ALLOW_WRITES setting, which the schema already states but the description reinforces with operational context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Create an incident') and the resource (incidents), with the endpoint POST /api/xm/1/incidents. It is distinct from the sibling 'trigger_an_incident' in wording, though it does not explicitly contrast them, so it misses the top score for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states prerequisites (operator write opt-in and confirm:true) and side effects, but provides no guidance on when to use this tool versus alternatives like trigger_an_incident or modify_an_incident. There is no mention of conditions that would make this tool the right choice, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_an_integrationCreate an integrationADestructive
Create an integration. POST /api/xm/1/plans/{planId}/integrations. Body fields: form, name, integrationType, environment, operation, triggeredBy, authenticationType, createdBy, deployed, script, endpoint, integrationService. Reference: https://help.xmatters.com/xmapi/#create-an-integration Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-an-integration | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior, and the description adds meaningful context beyond them: it may notify recipients or change tenant data, and requires explicit confirmation and an operator write opt-in. This gives the agent a clearer risk profile without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the action, gives the endpoint, lists body fields, provides a reference, and states requirements and side effects. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive create operation with no output schema, the description covers the endpoint, body fields, authentication prerequisite, confirmation requirement, and side effects. It stops short of describing the response shape or required subfields within the body, but the reference link and field list make it sufficiently complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds substantial value by enumerating the expected body fields (form, name, integrationType, environment, operation, triggeredBy, authenticationType, createdBy, deployed, script, endpoint, integrationService), which is critical because the body schema is a generic any-JSON type. It also reinforces the confirm:true requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create an integration') and gives the exact endpoint, making the tool's function unambiguous. It is clearly distinct from sibling tools like xmatters_modify_an_integration, xmatters_delete_an_integration, and xmatters_get_integrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: creating a new integration via POST to the plans endpoint. It also gives important prerequisites ('Requires operator write opt-in and confirm:true') and warns about side effects, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_personCreate a personADestructive
Create a person. POST /api/xm/1/people. Body fields: externalKey, externallyOwned, firstName, id, language, lastName, licenseType, phoneLogin, phonePin, password, forcePasswordReset, properties, recipientType, roles, site, status, supervisors, targetName, timezone, webLogin. Reference: https://help.xmatters.com/xmapi/#create-a-person Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-person | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a destructive, non-read-only mutation, and the description adds meaningful behavioral context beyond that: 'may notify recipients or change tenant data' and the requirement for an explicit write opt-in. This sets accurate expectations about side effects and authorization without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and endpoint, then provides the body field list, documentation link, and safety requirements in a compact format. The field list is somewhat long, but each part earns its place by informing the agent about payload, authorization, and side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutating API call with no output schema, the description provides the endpoint, key body fields, a reference link, and critical operational warnings. It could go further by noting required body subfields or a sample payload, but the included context is sufficient for a cautious agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high and the schema documents body, query, and confirm parameters. The description adds value by enumerating the accepted body field names (externalKey, firstName, roles, etc.) and explicitly restating the confirm:true requirement, which is useful because the body schema is a generic recursive JSON type rather than a detailed structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states an explicit action ('Create a person'), names the exact API endpoint, and clearly distinguishes this mutation tool from the many related person tools like get_a_person, modify_a_person, and delete_a_person. The resource and intent are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context that this tool is for creating a person and even specifies required preconditions: operator write opt-in and confirm:true. It does not explicitly discuss alternatives or exclusions, but the purpose is concrete enough that an agent can determine when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_plan_constantCreate a plan constantADestructive
Create a plan constant. POST /api/xm/1/plans/{planId}/constants. Body fields: name, value, description. Reference: https://help.xmatters.com/xmapi/#create-a-plan-constant Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-plan-constant | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write (readOnlyHint=false) and destructive side effects (destructiveHint=true). The description adds context beyond annotations: it requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. This aligns with the annotations and provides actionable behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: it starts with the action and endpoint, then lists body fields, prerequisites, and a reference link. Every sentence adds necessary information without redundancy. It is well-structured and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation, the description provides the endpoint, body fields, requirements, and a reference URL. It does not describe the response or error conditions, but the absence of an output schema makes that less critical. The inclusion of write opt-in and notification side effects adds operational completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% and the description compensates for the generic 'body' schema by explicitly listing expected fields (name, value, description). It does not elaborate on planId or confirm beyond what the schema already states, but the added body field information is valuable. The description enhances parameter understanding despite high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create a plan constant') with a clear verb and resource, and includes the HTTP method and endpoint. It lists the body fields (name, value, description), which distinguishes it from sibling operations like modify or delete. There is no ambiguity about the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating new plan constants but does not explicitly contrast with sibling tools such as xmatters_modify_a_plan_constant or xmatters_delete_a_plan_constant. It provides prerequisites (operator write opt-in, confirm:true) but lacks explicit guidance on when to choose this over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_plan_formCreate a plan formADestructive
Create a plan form. POST /api/xm/1/plans/{planId}/forms. Body fields: name, description, triggerType, mobileEnabled, uiEnabled, apiEnabled. Reference: https://help.xmatters.com/xmapi/#create-a-plan-form Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-plan-form | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-readonly behavior; the description adds that it 'may notify recipients or change tenant data,' which is important side-effect disclosure beyond the annotations. The confirm:true and operator opt-in requirements also clarify the authorization/safety bar. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description packs the purpose, endpoint, body fields, a documentation link, and required operational flags into three sentences. Each clause adds distinct value, though the long reference URL adds noise. It is reasonably front-loaded ('Create a plan form' first).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive create operation with no output schema, the description covers the purpose, path variable, body field names, required confirm flag, authentication prerequisite, and side-effect warnings. It does not describe the response shape or error cases, but these are not essential for invoking the tool; the reference link covers details. It is complete enough for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only explicitly documents name (and allows arbitrary additional body properties); the description enumerates the other body fields (description, triggerType, mobileEnabled, uiEnabled, apiEnabled), compensating for the 75% schema coverage. It also reinforces that confirm must be true. This gives the agent substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create a plan form') and the HTTP endpoint, which clearly identifies the resource and operation. The verb 'create' distinguishes it from sibling tools like xmatters_modify_a_plan_form and the various get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: the endpoint, the required confirm flag, and the operator opt-in prerequisite. However, it does not explicitly compare to alternative tools (e.g., modify_a_plan_form) or state when not to use it, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_scenarioCreate a scenarioADestructive
Create a scenario. POST /api/xm/1/forms/{formId}/scenarios. Body fields: attachments, bypassPhoneIntro, description, escalationOverride, expirationInMinutes, name, overrideDeviceRestrictions, permitted, priority, properties, recipients, requirePhonePassword, senderOverrides, targetDeviceNames, voicemailOptions. Reference: https://help.xmatters.com/xmapi/#create-a-scenario Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-scenario | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral aspects beyond annotations: it requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. This complements the annotations (destructiveHint=true, readOnlyHint=false) by adding specific side effects and prerequisites. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, stating the action, endpoint, body fields, reference, and requirements in a structured way. The list of body fields is necessary but adds length; it could be trimmed by linking to the reference. Overall it is front-loaded with the action and endpoint, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the body (nested JSON with many fields), the description provides a reference link, a list of fields, and critical requirements (opt-in, confirm:true). It does not describe the response format, but for a mutation tool that is less critical. The description is sufficient for an agent to understand how to construct the request, though field semantics are left to the reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers path (formId), body (generic JSON), query (empty), and confirm (boolean). The description lists the expected body fields (attachments, name, priority, etc.), which adds value over the generic body schema, but it does not explain the meaning or format of each field. The schema description for body already references the API docs, and the description adds the field list but not detailed semantics. Coverage is 75%, so the description partially compensates but does not fully explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a scenario'), the specific resource (scenario in a form), and the HTTP endpoint (POST /api/xm/1/forms/{formId}/scenarios). It is distinct from sibling tools like get_scenarios, modify_a_scenario, and delete_a_scenario, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for creating a new scenario, but it does not explicitly contrast it with alternatives like modify_a_scenario or state when to prefer this tool. It does mention the prerequisite of operator write opt-in and confirm:true, which is a usage condition, but it lacks guidance on when not to use this tool or when to choose a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_scheduled_messageCreate a scheduled messageADestructive
Create a scheduled message. POST /api/xm/1/scheduled-messages. Nested event and recurrence objects remain open; consult the Scheduled Message and MessageRecurrence objects. Body fields: name, event, attachments, recurrence. Reference: https://help.xmatters.com/xmapi/#create-a-scheduled-message Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-scheduled-message | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-idempotent; the description adds context by warning that it 'may notify recipients or change tenant data' and that operator write opt-in plus confirm:true are required. This meaningfully supplements the annotation signals without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense. The core action and endpoint are front-loaded, and each subsequent sentence adds a distinct piece of operational value: nested object guidance, body fields, reference link, and mutation prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex mutation with no output schema, the description covers the endpoint, body shape, nested-object caveat, external reference, permissions, confirmation requirement, and downstream effects. It does not describe the response format, but the reference link and nested-object pointers make the tool sufficiently callable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds value by naming the body fields (name, event, attachments, recurrence) and explicitly flagging that event and recurrence objects remain open. This helps compensate for the schema's generic body payload definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: 'Create a scheduled message' alongside the explicit POST endpoint. It is easy to distinguish from sibling tools like xmatters_get_a_scheduled_message, xmatters_modify_a_scheduled_message, and xmatters_delete_a_scheduled_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful prerequisites and hints about nested objects, but it does not explicitly say when to choose this tool over alternatives or mention the sibling modify/get/delete tools. Usage context is implied rather than directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_serviceCreate a serviceADestructive
Create a service. POST /api/xm/1/services. Body fields: targetName, description, serviceTier, serviceType, ownedBy. Reference: https://help.xmatters.com/xmapi/#create-a-service Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-service | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds valuable context: requires operator write opt-in and confirm:true, may notify recipients or change tenant data. This goes beyond the annotations and warns the agent about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and endpoint. The body fields, reference link, and safety warnings are all included in a few sentences. Slight redundancy with the title ('Create a service') but the endpoint and field list earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no output schema, the description covers the endpoint, required body fields, the confirm requirement, and side-effect warnings. It doesn't describe the response format, but the reference link to the API docs fills that gap. The main missing piece is a note about what a successful response looks like, which is minor given the reference link.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the body and confirm parameters. The description lists the body fields (targetName, description, serviceTier, serviceType, ownedBy) which adds some meaning, but the body is a generic JSON payload reference and the description doesn't explain field formats or requirements beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a service'), includes the exact API endpoint (POST /api/xm/1/services), and lists the key body fields. It clearly distinguishes this from sibling tools like xmatters_get_services, xmatters_modify_a_service, and xmatters_delete_a_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the operation and endpoint, and the schema's confirm parameter explicitly states the operator must enable XMATTERS_ALLOW_WRITES. It doesn't explicitly name alternatives or when-not-to-use, but the context of a create operation with write opt-in requirements is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_service_dependencyCreate a service dependencyADestructive
Create a service dependency. POST /api/xm/1/service-dependencies. Body fields: serviceId, dependentServiceId. Reference: https://help.xmatters.com/xmapi/#create-a-service-dependency Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-service-dependency | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-idempotent, and the description adds valuable behavior beyond that: it requires operator write opt-in, mandates confirm:true, and warns that the action may notify recipients or change tenant data. This gives an agent a good sense of the mutation's impact, though it doesn't detail reversibility or exact consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the action and endpoint, lists the body fields, gives a reference link, and then captures prerequisites and side effects. The opening sentence is somewhat redundant with the title, but every other sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with a generic nested body and no output schema, the description covers the endpoint, core body fields, authorization requirement, confirmation requirement, and side effects. It does not spell out response handling or validate the exact body shape, but the API reference link and annotations fill most of the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all parameters, but the body parameter is a generic recursive JSON schema, so the description's explicit mention of serviceId and dependentServiceId adds real meaning. The confirm parameter's description also clarifies the require-true semantics. It stops short of specifying types or requiredness of the body fields, but the reference link and endpoint guidance compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a create operation on the service-dependencies resource via the POST endpoint and names the key body fields. It is unambiguous about what the tool does, though it doesn't explicitly contrast itself with the sibling modify/delete service-dependency tools beyond the verb 'create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'create'; there is no explicit guidance about when to choose this tool over xmatters_modify_a_service_dependency or xmatters_delete_a_service_dependency. The description does provide important preconditions (operator write opt-in and confirm:true) and a side-effect warning, which helps an agent decide whether it is allowed to run it, but not which tool to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_shiftCreate a shiftADestructive
Create a shift. POST /api/xm/1/groups/{groupID}/shifts/. The definition omits its initial slash; the standard base URL and request examples establish the full root path. Its trailing slash is preserved. Name is required; start/end and recurrence fields are conditional. See C04. Body fields: name, description, recurrence, members, siteHolidays, timezone, start, end, rotation, repeatEscalation, notifyEndofEscalation, notifyEndOfEscalation. Reference: https://help.xmatters.com/xmapi/#create-a-shift Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-shift | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful side-effect disclosure: 'may notify recipients or change tenant data' and requires operator write opt-in plus confirm:true. These go beyond the raw annotations, which only flag mutating and destructive behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though informative, the description mixes endpoint URL details, field lists, cross-references, and prerequisites in a single dense block. The trailing-slash clarification and cryptic 'See C04' add noise; a short structured list would be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the key operational facts: endpoint, required/conditional fields, authentication opt-in, and side effects. Because there is no output schema, a statement about the response (e.g., the created shift) would improve completeness, but overall it is sufficient for a create mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has high coverage (75%) but only documents name, path, and a generic body object. The description supplements it by listing the full set of acceptable body fields and marking name as required and start/end/recurrence as conditional, enriching the otherwise permissive schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Create a shift.' It specifies the exact HTTP endpoint, distinguishing it from other shift tools like update/delete/get. The difference from siblings is apparent from the verb and endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no explicit guidance on when to choose this tool over siblings such as xmatters_update_a_shift_by_id. The required/conditional field notes are parameter-level, not use-case selection. Usage must be inferred from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_siteCreate a siteADestructive
Create a site. POST /api/xm/1/sites. Body fields: name, country, language, timezone. Reference: https://help.xmatters.com/xmapi/#create-a-site Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-site | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint:true and readOnlyHint:false, but the description adds specific side effects: 'may notify recipients or change tenant data' and explicitly requires confirm:true. This is meaningful behavioral disclosure beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the primary action is stated first, followed by the endpoint, body fields, reference link, and important caveats. Every sentence contributes necessary operational information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key operational aspects: endpoint, required fields, prerequisite confirm flag, and side effects. It could go further by describing the expected response format or an example payload, but it is sufficiently complete for an agent to invoke it correctly with the reference link.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the body parameter is only generically described as a complete JSON payload. The description adds value by naming the four expected body fields (name, country, language, timezone). The confirm constraint is also reiterated. This goes beyond the schema's generic body reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a site' with the exact REST endpoint (POST /api/xm/1/sites) and enumerates the body fields (name, country, language, timezone). This distinguishes it from sibling tools like modify_a_site and delete_a_site without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an implied usage context (creating a new site) and lists a prerequisite (operator write opt-in and confirm:true), but it does not explicitly route the agent away from alternatives like modify_a_site or state when not to use this tool. No comparison with siblings is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_subscriptionCreate a subscriptionADestructive
Create a subscription. POST /api/xm/1/subscriptions. Body fields: name, description, form, owner, notificationDelay, criteria, recipients, targetDeviceNames. Reference: https://help.xmatters.com/xmapi/#create-a-subscription Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-subscription | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate destructiveHint=true and idempotentHint=false. The description adds meaningful context beyond that by noting 'may notify recipients or change tenant data' and requiring 'operator write opt-in and confirm:true'. This gives the agent a clearer picture of the mutation's impact, surpassing what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the action and endpoint, followed by the body fields, reference link, and requirements. It packs useful information without unnecessary verbosity, though the list of fields and caveats makes it slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex create operation, the description covers the endpoint, body fields, required confirm flag, permission requirement, and side effects. It also provides a reference link for deeper details. While it doesn't detail nested structures or response format, the provided information is sufficient for an agent to make a correct call in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions are 100% coverage, but the description goes further by enumerating the key body fields (name, description, form, owner, notificationDelay, criteria, recipients, targetDeviceNames) that are not detailed in the generic 'Complete API JSON payload' schema description. This adds practical value for constructing the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a subscription') and the specific resource (subscriptions via POST /api/xm/1/subscriptions). It lists the body fields, making it unambiguous what the tool does and distinguishing it from other subscription operations like modify or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context (requires operator write opt-in and confirm:true) and warns about side effects, but it does not explicitly state when to use this tool versus alternatives (e.g., modify or delete subscription). The guidance is implied by the tool name and action but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_subscription_formCreate a subscription formADestructive
Create a subscription form. POST /api/xm/1/plans/{planId}/subscription-forms. Body fields: name, description, scope, form, oneWay, subscribeOthers, notificationDelay, propertyDefinitions, roles, devicesSectionCollapsed, devicesSectionVisible, targetDeviceNames. Reference: https://help.xmatters.com/xmapi/#create-a-subscription-form Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-subscription-form | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description explicitly warns that this operation 'may notify recipients or change tenant data' and requires 'operator write opt-in and confirm:true'. This is valuable behavioral context for a write endpoint that has side effects like notifications and tenant changes, exactly the kind of context an agent needs before invoking it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense: it front-loads the core action, then gives the endpoint, body fields, reference link, and the critical operator/confirm requirement in two sentences. Every sentence contributes unique information without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides the endpoint, body field list, reference URL, and required confirmation flag. There is no output schema, but for a create operation the most important context (side effects, auth requirement, confirm) is present. It doesn't describe the response shape or other behavioral details, but the reference link covers that and the essential invocation context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, and the description lists the body fields (name, description, scope, form, oneWay, etc.), which adds meaning beyond the schema's generic 'Complete API JSON payload' text. The schema already documents planId and confirm, and the description adds the endpoint and a reference URL for full field semantics. This compensates well for the remaining gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation ('Create a subscription form'), specifies the HTTP method and endpoint (POST /api/xm/1/plans/{planId}/subscription-forms), and lists the body fields. It is distinguishable from sibling tools like xmatters_modify_a_subscription_form or xmatters_get_subscription_forms_in_a_plan because it explicitly says 'Create' and provides the exact target resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when creating a subscription form) through the verb and resource, and the endpoint clarifies the plan-scoped context. It notes the operator write opt-in and confirm:true requirement, which is a key gate for use. It doesn't explicitly name sibling alternatives for modification or retrieval, but the 'Create' verb and the URL make the intended use clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_a_temporary_absenceCreate a temporary absenceADestructive
Create a temporary absence. POST /api/xm/1/temporary-absences. replacement is conditional on absenceType=REPLACEMENT and tenant policy; not required globally. Body fields: id, absenceType, member, start, end, group, includeDirectNotifications, replacement. Reference: https://help.xmatters.com/xmapi/#create-a-temporary-absence Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-a-temporary-absence | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already specify destructiveHint=true and readOnlyHint=false, so the mutation behavior is known. The description adds value by noting that it may notify recipients or change tenant data, and that it requires operator write opt-in and confirm:true, which are specific behavioral conditions beyond the generic annotation. It does not contradict annotations and provides useful extra detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph that covers the essential points: purpose, endpoint, key conditional, body fields, reference, and requirements. It front-loads the action and includes critical constraints without excessive verbosity. It could be slightly more structured with bullets, but it's efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has nested objects and requires a JSON payload, the description provides enough context for an agent to understand it must construct a body and confirm true, with a pointer to external docs. It doesn't explain return values, but there's no output schema and that may not be critical. The main gap is lack of explicit pagination or error handling info, but the reference is provided. Overall, it's sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (as indicated), so the schema describes both body and confirm parameters. The description adds details about the body fields (id, absenceType, etc.) and the conditional nature of replacement, which goes beyond the schema's generic description. However, it doesn't fully elaborate on each field's meaning, so it adds moderate value but not exhaustive semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a temporary absence via a specific API endpoint, and the title reinforces the action. It includes the required HTTP method and path. It is distinct from sibling tools like get/delete temporary absences, and the description's reference to body fields adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context on when this tool is applicable, mentioning the conditional replacement field and the need for operator write opt-in and confirm:true. However, it does not explicitly state when to prefer this over other mutation tools or when not to use it, though the API-specific nature makes usage fairly clear. It lacks exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_form_message_templatesCreate form message templatesADestructive
Create form message templates. POST /api/xm/1/forms/{formId}/message-templates. Body fields: email, sms, voice. Reference: https://help.xmatters.com/xmapi/#create-form-message-templates Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-form-message-templates | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds valuable side effects: 'may notify recipients or change tenant data' and the auth requirement. This goes beyond the structured data without contradicting it, enhancing the agent's understanding of impacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the purpose, then providing the endpoint, key fields, and requirements in a compact manner. It includes a reference URL but stays within a few sentences, making it efficient without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While it covers essentials like endpoint, body fields, and auth requirements, it omits any information about the response format or behavior for a create operation. The query parameter is not explained (though schema suggests none are documented). The reference link partially compensates, but the lack of output schema and minimal body detail leaves some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds meaning by listing body fields (email, sms, voice) and confirming the confirm:true requirement, which the schema only states as a const. It also provides the exact endpoint and a reference link, adding value over the generic schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates form message templates, with a specific verb and resource. It distinguishes itself from sibling tools like modify or get templates by the verb and endpoint, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage context by noting the requirement for operator write opt-in and confirm:true, but does not explicitly mention when to use this over alternatives like modify or get templates. No exclusions or alternative routing are given, leaving the choice partially to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_form_response_optionsCreate form response optionsADestructive
Create form response options. POST /api/xm/1/forms/{formId}/response-options. Body fields: number, text, description, prompt, action, contribution, joinConference, allowComments, redirectUrl, translations. Reference: https://help.xmatters.com/xmapi/#create-form-response-options Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-form-response-options | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, but the description adds meaningful behavioral context: the requirement for operator write opt-in and the potential to notify recipients or change tenant data. It also specifies confirm:true as a gate, which aligns with the schema. These details go beyond the annotations and help the agent anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it starts with the core action and endpoint, then lists body fields, a reference link, and prerequisites. Every sentence contributes necessary information without verbosity. The structure is ideal for quick agent consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with a nested body and confirmation gate, the description covers the endpoint, required parameters (path, confirm), body field outline, prerequisites, and side effects. It does not mention the return value or response format, but no output schema exists and the API reference is provided. This is sufficient for an agent to invoke the tool correctly, though a note on the expected response would be a minor enhancement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so the baseline is 3. The description adds value by enumerating the body fields (number, text, description, prompt, action, contribution, joinConference, allowComments, redirectUrl, translations), which the schema's body definition leaves generic ('Complete API JSON payload'). It also reinforces the confirm:true requirement. While not exhaustive, it meaningfully improves parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Create') and a specific resource ('form response options'), backed by the HTTP endpoint POST /api/xm/1/forms/{formId}/response-options. This unambiguously differentiates it from sibling tools like get or modify response options. The list of body fields further clarifies the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides essential usage context: it requires operator write opt-in and confirm:true, and warns of side effects (may notify recipients or change tenant data). It does not explicitly contrast with alternative tools (e.g., 'use modify_a_form_response_option for updates'), but the name and endpoint make the intended use clear. It covers prerequisites and consequences well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_plan_endpointCreate plan endpointADestructive
Create plan endpoint. POST /api/xm/1/plans/{planId}/endpoints. Body fields: name, url, endpointType, authenticationType, authentication. Reference: https://help.xmatters.com/xmapi/#create-plan-endpoint Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-plan-endpoint | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by specifying that the operation may notify recipients or change tenant data and that confirm:true plus an operator write opt-in are required. This aligns with readOnlyHint=false and destructiveHint=true, so there is no contradiction. It adds useful behavioral context that the annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the operation, HTTP method, path, key body fields, reference, and required safety prerequisites in two sentences. Every clause contributes useful information, and the slight redundancy with the title is negligible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential invocation details: exact endpoint, required body fields, documentation reference, write opt-in/confirm requirement, and side-effect warning. There is no output schema, so a note about the return value could improve completeness, but the provided reference URL and operational prerequisites make the tool callable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The body schema is unconstrained JSON with only a reference link, so the description adds real value by enumerating name, url, endpointType, authenticationType, and authentication. The POST URL also clarifies that path.planId is part of the endpoint path. Other parameters like confirm and query are already explained in the schema, so the description does not need to repeat them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation as 'Create plan endpoint' and gives the exact HTTP method and resource path (POST /api/xm/1/plans/{planId}/endpoints), which distinguishes it from get/modify/delete endpoint siblings. It could be a 5 if it explicitly named those alternatives, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides important usage context by stating that operator write opt-in and confirm:true are required, and it warns of potential side effects. However, it never explicitly says when to use this tool versus creating, modifying, or deleting other resources, nor does it name the get/modify/delete endpoint siblings as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_create_plan_propertiesCreate plan propertiesADestructive
Create plan properties. POST /api/xm/1/plans/{planId}/property-definitions. planId is the required path identifier despite the BODY PARAMETERS heading. Property type-specific fields come from Plan Property Objects; JSON remains open. See C07. Body fields: id, propertyType, name, description, helpText, default, delimiter, categories, paths, items, maxLength, minLength, units, pattern, validate. Reference: https://help.xmatters.com/xmapi/#create-plan-properties Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#create-plan-properties | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds concrete behavioral detail: it requires operator write opt-in, may notify recipients, and may change tenant data. It also warns that the JSON body remains open, which helps the agent understand the flexible and potentially affecting nature of the call. No contradiction with the annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action and endpoint, and nearly every clause adds operational context: path parameter clarification, open JSON warning, field list, authorization, and side effects. The unexplained 'See C07' and the duplicated reference URL add slight clutter, but overall the description remains dense and useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex create operation with no output schema, the description provides the endpoint, required path identifier, body-field guidance, reference link, authorization requirement, and side effects. It omits response or error behavior, which is a minor gap, but an agent can still select and invoke the tool correctly from this definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body parameter is a generic recursive 'any', so the description carries the main parameter burden by listing the known body fields and referring to Plan Property Objects and the API reference. It also clarifies that planId is the required path parameter despite the BODY PARAMETERS heading and notes confirm:true, all of which go well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create plan properties' and gives the exact POST endpoint, so the verb, resource, and operation are unambiguous. It is clearly distinct from sibling tools like get_plan_properties and modify_plan_properties without requiring the agent to inspect their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes that this is a create/mutation operation and gives important usage prerequisites: operator write opt-in and confirm:true, plus side-effect risk. It does not explicitly name alternatives or when-not-to-use conditions, but the create action and write requirements provide sufficient context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_conference_bridgeDelete a conference bridgeADestructive
Delete a conference bridge. DELETE /api/xm/1/conference-bridges/{bridgeID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-conference-bridge Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: id. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it destructive and non-readonly. The description adds valuable behavioral context: may notify recipients or change tenant data, and requires operator write opt-in. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and every sentence carries useful information: endpoint, body, reference, requirements, side effects. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description covers prerequisites, side effects, and endpoint. With destructiveHint already set and no output schema, this is sufficient. It could mention response code or idempotency, but those are minor gaps given annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 67% of parameters with descriptions; baseline is 3. The description adds 'Body fields: none' and restates confirm:true, which is already in schema. It does not explain bridgeID semantics or the query parameter beyond what schema offers. Slight additional value but not significant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'Delete' and resource 'conference bridge', and includes the exact REST endpoint. It is clearly distinct from sibling modify/create/get conference bridge tools, with no ambiguity about the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when the tool can be used: requires operator write opt-in and confirm:true. It does not explicitly list exclusions or alternatives, but the prerequisites and side-effect warning guide the agent. Missing explicit when-not-to-use or alternative suggestions, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_deviceDelete a deviceADestructive
Delete a device. DELETE /api/xm/1/devices/{deviceID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-device Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses additional behavioral effects beyond the destructiveHint annotation: it may notify recipients or change tenant data, and requires operator write opt-in. This gives an agent useful side-effect awareness not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: action, endpoint, and key side-effect/requirement. Every sentence earns its place and the most important operational caveats are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool, the description covers the endpoint, required confirm flag, operator opt-in, and side effects. No output schema exists, but the description and schema together give enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes confirm and query properties well, covering 67% of parameters. The description adds little beyond restating confirm:true and noting no body fields, which is not particularly necessary since no body parameter exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Delete a device', a specific verb plus resource, and includes the exact REST endpoint. This clearly distinguishes it from sibling tools like get_a_device, create_a_device, and modify_a_device.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the prerequisite of an operator write opt-in and confirm:true, which is essential usage guidance. It does not explicitly name alternatives or when-not-to-use conditions, but the delete semantics are unambiguous enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_device_nameDelete a device nameADestructive
Delete a device name. DELETE /api/xm/1/device-names/{deviceID}. DEFINITION incorrectly says /devices/{deviceID}; JavaScript and Python requests both use /device-names/{deviceID}. The cURL sample also misspells device-namess. See audited correction C01. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-device-name Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only; the description adds meaningful context by noting it 'may notify recipients or change tenant data' and requires an operator write opt-in. It also flags an upstream API documentation error, which is valuable beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, resource, and endpoint. The correction about the official definition and cURL typo is dense but purposeful because it prevents an agent from using a wrong URL. Some redundancy exists, but most sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-resource DELETE with no output schema, it covers the endpoint, required confirmation, side effects, and a known documentation discrepancy. It does not describe response or error formatting, but that is not essential for this mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the baseline is 3. The description adds 'Body fields: none' and confirms the confirm:true requirement, but it does not meaningfully expand on path.deviceID or query beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact action and resource: 'Delete a device name', and anchors it to the correct endpoint /api/xm/1/device-names/{deviceID}. It also explicitly separates this from deleting a device by naming the resource type, making sibling differentiation clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit preconditions for use: operator write opt-in and confirm:true, plus a warning about side effects. It does not name alternative tools, but the sibling set and resource name make the intended use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_groupDelete a groupADestructive
Delete a group. DELETE /api/xm/1/groups/{groupID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-group Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: 'may notify recipients or change tenant data' and requires confirm:true. Annotations already flag destructiveHint=true, but the description elaborates on side effects and prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise single sentence with endpoint and reference link. However, it repeats 'Delete a group' from the title, and the reference link may be redundant. Still, it is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides essential info: endpoint, requirements, and side effects. Lacks description of groupID meaning, but context from resource name implies it. Adequate for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers confirm and query with descriptions, but the description does not clarify the groupID parameter beyond its presence in the path. 'Body fields: none' is unrelated to parameters, so no additional meaning is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation ('Delete a group') and specifies the HTTP endpoint (DELETE /api/xm/1/groups/{groupID}). This clearly distinguishes it from sibling tools like get, create, or modify group operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It does not mention sibling tools or conditions under which deletion is appropriate. It only lists prerequisites (operator write opt-in and confirm:true), which are requirements rather than usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_an_integrationDelete an integrationADestructive
Delete an integration. DELETE /api/xm/1/plans/{planId}/integrations/{integrationId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-an-integration Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds meaningful behavioral context beyond annotations: 'may notify recipients or change tenant data' and the need for operator write opt-in and confirm:true. This explains real-world consequences and prerequisites that an agent would not infer from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, then the endpoint, requirements, and side effects. The API reference URL is somewhat extraneous but does not bloat the text. Every sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete tool with annotations covering destructive behavior and schema covering parameters, the description provides the endpoint, prerequisites, and side effects. It does not mention the return value or explicitly state irreversibility, but those are fairly implied by destructiveHint and the delete action. Overall, an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, covering path and confirm. The description contributes little beyond the schema: 'Body fields: none' is redundant since no body property exists, and the confirm requirement is already described in the schema. It does not elaborate on planId or integrationId semantics, so it stays at the baseline for medium coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Delete an integration', a specific verb and resource, and repeats the REST endpoint that identifies the exact operation. This clearly distinguishes it from sibling tools that get, create, or modify integrations, and from deletes of other resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states prerequisites ('Requires operator write opt-in and confirm:true') and hints at potential side effects, which gives some usage context. However, it does not explicitly say when to use this tool versus alternatives (e.g., modify instead of delete) or provide exclusion conditions, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_personDelete a personADestructive
Delete a person. DELETE /api/xm/1/people/{personID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-person Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations' destructiveHint, the description adds concrete behavioral context: operator write opt-in is required, confirm must be true, and the action may notify recipients or change tenant data. It also states the HTTP verb and body expectations, which helps an agent anticipate side effects and authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with 'Delete a person' before the endpoint and constraints. Each piece adds information, though the trailing reference and requirement section could use line breaks or punctuation for easier scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive call with two required parameters and no output schema, the description supplies the key invocation facts: how to target the person, what body/query expectations are, and what authorization and side-effect caveats exist. It does not detail error cases or how the operator opt-in is granted, but the annotations and schema cover the remainder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template 'DELETE /api/xm/1/people/{personID}' clarifies the required path parameter, and 'Body fields: none' removes guesswork about a request body. The confirm requirement is reinforced, though query parameters are left generic by the schema's own description; this is reasonable for a delete operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the explicit verb-object pair 'Delete a person' and grounds it in the exact HTTP endpoint. This clearly distinguishes it from sibling tools like get_a_person_by_id, create_a_person, and modify_a_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states necessary preconditions ('Requires operator write opt-in and confirm:true') and the resource to target, so the intended use is clear. However, it gives no explicit guidance about when to prefer deletion over alternatives such as modify_a_person, or any when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_planDelete a planADestructive
Delete a plan. DELETE /api/xm/1/plans/{planId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-plan Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint:true), the description adds specifics: 'may notify recipients or change tenant data' and 'Requires operator write opt-in and confirm:true'. These disclose side effects and prerequisites not fully captured by annotations or schema, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the purpose, then providing the endpoint, reference, and critical prerequisites in a single sentence. Every element adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with no output schema, the description includes essential context: endpoint, reference, prerequisites, and side effects. It does not specify the response on success (e.g., 204), but this is minor given the absence of an output schema and the simplicity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers path.planId and confirm with descriptions, but the description adds 'Body fields: none' and the operator write opt-in requirement, which are not in the schema. With 67% schema coverage, this additional context helps agents understand the call parameters, though the query parameter remains generic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Delete a plan' clearly, specifying the verb and resource. It distinguishes from sibling delete tools (e.g., delete_a_device, delete_a_group) by targeting the 'plan' resource, so an agent can select it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: it is a delete operation for a specific plan, includes the endpoint, and notes prerequisites (operator write opt-in and confirm:true). It does not explicitly mention exclusions or alternatives, but the resource-based clarity makes when-to-use evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_plan_constantDelete a plan constantADestructive
Delete a plan constant. DELETE /api/xm/1/plans/{planId}/constants/{constantId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-plan-constant Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond the destructiveHint and readOnlyHint annotations: it requires operator write opt-in and confirm:true, and warns that the action may notify recipients or change tenant data. This meaningfully signals side effects an agent should consider before calling the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core action, and each sentence carries useful information: endpoint, body expectations, reference, and required safeguards. There is no filler or repetition of the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the critical operational details: HTTP method, path, confirmation requirement, opt-in, and potential side effects. It could be slightly more complete by stating what a successful response looks like or explicitly contrasting with the modify and create siblings, but it is not missing essential safety information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template adds some meaning by showing planId and constantId as path variables, and the description restates the confirm:true requirement, but the schema already documents confirm and query. The planId and constantId properties themselves remain undocumented in both schema and description, so the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the exact operation, 'Delete a plan constant', and reinforces it with the full DELETE endpoint, so the verb and resource are unmistakable. It is also clearly distinct from sibling tools like create/modify/get plan constants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied by the operation name and description, but no explicit guidance is given about when to choose this tool over related tools such as modify_a_plan_constant or get_plan_constants. The confirmation and opt-in requirements are operational constraints, not usage comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_plan_endpointDelete a plan endpointADestructive
Delete a plan endpoint. DELETE /api/xm/1/plans/{planId}/endpoints/{endpointId}. DEFINITION uses singular endpoint; cURL, JavaScript, Python and the returned self link agree on plural endpoints. See C02. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-plan-endpoint Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds valuable behavioral context beyond annotations: it requires operator write opt-in and confirm:true, may notify recipients or change tenant data, and notes the plural/singular discrepancy in the API definition. This goes beyond what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and endpoint. The additional notes about plural/singular, body fields, reference link, and requirements are each useful and not redundant. It is slightly dense with multiple clauses in one sentence, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the key operational facts: the HTTP method and path, the required confirm flag, the write opt-in requirement, and potential side effects. It does not describe the response format, but no output schema exists and the reference link is provided. The main missing piece is a clearer statement of what happens on success or failure, but the description is largely complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the description adds meaning for the confirm parameter by explaining it is 'Explicit approval of this exact mutation' and that the operator must enable XMATTERS_ALLOW_WRITES. The path parameters (planId, endpointId) are self-explanatory from the schema and the endpoint URL. The description does not add much for the query parameter, but the schema already documents it as having no documented names and explicit pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete'), a specific resource ('a plan endpoint'), and the exact HTTP endpoint. It also distinguishes itself from sibling tools like xmatters_get_plan_endpoints, xmatters_create_plan_endpoint, and xmatters_modify_a_plan_endpoint by naming the delete operation explicitly. The plural/singular note adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. It does not explicitly name alternative tools for when not to use it, but the delete-specific wording and the sibling list make the usage context clear. A small gap is not stating when to prefer a different endpoint (e.g., modify instead of delete).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_scheduled_messageDelete a scheduled messageADestructive
Delete a scheduled message. DELETE /api/xm/1/scheduled-messages/{scheduledMessageId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-scheduled-message Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-idempotent; the description adds meaningful context by stating that deletion may notify recipients or change tenant data and by calling out the operator write opt-in requirement. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core purpose before side effects and prerequisites. The reference URL is mildly redundant for an agent, but the overall length is appropriate and every major sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete operation with no output schema, the description covers the essential operational caveats: required confirmation, operator write opt-in, potential recipient notification, and tenant data changes. It does not describe response codes, but that is a minor gap for a simple DELETE endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema carries most of the parameter meaning for `path` and `confirm`. The description adds the endpoint template and "Body fields: none," but it does not explain the scheduledMessageId format or add much semantic value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific action and resource: "Delete a scheduled message," then reinforces it with the exact REST endpoint. This clearly distinguishes it from the scheduled-message create, modify, and get siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives prerequisites (operator write opt-in and confirm:true) but provides no guidance about when to choose this tool instead of an alternative, nor any "when not to use" exclusions. There is no comparison to sibling tools such as modifying or getting a scheduled message.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_serviceDelete a serviceADestructive
Delete a service. DELETE /api/xm/1/services/{serviceId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-service Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-idempotent; the description adds that it may notify recipients or change tenant data and that operator write opt-in is required, which are not present in the structured hints. It does not fully describe irreversibility, but destructiveHint covers that core aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences plus endpoint and reference link. Every clause adds useful information—purpose, endpoint, body requirement, prerequisites, and side effects—with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete tool with no output schema, the description covers the essential context: endpoint, body constraints, prerequisites, and potential side effects. It omits response details and error scenarios, but those are less critical given the annotations and simple parameter structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides rich descriptions for query and confirm, covering 67% of parameters. The description adds 'Body fields: none' and the URL path clarifies serviceId, but it does not explain the meaning of serviceId or add detail beyond what the schema already has. Adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation directly ('Delete a service') and gives the exact REST endpoint (DELETE /api/xm/1/services/{serviceId}), which clearly differentiates it from sibling tools like xmatters_get_a_service, xmatters_create_a_service, and xmatters_modify_a_service. An agent can immediately identify what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisites ('Requires operator write opt-in and confirm:true') but gives no guidance on when to choose this tool over alternatives such as xmatters_modify_a_service or when deletion is appropriate. It does not contrast with sibling operations, so the agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_service_dependencyDelete a service dependencyADestructive
Delete a service dependency. DELETE /api/xm/1/service-dependencies/{id}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-service-dependency Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and not read-only. The description adds meaningful behavioral context beyond them: it requires operator write opt-in and confirm:true, and warns that the operation may notify recipients or change tenant data. This is exactly the kind of side-effect disclosure an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-ordered: purpose, method/path, body clarification, reference, then required authorization and side effects. Every sentence earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, it covers the identifier, authentication prerequisite, confirmation requirement, and side effects. It does not describe response codes or failure semantics, but that is not essential for correctly selecting and invoking this DELETE operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents confirm and query well, and the description clarifies that body fields are none. The endpoint template adds meaning for path.id. The only minor gap is not stating where confirm is transmitted, but the schema's required const true is sufficient for correct MCP invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Delete a service dependency', reinforced by the exact DELETE endpoint. This unambiguously distinguishes it from sibling tools like create/modify_a_service_dependency and delete_a_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives preconditions such as operator write opt-in and confirm:true, which is useful operational guidance. However, it does not explicitly say when to use this tool versus modifying or deleting other resources; the appropriate usage is only implied by the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_shiftDelete a shiftADestructive
Delete a shift. DELETE /api/xm/1/groups/{groupID}/shifts/{shiftID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-shift Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructive/write. The description adds the specific gate (operator write opt-in + confirm:true) and concrete side effects ('may notify recipients or change tenant data'), which are not present in the annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact presentation front-loads purpose, endpoint, and no-body, then adds auth and side-effect warnings. The reference link is extra but useful; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, auth-gated delete, the description includes endpoint, body requirement, confirmation gate, and side effects. It does not describe response/status codes, but no output schema exists and the reference URL covers deeper API details, so the core invocation context is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 67% of properties; query and confirm have schema descriptions, path does not. The description reinforces confirm:true and clarifies the request has no body, and the endpoint template gives path-parameter meaning, but it does not independently explain groupID/shiftID beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the action ('Delete a shift') and gives the exact REST endpoint with groupID/shiftID, making the target resource unambiguous. It does not explicitly contrast with sibling update/shift tools, but the delete verb and endpoint are sufficient to identify the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus update/create/get shift tools; the agent must infer from operation name. It gives prerequisites (write opt-in, confirm:true) but not selection criteria relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_siteDelete a siteADestructive
Delete a site. DELETE /api/xm/1/sites/{siteID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-site Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false, and openWorldHint=true; the description adds genuine context beyond those by disclosing that deletion 'may notify recipients or change tenant data' and requires an operator write opt-in. This gives the agent a real sense of blast radius without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, endpoint, body, reference, then side effects. Every fragment earns its place; the only minor flaw is the reference URL running into the next clause without clear separation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no output schema, the description covers purpose, endpoint, body absence, authorization prerequisite, and user-visible side effects, and links to full API docs. It does not describe the success response or reversibility, which are modest gaps for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with confirm and path.siteID described in the schema (confirm via const:true, siteID via minLength). The description adds 'Body fields: none,' confirming agents need not send a body, but it does not elaborate on siteID semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Delete a site') and adds the exact REST endpoint (DELETE /api/xm/1/sites/{siteID}), making the operation unambiguous against siblings like get_a_site, create_a_site, and modify_a_site. However, it does not explicitly contrast with those sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and purpose, and the description adds important preconditions ('Requires operator write opt-in and confirm:true') that tell an agent when the call will be permitted. It never names sibling alternatives (e.g., modify_a_site) or says when not to delete, so routing guidance is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_subscriptionDelete a subscriptionADestructive
Delete a subscription. DELETE /api/xm/1/subscriptions/{subscriptionId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-subscription Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint true and readOnlyHint false, and the description adds important consequences: 'may notify recipients or change tenant data.' It also states the auth requirement and the need for confirm:true, going well beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and endpoint. Every sentence adds value: endpoint, body requirement, reference, permissions, and side effects. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description covers the endpoint, required confirmation, permissions, and potential side effects. With destructiveHint in annotations and no output schema, nothing essential is missing for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds 'Body fields: none' and restates the confirm:true requirement, which reinforces the schema's confirm description. It doesn't elaborate subscriptionId, but the schema already documents it; overall it adds meaningful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the specific verb 'Delete' and resource 'a subscription', and includes the exact HTTP endpoint. It clearly distinguishes from sibling tools like get/modify/create subscription by naming the destructive action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives prerequisites (operator write opt-in and confirm:true) but does not explicitly say when to use this tool over alternative subscription operations (e.g., unsubscribe_a_user or modify_a_subscription). Usage is implied rather than explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_delete_a_temporary_absenceDelete a temporary absenceADestructive
Delete a temporary absence. DELETE /api/xm/1/temporary-absences/{temporaryAbsenceId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#delete-a-temporary-absence Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, so the description's added value is the side-effect warning that recipients may be notified and tenant data may change, plus the write-opt-in requirement. This goes beyond the structured annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences convey endpoint, body expectation, reference, prerequisites, and side effects with little waste. Minor double spacing and a reference URL are acceptable; info is front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-required-parameter delete with no output schema, the description covers the endpoint, required confirmation, opt-in, body expectation, and side effects. A response/status-code note would be a small improvement, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents query and confirm in detail, and the description adds only 'Body fields: none' and the path variable name through the endpoint. The temporaryAbsenceId parameter has no explicit prose description but is self-explanatory from the endpoint; the added value over the schema is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete a temporary absence') and gives the exact REST endpoint, which unambiguously identifies the resource and operation. This distinguishes it from the sibling create/get temporary-absence tools even without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear invocation context by stating the DELETE verb, that no body fields are needed, and that operator write opt-in plus confirm:true are required. It doesn't name alternatives or exclusions, but for a deletion operation the trigger condition ('delete a temporary absence') is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_changeGet a changeBRead-onlyIdempotent
Get a change. GET /api/xm/1/changes/{changeID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-change
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds the HTTP GET method and 'Body fields: none' but does not disclose potential behaviors like authentication requirements, error cases, or response characteristics. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: the core action comes first, then the exact endpoint, then the body constraint, then a reference link. Every sentence earns its place and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource GET with strong annotations, the description provides the essential invocation information: the endpoint and required changeID. However, it does not describe what a 'change' is, what response to expect, how errors are surfaced, or how this tool relates to the sibling listing tool xmatters_get_changes. The reference link partially compensates, and the complexity is low, so a 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint path /changes/{changeID} makes the meaning and location of the required changeID parameter clear, even though the schema's path object lacks a description. The query object is already described in the schema, including pagination behavior. The description's only additional parameter-related note is 'Body fields: none,' which is useful but minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Get a change' and identifies the exact endpoint GET /api/xm/1/changes/{changeID}. It is obviously a single-resource retrieval operation, but it does not explicitly contrast with the sibling xmatters_get_changes or otherwise name alternatives, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many related tools in the sibling list, such as xmatters_get_changes or xmatters_create_a_change_record. The endpoint implies it should be used when you have a specific changeID, but no explicit when-to-use, when-not-to-use, or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_communication_planGet a communication planBRead-onlyIdempotent
Get a communication plan. GET /api/xm/1/plans/{planId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-communication-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the API endpoint and notes that body fields are none, which is useful but not extensive. It does not disclose behaviors like authentication, rate limits, or return format, but given the annotations cover the safety aspects, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a clear purpose statement, the endpoint, a note about body fields, and a reference link. There is no fluff or unnecessary detail, and the core purpose is front-loaded in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation with read-only annotations and a schema that covers the query parameters, the description is mostly complete. It lacks any mention of what a communication plan is or what the response contains, but the output schema is absent and the reference link provides additional context. The note about body fields and the endpoint are sufficient for an agent to make the call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the path parameter planId is required but not described, while the query parameter has a detailed description in the schema. The tool description does not add any additional meaning to the parameters beyond what the schema already provides. The endpoint mentions {planId} but does not elaborate on its format or purpose, so the description adds minimal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a communication plan' with a specific verb and resource, and the endpoint includes {planId} indicating a single plan lookup. However, it does not explicitly distinguish this from the sibling xmatters_get_communication_plans (plural) for listing all plans, relying on the name and endpoint to convey the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this is for retrieving a single plan by ID, nor does it suggest when the plural list version would be appropriate. The endpoint implies a planId is required, but there is no explicit usage context or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_conference_bridgeGet a conference bridgeCRead-onlyIdempotent
Get a conference bridge. GET /api/xm/1/conference-bridges/{bridgeId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-conference-bridge
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only behavior is covered. The description adds the endpoint and 'Body fields: none,' which gives minor request-shape clarity, but it does not disclose response format, error cases, or authentication requirements. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, but the first sentence 'Get a conference bridge' is redundant with the tool name. The endpoint line and reference link add value, but the structure could be tighter by dropping the tautological opener.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID tool, the endpoint and body-fields note provide the core calling context, and annotations cover the safety profile. However, there is no output schema, no description of the returned conference bridge object, and no guidance on finding bridgeId, leaving moderate gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description shows bridgeId appearing in the path via the endpoint template, and says body fields are none, but it does not explain what bridgeId represents or how to obtain it. Schema coverage is only 50% because query parameters have no documented names, and the description does not compensate for this gap beyond restating the placeholder.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a conference bridge' and includes the exact endpoint GET /api/xm/1/conference-bridges/{bridgeId}. This clearly identifies a single-resource read operation and distinguishes it from the sibling list tool xmatters_get_conference_bridges, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as xmatters_get_conference_bridges for listing bridges or xmatters_create_an_external_conference_bridge for creating one. The endpoint implies fetching by ID, but the description offers no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_deviceGet a deviceBRead-onlyIdempotent
Get a device. GET /api/xm/1/devices/{deviceID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-device
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, fully covering the safety profile. The description adds a minor behavioral note that 'Body fields: none' (pertaining to the request) and provides a reference link. It does not mention response format or any edge cases, but given strong annotation coverage, this is acceptable. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the essential action and endpoint, followed by a body-fields note and a reference. Every sentence adds value: the endpoint clarifies the API call, the body note prevents unnecessary payload, and the reference offers deeper docs. It is concise with no fluff, though the structure is a bit fragmented into three short clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward GET-by-ID operation with no output schema and strong safety annotations, the description is mostly adequate. It includes the endpoint, body requirement, and a link for detail. However, it does not mention error handling, response structure (though none is specified), or how to use the query parameters (only the schema covers that). An agent could call it correctly, but more context on potential failures or usage notes would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 50%: the query parameter is well documented (embed, pagination, comma joining), but the deviceID within the path object has no description. The tool description adds no parameter-specific meaning, so it relies entirely on the schema. The deviceID is self-explanatory from the endpoint, but the description does not compensate for the missing schema intent. Overall, it meets the baseline but does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a device') and provides the exact API endpoint (GET /api/xm/1/devices/{deviceID}), which unambiguously identifies the resource and operation. It is distinct from siblings like xmatters_get_devices (list) and create/modify/delete tools, though it does not explicitly point out these differences. The endpoint format implies a single device lookup by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives such as xmatters_get_devices or xmatters_get_a_person_39_s_devices. The description only states the endpoint and does not provide context for selection, prerequisites, or conditions that favor this tool. The agent must infer from the name and API path, which is insufficient given the large sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_planGet a form in a planARead-onlyIdempotent
Get a form in a plan. GET /api/xm/1/forms/{formId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the HTTP method and 'Body fields: none', but does not describe response contents, error cases, or other operational behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: a clear verb/resource clause, the endpoint, a note that the body is empty, and a reference link. Every element earns its place, and there is no repetition of information already present in the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not state what a successful response contains, and it gives no guidance on plan context or failure modes. The reference link and schema-side query documentation compensate partially, making this adequate but not complete for an agent that must interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the query parameters (recipients, embed, offset, limit), comma-joining of arrays, and explicit pagination behavior, covering much of the optional surface. The description itself adds little beyond embedding {formId} in the endpoint; formId is not semantically explained, though its meaning is reasonably inferable from the name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a form in a plan') and pins it to the exact endpoint GET /api/xm/1/forms/{formId}. It clearly identifies a single-item retrieval, but it does not explicitly contrast with sibling list tools such as xmatters_get_forms_in_a_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The singular 'a form' and the {formId} path parameter imply use when you have a specific form ID and need one form, but the description provides no explicit when-to-use versus alternatives guidance. It neither states exclusions nor names sibling tools that should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_plan_nestedGet a form in a plan — nestedBRead-onlyIdempotent
Get a form in a plan — nested. GET /api/xm/1/plans/{planId}/forms/{formId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method (GET), the endpoint, and "Body fields: none," which are mildly useful, but it does not disclose response behavior or open-world caveats beyond what annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: operation, endpoint, body requirement, and reference are each in one short line. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested variant in a dense family of form/plan tools with no output schema, the description is missing the most important context: what "nested" changes about the response and when to select this tool over its siblings. The schema covers pagination mechanics, but selection-critical information is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the query parameters with helpful detail (including comma-joining and explicit pagination), but the required path parameters have no descriptions. The description only restates planId and formId in the URL template without adding semantics beyond their names, so it only partially compensates for the schema's gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: retrieving a form in a plan, reinforced by an explicit REST endpoint. It is unambiguous about the resource acted on, but it does not explain what "nested" means or how this tool differs from closely related siblings like xmatters_get_a_form_in_a_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 variant instead of the many related form/plan tools. It does not mention scenarios, exclusions, or alternatives; the reference link is a documentation pointer, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_plan_nested_recipientsGet a form in a plan — nested recipientsBRead-onlyIdempotent
Get a form in a plan — nested recipients. GET /api/xm/1/plans/{planId}/forms/{formId}/recipients. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description doesn't need to cover safety. It adds 'Body fields: none' and the endpoint, which are minor but useful context. No additional behavioral details (e.g., pagination, response format) are disclosed, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose and endpoint. It includes a reference link for additional context. There is no wasted text, though it could benefit from a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a reference link and the endpoint, but does not clarify the meaning of 'nested recipients' or how it differs from the non-nested variant. It also omits any mention of output structure, though the lack of an output schema lessens that need. Given the dense sibling set, more context about when this variant is appropriate would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only mentions 'Body fields: none', which is not a parameter. It does not explain planId or formId, though they are self-explanatory from the endpoint. The query object has a schema description, but the overall schema coverage is 50%, and the description does not compensate by detailing the path parameters or query semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get a form in a plan) and the specific resource (nested recipients) and gives the endpoint. It distinguishes from the non-nested sibling by name, but doesn't explain what 'nested' means, leaving some ambiguity about the exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings such as xmatters_get_a_form_in_a_plan_recipients or xmatters_get_a_form_in_a_plan_nested. There are no explicit when-to-use or alternative recommendations, leaving the agent to infer the distinction from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_plan_nested_sender_permissionsGet a form in a plan — nested sender permissionsCRead-onlyIdempotent
Get a form in a plan — nested sender permissions. GET /api/xm/1/plans/{planId}/forms/{formId}/sender-permissions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the endpoint and notes that body fields are none, which is useful. However, it does not describe what 'nested' means behaviorally, nor does it explain the query parameters or response format. It is consistent with the annotations and adds some context, but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences plus a URL and reference—and the core purpose is front-loaded. It includes the HTTP method and endpoint in the first sentence, making it easy to scan. There is no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested objects, no output schema, and many closely related siblings), the description is too sparse. It does not clarify when to choose the nested variant over the non-nested one, does not explain query parameters, and does not describe the return structure. The reference link provides external documentation but is not inline, so the description alone is insufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters. The schema defines path parameters (planId, formId) without descriptions, and the query parameter is a generic object with a description that lists names but no meanings. With schema description coverage at 50%, the description should compensate for the undocumented path parameters, but it does not. It merely repeats the endpoint pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation (get), the resource (a form in a plan), and the specific subresource (nested sender permissions). It includes the exact HTTP endpoint, which disambiguates it from the many similar sibling tools. However, it does not explicitly contrast it with the non-nested sender-permissions variant, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like xmatters_get_a_form_in_a_plan_sender_permissions or xmatters_get_a_form_in_a_plan_nested. The description simply provides the endpoint and a reference link, leaving the agent to infer the difference from the name alone. No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_plan_recipientsGet a form in a plan — recipientsCRead-onlyIdempotent
Get a form in a plan — recipients. GET /api/xm/1/forms/{formId}/recipients. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds only the endpoint and body fields, but no behavioral details like return format, pagination defaults, or error conditions. It doesn't contradict annotations, but adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and direct, front-loading the purpose. Includes the endpoint and a reference link, both useful, with no wasted words. It's concise without being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET with read-only annotations and no output schema, it covers the core action but lacks details on the response structure or pagination behavior (though the schema's query description covers offset/limit). It's adequate for a basic retrieval but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention parameters. The schema provides a description for the 'query' object (pagination, offset/limit) but the 'path.formId' is only typed as string. With 50% schema coverage, the description should compensate for the undocumented formId semantics but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Get a form in a plan — recipients' with the explicit endpoint. It distinguishes from sibling tools like xmatters_get_a_form_in_a_plan and xmatters_get_a_form_in_a_plan_sender_permissions by focusing on recipients, though it doesn't contrast with the nested recipients variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as xmatters_get_a_form_in_a_plan_nested_recipients or xmatters_get_forms_in_a_plan. The description only states what it does, leaving selection to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_form_in_a_plan_sender_permissionsGet a form in a plan — sender permissionsBRead-onlyIdempotent
Get a form in a plan — sender permissions. GET /api/xm/1/forms/{formId}/sender-permissions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-form-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: recipients, embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and a reference link, but does not disclose behavior such as pagination, default limits, or what the response contains. The query schema does mention pagination explicitly, so the description itself adds little beyond the annotations and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one sentence, the endpoint, body fields, and a reference link. It is front-loaded with the resource name and HTTP method. The reference link is useful but could be considered extra; overall it is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with annotations covering safety and a schema covering the query parameters, the description is mostly adequate. However, it lacks any mention of what the response contains, pagination behavior (though the schema mentions it), or how this differs from the nested sender-permissions sibling. Given the large sibling list and no output schema, a bit more context would help an agent select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the path.formId parameter is documented only by name/type in the schema, and the query parameter description is provided in the schema. The tool description does not add any parameter-level meaning beyond the endpoint path. With 50% coverage, the description partially compensates by showing the endpoint, but it does not explain formId semantics or query parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a resource ('a form in a plan — sender permissions'), and the exact endpoint path. It is clearly a read operation for sender permissions of a form, which distinguishes it from sibling tools like xmatters_get_a_form_in_a_plan_recipients and xmatters_get_a_form_in_a_plan_nested_sender_permissions, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the endpoint and resource, and the readOnly/idempotent annotations signal safe retrieval. However, it does not explicitly state when to use this tool versus alternatives such as the nested sender-permissions variant or the recipients variant, nor does it mention any prerequisites like needing a formId from a plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_groupGet a groupBRead-onlyIdempotent
Get a group. GET /api/xm/1/groups/{groupId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-group
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and 'Body fields: none', but does not disclose response shape, authentication needs, or query behavior beyond what the schema provides. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and endpoint. The body-fields note and reference URL add useful context without excessive verbosity. It earns a high score for efficiency, though it is somewhat fragmentary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID operation, the description is minimally adequate given the annotations and schema. However, there is no output schema and no mention of what the response contains or how embed affects the result, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the query parameter behavior (embed, pagination) but leaves groupId without a description. The description's endpoint template confirms groupId is a path parameter but adds little semantic detail. The parameter is self-explanatory, keeping this at an adequate score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a group') and includes the exact endpoint GET /api/xm/1/groups/{groupId}. It is clear enough to identify the operation, though it does not explicitly distinguish itself from sibling tools like xmatters_get_groups or group subresource endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention that xmatters_get_groups lists groups, or that group members, recipients, and supervisors are separate endpoints. The agent must infer usage from the name and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_group_39_s_recipientsGet a group's recipientsARead-onlyIdempotent
Get a group's recipients. GET /api/xm/1/groups/{groupId}/recipients. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-group-39-s-recipients
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive behavior, so the description's main additions are the endpoint and 'Body fields: none'. No contradiction exists, though the description could have disclosed more about response shape or pagination; the query schema partially covers pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences each carry useful information: action, endpoint, body requirement, and reference link. Purpose is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-required-parameter GET, the description, schema, and annotations together are sufficient to invoke it correctly. It lacks a description of the return value, but the resource name and reference link partially compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description confirms groupId is a path segment and states there is no request body, but it does not explain groupId semantics beyond what the name implies. The query schema already documents comma-joined arrays and explicit offset/limit pagination, so the description adds only marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact action and resource ('Get a group's recipients') and reinforces it with the explicit HTTP endpoint. This cleanly differentiates it from sibling tools like get_group_members or get_a_group_39_s_supervisors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The endpoint and resource imply it should be used when the agent needs the recipient list of a specific group, but the description does not explicitly state when to prefer it over alternatives or mention exclusions. The 'Body fields: none' note is a mild usage constraint but not a when-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_group_39_s_supervisorsGet a group's supervisorsARead-onlyIdempotent
Get a group's supervisors. GET /api/xm/1/groups/{groupId}/supervisors. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-group-39-s-supervisors
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful operational context beyond annotations: the HTTP method (GET), the exact endpoint, and the explicit note that no body fields are required, which prevents an agent from fabricating a request body. The reference link allows deeper lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short segments — purpose, endpoint, body note, reference — with no filler. The purpose is front-loaded in the first sentence, and every remaining segment adds distinct value an agent would need to make the call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with strong annotations and a well-documented query schema, the description is nearly complete: it provides the endpoint, confirms no body is required, and links to official documentation. The only gap is the lack of return-value shape, but no output schema exists and the tool name adequately implies the response is the group's supervisors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the query object is already well described in the schema (comma-joined arrays, explicit offset/limit pagination, results not auto-combined), but path.groupId has no schema description. The description partially compensates by embedding {groupId} in the endpoint template, making its role as a path parameter clear, though it does not explain what groupId refers to or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a group's supervisors', with the full endpoint path clarifying scope. It is clearly distinguishable from the sibling xmatters_get_a_person_39_s_supervisors because it is explicitly scoped to groups, and from xmatters_get_group_members because it targets supervisors rather than members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: call this when you need the supervisors of a specific group and have a groupId. However, there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as xmatters_get_a_person_39_s_supervisors for person-based lookups or xmatters_get_group_members for membership data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_eventGet an eventBRead-onlyIdempotent
Get an event. GET /api/xm/1/events/{eventId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-event
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, targeted, at. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate those. It adds the HTTP method, the fact that no body fields are needed, and a documentation reference, but it does not describe response shape, error behavior, authorization, or rate limits. This is acceptable for a simple read-only GET because the annotations carry the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely terse and front-loaded: a one-line purpose, the exact endpoint, a body-field note, and a reference link. Every fragment earns its place and no unnecessary wording is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read-only GET-by-ID operation, the description plus schema is nearly sufficient: the endpoint, required eventId, optional query parameters, and non-destructive nature are all covered. The main gaps are the lack of an explicit return-value description (no output schema exists) and the absence of guidance distinguishing this from the plural events-listing tool, but these are minor given the simplicity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds the endpoint template, making it clear that eventId is a path parameter, and explicitly states that there is no request body. However, it does not explain what an eventId is or how to obtain it, and it leaves query parameter semantics to the schema, which does describe embed, targeted, at, and pagination behavior. The schema's coverage is partial, so the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as retrieving a single event and gives the exact REST endpoint, which distinguishes it from list-style siblings like xmatters_get_events. It does not explicitly contrast itself with related single-resource tools such as xmatters_get_event_audit_information, but the endpoint and eventId path parameter make the core purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as xmatters_get_events, xmatters_get_an_event_annotation, or xmatters_get_event_audit_information. There is no mention of prerequisites, typical use cases, or cases where another tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_event_annotationGet an event annotationARead-onlyIdempotent
Get an event annotation. GET /api/xm/1/events/{eventID}/annotations/{annotationID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-event-annotation
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the HTTP method (GET) and that there is no request body, which are minor but useful details. It does not describe the response format or potential error cases, but given the annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences plus a reference link. The core purpose and endpoint are front-loaded, and the body-fields note is relevant. There is no superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read-only GET with no output schema. The description includes the endpoint and a reference link for full documentation. It does not describe the return value, but for a retrieval operation with safe annotations, this is sufficient. It could mention what the annotation contains, but the reference covers it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the query object is documented, but the path parameters (eventID, annotationID) are not described. The description compensates by including the URL template that reveals both parameter names and their roles. It also clarifies there is no body. This adds meaningful context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and the resource ('an event annotation'), and the endpoint URL specifies the exact operation with parameters. It is unambiguous and distinguishes from the sibling tool xmatters_get_event_annotations (plural) by using the singular form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives like listing annotations. However, the singular resource and endpoint imply that this is for retrieving a specific annotation by ID. The usage context is implied but not explicitly contrasted with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_event_attachmentGet an event attachmentARead-onlyIdempotent
Get an event attachment. GET /api/xm/1/events/{eventId}/attachments/{attachmentId}. Returns attachment bytes, including text files; response is not a JSON object despite illustrative response code. attachmentId is a file name. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-event-attachment
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent/non-destructive behavior. The description adds valuable non-obvious behavior: the response is raw bytes (not JSON), text files are included, and attachmentId is a file name. This materially changes how an agent should handle the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A compact set of short, information-dense statements, with the response-format caveat placed early. The reference link adds optional depth without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET, the description covers the key operational facts: exact route, non-JSON output, file-name semantics, and no request body. It would be slightly stronger with error/status expectations, but annotations cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only the query object described in the schema, the description partially compensates by explaining that attachmentId is a file name and that there are no body fields. However, it does not elaborate on eventId semantics or path-parameter formatting beyond the endpoint template.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action and target ('Get an event attachment') and pins it to the exact endpoint GET /api/xm/1/events/{eventId}/attachments/{attachmentId}. This distinguishes it from sibling attachment tools (scenario, scheduled message) by resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over related attachment fetchers or upload tools, and no mention of prerequisites or exclusion cases. The intended context must be inferred from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_import_jobGet an import jobBRead-onlyIdempotent
Get an import job. GET /api/xm/1/imports/{importId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-import-job
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile of a GET operation. The description adds minimal context beyond that — the endpoint path and 'Body fields: none' — but does not disclose error behavior (e.g., 404 when the importId is unknown) or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, followed by the endpoint, a body-field clarification, and a reference link. Every sentence earns its place; only minor formatting issues (extra space) and the slightly redundant repetition of the tool name keep it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource GET with strong annotations and a schema that already explains pagination semantics, the description is serviceable. However, with no output schema, it would benefit from describing what an import job is or what the response contains; the reference URL partially fills this gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the query object is richly documented (arrays comma-joined, explicit offset/limit pagination, results not auto-combined), while importId has only name/type/minLength. The description compensates somewhat by binding importId to the URL template and confirming 'Body fields: none', but it adds no detail about what an import ID is or how to obtain one.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get an import job') and reinforces it with the endpoint 'GET /api/xm/1/imports/{importId}', making clear this fetches a single job by ID. The singular 'an import job' and the {importId} path segment implicitly distinguish it from the plural sibling xmatters_get_import_jobs, though it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as xmatters_get_import_jobs (listing) or xmatters_get_import_job_messages (job messages). No prerequisites, exclusions, or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_incidentGet an incidentBRead-onlyIdempotent
Get an incident. GET /api/xm/1/incidents/{incidentID}. Both UUID and incidentIdentifier are documented path alternatives despite their QUERY PARAMETERS heading. No identifier query is generated. See C06. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-incident
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds useful context like 'Body fields: none' and 'No identifier query is generated', but the cryptic 'See C06' reference adds little value and no return or error behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, but 'See C06' is an unexplained internal reference that does not help an agent. The reference URL and body-fields note are useful, but the cryptic reference reduces overall clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID operation, the description provides the path, parameter alternatives, and body expectation. However, there is no output schema, and the description does not mention return values, error cases, or pagination behavior, leaving some context for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines incidentID as a string with minLength 1, so the description adds meaningful clarification that both UUID and incidentIdentifier are valid path alternatives and that no identifier query parameter is generated. This goes beyond the schema and helps the agent construct the correct request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get an incident') and the exact HTTP path with the incidentID path parameter. It distinguishes from the plural list tool by singular resource, but does not explicitly differentiate from the closely related sibling xmatters_get_an_incident_by_identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as xmatters_get_incidents or xmatters_get_an_incident_by_identifier. The description does not state exclusions, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_incident_by_identifierGet an incident — by identifierBRead-onlyIdempotent
Get an incident — by identifier. GET /api/xm/1/incidents/{incidentIdentifier}. Both UUID and incidentIdentifier are documented path alternatives despite their QUERY PARAMETERS heading. No identifier query is generated. See C06. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-incident
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe read operation (readOnly, idempotent, non-destructive), so the description's extra notes about path alternatives, no generated identifier query, and empty body add useful context. The 'See C06' reference is opaque and not self-contained, which lowers the transparency value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starts with the core purpose, and includes the endpoint and reference without excessive prose. Some phrasing ('despite their QUERY PARAMETERS heading', 'See C06') is internally focused but the overall length is still appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple annotated GET with one required path parameter, the endpoint, path-alternative note, and empty body note cover most invocation needs. However, the description does not state what the tool returns, does not tie it to the xmatters_get_incidents/get_an_incident siblings, and leaves 'See C06' unexplained, so an agent would still face ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the tool description compensates by clarifying that the identifier goes in the path, that UUID and incidentIdentifier are both valid path alternatives, and that no identifier query is generated. The schema-only query object description is otherwise open; this external guidance is materially useful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get'), resource ('an incident'), and lookup mode ('by identifier') and gives the exact endpoint template, so an agent can tell this is a single-incident read. It stops short of a 5 because it does not explain how this differs from the very similarly named sibling xmatters_get_an_incident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided, and no alternative tool is mentioned despite siblings like xmatters_get_incidents and xmatters_get_an_incident. The only implied trigger is having an incident identifier; the description leaves the choice between this and the similarly named sibling to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_an_integrationGet an integrationARead-onlyIdempotent
Get an integration. GET /api/xm/1/plans/{planId}/integrations/{integrationId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-an-integration
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to restate safety. It does add the HTTP method and 'Body fields: none', but it omits error behavior, authentication needs, or what happens when IDs are invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler: a clear statement of the operation, the endpoint, the body expectation, and a documentation reference. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET, the description plus schema and annotations cover the call shape, safety, and parameters. The main gap is the lack of any description of the response shape, and since there is no output schema, a brief note about the returned integration would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template clarifies that planId and integrationId are path parameters, and the description explicitly states there is no body. However, it does not explain the semantic meaning of planId or integrationId beyond their names, and the schema already documents the query parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get an integration') and gives the exact endpoint with planId and integrationId, making the singular retrieval operation unmistakable. This clearly distinguishes it from sibling tools like xmatters_get_integrations (list) and xmatters_get_integration_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as xmatters_get_integrations or xmatters_get_integration_logs. The description is purely operational and does not state prerequisites, exclusions, or a decision rule for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_person_39_s_devicesGet a person's devicesARead-onlyIdempotent
Get a person's devices. GET /api/xm/1/people/{personId}/devices. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-person-39-s-devices
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, phoneNumberFormat. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and path, and notes 'Body fields: none', which is minor extra context. It does not disclose pagination behavior or error handling, but given the annotations, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a technical reference and a body-fields note. It is front-loaded with the purpose, and every element (endpoint, body note, reference) is useful and non-redundant. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET operation, the description provides the core purpose and endpoint. The query schema already documents pagination and additional parameters, and the output schema is absent, so return-value details are not required. Missing details like error responses are minor for a read-only, idempotent tool with strong annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 50% coverage: the query parameter includes a useful description (pagination, embed, phoneNumberFormat), while the path parameter personId is not described in the schema. The description does not explain any parameters, leaving personId's meaning implicit. Since coverage is moderate, the description should compensate but does not, though the parameter name is self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get a person's devices' and provides the exact endpoint. It distinguishes from siblings like get_a_device (single device) and get_devices (all devices) by scoping to a specific person. The verb-resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes it clear when to use: when you need the devices belonging to a particular person. It does not explicitly list alternatives or exclusions, but the resource in the path (personId) and the tool name strongly imply the usage context. No misleading guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_person_39_s_groupsGet a person's groupsARead-onlyIdempotent
Get a person's groups. GET /api/xm/1/people/{personID}/group-memberships. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-person-39-s-groups
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to repeat those safety traits. It adds the endpoint and 'Body fields: none' but does not describe response shape or access requirements; this is acceptable but not highly additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: purpose, endpoint, body note, and reference, all front-loaded with no filler. Every piece serves either selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with one required path parameter, the combination of description, schema, and annotations covers invocation essentials. An output schema is absent, but the endpoint and endpoint name make the returned group-membership list reasonably inferable; a missing explicit return-format note keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Beyond the schema's plain personID string, the description supplies the path template /people/{personID}/group-memberships, making the role of the single required parameter concrete. It also states 'Body fields: none,' which prevents an agent from inventing a request body. The query object is already documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get a person's groups,' and reinforces it with the exact REST path. This distinguishes it from sibling person-related tools like get_a_person_39_s_supervisors and get_a_person_39_s_devices by the resource being fetched.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the phrase 'Get a person's groups' and the path, so an agent can infer when to call it. It does not, however, explain when to prefer it over related group tools such as get_group_members or get_groups, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_person_39_s_supervisorsGet a person's supervisorsARead-onlyIdempotent
Get a person's supervisors. GET /api/xm/1/people/{personId}/supervisors. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-person-39-s-supervisors
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the endpoint and 'Body fields: none', which is minimal behavioral context. It does not contradict annotations, and the added value beyond annotations is low, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, front-loads the purpose, and includes the endpoint and reference link without any fluff. Every piece is useful, and the structure is clean and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only tool with one required path parameter, an optional query parameter (documented in schema), and no output schema, the description is reasonably complete. It provides the endpoint, notes there is no body, and gives a reference. It could mention expected response shape but that is not required given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: path is fully described (personId required), and query has a description explaining pagination and array handling. The tool description adds nothing about parameter semantics beyond what the schema provides, so it relies on the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (get) and resource (a person's supervisors), and includes the exact endpoint. It is immediately distinguishable from sibling tools like xmatters_get_a_group_39_s_supervisors by the explicit 'person' in the name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need supervisors of a person) but provides no explicit guidance on when to use this versus alternatives, no exclusions, and no mention of similar tools like group supervisors. The endpoint and title make the context obvious but do not proactively route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_person_by_idGet a person (by id)ARead-onlyIdempotent
Get a person (by id). GET /api/xm/1/people/{personID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-person-by-id
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive operation. The description adds the exact HTTP endpoint, confirms there is no request body, and provides a reference link, which is useful but not extensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, scannable, and front-loaded with the action. The opening phrase slightly duplicates the title, but the endpoint, body note, and reference are all purposeful and non-redundant overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-person GET operation with strong annotations and a schema that already documents the query parameters, the description is nearly complete. It could be improved by explicitly stating what the response contains or when to prefer this over listing tools, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the required personID path parameter and the query object's behavior (embed, offset/limit pagination). The description adds little parameter meaning beyond the endpoint notation showing personID, but it does clarify that no body fields are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Get), resource (person), and qualifier (by id), and the endpoint makes the target unambiguous. This clearly distinguishes it from sibling list/search tools like xmatters_get_people.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving a single person when a personID is known, but it gives no explicit when-to-use guidance and does not name alternatives such as get_people for listing or searching. The usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_scenarioGet a scenarioBRead-onlyIdempotent
Get a scenario. GET /api/xm/1/scenarios/{scenarioId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-scenario
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the HTTP method and body-fields-none detail, but doesn't disclose response format or other behavioral nuances. With annotations carrying the safety burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with minimal waste, front-loading the action and endpoint. The reference link is useful, but the structure is flat with no bullet points or emphasis on key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID tool, the description covers the essential call, but it omits any mention of the response shape or the available query parameters (though the schema covers those). Given no output schema and minimal behavioral disclosure, it's adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (query has a description, path does not). The description adds no parameter explanations beyond saying body fields are none. The scenarioId parameter is self-evident from context, but the description doesn't compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'scenario' with an explicit endpoint path. It distinguishes from plural 'get_scenarios' by using 'a scenario' and including a scenarioId placeholder, though it doesn't name alternatives directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like get_scenarios or get_scenarios_in_a_form. The description lacks any contextual cues or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_scenario_attachmentGet a scenario attachmentBRead-onlyIdempotent
Get a scenario attachment. GET /api/xm/1/scenarios/{scenarioId}/attachments/{attachmentId}. Returns attachment bytes, including text files; response is not a JSON object despite illustrative response code. attachmentId is a file name. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-scenario-attachment
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context beyond those: it warns that the response is raw bytes (not JSON) including text files, explains that attachmentId is a file name, and states there are no body fields. This prevents common errors in response parsing and parameter handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, opening with the core purpose. Each sentence adds useful operational detail (endpoint, response format, attachmentId semantics, body fields), though the reference URL is somewhat redundant given the endpoint and description. No wasted words overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET operation, the description covers the most critical non-obvious details: non-JSON binary response and attachmentId as filename. However, it does not mention authentication requirements, error behavior, or relation to sibling attachment tools. With no output schema, the description carries the burden of explaining the return type, which it does, but other operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides types and minLength for scenarioId and attachmentId, with no per-property descriptions. The description only clarifies attachmentId's meaning ('a file name'); scenarioId is left unexplained. With schema description coverage at 50%, the description only partially compensates, so the agent must still infer the role of scenarioId from the endpoint pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a scenario attachment') and includes the exact endpoint, making its purpose unambiguous. It differentiates from the broader attachment set by name and endpoint, though it does not explicitly contrast with sibling tools like xmatters_get_an_event_attachment or xmatters_upload_attachment_to_a_scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions. The agent must infer from the name and endpoint alone; the description provides no decision support for choosing among the numerous attachment-related and scenario-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_scheduled_messageGet a scheduled messageARead-onlyIdempotent
Get a scheduled message. GET /api/xm/1/scheduled-messages/{scheduledMessageId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-scheduled-message
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds the HTTP method and reference URL but does not disclose response format, pagination, or error behavior. No contradiction with the annotations; the description aligns with the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, immediately identifies the operation and endpoint, and includes a reference link. No wasted words; every element serves a purpose, and it is appropriately sized for a simple GET request.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-fetch tool, the description plus schema and annotations provide enough to invoke it: the ID is required in the path, and safety is declared via annotations. The lack of an output schema or explicit response description is a minor gap but not critical for a GET that returns the resource, especially with a reference link provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the query parameter has a generic description inside the schema, but the description text does not explain any parameter except implying `scheduledMessageId` from the path. The description adds little value beyond the schema and fails to compensate for the coverage gap, especially for the query parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('a scheduled message') and includes the exact API path. This clearly differentiates it from the sibling `xmatters_get_scheduled_messages` (plural list) and other scheduled-message operations. An agent can identify the tool's purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives. It provides the endpoint and a reference link but no directive like 'use when you have a scheduledMessageId' or 'for lists, use get_scheduled_messages instead.' Usage is only implied by the resource name and path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_scheduled_message_attachmentGet a scheduled message attachmentARead-onlyIdempotent
Get a scheduled message attachment. GET /api/xm/1/scheduled-messages/{scheduledMessageId}/attachments/{attachmentId}. Returns attachment bytes, including text files; response is not a JSON object despite illustrative response code. attachmentId is a file name. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-scheduled-message-attachment
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly and idempotent behavior. The description adds valuable behavioral details beyond that: it explicitly notes that the response returns raw bytes (including text files) and is not a JSON object, which is critical for agents expecting a standard JSON response. It also clarifies that attachmentId is a filename.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and well-structured. It opens with the core purpose, then provides the concrete endpoint and key behavioral nuances (non-JSON response, attachmentId meaning). The reference link adds utility without bloat. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET operation with two path parameters and no output schema, the description covers all essential aspects: the endpoint, the response type, the nature of attachmentId, and the absence of a body. Combined with annotations that address safety, an agent has everything needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only lists path parameters without individual descriptions. The description enriches the semantics by stating that attachmentId is a file name and giving the URL pattern. This adds meaning for attachmentId, while scheduledMessageId is self-evident from its name. The query object is documented in the schema as having no documented names, and the description does not add more, but that's acceptable given the GET nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get a scheduled message attachment' and provides the exact API endpoint URL. This distinguishes it from attachment tools for other resources (events, scenarios) and leaves no ambiguity about the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by naming the specific resource (scheduled message attachments), but does not explicitly contrast it with sibling tools or state when this should be used over others. The name itself differentiates, but explicit guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_serviceGet a serviceBRead-onlyIdempotent
Get a service. GET /api/xm/1/services/{serviceId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-service
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description doesn't need to repeat those. It adds 'Body fields: none', which is useful, but otherwise contributes little about response format, errors, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the endpoint, body-field note, and reference link. It has no fluff, though it sacrifices substance for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource GET, the description plus annotations and schema provide enough to construct a call: required serviceId path parameter, no body, and open-world query support. However, it lacks any explanation of the response payload or error conditions, and usage guidance is absent, leaving the definition merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter meaning: the endpoint shows serviceId is a path parameter and 'Body fields: none' clarifies there is no request body. However, serviceId itself is not semantically described, and query parameter behavior is only covered in the schema description, not in the tool description, leaving a gap at 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the specific resource ('a service'), and the endpoint with {serviceId} reinforces that this targets a single service by ID. This distinguishes it from sibling tools like xmatters_get_services without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_services, nor any context about prerequisites or appropriate scenarios. The endpoint implies a single-service lookup, but no explicit usage direction is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_shiftGet a shiftBRead-onlyIdempotent
Get a shift. GET /api/xm/1/groups/{groupID}/shifts/{shiftID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-shift
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, include. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is read-only, idempotent, and non-destructive. The description adds only the HTTP method and the fact that there is no request body; it does not disclose auth requirements, error behavior, or response shape, but for a simple GET with strong annotations this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the operation, and every line has a purpose: the action, the endpoint, the body requirement, and a reference link. The 'Get a shift' sentence is slightly redundant with the title, but the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with well-defined IDs, the description plus schema and annotations are mostly sufficient. However, there is no output schema and the description does not mention what the response contains, error conditions, or how embed/include affect results, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template clarifies that groupID and shiftID are path parameters, and 'Body fields: none' removes body-parameter ambiguity. The schema itself covers the query parameter semantics with embed/include and pagination details, though the description does little to explain what groupID and shiftID actually identify beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get a shift') and gives the exact endpoint, including the groupID and shiftID path variables. This makes it unambiguous against sibling tools like get_shifts (list) and update_a_shift (mutation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_shifts or get_shift_occurrences. The URL implies you need a groupID and shiftID, but it never states the intended scenario or mentions that get_shifts should be used to find shifts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_signalGet a signalARead-onlyIdempotent
Get a signal. GET /api/xm/1/signals/{signalID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-signal
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the explicit GET method and 'Body fields: none', but does not disclose additional behavior such as authentication needs, response shape, or embedding behavior. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, moving from a summary to endpoint, body note, and reference link. It is efficient overall, though the opening 'Get a signal' duplicates the title and 'Body fields: none' is nearly redundant with the schema. No unnecessary elaboration is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID operation with strong annotations and a schema-described query object, this description is largely sufficient, especially with the reference link to authoritative docs. It lacks explicit guidance about when to use get_a_signal versus get_signals, but the operation is simple and no output schema is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The query object already carries a helpful schema description covering embed, offset/limit, and array comma-joining. The description adds the endpoint template and 'Body fields: none', which clarifies the path parameter role somewhat. However, it does little to explain signalID beyond what the schema provides, and schema coverage is only 50%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource, reinforced by the REST endpoint GET /api/xm/1/signals/{signalID}. It is clearly a single-signal fetch, though it does not explicitly contrast itself with the sibling get_signals tool or define what a signal is. This is clear but stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the singular signalID path parameter and GET method, but it does not explicitly state when to use this tool versus get_signals or any other alternative. There is no mention of prerequisites, exclusions, or preferred context. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_siteGet a siteARead-onlyIdempotent
Get a site. GET /api/xm/1/sites/{siteID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-site
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds 'Body fields: none' which clarifies no request body is needed, and provides the HTTP method and endpoint. However, it does not describe response behavior, error cases, or other side effects, so it adds minimal behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose, and includes the endpoint and reference link without any unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID tool with read-only annotations and no output schema, the description is adequate: it states the action, provides the endpoint, notes the absence of a body, and gives a reference link. It does not explain the return value or error cases, but given the tool's simplicity and the presence of a reference, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the path parameter siteID with minLength 1, and the query is open-ended with no documented names. The description only mentions 'Body fields: none' and does not elaborate on the siteID parameter or query semantics. With 50% schema coverage, the description does not compensate for the lack of parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get a site' and provides the exact HTTP endpoint with {siteID}, clearly indicating it fetches a single site by its ID. This distinguishes it from sibling tools like get_sites (plural) and the create/modify/delete operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not mention when to use this tool versus alternatives such as get_sites or create_a_site. It relies on the tool name and endpoint to imply usage, but there is no explicit guidance on selection criteria, prerequisites, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_subscriptionGet a subscriptionBRead-onlyIdempotent
Get a subscription. GET /api/xm/1/subscriptions/{subscriptionId}. The table calls the subscription path identifier id and labels it QUERY PARAMETERS; the definition uses subscriptionId in the path. See C06. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-subscription
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds a little value by noting there is no request body and by flagging the path/query naming inconsistency in the docs, but it does not describe response shape, error behavior, or other behavioral specifics. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action and endpoint. The ambiguity note and reference link are purposeful, though 'See C06' is cryptic and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only GET, the endpoint, no-body note, and schema-provided query/pagination guidance give a workable baseline. However, there is no mention of return value structure, not-found behavior, or when to choose this over sibling subscription tools, leaving noticeable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that `subscriptionId` lives in the path and warns about the inconsistency between the external docs and the definition, which is useful. It also states 'Body fields: none,' but the schema already implies this by having only path and query properties. It does not explain what a subscription is or how the open query object behaves beyond what the schema's query description already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource ('Get a subscription') and gives the exact REST path, so an agent can identify the target. It does not explicitly distinguish itself from `xmatters_get_subscriptions` or the subscription-form siblings, but the singular path with `subscriptionId` makes the intent clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 `xmatters_get_subscriptions` or `xmatters_get_a_subscription_form`. The description provides an endpoint but no context, prerequisites, or exclusion criteria, so the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_a_subscription_formGet a subscription formBRead-onlyIdempotent
Get a subscription form. GET /api/xm/1/subscription-forms/{subscriptionFormId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-a-subscription-form
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Body fields: none' and the HTTP method, but the read-only, idempotent, and non-destructive traits are already declared in annotations. It does not provide extra details on auth, errors, rate limits, or response behavior, though the annotations carry most of the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence containing the action, resource, endpoint, body note, and a reference link. It is front-loaded with the key information and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the annotations cover its safety profile, so it does not need extensive explanation. However, the description does not state the return value (the subscription form object) or any prerequisites for obtaining the ID; the reference URL partially covers this but is not self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain what subscriptionFormId represents, how to obtain it, or any constraints beyond the schema's minLength. With schema description coverage at 50% and no param explanations, the description fails to compensate, and the pagination note about query parameters is embedded in the schema rather than the tool description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a subscription form') and gives the exact REST path, which leaves no ambiguity. The singular 'subscription form' with the required ID clearly differentiates it from the plural xmatters_get_subscription_forms and related create/modify tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as xmatters_get_subscription_forms or xmatters_get_subscription_forms_in_a_plan. It does not mention that this tool is for retrieving a single form by ID, nor does it suggest any exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_changesGet changesBRead-onlyIdempotent
Get changes. GET /api/xm/1/changes. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-changes
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint and notes 'Body fields: none', which is minor. It does not disclose pagination behavior beyond the schema's note, nor any rate limits or result ordering. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences: a terse summary, the exact endpoint, and a body-fields note. It is front-loaded and wastes no words. The reference URL is useful but could be considered extra; overall it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list operation with no required parameters and no output schema, the description plus schema covers the essentials: endpoint, no body, and explicit pagination. However, it does not describe what a 'change' is, what fields are returned, or how to interpret the response, which an agent might need given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the query parameter is described as 'API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined.' The description itself adds no parameter meaning beyond the endpoint, but the schema already carries the burden, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get changes' with the API endpoint GET /api/xm/1/changes. It is distinguishable from the sibling xmatters_get_a_change (singular) by the plural 'changes' and the endpoint reference, though it doesn't explicitly contrast with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the HTTP method and endpoint, which implies usage context, and the schema notes pagination is explicit with offset/limit. However, it does not state when to use this tool versus alternatives like xmatters_get_a_change or xmatters_get_events, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_communication_plansGet communication plansBRead-onlyIdempotent
Get communication plans. GET /api/xm/1/plans. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-communication-plans
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: planType, enabled, enabledFor, embed, search, operand, fields, sortBy, sortOrder, subscription-forms, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the endpoint and 'Body fields: none,' but provides no additional behavioral detail such as result size, response format, or rate-limit behavior; the pagination note lives in the schema rather than the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose and endpoint, followed by body fields and a reference link. It has no filler, though the reference URL and 'Body fields: none' add only modest value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-required-parameter read-only GET list, the description plus annotations and schema cover invocation essentials. It lacks any indication of the response shape or whether results are paged, but the schema's pagination note and the tool name provide enough for a minimal call; a short response-shape note would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the query parameter's description listing documented names and noting that arrays are comma-joined and pagination is explicit via offset/limit. The tool description adds no parameter semantics beyond the endpoint, so the schema carries the burden and the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get communication plans' with the exact REST endpoint GET /api/xm/1/plans, making the resource and operation clear. The plural 'plans' and the list endpoint differentiate it from the sibling get_a_communication_plan, though the description does not explicitly call out the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage context or alternative guidance is provided. The description does not say when to use this list endpoint versus get_a_communication_plan, create_a_communication_plan, or the other plan operations, leaving the agent to infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_conference_bridgesGet conference bridgesBRead-onlyIdempotent
Get conference bridges. GET /api/xm/1/conference-bridges. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-conference-bridges
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit, search, fields, operand. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is clear. The description adds the HTTP endpoint and 'Body fields: none', which is mildly useful, but it does not disclose return shape or pagination behavior beyond what the schema provides. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the endpoint and a relevant body note. The reference URL is optional but harmless. No wasted words, though the snippet is so terse it borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the description is workable, but no output schema exists and the description does not explain what a conference bridge is, what the response contains, or how pagination behaves in practice. The schema covers query parameters, and annotations cover safety, but an agent is left to infer return semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the query parameter object is already well documented, including supported names and explicit pagination semantics. The description only adds 'Body fields: none', which clarifies the request body but adds little parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get conference bridges' and includes the exact endpoint 'GET /api/xm/1/conference-bridges'. The plural 'conference bridges' distinguishes it from the sibling xmatters_get_a_conference_bridge, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like xmatters_get_a_conference_bridge for single-bridge retrieval or the create/modify/delete bridge tools. The pagination semantics are left to the input schema rather than the description, so an agent receives no explicit selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_deleted_shift_occurrencesGet deleted shift occurrencesBRead-onlyIdempotent
Get deleted shift occurrences. GET /api/xm/1/groups/{groupID}/shifts/{shiftID}/exclusions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-deleted-shift-occurrences
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is clear. The description adds the endpoint and 'Body fields: none,' but does not disclose response shape or pagination behavior. It is consistent with the annotations and adds modest context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, endpoint, body expectation, and reference link. Every line contributes useful information with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only GET with strong annotations and query-schema pagination details, the endpoint plus reference make it callable. However, there is no output schema and the description does not state the response shape or when to prefer this over the sibling get_shift_occurrences and restore_deleted_shift_occurrences tools. The reference URL compensates somewhat, but the in-description guidance remains thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the query object with pagination guidance, and the description adds the URL template showing groupID and shiftID as path parameters and that no body is needed. However, it does not explain the meaning or format of those IDs, and the path parameters themselves lack descriptive coverage in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource, 'Get deleted shift occurrences,' and includes the exact endpoint. The word 'deleted' helps distinguish it from siblings like get_shift_occurrences and restore_deleted_shift_occurrences, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the sibling get_shift_occurrences or restore_deleted_shift_occurrences. There are no prerequisites, exclusions, or alternative routing instructions, leaving the agent to infer usage from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_device_namesGet device namesBRead-onlyIdempotent
Get device names. GET /api/xm/1/device-names. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-device-names
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: deviceTypes, search, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds only the HTTP method and 'Body fields: none,' which is consistent but minimal; it does not mention output shape, pagination, or authentication. With annotations lowering the burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and scannable: action, endpoint, body note, and reference URL. The opening phrase repeats the title, but the endpoint and reference are useful. It is concise and front-loaded, though it could drop the redundant 'Get device names.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with no required parameters and a self-documenting query schema, the description is mostly sufficient. However, there is no output schema, and the description does not describe the return shape or clarify how this differs from get_devices or get_device_types. The reference URL partially compensates for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the query parameter is fully documented in the schema, including documented query names and pagination behavior. The description itself adds no parameter semantics beyond noting the request body is empty, which is not about the query parameter. The baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation 'Get device names' and gives the exact endpoint 'GET /api/xm/1/device-names', providing a specific verb and resource. However, it does not explain what a device name is or differentiate itself from sibling tools like get_devices or get_device_types, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_devices or get_device_types. The description gives no use cases, prerequisites, exclusions, or context to help an agent decide between the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_devicesGet devicesBRead-onlyIdempotent
Get devices. GET /api/xm/1/devices. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-devices
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, deviceStatus, deviceType, deviceNames, phoneNumberFormat, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds only the HTTP method and 'Body fields: none', a small request-construction detail, but doesn't describe response shape, pagination behavior, or scope. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core operation and endpoint. The reference URL is optional but not harmful; there is no filler or redundancy. It is concise, though not rich.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter, read-only list operation, the schema and annotations cover most invocation details. However, there is no output schema and the description doesn't describe the result shape or how this call relates to sibling device tools, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single query parameter is already described in the schema with documented names, comma-joining, and explicit offset/limit pagination (100% schema coverage). The description contributes nothing about parameters beyond noting no body fields, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation ('Get devices'), identifies the resource ('devices'), and gives the exact endpoint (GET /api/xm/1/devices), making it clear this is the plural list call. It is distinguishable from xmatters_get_a_device by the plural resource, though it doesn't explicitly spell out list semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus siblings such as xmatters_get_a_device, xmatters_get_device_names, or xmatters_get_a_person_39_s_devices. There are no exclusions or alternatives, so an agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_device_typesGet device typesBRead-onlyIdempotent
Get device types. GET /api/xm/1/device-types. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-device-types
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP method and confirms no body fields, which is helpful but minimal. There is no contradiction between the description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact: purpose, endpoint, body requirement, and reference in four short sentences. Every sentence contributes useful information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with no required parameters and fully described query semantics, the description is nearly complete. The lack of an output schema is mitigated by the tool name and endpoint making the return type obvious, though a small gap remains regarding response structure or use case context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the optional query parameter, including its generic structure and pagination behavior. The description itself adds no additional parameter semantics, matching the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get device types') and includes the exact API endpoint, making the tool's purpose immediately clear. It is distinct from sibling tools like get_devices and get_device_names, though it doesn't explicitly differentiate itself from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description only provides the endpoint and a reference link, without explaining use cases or conditions that might favor this over other device-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_event_annotationsGet event annotationsCRead-onlyIdempotent
Get event annotations. GET /api/xm/1/events/{eventID}/annotations. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-event-annotations
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds the HTTP method and 'Body fields: none', which is useful, but it does not disclose any additional behavioral traits such as pagination or return format. It is consistent with annotations, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose, followed by the endpoint and a reference link. It wastes no words, though it could include more usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description is incomplete. It does not mention what the tool returns (list vs single annotation), does not differentiate from the singular annotation tool, and does not reference pagination or other behavioral details beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the parameters. The schema covers the query parameter with offset/limit and pagination notes, but the eventID path parameter is undocumented. With schema coverage at 50%, the description does not compensate by explaining any parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Get event annotations' with the REST endpoint, which identifies the resource and verb. It distinguishes itself from the sibling 'xmatters_get_an_event_annotation' by the plural form, though it does not explicitly say 'list all annotations'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of the difference from the singular annotation tool, no prerequisites, and no conditions that would make this tool the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_event_audit_informationGet event audit informationBRead-onlyIdempotent
Get event audit information. GET /api/xm/1/audits. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-event-audit-information
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | API query parameters; arrays are comma-joined. Documented names: eventId, auditType, sortOrder. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds the endpoint and 'Body fields: none' but doesn't disclose additional behaviors like pagination (which is only in the schema description) or what data is returned. For a read-only operation with strong annotations, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded with the purpose, then endpoint and body info. It is efficient with no fluff, though it could benefit from a bit more detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET with no output schema, the description combined with annotations and schema is mostly sufficient. However, it does not explain what audit information is returned or any formatting specifics, which could be expected given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% as the query object includes a description of supported parameters (eventId, auditType, sortOrder) and pagination behavior. The tool description adds no parameter context, but the schema carries the burden, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Get event audit information' and includes the exact API endpoint. This is specific and distinguishes it from sibling tools like get_events or get_event_annotations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It doesn't mention prerequisites, use cases, or when to prefer another tool. The reference link is helpful but doesn't substitute for explicit usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_eventsGet eventsCRead-onlyIdempotent
Get events. GET /api/xm/1/events. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-events
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: at, embed, eventType, fields, form, from, incidentId, limit, offset, plan, priority, propertyName, propertyValue, propertyValueOperator, requestId, resolvedUsers, search, sortBy, sortOrder, status, submitter, targetedRecipients, to. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds only the HTTP method and a note about body fields, neither of which discloses behavioral traits like pagination, filtering defaults, or response shape. The schema's query description mentions pagination but the tool description itself does not; with rich annotations, the bar is lower but still not met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with no filler words. It front-loads the purpose and then gives the endpoint, body note, and reference link. For a simple GET endpoint, this length is appropriate, though it omits valuable context. The structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested query object with many parameters whose semantics are only listed as names in the schema, not explained. The description provides no explanation of what an 'event' is, no pagination guidance, and no distinction from closely related sibling tools. Even with rich annotations and a detailed schema, an agent lacks enough context to confidently select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% because the single 'query' parameter has a detailed description listing all documented query parameter names and pagination behavior. The tool description adds no parameter information, so the baseline of 3 applies; the schema carries the semantic load adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('events') and HTTP verb (GET), so there is a clear verb+resource. However, it does not explicitly state that this returns a collection/list, nor does it differentiate from sibling tools like xmatters_get_an_event or xmatters_get_suppressed_events. The description is essentially the tool's name with an endpoint appended, adding little semantic clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of when to prefer this over the singular event getter or suppressed events endpoint. The description simply states the operation, leaving usage entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_form_message_templatesGet form message templatesBRead-onlyIdempotent
Get form message templates. GET /api/xm/1/forms/{formId}/message-templates. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-form-message-templates
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description does not need to repeat that. It adds only 'Body fields: none' and a reference link, which is minimal additional behavioral context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose, followed by the endpoint and a brief note on body fields and reference. There is no unnecessary wording, and every sentence serves a clear role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a required path parameter (formId) that is unexplained in the description, and no output schema exists to indicate the response structure. The reference link may help, but the description alone is insufficient for an agent to understand the return format or the meaning of formId without external lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not explain any parameters. The schema documents the query object (with pagination details) but leaves the required path.formId unexplained. With 50% schema description coverage, the description should compensate for the undocumented formId, but it does not, leaving the agent without essential parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get') and the resource ('form message templates'), and provides the exact API endpoint. It is unambiguous and distinguishes from sibling create/modify operations by the verb, so an agent can identify this as the read tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus the create or modify siblings. It does not mention any prerequisites, exclusions, or alternatives, leaving the agent to infer from the GET verb and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_form_response_optionsGet form response optionsBRead-onlyIdempotent
Get form response options. GET /api/xm/1/plans/{planId}/forms/{formId}/response-options. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-form-response-options
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the operation as read-only and idempotent, and the description does not contradict them. It adds only 'Body fields: none' and a reference link, but does not describe response shape, pagination behavior, or any rate-limit/auth concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and free of filler, with the endpoint, body note, and reference all earning their place. The opening sentence 'Get form response options' is somewhat redundant with the tool name, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of endpoint, schema, and annotations is enough to make a correct call mechanically, but the description lacks output semantics, usage context, and explicit differentiation from the alias sibling. The reference link helps but is not a substitute for inline guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description repeats the path parameters in the endpoint URL and clarifies that there is no body, but it does not explain the meaning of planId or formId beyond their names. The query schema already documents 'embed, offset, limit' and explicit pagination, so the description adds limited value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get form response options') and includes the exact REST endpoint, which precisely identifies the operation. It does not explicitly distinguish itself from the sibling xmatters_get_form_response_options_alias, so it loses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as xmatters_get_form_response_options_alias or xmatters_create_form_response_options. It only states the endpoint and gives a reference link, leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_form_response_options_aliasGet form response options — aliasBRead-onlyIdempotent
Get form response options — alias. GET /api/xm/1/forms/{formId}/response-options. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-form-response-options
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds 'Body fields: none' and the endpoint, which is mildly useful but does not disclose any additional behavior beyond what annotations provide. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with the core operation front-loaded. The endpoint and reference are directly useful. However, the word 'alias' appears twice without added value, and the sentence fragment structure is slightly awkward but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and strong annotations (read-only, idempotent), the description covers the basics. However, the critical missing piece is the meaning of 'alias' and its relationship to the sibling tool 'xmatters_get_form_response_options'—an agent would not know whether these are interchangeable. No output schema exists, but that is acceptable for a simple GET.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the 'query' parameter is described in the schema but 'path.formId' is not. The tool description adds no parameter meaning whatsoever—it only mentions body fields. Since coverage is not high, the description should compensate, but it entirely fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Get form response options' with a specific HTTP endpoint, so the verb and resource are clear. However, the addition of 'alias' is vague—it doesn't explain what it is an alias of, and it doesn't differentiate this tool from the sibling 'xmatters_get_form_response_options'. Thus it is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is an alias for another tool, nor does it give any context about scenarios where this should be preferred. The only hint is 'Body fields: none', which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_formsGet formsBRead-onlyIdempotent
Get forms. GET /api/xm/1/forms. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-forms
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: search, operand, fields, embed, enabledFor, plans.planType, sortBy, sortOrder, triggerType, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safe-read nature is well covered. The description adds only the endpoint and 'Body fields: none,' which is minimal technical context and does not disclose list-scoping caveats beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: action, endpoint, body note, and reference link appear in three short segments with no filler. It is slightly redundant with the title ('Get forms'), but the endpoint and reference add useful technical specificity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-query GET with rich annotations and a well-documented schema, the endpoint and reference are enough to make the call. However, the description lacks an explicit statement of the returned collection's scope and does not point to plan-scoped or subscription-form alternatives, leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, documenting the query object, supported parameter names, comma-joining behavior, and explicit offset/limit pagination. The description itself contributes no additional parameter detail, but the high schema coverage justifies the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ("Get forms") and the precise REST endpoint (GET /api/xm/1/forms), making the resource and HTTP method unambiguous. It does not explicitly differentiate from sibling tools like xmatters_get_forms_in_a_plan, but the top-level endpoint is a strong scoping signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus related siblings such as xmatters_get_forms_in_a_plan or xmatters_get_subscription_forms. The description only restates the resource and endpoint and offers no exclusions, preconditions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_form_sectionsGet form sectionsARead-onlyIdempotent
Get form sections. GET /api/xm/1/forms/{formId}/sections. The reference labels embed/offset/limit as BODY PARAMETERS, but its GET definition and examples place embed in the query. These are query parameters; no GET body. See C05. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-form-sections
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is read-only, idempotent, and non-destructive. The description adds valuable non-obvious behavior: the reference mislabels embed/offset/limit as body parameters while the actual GET uses query parameters, and there is no request body. This prevents an agent from constructing an incorrect request.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the operation and endpoint, then gives the critical query-vs-body caveat. It is compact, though 'Body fields: none' is redundant after 'no GET body' and 'See C05' is cryptic without local context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with one required path parameter and optional query parameters, the endpoint, parameter placement, and pagination note are sufficient to invoke it. There is no output schema, so the return shape is not described, but the tool name and resource make the purpose clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description names embed/offset/limit and clarifies they are query parameters, but it does not explain their meanings or valid values; the query schema supplies only documented names and pagination behavior. The path.formId parameter is implicit in the URL template but not semantically described. With 50% schema coverage, the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get form sections') and pins it to the exact endpoint GET /api/xm/1/forms/{formId}/sections. This distinguishes it from sibling create/modify form-section tools and from other form-related getters without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this over alternatives such as xmatters_create_a_form_section or xmatters_modify_a_form_section. The read-only intent is implied by 'Get' and the GET method, but there are no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_forms_in_a_planGet forms in a planBRead-onlyIdempotent
Get forms in a plan. GET /api/xm/1/plans/{planId}/forms. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-forms-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, enabledFor, sortBy, sortOrder, triggerType, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and endpoint context, but does not disclose what the returned list looks like or how pagination behaves; those details live only in the query schema, not the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the action, then provides the endpoint, body requirement, and reference link. The first sentence restates the title without adding new information, but the remaining content is efficient and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the description is reasonably complete: it gives the endpoint, indicates no request body, and links to official documentation. The input schema covers the required planId and query parameters, and annotations cover safety, so the main missing piece is more explicit return-value or response-format context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter meaning beyond showing planId in the URL path. The query parameter documentation is actually carried by the input schema's query property, which names embed, enabledFor, sortBy, sortOrder, triggerType, offset, and limit, so the schema is doing most of the parameter-semantics work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get forms in a plan') and provides the exact REST endpoint, so an agent knows it is listing forms scoped to a specific plan. It does not explicitly distinguish itself from closely related siblings like xmatters_get_forms or xmatters_get_a_form_in_a_plan, but the endpoint makes the resource and scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as xmatters_get_forms or xmatters_get_a_form_in_a_plan. It only states the endpoint and that there are no body fields, which is useful but does not convey usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_group_license_quotasGet group license quotasARead-onlyIdempotent
Get group license quotas. GET /api/xm/1/groups/license-quotas. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-group-license-quotas
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method (GET) and 'Body fields: none,' which is helpful, but it does not disclose pagination or response format. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the purpose, then provides the endpoint scrape, body-field note, and documentation reference. Every sentence serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with no required parameters and no output schema, the description plus schema gives enough to make the call correctly (endpoint and query behavior). A mention of the returned quota structure or any rate-limiting caveat would improve completeness, but it is not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description for the single 'query' parameter is 100% covered (arrays comma-joined, explicit pagination, results not combined), so the schema carries the parameter documentation. The main description adds nothing about parameters beyond 'Body fields: none,' which is correctly stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb ('Get') and resource ('group license quotas'), and includes the exact endpoint. This clearly distinguishes it from the sibling tool xmatters_get_user_license_quotas without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention that user license quotas are handled by a different tool, nor does it give conditions for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_group_membersGet group membersARead-onlyIdempotent
Get group members. GET /api/xm/1/groups/{groupID}/members. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-group-members
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, devices.exists, devices.active.exists, devices.chat.exists, devices.email.exists, devices.failsafe.exists, devices.mobile.exists, devices.sms.exists, devices.voice.exists, sortBy, sortOrder, devices.status, devices.testStatus. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the exact HTTP method and path, notes that there are no body fields, and provides a reference link. It does not describe return format or pagination behavior, but that is partially addressed in the query schema. The added endpoint and body-info provide some value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence stating the purpose, followed by the endpoint, a note on body fields, and a reference link. Every element is essential and front-loaded with the core action. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET tool with annotations already covering safety and idempotency, the description is largely complete. It gives the endpoint and notes the absence of a body. The schema covers parameters well enough, and the reference link provides deeper documentation. It could mention that the response is a list of members or that pagination is available, but these are minor gaps given the annotations and schema context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the query parameter has a detailed description, while the path parameter (groupID) is only defined as a string with minLength. The tool description does not add any parameter semantics beyond the endpoint template, which already shows {groupID} as a path variable. It does not clarify the meaning of groupID or its expected format beyond the schema, so it does not compensate for the missing path description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get group members', and provides the exact HTTP endpoint for clarity. It clearly distinguishes from sibling tools like xmatters_get_a_group (fetch a single group) and xmatters_get_groups (list groups) by specifying the members sub-resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that this is for retrieving the membership list of a specific group, nor does it contrast with related tools such as adding or removing members. Usage context is implied by the name and endpoint but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_groupsGet groupsBRead-onlyIdempotent
Get groups. GET /api/xm/1/groups. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-groups
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: createdAfter, createdBefore, createdFrom, createdTo, embed, fields, groupType, operand, members, member.exists, members.licenseType, search, sites, sortBy, sortOrder, status, supervisors. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is well established. The description adds only 'Body fields: none' and a reference link, which provide minor protocol detail but no new behavioral traits such as pagination behavior, result limits, or authentication requirements. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short sentences with no filler; the purpose is front-loaded in the first two words. Endpoint, body expectation, and reference are each compact and useful. This is a model of concise structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a safe, read-only collection GET with strong annotations and a fully documented query parameter, the description is largely sufficient: endpoint and reference are present, and the schema explains query behavior and pagination. However, with no output schema and no explicit statement of response shape or list semantics, an agent must infer what the call returns. This is a small but real gap, so 4 rather than 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the single query object documents all accepted parameter names, comma-joining of arrays, and explicit offset/limit pagination. The description adds 'Body fields: none,' which is a useful clarification that no request body is needed, but it does not otherwise explain parameters. Baseline 3 applies because the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately names the operation ('Get groups') and the exact endpoint (GET /api/xm/1/groups), making clear this is a read-only list operation. The plural 'groups' and endpoint distinguish it from siblings like get_a_group and get_group_members, though it never explicitly states that it returns a list of group objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus xmatters_get_a_group, xmatters_get_group_members, or other group-related siblings. The only usage signal is the endpoint and the query-parameter schema; there is no stated alternative, prerequisite, or contextual trigger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_import_job_messagesGet import job messagesBRead-onlyIdempotent
Get import job messages. GET /api/xm/1/imports/{importId}/import-messages. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-import-job-messages
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the HTTP method, endpoint, and 'Body fields: none', but does not disclose return format, authentication needs, or rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the action, followed by the endpoint, body note, and reference. Each sentence earns its place, though the reference URL is arguably optional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET, annotations and schema cover safety and query parameters. However, there is no output schema and the description does not describe the shape or content of the returned messages, nor does it clarify when this tool is the right choice among import-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The query parameter is well-documented in the schema with sortBy, sortOrder, offset, limit, comma-joining, and explicit pagination behavior. The description adds 'Body fields: none' and shows importId as a path parameter via the endpoint, but it does not explain what importId refers to or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get import job messages') and includes the exact endpoint, making the tool's function clear. It is distinguishable from sibling tools like xmatters_get_import_jobs and xmatters_get_an_import_job by the 'messages' resource, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related import tools such as xmatters_get_import_jobs or xmatters_get_an_import_job. The endpoint implies it is for retrieving messages for a specific import, but there is no explicit context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_import_jobsGet import jobsBRead-onlyIdempotent
Get import jobs. GET /api/xm/1/imports. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-import-jobs
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: transformType, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's GET/no-body note adds limited behavioral context. It provides no additional disclosure about authentication, rate limits, response shape, or pagination behavior beyond what the input schema mentions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose and endpoint, followed by body and reference details. It is slightly redundant with the title ('Get import jobs') and the reference URL may be unnecessary, but overall it is compact and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with no required parameters, the endpoint, body note, and reference link provide enough to invoke the tool. The schema covers query parameters and pagination explicitly, so the absence of an output schema does not make the description incomplete for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% because the query parameter includes documented names and pagination semantics. The tool description itself adds no parameter meaning, only 'Body fields: none,' so the high-coverage baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get import jobs') and gives the exact endpoint 'GET /api/xm/1/imports', so an agent knows what resource is accessed. It does not explicitly distinguish itself from the sibling 'xmatters_get_an_import_job', though the plural name and endpoint imply a list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as xmatters_get_an_import_job or xmatters_get_import_job_messages. It notes 'Body fields: none' and provides a reference link, but does not state prerequisites, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_incidentsGet incidentsBRead-onlyIdempotent
Get incidents. GET /api/xm/1/incidents. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-incidents
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: impactedServices, fields, from, operand, requestId, resolver.group, search, severity, status, to, field. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP method and 'Body fields: none', but provides no additional behavioral context such as pagination behavior, result set size, or rate limits. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only four short clauses: the action, the endpoint, a body-fields note, and a reference link. Every part is functional and the core information is front-loaded. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional query parameter, a detailed schema, and strong annotations, the description is borderline adequate. However, it does not explicitly state that this returns a list of incidents, what the response format is (no output schema exists), or that filtering is available via query parameters. The reference link is useful, but the description alone lacks the explicit list semantics that would fully complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the 'query' parameter, including accepted names, array comma-joining, and explicit pagination via offset/limit. The description adds only 'Body fields: none', which concerns the request body rather than the parameter. Since schema coverage is 100%, the baseline of 3 is appropriate; the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('incidents'), and provides the exact endpoint 'GET /api/xm/1/incidents'. The plural form implies a list operation, distinguishing it from sibling tools like xmatters_get_an_incident and xmatters_get_an_incident_by_identifier, though it does not explicitly say 'list' or mention filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_an_incident or get_events. There is no mention of use cases, exclusions, or selection criteria, leaving the agent to infer from the endpoint and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_integration_logsGet integration logsCRead-onlyIdempotent
Get integration logs. GET /api/xm/1/integrations/{integrationId}/logs. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-integration-logs
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering safety and side-effect expectations. The description only adds 'Body fields: none' and an endpoint URL, but does not disclose what the logs contain, whether pagination is automatic, or any rate limits or permissions. With annotations present, the bar is lower, but the description still adds little beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose, with no filler. It includes the endpoint and a reference link, which is useful. However, it repeats the title ('Get integration logs') and could be more efficient by integrating the endpoint into a single sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain what the logs contain or what the response looks like, but it does not. It also omits details about how to use query parameters for pagination or filtering. For a read-only logging tool, an agent would still need to consult the linked documentation to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The integrationId is described implicitly via the endpoint URL, but the query parameter is undocumented in the description; the schema already notes that pagination uses offset and limit. With 50% schema coverage, the description does not compensate for the undocumented query behavior, leaving the agent without instructions on how to filter or page results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get integration logs') and the endpoint URL clarifies it returns logs for a specific integration. Among the many sibling tools, none other targets integration logs, so it is clearly distinguished without needing to name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives (e.g., get_an_integration for integration metadata, or event logs). It only gives the endpoint and a reference link, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_integrationsGet integrationsCRead-onlyIdempotent
Get integrations. GET /api/xm/1/plans/{planId}/integrations. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-integrations
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: integrationType, deployed, embed. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds 'Body fields: none' and the endpoint, but no details on pagination or response behavior. The schema's query description partially fills that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with no fluff: verb, endpoint, body note, and reference. The information is front-loaded and relevant, though slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two parameters, no output schema, and a collection-resource tool, the description is too sparse. It does not clarify what integrations are returned, how to filter, or when to use this list endpoint vs the singular variant, leaving the agent to infer from the schema and sibling names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning about planId or query parameters beyond restating the endpoint and body fields. Schema description coverage is only 50%, yet the description does not compensate by explaining what planId represents or how the documented query parameters (integrationType, deployed, embed) behave.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Get integrations' and the exact endpoint, which clearly conveys it lists integrations for a plan. The plural endpoint and sibling xmatters_get_an_integration distinguish it from fetching a single integration, though it does not explicitly say 'list all'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like xmatters_get_an_integration or xmatters_get_integration_logs. The reference link is not usage guidance, and there is no mention of when the query filters should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_members_in_a_shiftGet members in a shiftBRead-onlyIdempotent
Get members in a shift. GET /api/xm/1/groups/{groupID}/shifts/{shiftID}/members. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-members-in-a-shift
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: onDuty. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds the HTTP GET method, 'Body fields: none,' and a documentation reference, but does not address response format or pagination behavior, which is left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: the action, the exact endpoint, the body requirement, and a reference link. Information is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with strong annotations, the endpoint, body requirement, and reference are largely sufficient for invocation. However, the description does not describe the expected response or clarify selection against closely related member/shift tools, so an agent is left to infer some context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template maps groupID and shiftID into the path, and 'Body fields: none' clarifies there is no request body. However, the description does not explain the meaning of the path parameters beyond their self-explanatory names, and the query object's onDuty/pagination behavior is documented in the schema rather than the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action and resource clearly ('Get members in a shift') and provides the full GET endpoint, making the operation unambiguous. It does not explicitly contrast with sibling tools like xmatters_get_group_members or xmatters_get_a_shift, though the shift-scoped path helps distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as xmatters_get_group_members or the shift endpoints. The description simply restates the operation with no exclusions, prerequisites, or selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_on_call_summaryGet on-call summaryBRead-onlyIdempotent
Get on-call summary. GET /api/xm/1/on-call-summary. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-on-call-summary
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | API query parameters; arrays are comma-joined. Documented names: embed, escalationOrder, groups, recipientsPerShift, at. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds the pagination note ('results are not automatically combined') from the schema, which is useful behavioral context, but it does not go beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, includes the API path and a reference link, and contains no redundant content. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET tool with one well-documented parameter, the description is adequate but minimal. It does not describe the return format or what the summary contains, which might be expected given no output schema, but the reference link partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the query object and its properties are already well documented (e.g., comma-joined arrays, supported parameter names). The description itself adds no extra parameter meaning beyond the endpoint reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get on-call summary' and gives the exact API endpoint (GET /api/xm/1/on-call-summary), making the purpose clear. However, it does not differentiate from the sibling tool 'xmatters_get_who_is_on_call', which appears related, so it misses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The sibling 'get_who_is_on_call' likely serves a similar purpose, but the description does not mention it or provide any selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_peopleGet peopleARead-onlyIdempotent
Get people. GET /api/xm/1/people. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-people
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: createdAfter, createdBefore, createdFrom, createdTo, devices.exists, devices.email.exists, devices.failsafe.exists, devices.mobile.exists, devices.sms.exists, devices.voice.exists, devices.status, devices.testStatus, emailAddress, embed, fields, firstName, groups, groups.exists, lastName, licenseType, operand, phoneNumber, propertyNames, propertyValues, roles, search, site, sortBy, sortOrder, status, supervisors.exists, supervisors, targetName, webLogin. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and non-destructive status. The description adds only the HTTP endpoint and 'Body fields: none'; it does not disclose return shape, pagination behavior, or any API-specific caveats beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short elements each earn their place: the action, the exact endpoint, the body-field clarification, and a direct API reference. It is front-loaded and has no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter collection endpoint, the combination of exact endpoint, no-body note, rich query schema, and reference link is sufficient for an agent to invoke it correctly. It could be more self-contained by summarizing return format, but the API reference mitigates that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the query parameter object is well documented, so the baseline is 3. The description adds a small but useful clarification that no body fields are expected, which is not explicit in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names the exact resource ('people') and HTTP operation ('GET /api/xm/1/people'), making it unmistakably a collection listing operation. This distinguishes it from siblings like xmatters_get_a_person_by_id and xmatters_get_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus alternatives. It does not state that this returns the full people collection, that it supports filtering via query parameters, or that get_a_person_by_id should be used for a single person.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_plan_constantsGet plan constantsARead-onlyIdempotent
Get plan constants. GET /api/xm/1/plans/{planId}/constants. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-plan-constants
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds the exact API endpoint and mentions that there are no body fields, reinforcing the read-only nature. This is sufficient given that annotations cover the safety profile, and the tool is a simple GET.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three short sentences. It front-loads the purpose and HTTP endpoint, then provides a reference link. No unnecessary fluff, though it could be slightly expanded to include return format or usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple, and the description includes the endpoint and reference. However, it lacks information about return format, pagination specifics (which are partly in the schema), and any required permissions. Given the availability of an API reference link, the agent can find details if needed, but the description could be more self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, meaning the query parameter is documented in the schema (offset, limit, pagination behavior). The description does not add additional semantics for parameters; the path parameter (planId) is clear from its name and schema. The schema already covers query parameters well, so the description doesn't need to add more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves plan constants and includes the HTTP endpoint. It is distinct from related tools like xmatters_create_plan_constant and xmatters_modify_plan_constant, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the endpoint and hints that it is a read operation (GET), but it does not explicitly state when to use this tool versus other constant-related tools (e.g., for creating or modifying constants). The agent can infer usage from the HTTP verb and endpoint, but there's no explicit guidance on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_plan_endpointsGet plan endpointsARead-onlyIdempotent
Get plan endpoints. GET /api/xm/1/plans/{planId}/endpoints. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-plan-endpoints
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds 'Body fields: none' and the exact endpoint path, which is useful, but it does not describe response behavior, pagination, or any API-specific quirks beyond what the schema already notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then the exact HTTP path, then body requirements and a reference link. The first sentence repeats the tool name, but the remaining content is efficient and each part serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the description plus annotations and schema provide enough to invoke the tool correctly: the path identifies the resource, the schema documents pagination parameters, and annotations cover idempotency and non-destructiveness. A response shape is not described, but no output schema exists and the operation is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the query parameters with a description, but the required path parameter planId has no description in the schema. The description partially compensates by showing planId in the URL template, clarifying its placement, but it does not explain what planId represents or how to obtain it. Schema description coverage is 50%, so the description adds some but not enough semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get plan endpoints') and includes the exact HTTP path, which distinguishes it from sibling tools like xmatters_create_plan_endpoint, xmatters_modify_a_plan_endpoint, and xmatters_delete_a_plan_endpoint. The GET method and 'endpoints' resource make the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as creating, modifying, or deleting plan endpoints, nor does it mention any preconditions like needing a valid planId. The only context is the raw API path and a reference link, leaving usage decisions entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_plan_propertiesGet plan propertiesBRead-onlyIdempotent
Get plan properties. GET /api/xm/1/plans/{planId}/property-definitions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-plan-properties
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering safety. The description adds 'Body fields: none' and the endpoint, which confirms read behavior. However, it does not describe the nature of the returned data or any side effects beyond what annotations imply, so it adds only modest value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the verb and resource immediately. Including the endpoint and a reference URL adds useful details without excessive verbosity. It could be slightly tighter, but it is efficient and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should explain what is returned (e.g., a list of property definitions) and any relevant constraints. It does not. It also omits guidance on pagination beyond the schema's query note, and does not mention error conditions or special cases. The tool is simple, but the description leaves the agent under-informed about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only query has a description). The description does not explain 'planId' or the path structure, nor does it elaborate on query parameters beyond the schema. It only notes that there is no request body, which is not about input parameters. Thus the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), resource ('plan properties'), and provides the exact endpoint. It clearly distinguishes from create and modify siblings by the verb, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance. It does not mention that this is the correct tool for fetching property definitions versus other plan-related getters like constants or endpoints. An agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_rolesGet rolesBRead-onlyIdempotent
Get roles. GET /api/xm/1/roles. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-roles
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: name, allowWildcards, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds the GET method and 'Body fields: none', but does not describe response behavior, pagination, or other runtime traits; these are covered only partially by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the verb, resource, and endpoint. The reference link and body note are useful, but the sentence 'Body fields: none' is somewhat redundant given the schema and the GET context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with rich annotations and a well-documented parameter schema, the description is nearly sufficient. However, there is no output schema and the description never explains what a role object contains or what the response looks like, which would help an agent validate results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents query parameter names, comma-joining of arrays, and explicit pagination behavior. The description adds no parameter-level meaning beyond noting there is no request body, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb and resource ('Get roles') and includes the exact REST path, making the operation unambiguous. It does not explicitly contrast itself with the many sibling get_* tools, but the resource name and endpoint are specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, nor any prerequisites or exclusions. The description merely states the operation and links to API docs, leaving an agent to infer appropriate usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_scenariosGet scenariosBRead-onlyIdempotent
Get scenarios. GET /api/xm/1/scenarios. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-scenarios
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: search, operand, enabledFor, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds the GET method and 'Body fields: none', but does not disclose additional behavioral details such as response shape, pagination behavior beyond what the schema already says, or any API-specific caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the endpoint, body requirement, and reference link each adding useful information. It loses a point because 'Get scenarios' largely restates the tool name/title rather than adding new substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema and annotations cover invocation safety and query parameters well, and the reference link is useful. However, the description does not state what the response contains and does not distinguish this plural list operation from closely related sibling tools, so an agent may still be uncertain about scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the query parameter description is informative, covering documented names, comma-joining of arrays, and explicit pagination. The main description adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get scenarios') and provides the exact endpoint, so an agent can tell this is a collection-level GET. However, it does not explicitly differentiate itself from siblings like xmatters_get_a_scenario or xmatters_get_scenarios_in_a_form, leaving some ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives. It does not mention that this is the plural/list variant versus singular or form-scoped variants, and it does not state any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_scenario_sender_permissionsGet scenario sender permissionsARead-onlyIdempotent
Get scenario sender permissions. GET /api/xm/1/scenarios/{scenarioId}/sender-permissions. The table calls the scenario path identifier id and labels it QUERY PARAMETERS; the definition uses scenarioId in the path. See C06. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-scenario-sender-permissions
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only, idempotent, and non-destructive; the description adds the HTTP method, the exact endpoint, and 'Body fields: none.' It also flags the documentation mismatch around path vs query naming. It does not describe auth, rate limits, or pagination responses, but for a safe read operation with these annotations the added context is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Each sentence is short and purposeful, with the purpose front-loaded and technical details kept to the end. The cryptic 'See C06' and the reference URL are minor clutter but not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only resource with strong annotations and a schema that already documents query and pagination behavior, the description is largely complete: it gives the endpoint, path parameter naming caveat, and a reference. It omits response shape and authorization, but the resource name and GET semantics make the return value predictable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the query object but leaves path.scenarioId without a description, so the description's notice that the path identifier is scenarioId (not the table's 'id') is valuable. It also states there is no body. However, it does not explain the meaning or format of sender permissions beyond the endpoint, so the description only partly compensates for the 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object ('Get scenario sender permissions') and states the exact endpoint with the resource path, making the operation unambiguous. It is naturally distinguished from the sibling set_scenario_sender_permissions by the GET verb and resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to prefer this tool over its setter counterpart or how it relates to the form sender-permission tools; the only signal is the verb 'Get'. The description does not mention prerequisites, exclusions, or alternatives, so an agent must infer usage from the endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_scenarios_in_a_formGet scenarios in a formARead-onlyIdempotent
Get scenarios in a form. GET /api/xm/1/plans/{planId}/forms/{formId}/scenarios. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-scenarios-in-a-form
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds the exact GET method, states body fields are none, and provides an API reference link, which are useful behavioral details beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences that front-load the action and endpoint, with no filler. The body-note and reference link are useful and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only GET tool with rich annotations, the definition plus schema provides what an agent needs to invoke it correctly: required path params, optional query behavior, and the exact endpoint. It lacks explicit sibling differentiation and return-shape detail, but those are not blocking for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint template adds context that planId and formId are path placeholders, and the query property in the schema already documents query parameters and pagination behavior. However, the path parameters themselves are not explained beyond names and placement, and schema description coverage is only 50%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get scenarios in a form', and the endpoint template explicitly scopes it to planId and formId. This distinguishes it from sibling tools like xmatters_get_scenarios and xmatters_get_a_form_in_a_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'in a form' phrasing and endpoint path imply it is for retrieving scenarios scoped to a specific form, but there is no explicit when-to-use guidance or mention of alternatives. The intended usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_scheduled_messagesGet scheduled messagesCRead-onlyIdempotent
Get scheduled messages. GET /api/xm/1/scheduled-messages. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-scheduled-messages
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: search, sortBy, sortOrder. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, but the description adds almost no behavioral context beyond those annotations. 'Body fields: none' and the GET method are trivial for a read-only list operation, and it does not describe result shape, pagination behavior, or API-specific side effects. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is compact and front-loaded, with the purpose first and the endpoint, body note, and reference following. The first sentence repeats the tool title and the reference link is nonessential, but the overall entry is short and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The operation is simple, and the schema plus annotations provide the important safety and pagination facts. However, there is no output schema and the description does not describe what a response contains, nor does it clarify list-vs-single semantics relative to get_a_scheduled_message. The endpoint and reference make invocation possible, but a modest completeness gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description itself says nothing about the query parameter object, but the input schema covers 100% of the single parameter and already documents search, sortBy, sortOrder, comma-joining, and explicit offset/limit pagination. With this level of schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Get scheduled messages') and cites the exact list endpoint, which is enough to distinguish it from the singular get_a_scheduled_message sibling. However, it does not explicitly contrast itself with that singular getter or state that it returns a collection, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not mention when to prefer this list operation over get_a_scheduled_message, nor does it clarify that results require pagination handling. The reference link is present, but there are no explicit usage conditions or alternative selection cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_service_dependenciesGet service dependenciesBRead-onlyIdempotent
Get service dependencies. GET /api/xm/1/service-dependencies. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-service-dependencies
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: serviceId, dependentServiceId. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the endpoint and a reference link but provides no additional behavioral context beyond the structured annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise two-line statement with the purpose and endpoint, followed by a reference link. It is front-loaded and contains no redundant content. Slightly more detail about the dependency semantics could be added, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with optional query parameters, the description plus annotations and schema cover what an agent needs: the endpoint, parameter behavior, and safety. The reference link offers deeper details if needed. Missing a definition of 'service dependency', but not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of parameters, including the 'query' object's behavior (arrays comma-joined, documented names serviceId/dependentServiceId, explicit pagination). The tool description itself adds no parameter details, so the baseline 3 applies because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'service dependencies', and provides the exact HTTP endpoint. While the name is self-explanatory, it does not explicitly differentiate from sibling tools like get_services or get_a_service, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios, prerequisites, or contrast with related tools like xmatters_get_services. The agent must infer that this tool is for fetching dependency relationships.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_servicesGet servicesARead-onlyIdempotent
Get services. GET /api/xm/1/services. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-services
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: search, operand, fields, ownedBy, serviceTier, serviceType. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the endpoint and notes that body fields are none, which is useful. The schema adds behavioral context about pagination ('Pagination is explicit using offset and limit; results are not automatically combined'), which is valuable beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: three sentences covering the action, endpoint, body fields, and a reference link. It is front-loaded with the core purpose. The reference link is useful but could be considered extra; overall it earns its place for an API-backed tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no required parameters and no output schema, the description plus schema cover the essential context: endpoint, no body, query parameters, and pagination behavior. The lack of an output schema means return format is not described, but for a list endpoint this is a minor gap. The reference link provides a fallback for deeper details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the query parameter object and its documented names. The description adds the endpoint and confirms no body fields, which helps clarify that the only input is query parameters. The schema's note about arrays being comma-joined and pagination behavior adds meaning beyond basic parameter names, so the description plus schema provide strong parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get services') and includes the exact API endpoint (GET /api/xm/1/services). It distinguishes this from sibling tools like xmatters_get_a_service (singular) and xmatters_get_service_dependencies, though it doesn't explicitly name them. The title and description align well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the endpoint and a reference link, which implies usage context, but it does not explicitly state when to use this tool versus alternatives like xmatters_get_a_service or xmatters_get_service_dependencies. The schema's query parameter documentation gives some guidance on filtering, but no explicit when-to-use or when-not-to-use guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_shift_occurrencesGet shift occurrencesBRead-onlyIdempotent
Get shift occurrences. GET /api/xm/1/groups/{groupId}/occurrences. The last definition example has /occurrences/shifts=...; shifts is a query parameter, not a path component. The shared URL PARAMETERS table includes both path and query parameters. See C03. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-shift-occurrences
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, from, to, shifts, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already establish this is a safe read operation. The description adds minor clarifications about the URL structure and query parameters, but does not disclose pagination behavior, response contents, or rate limits. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively compact but includes internal referencing notes ('See C03', 'shared URL PARAMETERS table') that require external context and may confuse an agent. The core purpose is front-loaded but the extra reference material could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and only partial schema coverage; the description mentions body fields are none and points to the API reference, but does not explain the return shape or typical use context. Given the read-only annotations and query parameter hints, it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents 'path.groupId' and a query object with documented names (embed, from, to, shifts, offset, limit). The description adds value by clarifying that 'shifts' is a query parameter not a path component and that pagination uses offset/limit without auto-combining results, which exceeds the schema's bare parameter listing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool retrieves shift occurrences for a group via a specific REST endpoint. It distinguishes itself from siblings like xmatters_get_a_shift and xmatters_get_shifts by focusing on occurrences, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the HTTP path and notes that 'shifts' is a query parameter, which clarifies usage, but it does not explicitly say when to prefer this tool over alternatives like get_deleted_shift_occurrences or get_on_call_summary. The context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_shiftsGet shiftsBRead-onlyIdempotent
Get shifts. GET /api/xm/1/groups/{groupID}/shifts. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-shifts
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, include, members.exists, shiftType, createdBefore, createdAfter. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds 'Body fields: none' and the HTTP GET method, but does not disclose pagination, response shape, or other behavioral details; this is acceptable but not additive enough for a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the endpoint and key constraints, with a reference URL for details. The opening 'Get shifts' repeats the title, so it is not perfectly economical, but the overall structure wastes little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The endpoint, body note, and reference are sufficient to make the call, and the schema covers query parameters. However, there is no output description and no disambiguation among the many sibling shift tools, so an agent may need extra effort to decide this is the right tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The endpoint makes the required groupID path parameter explicit and 'Body fields: none' clarifies there is no request body, but query parameters are only documented in the schema rather than the description. With 50% schema description coverage, the description only partially compensates for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the operation ('Get shifts') and supplies the exact endpoint 'GET /api/xm/1/groups/{groupID}/shifts', making clear it retrieves shift collections for a group. The plural 'shifts' and the groupID path segment differentiate it from singular shift tools, though it does not explicitly call out those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as xmatters_get_a_shift or xmatters_get_members_in_a_shift. The endpoint and reference imply the resource scope, but the description does not state when to choose this over sibling shift-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_signalsGet signalsBRead-onlyIdempotent
Get signals. GET /api/xm/1/signals. The definition and returned collection self link use /signals. The cURL and JavaScript examples incorrectly use /groups/IT/signals; that path is not presented as a separate operation. See C10. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-signals
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: correlation, embed, from, limit, offset, response, sortBy, sortOrder, to. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and a caveat about incorrect examples, but does not describe pagination, return format, or other behaviors. It adds minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, about four sentences, with the core purpose front-loaded. The caveat about example paths and the reference link are useful but could be trimmed without losing essential meaning. It is appropriately sized for a simple GET operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the schema covers parameters and annotations cover safety, but there is no output schema and the description does not mention the return type or possible error conditions. The description is adequate but leaves some gaps, such as what a response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not discuss parameters, but the schema's query property includes a detailed description listing all documented parameter names and pagination behavior. With 100% schema coverage, the description is not required to compensate, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation 'Get signals' with the HTTP method and path, making the resource and action unambiguous. The plural 'signals' distinguishes it from the sibling xmatters_get_a_signal without explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like xmatters_get_a_signal. It does not mention conditions, prerequisites, or selection criteria, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_sitesGet sitesBRead-onlyIdempotent
Get sites. GET /api/xm/1/sites. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-sites
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: search, operand, fields, sortBy, sortOrder, country, geocoded, status, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description adds the HTTP method and 'Body fields: none', but does not describe pagination behavior or result format beyond what the schema already mentions. Since annotations carry most of the burden, this is adequate but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and to the point: 'Get sites' plus the endpoint and a reference. There is no wasted text, and the core action is front-loaded. For a simple GET list operation, this is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should at least hint at what the tool returns (e.g., a list of site objects). It also lacks any mention of authentication or response structure. The reference URL helps but is not sufficient for an agent to know what to expect from the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers 100% of parameters, listing documented query parameters (search, status, offset, etc.) and noting explicit pagination. The description adds no extra parameter semantics beyond repeating the endpoint. Baseline 3 is appropriate because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get sites' and provides the exact endpoint (GET /api/xm/1/sites), making it clear this is a list operation. It is distinguishable from the sibling tool xmatters_get_a_site, which is singular. The purpose is clear, though it doesn't explicitly say 'list all sites' or specify scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the singular get_a_site or other related tools. It does not mention that it returns all sites, nor does it suggest alternatives for filtering or pagination. The agent must infer usage from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_subscribersGet subscribersCRead-onlyIdempotent
Get subscribers. GET /api/xm/1/subscriptions/{subscriptionId}/subscribers. The table calls the subscription path identifier id and labels it QUERY PARAMETERS; offset/limit are query parameters, subscriptionId is a path parameter. See C06. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-subscribers
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the description's job is to add behavioral context. It only adds the endpoint, 'Body fields: none', and a reference URL; it does not mention return shape, pagination behavior, authentication needs, or any other behavioral nuance beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the purpose and endpoint. The sentence about the table naming and path/query parameter locations is slightly awkward but earns its place by resolving a likely confusion; the reference URL is useful without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and many subscription-related siblings, the description is adequate for basic invocation: it names the endpoint, required path parameter, optional query parameters, and confirms no body. However, it lacks explicit return-value expectations, pagination behavior, and usage differentiation, so it is not fully complete for an agent choosing among many similar read operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% since the path parameter has no schema description, but the description compensates by stating that subscriptionId is a path parameter and offset/limit are query parameters. It also clarifies an API-documentation naming quirk, which is helpful, though it does not explain the semantics of offset, limit, or subscriptionId beyond what the schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the clear action 'Get subscribers' and then specifies the exact resource via 'GET /api/xm/1/subscriptions/{subscriptionId}/subscribers', so an agent can tell it retrieves subscribers for a subscription. It does not explicitly contrast it with sibling tools like add_subscribers or unsubscribe_a_user, but the endpoint and noun are specific enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as xmatters_get_subscriptions, xmatters_add_subscribers, or xmatters_unsubscribe_a_user. The description gives endpoint and parameter information but no context for selection, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_subscription_formsGet subscription formsBRead-onlyIdempotent
Get subscription forms. GET /api/xm/1/subscription-forms. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-subscription-forms
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Behavioral traits are entirely covered by the annotations (readOnlyHint, idempotentHint, destructiveHint=false). The description adds no extra behavioral context such as pagination behavior, auth requirements, or response format. It only states 'Body fields: none' which is redundant given the schema, and provides the endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct, with the operation stated up front and the endpoint and reference link appended. It avoids redundant prose, but the reference link could be seen as optional; still, it is compact and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list GET with no required parameters and no output schema, the description is nearly complete. The schema covers query parameters, and the endpoint suggests the resource. It lacks an explicit statement about what is returned (e.g., a list), but this is often implicit for such GET endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a detailed description of the 'query' parameter, listing documented names and pagination semantics. Since schema coverage is 100%, the description adds no additional value for parameters beyond what is already documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'subscription forms', and includes the HTTP endpoint for precision. It naturally distinguishes from siblings like xmatters_get_a_subscription_form (singular) and xmatters_get_subscription_forms_in_a_plan via the plural resource and endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention that this lists all subscription forms globally, nor does it contrast with plan-scoped or single-item variants. The only context is the endpoint and a reference link, which imply usage but do not explicitly differentiate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_subscription_forms_in_a_planGet subscription forms in a planBRead-onlyIdempotent
Get subscription forms in a plan. GET /api/xm/1/plans/{planId}/subscription-forms. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-subscription-forms-in-a-plan
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: embed, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive, so the baseline is satisfied. The description adds the 'Body fields: none' detail and a reference link, which provide minor invocation context, but no additional behavioral traits such as response size, ordering, or error semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core purpose, followed by the endpoint, body note, and reference. Every sentence serves a purpose, though the endpoint duplicates the tool's purpose and could be considered slightly repetitive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET with one required path parameter and optional query parameters, the description is mostly adequate given the annotations and schema's query documentation. However, it does not describe return values or clarify how this differs from the global 'get_subscription_forms' tool, leaving room for confusion in a large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (query is described, path is not). The description does not explain what planId is or how it relates to the returned subscription forms. 'Body fields: none' is redundant since the schema defines no body. The reference link is helpful but does not compensate for the missing parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get subscription forms in a plan') and includes the exact HTTP endpoint, making the operation unambiguous. It is implicitly distinguished from sibling 'xmatters_get_subscription_forms' by the 'in a plan' scope, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus related tools like xmatters_get_subscription_forms or xmatters_get_forms_in_a_plan. There are no exclusions, prerequisites, or contextual cues to help an agent choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_subscriptionsGet subscriptionsBRead-onlyIdempotent
Get subscriptions. GET /api/xm/1/subscriptions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-subscriptions
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: owner, subscriber, sharedWith, managedBy, subscriptionName, subscriptionDescription, subscriptionForm, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe, read-only nature is well covered. The description adds the HTTP method and the absence of a request body, which are minor useful details, but it does not disclose response format, authorization requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the operation, then gives the endpoint and body requirement. The reference link adds a minor extra that is not essential but is not harmful. Overall, every sentence adds a small amount of utility without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (no required parameters, strong annotations, and a detailed schema), the definition is mostly adequate. However, it does not explicitly state that the response is a list of subscriptions or that callers must page through results to get all entities, leaving response semantics implied rather than stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the query parameter's schema description already lists all documented parameter names (owner, subscriber, sharedWith, etc.) and explicitly explains pagination using offset/limit with no automatic result combination. The tool description adds no parameter-level detail, but the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get subscriptions') and identifies the exact API endpoint, which is sufficient for an agent to know what the tool targets. However, it does not explicitly say that it returns a list as opposed to a single subscription, leaving differentiation from xmatters_get_a_subscription to be inferred from the plural name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not say when to use this tool over xmatters_get_a_subscription or how it relates to xmatters_get_subscription_forms, and it gives no conditions for when the query parameters should be used. The agent is left to infer usage from the endpoint and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_suppressed_eventsGet suppressed eventsBRead-onlyIdempotent
Get suppressed events. GET /api/xm/1/event-suppressions. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-suppressed-events
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | API query parameters; arrays are comma-joined. Documented names: event, sortBy, sortOrder, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, and non-destructive, so the description does not need to cover safety. It adds the HTTP method and 'Body fields: none', which is mildly useful but does not describe response behavior, pagination, or error handling. Given the strong annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, delivering the purpose, HTTP endpoint, body requirement, and a reference link in four short clauses. The action is front-loaded, and every element earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema cover the required parameter (event) and annotations cover the safety profile. Missing is any explanation of the response shape or what constitutes a 'suppressed event', but for a read-only list endpoint with well-documented parameters and a reference link, it is reasonably complete. A brief note about the required event parameter would improve it, but the schema already enforces it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the query parameters (event, sortBy, sortOrder, offset, limit) and their semantics (arrays comma-joined, explicit pagination). The tool description adds no parameter-specific information, so it provides no value beyond the schema. At high schema coverage, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'suppressed events', which is a specific action. However, it does not differentiate it from sibling tools like xmatters_get_events or explain what 'suppressed' means in this context. The API endpoint helps ground the resource, but the description is thin on distinguishing detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_events or get_an_event. There are no prerequisites, exclusions, or context cues. The description merely restates the action and provides the endpoint, leaving tool selection entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_temporary_absencesGet temporary absencesARead-onlyIdempotent
Get temporary absences. GET /api/xm/1/temporary-absences. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-temporary-absences
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: member, groups, absenceType, from, to, offset, limit. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the REST path and 'Body fields: none' as modest operational context, but it does not disclose anything deeper such as auth requirements, response shape, or open-world behavior; no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and the endpoint is front-loaded, but the first sentence is essentially a repeat of the title and the path restates the same resource. It is not bloated, yet not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET list operation, the combination of the description, the rich query-parameter schema, and the safety annotations is largely sufficient. There is no output schema, but the resource name makes the return type obvious and the reference link provides an escape hatch for additional API details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage of the query parameter semantics, including documented names, comma-joining, and explicit offset/limit pagination. The tool description adds 'Body fields: none' but no additional meaning for the query object, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get temporary absences') and ties it to the exact endpoint GET /api/xm/1/temporary-absences. This unambiguously separates it from the create/delete temporary-absence siblings by both operation and path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the HTTP verb and resource: this is the retrieval tool for temporary absences, not the create or delete one. However, the description never explicitly routes away from xmatters_create_a_temporary_absence or xmatters_delete_a_temporary_absence, nor does it state which query scenarios are best served here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_user_delivery_dataGet user delivery dataARead-onlyIdempotent
Get user delivery data. GET /api/xm/1/events/{eventID}/user-deliveries. Historical-data endpoint: at is required. Event identifier casing follows DEFINITION (eventID), not the table spelling eventId. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-user-delivery-data
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | Yes | API query parameters; arrays are comma-joined. Documented names: embed, sortBy, sortOrder, deliveryStatus, offset, limit, at. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already marking the operation as read-only and idempotent, the description adds useful behavioral context: it is a historical-data endpoint, 'at' is mandatory, eventID casing must follow the definition spelling, and no body is sent. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: endpoint, historical requirement, casing caveat, body expectation, and reference link all fit in five short clauses. Every sentence earns its place without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only historical endpoint, the description plus the schema's query-parameter documentation is sufficient for an agent to select and invoke the tool correctly. A brief note about the response shape would make it fully complete, but the resource and required inputs are clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description reinforces that 'at' is required and clarifies the eventID casing distinction, which the schema alone does not provide. The schema's query-object description already documents other query parameters and pagination behavior, so the description complements rather than duplicates it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get user delivery data') and provides the exact REST path with eventID and user-deliveries. It is clearly distinguishable from sibling event tools, though it does not explicitly name an alternative or a when-not-to-use condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly identifies this as a historical-data endpoint, states that 'at' is required, and notes that no body fields are expected. It does not mention alternative tools or exclusion criteria, but the call context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_user_license_quotasGet user license quotasARead-onlyIdempotent
Get user license quotas. GET /api/xm/1/people/license-quotas. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-user-license-quotas
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the HTTP method and body constraint but does not disclose response contents, authentication, or pagination behavior beyond the schema's note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: a clear one-line purpose, the endpoint, a body-field note, and a reference link. No filler or redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with no required parameters, this is adequate but leaves gaps: no description of the returned quota fields, no explicit note that it targets user quotas as opposed to group quotas, and no query parameter names. The reference link helps compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the single 'query' object, pagination behavior, and free-form additional properties with 100% coverage. The description only adds 'Body fields: none,' which is minor extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get user license quotas') and the exact REST endpoint ('GET /api/xm/1/people/license-quotas'). This precisely identifies the resource and differentiates it from siblings like xmatters_get_group_license_quotas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, such as the group license quota equivalent. The endpoint and 'Body fields: none' are implementation details, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_get_who_is_on_callGet who is on callBRead-onlyIdempotent
Get who is on call. GET /api/xm/1/on-call. Body fields: none. Reference: https://help.xmatters.com/xmapi/#get-who-is-on-call
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | API query parameters; arrays are comma-joined. Documented names: groups, membersPerShift, embed, include, at, from, to. Pagination is explicit using offset and limit; results are not automatically combined. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds the endpoint and the note that there are no body fields, but does not disclose return format, pagination behavior, or any other runtime characteristics. Since the description carries some weight but is minimal, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the purpose, and includes the endpoint, a note on body fields, and a reference link. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET tool with rich schema and annotations, the description is adequate, but it lacks any note on how this differs from the similar get_on_call_summary sibling, which is a meaningful gap for an agent trying to select the correct tool. The output format is not described, but no output schema exists, so that is less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides a detailed description for the query object, listing documented parameter names and pagination behavior, so schema coverage is 100%. The tool description adds no extra parameter context, meeting the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves who is on call, with a specific resource (the /on-call endpoint). However, it does not distinguish itself from the sibling tool xmatters_get_on_call_summary, which likely serves a similar purpose, so it lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_on_call_summary. It simply states the action without any exclusions, prerequisites, or hints about which tool fits a given scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_conference_bridgeModify a conference bridgeADestructive
Modify a conference bridge. POST /api/xm/1/conference-bridges. Body fields: id, name, description, tollNumber, tollFreeNumber, preferredConnectionType, pauseBeforeBridgePrompt, staticBridgeNumber, bridgeNumber, meetingLink. Reference: https://help.xmatters.com/xmapi/#modify-a-conference-bridge Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-conference-bridge | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive, non-idempotent), it adds specifics: requires operator write opt-in, confirm:true, may notify recipients or change tenant data. This enriches the behavioral profile without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single paragraph with all essential information: endpoint, fields, requirements, and reference. It is compact and front-loaded, though it could benefit from bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the mutation's side effects, prerequisites, and payload structure. Since there is no output schema, it appropriately references the API documentation for further details, making it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines body as an object with required id and additionalProperties; the description lists all meaningful body fields (name, tollNumber, etc.) and explains the confirm:true requirement, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool modifies a conference bridge, with the specific endpoint and a list of body fields. It is easily distinguished from sibling tools like get_conference_bridges or create_an_external_conference_bridge by its verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for modifying existing bridges, and the list of body fields clarifies what can be changed. It does not explicitly contrast with create/delete, but the context is evident from the name and the 'modify' action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_deviceModify a deviceADestructive
Modify a device. POST /api/xm/1/devices. Other fields from Create a device and device objects may be supplied. Device-type-specific requirements are left to the API. Body fields: id, deviceType, privileged, defaultDevice, delay, externalKey, externallyOwned, name, owner, priorityThreshold, provider, recipientType, sequence, status, testStatus, timeframes, emailAddress, phoneNumber, twoWayDevice, pin, country. Reference: https://help.xmatters.com/xmapi/#modify-a-device Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-device | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description correctly aligns with a write operation. It adds valuable behavioral context beyond annotations by stating 'may notify recipients or change tenant data' and explicitly requiring 'operator write opt-in and confirm:true.' It also warns that device-type-specific requirements are undefined, which helps set expectations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and endpoint, followed by the field list and side-effect warnings. The long but necessary list of body fields is structured as a comma-separated list, which is efficient. It includes a reference link for deeper details, and each sentence serves a purpose. It is slightly long but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool without an output schema, the description covers prerequisites, side effects, and the open-world nature of the payload. However, it does not mention what the response will look like or how success is indicated, which might be needed for an agent to act on the result. The caveat that device-type-specific requirements are left to the API adds uncertainty that the agent must handle. Overall, adequate but with gaps in return expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions), so the baseline is 3. The description adds a list of allowed body fields (id, deviceType, etc.), which gives the agent a concrete idea of what can be included, but it does not explain the meaning or format of each field beyond what the schema already provides via the reference URL. It also clarifies that additional fields from create are allowed, but this is minor semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Modify a device,' which is a clear verb+resource pairing, and it specifies the exact endpoint (POST /api/xm/1/devices). It also distinguishes itself from create/delete/get by explicitly stating it modifies and referencing 'Other fields from Create a device' – ensuring the agent understands it is not a creation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to modify an existing device) by contrasting with create, but it does not explicitly name alternative tools (e.g., create_a_device) or state when not to use it. It does mention the essential prerequisite (operator write opt-in and confirm:true) and acknowledges that device-type-specific requirements are left to the API, which gives some context. However, clear exclusions or explicit alternative routing are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_device_nameModify a device nameADestructive
Modify a device name. POST /api/xm/1/device-names. Body fields: id, deviceType, name, description, privileged. Reference: https://help.xmatters.com/xmapi/#modify-a-device-name Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-device-name | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint true, readOnly false), the description adds that the operation may notify recipients or change tenant data, and requires operator opt-in. This is valuable behavioral context and does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the action and endpoint, then listing fields and important caveats. It packs necessary information without being verbose, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the action, endpoint, required fields, permission requirements, side effects, and includes a reference link. It lacks error-handling details, but given no output schema and the schema already specifying confirm:true, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only requires 'id' and allows additional properties, but the description explicitly lists the expected body fields (id, deviceType, name, description, privileged), adding semantic value beyond the schema's generic body description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (modify) and resource (device name), includes the HTTP endpoint, and lists the body fields, distinguishing it from create/delete device name siblings. It is specific and actionable, not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides prerequisites (operator write opt-in, confirm:true) but does not explicitly state when to use this tool over alternatives like create or delete device name. The context is implicit from the verb 'modify', but there is no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_form_message_templateModify a form message templateADestructive
Modify a form message template. POST /api/xm/1/forms/{formId}/message-templates. Body fields: email, sms, voice. Reference: https://help.xmatters.com/xmapi/#modify-a-form-message-template Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-form-message-template | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already marking destructiveHint=true, the description adds valuable behavioral context: it requires operator write opt-in and confirm:true, and warns that the operation may notify recipients or change tenant data. This goes beyond what annotations provide and helps the agent understand real-world consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and covers the endpoint, body fields, reference link, and safety requirements. It is front-loaded with the action and resource, with no wasted words, though the reference URL could be considered slightly extraneous for a concise definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential operational points (HTTP method, body fields, confirm requirement, side effects) but does not mention what the response looks like, how the specific template is identified within the form, or any limitations on which fields are modifiable. Given the generic body schema and no output schema, this leaves some gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 75%, the generic 'body' parameter is only partially documented. The description adds crucial meaning by naming the body fields (email, sms, voice), which is not in the schema. It also clarifies the confirm parameter's role by restating confirm:true in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Modify') and resource ('form message template'), and provides the exact HTTP endpoint POST /api/xm/1/forms/{formId}/message-templates. This clearly distinguishes it from sibling tools like create_form_message_templates, get_form_message_templates, and other modify tools that target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, such as when a template already exists vs. creating a new one. It lists requirements (operator write opt-in, confirm:true) and warns about side effects, but provides no direct comparison or routing to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_form_response_optionModify a form response optionADestructive
Modify a form response option. POST /api/xm/1/forms/{formId}/response-options. Body fields: id, number, text, description, prompt, action, contribution, joinConference, allowComments, redirectUrl, translations. Reference: https://help.xmatters.com/xmapi/#modify-a-form-response-option Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-form-response-option | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint and non-readonly. The description adds that it requires operator write opt-in and confirm:true, and may notify recipients or change tenant data, providing useful side-effect context beyond the flags. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, then lists the endpoint, body fields, reference, and requirements. It's efficient and relevant, though the field list and URL add length; all content earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (mutation with nested body, confirm requirement, side effects), the description covers key aspects: endpoint, body fields, reference, and safety requirements. It doesn't explain return format (no output schema) or how to obtain formId, but these are inferable from schema and context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for body, query, and confirm, but not for path. The description enriches the body parameter by listing expected fields (id, number, text, etc.), helping construct the payload. It also reiterates the confirm requirement, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (modify) and the resource (form response option), and includes the exact HTTP endpoint for precision. It is specific enough to distinguish from other modify tools, though it doesn't explicitly contrast with siblings like create_form_response_options or modify_a_plan_form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, such as when to create vs modify, or how it differs from other modify tools. It only mentions requirements (confirm:true) but no use-case or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_form_sectionModify a form sectionADestructive
Modify a form section. POST /api/xm/1/forms/{formId}/sections. Body is a form-section object; section-specific fields remain open. Only one section per request; type cannot be modified. Body fields: id, form, title, type, visible, collapsed, orderNum, bridgeType, properties, targetDeviceNames, otherResponseCountThreshold, priority, expiration, expirationInMinutes, overrideDeviceRestrictions, escalationOverride, bypassPhoneIntro, requirePhonePassword, voicemailOptions, recipients, enableResponseCount, responseCountThreshold, searchableTypes, expandableGroups, callerId, displayName. Reference: https://help.xmatters.com/xmapi/#modify-a-form-section Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-form-section | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds specific side-effect context: 'may notify recipients or change tenant data', which goes beyond the general annotations. It also states the mutation requires 'confirm:true' and operator opt-in, which is essential behavioral disclosure. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long due to the field list, but that list is necessary for an open-world body. It front-loads the verb and resource, includes constraints, and ends with a reference URL. The density is justified by the unstructured schema, and there is no redundancy with annotations or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation that can notify recipients and modify tenant data, the description covers prerequisites, side effects, and a comprehensive field list. It also notes that only one section per request is allowed and type is immutable. The reference URL provides further depth. While an output schema is absent, the description does not need to explain return values per rules. Overall, it is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, but the body field is an open-world anyOf, leaving the agent without structure. The description compensates by listing all possible body fields (id, form, title, type, etc.), which adds meaning beyond the schema. It also explains that 'confirm' must be true and references a documentation URL for full payload details. This is more than the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Modify'), a resource ('a form section'), and the API endpoint. It clearly differentiates from the sibling 'xmatters_create_a_form_section' by implying modification of an existing section and explicitly noting that 'type cannot be modified.' This gives an agent enough to distinguish it from related tools without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational context: POST to a specific URL, one section per request, and immutable 'type'. It mentions required prerequisites (operator write opt-in and confirm:true). However, it does not explicitly state when to prefer this over creating a new section or other modification tools, though the purpose makes that reasonably inferable. The constraints and prerequisites are valuable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_groupModify a groupADestructive
Modify a group. POST /api/xm/1/groups. Body fields: id, allowDuplicates, description, externalKey, externallyOwned, groupType, observedByAll, observers, properties, recipientType, site, status, supervisors, targetName, useDefaultDevices, criteria. Reference: https://help.xmatters.com/xmapi/#modify-a-group Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-group | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, and the description adds meaningful context beyond those: the operation may notify recipients or change tenant data, and it requires explicit operator write opt-in plus confirm:true. There is no contradiction with the annotations. It stops short of describing partial vs full replacement semantics, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: operation, endpoint, body fields, reference, and requirements appear in a logical order. Every sentence contributes important information, and the field list is scannable rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the essential context: endpoint, required id, body fields, permissions, side effects, and a documentation link. The main gaps are that it does not clarify whether omitted fields are preserved or reset, and it does not describe the response shape, but the reference link mitigates these omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body parameter is mostly an opaque JSON blob with only id required, so the tool description adds real value by listing the relevant body fields (allowDuplicates, description, externalKey, etc.). The confirm parameter is already well documented in the schema, and the query parameter is explicitly noted as having no documented names. Type-level detail for the listed fields is left to the reference link, preventing a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation ('Modify a group'), the HTTP endpoint (POST /api/xm/1/groups), and enumerates the relevant body fields. It is clearly distinct from sibling tools like xmatters_create_a_group and xmatters_delete_a_group because it requires an existing group id in the body and uses a modify verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives important operational prerequisites ('Requires operator write opt-in and confirm:true') and a caution about side effects, but it does not explicitly say when to use this tool instead of create/delete or another mutation tool. The intended use is implied by the name and the required id, rather than clearly contrasted with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_an_incidentModify an incidentADestructive
Modify an incident. POST /api/xm/1/incidents. The reference documents both id and incidentIdentifier for lookup. Do not require both. JSON remains open. Body fields: id, incidentIdentifier, summary, description, severity, status. Reference: https://help.xmatters.com/xmapi/#modify-an-incident Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-an-incident | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=true, and idempotentHint=false, and the description adds meaningful side-effect context: 'may notify recipients or change tenant data' and the requirement for write opt-in and confirm:true. It also notes the body is open JSON, which is useful. This goes beyond the annotations to describe consequences and prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, about three sentences, and front-loads the main action with the endpoint. It includes a reference link and key constraints without verbosity. Some information is densely packed but still efficient; a slight reorganization could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description provides essential operational details: endpoint, required confirm, lookup options, allowed body fields, and side effects. It does not describe the response format or error handling, which is a minor gap given the open-world and destructive nature, but the core information needed to invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all three parameters (body, query, confirm) with detailed notes. The tool description adds extra semantics by enumerating allowed body fields (id, incidentIdentifier, summary, description, severity, status) and clarifying that only one of id or incidentIdentifier is needed. This supplements the schema's generic 'open JSON' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Modify an incident' and provides the HTTP method and endpoint, distinguishing it from create/get/trigger incident tools. It lists specific body fields and lookup options, making the tool's purpose unambiguous and distinct from siblings like create_an_incident or trigger_an_incident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance on lookup (id vs incidentIdentifier) and prerequisites (operator write opt-in, confirm:true), but does not explicitly state when to use this tool over alternatives like create_an_incident or trigger_an_incident. The usage context is implied rather than explicit, so it lacks clear when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_an_integrationModify an IntegrationADestructive
Modify an Integration. POST /api/xm/1/plans/{planId}/integrations. Body fields: id, form, name, integrationType, environment, operation, triggeredBy, authenticationType, createdBy, deployed, script, endpoint, integrationService. Reference: https://help.xmatters.com/xmapi/#modify-an-integration Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-an-integration | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive and non-idempotent behavior; description adds specific side effects: 'may notify recipients or change tenant data' and the operator write opt-in requirement. This goes beyond the boolean hints and gives concrete consequences. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with endpoint, body fields, reference, and authorization notes, but it is still readable and front-loaded with the core purpose. The body field list is lengthy but necessary for a free-form schema. Could be better organized with bullets, but acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with complex body requirements, the description covers endpoint, required fields, side effects, and auth. However, it lacks guidance on expected response or error conditions, and the meaning of 'change tenant data' is vague. Still, given no output schema, the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema treats body as a generic JSON blob, so the description's explicit list of body fields (id, form, name, integrationType, etc.) is essential. It also reinforces the confirm:true requirement and identifies planId in the endpoint path. This significantly compensates for the schema's low specificity on body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Modify an Integration' with HTTP POST endpoint. Clearly distinguishes itself from sibling create/delete/get integration tools through the modification verb. No ambiguity about what resource it acts on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus create/delete alternatives. It only provides a caution about opt-in and confirm, not decision context or exclusions. An agent would have to infer that modification is for existing integrations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_personModify a personADestructive
Modify a person. POST /api/xm/1/people. Body fields: id, externalKey, externallyOwned, firstName, language, lastName, licenseType, phoneLogin, phonePin, password, forcePasswordReset, properties, recipientType, roles, site, status, supervisors, targetName, timezone, webLogin. Reference: https://help.xmatters.com/xmapi/#modify-a-person Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-person | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that the operation requires operator write opt-in and confirm:true, and that it 'may notify recipients or change tenant data.' This adds important behavioral context that the annotations (readOnlyHint=false, destructiveHint=true) do not fully capture—specifically the side effects and prerequisite approval. The description also names the HTTP method and endpoint, which is useful for understanding the underlying call. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the verb, resource, endpoint, and key body fields in the first sentence, then adds the reference and safety/authorization warnings in subsequent phrases. Every sentence carries information an agent needs—there is no fluff or repetition. It fits the tool's relatively simple interface without over-explaining.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation with nested body fields, no output schema, and a required confirmation flag, the description provides the essential operational context: the HTTP endpoint, the body field list, the confirmation requirement, the operator opt-in, and the potential side effects. It also links to the full API reference for deeper details. Nothing critical for calling the tool correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already provides full coverage of the parameters (100%), the description adds value by listing the specific body fields that can be modified (e.g., firstName, lastName, licenseType, roles, site, status, supervisors). This gives an agent a concrete sense of what can be changed beyond the generic 'Complete API JSON payload' schema description. It does not provide per-field types or constraints, but it does enumerate meaningful options, so it earns more than the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Modify a person.' It also gives the exact HTTP endpoint and enumerates the body fields, making the action unmistakable. The verb 'modify' clearly differentiates it from siblings like xmatters_create_a_person and xmatters_delete_a_person, so an agent can select it correctly without needing to inspect the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives the context for the operation (modifying an existing person) and mentions prerequisites (operator write opt-in and confirm:true), but it does not explicitly state when to choose this tool over alternatives such as create or delete. There is no 'use this instead of X' guidance or mention of excluded cases, so the usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_plan_constantModify a plan constantADestructive
Modify a plan constant. POST /api/xm/1/plans/{planId}/constants. Body fields: id, name, value, description. Reference: https://help.xmatters.com/xmapi/#modify-a-plan-constant Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-plan-constant | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses that the operation 'may notify recipients or change tenant data' and requires 'operator write opt-in and confirm:true'. This adds important side-effect and authorization context that the annotations alone do not provide, and it does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and information-dense: purpose, endpoint, body fields, reference, and key behavioral requirements are all conveyed in three sentences with no filler. Critical details are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested body, confirmation requirement, and no output schema, the description covers the essential operational aspects: what it modifies, what fields to provide, the need for confirm and write opt-in, and potential side effects. It does not describe response/error handling, but that is less critical here and the description is otherwise sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 75% and the body schema using a generic 'Complete API JSON payload', the description compensates by listing the body fields (id, name, value, description), giving concrete meaning beyond the schema. The confirm parameter's const is already in the schema, so no extra credit there, but the body field list is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('Modify') and resource ('plan constant'), and includes the HTTP method and endpoint, making the operation unambiguous. It is clearly distinct from sibling tools such as create/delete plan constant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is implied by 'Modify a plan constant' and the endpoint, but there is no explicit guidance about when to choose this over create/delete or other alternatives. It does not mention exclusions or prerequisites beyond write opt-in, so usage guidance is adequate but largely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_plan_endpointModify a plan endpointADestructive
Modify a plan endpoint. POST /api/xm/1/plans/{planID}/endpoints. Examples identify the endpoint with body id and the plan in the path, but the body table lists plan and prose says plan UUID. Both id and plan are allowed without inventing a mandatory field. The JavaScript sample ednpoints typo is not adopted. See C09. Body fields: plan, name, url, endpointType, authenticationType, authentication, id. Reference: https://help.xmatters.com/xmapi/#modify-a-plan-endpoint Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-plan-endpoint | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds critical behavioral context: it requires operator write opt-in and confirm:true, and warns of side effects like notifying recipients or changing tenant data. It also clarifies the ambiguity around body fields (id vs plan), which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but every sentence adds value: it gives the endpoint, clarifies ambiguities, notes a typo in samples, lists body fields, and states permission/side-effect requirements. It is well-structured and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should cover return behavior, but it focuses on side effects and requirements instead. It includes a reference URL for full API details, which compensates. It covers permission, body structure, and ambiguity, though it omits response format. Given the complexity, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has generic body and query definitions with limited descriptions (75% coverage). The description adds meaningful detail by listing the expected body fields (plan, name, url, endpointType, authenticationType, authentication, id) and clarifying that both id and plan are allowed, reducing ambiguity. It also points to the reference for exact payload structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Modify a plan endpoint') and gives the exact HTTP method and path, making it distinct from siblings like create_plan_endpoint and delete_a_plan_endpoint. It also provides a reference URL for further detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to modify an existing plan endpoint) and explicitly states prerequisites: operator write opt-in and confirm:true. It doesn't explicitly exclude alternatives, but the purpose is clear enough. The side-effect warning ('may notify recipients or change tenant data') gives usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_plan_formModify a plan formADestructive
Modify a plan form. POST /api/xm/1/plans/{planId}/forms. Body fields: id, name, description, triggerType, mobileEnabled, uiEnabled, apiEnabled. Reference: https://help.xmatters.com/xmapi/#modify-a-plan-form Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-plan-form | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as destructive/non-read-only, but the description adds substantial context: operator write opt-in, mandatory confirm:true, and the warning that it may notify recipients or change tenant data. This is exactly the kind of behavioral disclosure agents need for mutation tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tightly packed sentences deliver action, endpoint, body fields, reference documentation, and safety warnings. There is no filler, and the most important operational constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the endpoint, body shape, required confirm flag, and side effects. It does not describe the response/return value, but no output schema exists and this is a mutation tool where operational requirements matter most. The reference link fills remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes body as a generic complete payload and confirm as explicit approval. The description adds concrete meaning by enumerating common body fields (id, name, description, triggerType, mobileEnabled, uiEnabled, apiEnabled) and showing planId in the URL path. This goes beyond the schema's generic object definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation ('Modify a plan form') with the HTTP endpoint POST /api/xm/1/plans/{planId}/forms and lists the body fields involved. This clearly distinguishes it from sibling tools like create_a_plan_form or update_form_recipients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is inferable from the verb and resource name, but there is no explicit guidance about when to use this versus create_a_plan_form or other form-modification tools. It does not state when-not-to-use conditions or direct the agent to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_scenarioModify a scenarioADestructive
Modify a scenario. POST /api/xm/1/forms/{formId}/scenarios. Body fields: id, attachments, bypassPhoneIntro, description, escalationOverride, expirationInMinutes, name, overrideDeviceRestrictions, permitted, priority, properties, recipients, requirePhonePassword, senderOverrides, targetDeviceNames, voicemailOptions. Reference: https://help.xmatters.com/xmapi/#modify-a-scenario Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-scenario | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive/not read-only, but the description adds meaningful context by warning that it 'may notify recipients or change tenant data.' It also specifies the write opt-in requirement and confirms the exact mutation approval mechanism, going beyond the generic annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the core verb and resource, then provides the endpoint, field list, reference link, and safety requirements in a compact sequence. The long field list is necessary given the schema's generic body definition, and there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not explain return values, which may be acceptable for a mutation but is still a gap. More importantly, the body field names are listed without semantics, and the only path to understanding them is the external reference link. The description is adequate but leaves an agent to consult external docs for field meanings and optionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only explicitly defines path.formId, body.id, and confirm, with body as a generic object allowing arbitrary properties. The description compensates by enumerating the known body fields (attachments, escalationOverride, recipients, etc.), giving an agent a concrete starting point for constructing the payload even though per-field meanings are not detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the operation explicitly as 'Modify a scenario' and reinforces it with the HTTP endpoint POST /api/xm/1/forms/{formId}/scenarios, which clearly targets an existing scenario resource. The list of body fields (id, name, priority, etc.) further distinguishes this from sibling create/get tools without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisites (operator write opt-in, confirm:true) and side effects but gives no explicit guidance on when to use this tool versus alternatives like xmatters_create_a_scenario or xmatters_get_a_scenario. Without naming the alternative for creating a new scenario, an agent must infer that modification requires an existing scenario id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_scheduled_messageModify a scheduled messageADestructive
Modify a scheduled message. POST /api/xm/1/scheduled-messages. Body fields: id, name, event, attachments, recurrence. Reference: https://help.xmatters.com/xmapi/#modify-a-scheduled-message Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-scheduled-message | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known. The description adds valuable context: it requires operator write opt-in and confirm:true, and warns that it 'may notify recipients or change tenant data.' This goes beyond the annotations and helps the agent understand side effects. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one sentence with the action, endpoint, body fields, and a reference link, plus a warning about side effects. It front-loads the action and resource. The reference link and warning are useful, though the body field list could be seen as partially redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key operational context: endpoint, required body fields, confirm flag, write opt-in, and potential side effects. It doesn't describe the response format, but the reference link and schema cover the request. Given the complexity (nested body, confirm requirement), this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameters. The description lists body fields (id, name, event, attachments, recurrence) and the confirm requirement, adding some meaning beyond the schema's generic 'Complete API JSON payload' note. However, it doesn't explain the semantics of each field or how recurrence/attachments should be structured, so it's adequate but not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Modify') and resource ('a scheduled message'), and includes the API endpoint. It distinguishes from siblings like create/delete/get scheduled messages by the verb. However, it doesn't explicitly contrast with the sibling 'xmatters_get_a_scheduled_message' or other modify tools, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when modifying an existing scheduled message, and the schema's confirm parameter plus the note about operator write opt-in provide context. It doesn't explicitly state when not to use it or name alternatives, but the endpoint and body fields give enough context for an agent to select it over create/delete/get siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_serviceModify a serviceADestructive
Modify a service. POST /api/xm/1/services. Body fields: id, targetName, description, serviceTier, serviceType, ownedBy. Reference: https://help.xmatters.com/xmapi/#modify-a-service Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-service | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by detailing that it requires operator write opt-in and confirm:true, and that it may notify recipients or change tenant data. This provides concrete side effects beyond the destructiveHint=true annotation. It also gives the HTTP method and a reference link, adding useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, starting with the action and endpoint, then listing fields and requirements in a single sentence. It includes all essential information (endpoint, fields, prerequisites, side effects) with no redundancy or filler, making it an efficient and well-structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the action, endpoint, body fields, confirm requirement, side effects, and provides a reference link. It does not describe the return value, but for a mutation tool without an output schema, this is a minor omission. The prerequisites and side effects are well-documented, making the tool adequately complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes the body generically, but the description enumerates specific fields (id, targetName, description, serviceTier, serviceType, ownedBy) that are not in the schema, aiding payload construction. It also explains the confirm parameter as explicit approval, aligning with the schema. This adds meaningful guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Modify a service' and specifies the exact endpoint (POST /api/xm/1/services) and the body fields, making the action and resource unambiguous. The verb 'modify' and resource 'service' are explicit, and the list of fields adds specificity, distinguishing it from create/delete/get operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for updating an existing service (as opposed to creating/deleting) and warns about the operator write opt-in and confirm:true requirement. However, it does not explicitly contrast with sibling tools like xmatters_create_a_service or xmatters_delete_a_service, but the name and title are self-explanatory, making the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_service_dependencyModify a service dependencyADestructive
Modify a service dependency. POST /api/xm/1/service-dependencies. Body fields: id, serviceId, dependentServiceId. Reference: https://help.xmatters.com/xmapi/#modify-a-service-dependency Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-service-dependency | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, but the description adds valuable context: it requires operator write opt-in and confirm:true, and warns that it 'may notify recipients or change tenant data'. This goes beyond what annotations convey about side effects and permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the action, endpoint, key body fields, requirements, and side effects in a few sentences. The opening clause repeats the title but does not significantly bloat it; the reference link is a useful addition rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and a generic body schema, the description covers the endpoint, body fields, required confirmation, side effects, and a documentation link. It does not describe the return value or error behavior, but the provided context is sufficient for an agent to invoke the tool correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the body parameter is a generic recursive JSON schema. The description compensates by naming the actual body fields (id, serviceId, dependentServiceId) and by clarifying that confirm must be true, adding real semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'Modify' and the resource 'a service dependency', reinforced by the HTTP method and endpoint. This clearly distinguishes it from the sibling tools xmatters_create_a_service_dependency and xmatters_delete_a_service_dependency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose implies use when an existing service dependency needs to be changed, and it names important prerequisites (operator write opt-in and confirm:true). However, it does not explicitly state when to prefer this over the create or delete alternatives, or when it should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_siteModify a siteADestructive
Modify a site. POST /api/xm/1/sites/. The trailing slash is preserved from DEFINITION (/sites/); prose and request examples also use /sites. They describe the same operation. Body fields: id, name, country, language, timezone, address1, address2, city, externalKey, externallyOwned, latitude, longitude, postalCode, state, status. Reference: https://help.xmatters.com/xmapi/#modify-a-site Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-site | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it discloses that the operation may notify recipients or change tenant data, and it explicitly requires confirm:true and operator write opt-in. This complements the destructiveHint=true annotation by specifying the concrete side effects, and it does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but each part serves a purpose: the trailing-slash clarification, the field list, the reference link, and the side-effect warning. It is front-loaded with the core action and maintains a logical structure without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema, the description covers the required confirm flag, the write opt-in requirement, and potential side effects. It also points to a reference for full details. It does not describe the response format, but since it's a write operation without an output schema, this is acceptable. The description is sufficiently complete for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for body, query, and confirm, achieving 100% coverage. The description goes further by listing the expected body fields (id, name, country, etc.), which helps the agent construct the payload even though the schema only requires id and allows additional properties. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Modify a site' and provides the HTTP method and path, making the verb and resource explicit. It does not explicitly distinguish itself from sibling tools like create_a_site or delete_a_site, but the name and verb are unambiguous, so the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives usage constraints (requires operator write opt-in and confirm:true) and warns of side effects, but it does not state when to use this tool versus alternatives like create_a_site or delete_a_site. There is no explicit 'use for existing sites only' or 'use this instead of X' guidance, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_subscriptionModify a subscriptionADestructive
Modify a subscription. POST /api/xm/1/subscriptions. Include id and changed fields. The reference explicitly disallows changing form on an existing subscription. Body fields: id, name, description, owner, notificationDelay, criteria, recipients, targetAllDevices, targetDeviceNames. Reference: https://help.xmatters.com/xmapi/#modify-a-subscription Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-subscription | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark destructiveHint=true and idempotentHint=false, and the description amplifies this by specifying concrete side effects: 'may notify recipients or change tenant data'. It also discloses the operator write opt-in requirement and the form-change restriction, going well beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact but information-dense: endpoint, body fields, a disallowed mutation, prerequisites, side effects, and a reference link. It front-loads the core action and then packs essential constraints efficiently, though a bulleted list could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating endpoint with no output schema, the description covers the endpoint, required fields, disallowed changes, preconditions, and side effects. It doesn't describe the response shape, which could matter, but the reference link and the detail provided make it sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the body parameter is a generic object with additionalProperties, so the description's enumeration of body fields (id, name, description, owner, notificationDelay, criteria, recipients, targetAllDevices, targetDeviceNames) adds real semantic value. The confirm parameter is also explained in the schema, but the description's linkage to operator opt-in enriches it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Modify') and resource ('a subscription'), reinforced by the exact HTTP endpoint (POST /api/xm/1/subscriptions). It clearly differentiates from sibling tools like create/delete/get subscriptions via the modify verb and endpoint, and the body field list adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Include id and changed fields' tells the agent how to call it, 'The reference explicitly disallows changing form on an existing subscription' imposes a clear exclusion, and 'Requires operator write opt-in and confirm:true' adds a precondition. It doesn't name alternative sibling tools, but the constraints and prerequisites effectively narrow selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_a_subscription_formModify a subscription formADestructive
Modify a subscription form. POST /api/xm/1/plans/{planId}/subscription-forms. Body fields: id, name, description, scope, form, oneWay, subscribeOthers, notificationDelay, propertyDefinitions, roles, devicesSectionCollapsed, devicesSectionVisible, targetDeviceNames. Reference: https://help.xmatters.com/xmapi/#modify-a-subscription-form Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-a-subscription-form | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description adds crucial behavioral context: it requires operator write opt-in and confirm:true, and warns that the operation may notify recipients or change tenant data. This meaningfully informs the agent about side effects and permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: action, endpoint, body fields, reference, and safety requirements are all included with no filler. The key mutation purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, valid body fields, endpoint, prerequisites, side effects, and points to the official reference. It does not describe the response shape, but there is no output schema and the reference URL helps fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents path.planId and confirm, and the description adds a list of acceptable body fields (id, name, description, scope, form, etc.) that the generic body schema does not enumerate. It doesn't describe field types or defaults, but it does add practical meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Modify'), a clear resource ('a subscription form'), and the exact API endpoint, with a list of body fields. This makes it easy to distinguish from sibling tools like create_a_subscription_form or get_a_subscription_form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the verb and resource, and the description gives explicit prerequisites: operator write opt-in and confirm:true. However, it does not explicitly contrast this tool with create_a_subscription_form or other alternatives, so the agent must infer the selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_communication_planModify communication planADestructive
Modify communication plan. POST /api/xm/1/plans. Body fields: id, name, description, enabled, loggingLevel, accessibleByAll, position. Reference: https://help.xmatters.com/xmapi/#modify-communication-plan Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-communication-plan | |
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is destructive and not read-only. The description adds meaningful context beyond those annotations: it requires an operator write opt-in, requires confirm:true, and warns that the operation may notify recipients or change tenant data. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and dense, front-loading the action, endpoint, body fields, reference, requirements, and a warning in three sentences. Every sentence contributes useful information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers endpoint, body fields, a documentation reference, required confirmation, and potential side effects. It omits details like the response shape or error behavior, but the reference and generic schema make it sufficiently complete for an agent to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body is a generic object with high coverage but little semantic detail, so the description's explicit list of body fields (id, name, description, enabled, loggingLevel, accessibleByAll, position) adds real value. It does not deeply explain each field, but it provides guidance beyond the generic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a modify operation on a communication plan, with a specific endpoint (POST /api/xm/1/plans) and a list of relevant body fields. It does not explicitly contrast with sibling create/get/delete plan tools, but the verb, endpoint, and title make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context about prerequisites (operator write opt-in and confirm:true) and side effects, but it never explicitly states when to use this tool versus creating or deleting a plan. Intended usage is implied by the title and endpoint rather than directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_modify_plan_propertiesModify plan propertiesADestructive
Modify plan properties. POST /api/xm/1/plans/{planId}/property-definitions. Body fields: id, propertyType, name, description, helpText, default, delimiter, categories, paths, items, maxLength, minLength, units, pattern, validate. Reference: https://help.xmatters.com/xmapi/#modify-plan-properties Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#modify-plan-properties | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-idempotent. The description adds 'may notify recipients or change tenant data' and the required confirm and operator opt-in, which goes beyond the annotations and clarifies side effects. No contradiction with annotations detected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action, then the endpoint, body fields, reference, and critical caveats. Every part carries useful information and nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with path, body, query, and confirm parameters partnerships but no output schema, the description covers the endpoint, required fields, confirm semantics, side effects, and external reference. It does not describe the response body, but as there is no output schema this is not a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is around 75%, with path/query/confirm described. The description compensates by enumerating the valid body fields (id, propertyType, name, description, helpText, etc.), which is valuable because the body schema only requires id and propertyType and otherwise allows arbitrary properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Modify') and resource ('plan properties') and gives the exact API endpoint POST /api/xm/1/plans/{planId}/property-definitions. This clearly separates it from sibling tools like get_plan_properties and create_plan_properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the prerequisites for use: operator write opt-in and confirm:true. It also warns that the operation may notify recipients or change tenant data, giving clear context for when it should be invoked. It does not explicitly name sibling alternatives, but the usage conditions are strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_obtain_an_access_token_and_refresh_tokenObtain an access token and refresh tokenADestructive
Obtain an access token and refresh token. POST /api/xm/1/oauth2/token. Uses application/x-www-form-urlencoded as in the official cURL --data example, not query credentials from the Python example. grant_type, client_id, username and password come only from server configuration. See C14. Body fields: none. Reference: https://help.xmatters.com/xmapi/#obtain-an-access-token-and-refresh-token Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses that the call POSTs, may notify recipients or change tenant data, and requires an operator opt-in plus confirm:true. It also clarifies that body fields are none and credentials are server-side, giving an agent a realistic picture of the operation's 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but generally tight: purpose first, then endpoint, transport details, configuration source, and side-effect warnings. The 'See C14' and reference line are slightly cryptic yet still compact, and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool, the description is complete: an agent knows the endpoint, content type, credential source, required confirmation, and likely side effects. Nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the confirm parameter already has a thorough description, so the description adds little new parameter-level meaning. It reinforces confirm:true and notes the body has no additional fields, but this does not substantially exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Obtain an access token and refresh token,' and identifies the exact endpoint. It is clear enough to tell this initial token acquisition apart from the sibling refresh_an_access_token, though it does not name that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: it requires operator write opt-in, confirm:true, uses form-urlencoded rather than query credentials, and obtains credentials from server configuration. It does not explicitly state 'use this instead of refresh_an_access_token,' so some selection guidance is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_refresh_an_access_tokenRefresh an access tokenADestructive
Refresh an access token. POST /api/xm/1/oauth2/token. Uses application/x-www-form-urlencoded as in the official cURL --data example. grant_type, client_id and refresh_token come only from server configuration. See C14. Body fields: none. Reference: https://help.xmatters.com/xmapi/#refresh-an-access-token Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool destructive, non-read-only, and non-idempotent. The description adds useful context: it requires write opt-in and confirm:true, may notify recipients or change tenant data, and clarifies that no HTTP body fields are sent. This goes beyond the annotation layer without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the action and endpoint. It includes a useful reference URL and safety context, though the unexplained 'See C14' reference and the slightly generic side-effect warning keep it from being maximally polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter, no output schema, and destructive annotations, the description is largely complete: it covers the endpoint, content type, credential sourcing, required confirmation, and side-effect warnings. The main missing piece is explicit routing versus the sibling obtain tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents confirm at 100% coverage, so the baseline is 3. The description adds meaningful context by stating that grant_type, client_id, and refresh_token come only from server configuration and that the HTTP body is empty, clarifying what the single confirm parameter actually gates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource ('Refresh an access token') and names the exact endpoint and method (POST /api/xm/1/oauth2/token). This distinguishes it from the sibling obtain_an_access_token_and_refresh_token by the token-lifecycle operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives the operation and prerequisites (operator write opt-in, confirm:true) and notes that credentials come from server configuration, but it does not explicitly tell the agent when to choose this over the sibling obtain tool or when a token refresh is appropriate. Usage is implied by the name rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_remove_a_member_from_the_groupRemove a member from the groupADestructive
Remove a member from the group. DELETE /api/xm/1/groups/{groupID}/members/{memberID}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#remove-a-member-from-the-group Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable context: requires operator write opt-in and confirm:true, may notify recipients or change tenant data. This goes beyond the annotations and warns the agent about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and endpoint. The reference URL and behavioral warnings are useful, though the reference URL could arguably be omitted. Overall, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the key operational facts: endpoint, required confirm flag, operator opt-in, and potential side effects. It doesn't describe the response format, but the absence of an output schema makes that less critical. The main gap is not explaining what happens if confirm is false, but the schema's const:true already implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: the confirm parameter is well-documented in the schema, and the path parameters (groupID, memberID) are structurally clear. The description adds the endpoint template showing where groupID and memberID go, which is helpful but not deeply semantic. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove'), a specific resource ('a member from the group'), and includes the exact REST endpoint. It clearly distinguishes this from sibling tools like xmatters_add_a_member_to_the_group and xmatters_get_group_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the HTTP method and endpoint, and the confirm:true requirement implies this is a destructive action requiring explicit approval. It doesn't explicitly name alternatives or when-not-to-use, but the endpoint and mutation semantics make the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_restore_deleted_shift_occurrencesRestore deleted shift occurrencesADestructive
Restore deleted shift occurrences. POST /api/xm/1/groups/{groupID}/shifts/{shiftID}/occurrences. The definition and cURL request use /occurrences; a sample response self link says exclusionss and is not adopted. See C11. Body fields: startDate, endDate. Reference: https://help.xmatters.com/xmapi/#restore-deleted-shift-occurrences Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#restore-deleted-shift-occurrences | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description adds meaningful context: it requires operator write opt-in and confirm:true, and warns that it may notify recipients or change tenant data. This goes beyond the structured annotations and helps the agent anticipate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the description is reasonably compact. However, the note about a sample response self link saying 'exclusionss' and the cryptic 'See C11' add noise without helping an agent invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the endpoint, required confirmation, body fields, authentication/write opt-in, and potential side effects. There is no output schema, so return-value details are absent, but the reference link and generic body schema provide enough for a destructive restore operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds value by naming the body fields startDate and endDate, which the generic body schema does not specify. It also reinforces the confirm:true requirement. Path parameters groupID and shiftID are self-explanatory from the endpoint and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Restore') and resource ('deleted shift occurrences') and includes the exact endpoint, making the tool's function unambiguous. It is clearly distinguishable from sibling tools like xmatters_get_deleted_shift_occurrences because the verb signals mutation rather than retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when deleted shift occurrences need to be restored. However, it does not explicitly mention alternatives or when not to use it, such as using xmatters_get_deleted_shift_occurrences first to identify which occurrences to restore.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_set_scenario_sender_permissionsSet scenario sender permissionsBDestructive
Set scenario sender permissions. PUT /api/xm/1/scenarios/{scenarioId}/sender-permissions. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: senderType, sender, editScenarios. Reference: https://help.xmatters.com/xmapi/#set-scenario-sender-permissions Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#set-scenario-sender-permissions | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation destructive and non-read-only, and the description adds meaningful behavioral detail beyond that: it is a PUT, the payload is a top-level JSON array, existing entries should be preserved, and the operation 'may notify recipients or change tenant data.' It also clearly states the write opt-in and confirm requirement, which goes beyond the raw annotation flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, endpoint, and the critical array caveat, which is good. However, the note about preserving PUT from DEFINITION despite a Python sample calling requests.post reads as implementation history rather than tool guidance, and the repeated instruction to 'consult the official operation' makes the text feel somewhat padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with four parameters, an open-world body schema, and no output schema, the description covers authorization, payload shape, and side effects reasonably well. But it leaves exact field semantics and replacement behavior to an external reference, and it never explains what a caller should expect in the response, so it is not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's body property is a recursive anyOf with only a generic description, so the description adds real value by clarifying that the request body is a JSON array and that senderType, sender, and editScenarios describe array entries rather than root object keys. It does not fully define the allowed values or nested semantics, but it meaningfully compensates for the schema's lack of structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific action and resource: 'Set scenario sender permissions', backed by an explicit endpoint PUT /api/xm/1/scenarios/{scenarioId}/sender-permissions. It is clear and specific, but it does not distinguish itself from related sibling tools such as xmatters_get_scenario_sender_permissions or xmatters_update_sender_permissions, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives like xmatters_update_sender_permissions or xmatters_get_scenario_sender_permissions. It provides invocation prerequisites such as write opt-in and confirm:true, but those are safety requirements, not usage routing, so an agent is left to infer the correct selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_trigger_an_eventTrigger an eventADestructive
Trigger an event. POST /api/integration/1/functions/{id}/triggers. Posts JSON to the configured integration function. The documented apiKey query authentication is not exposed as a model argument; use server-configured authentication. Tenant-defined custom trigger payloads remain open JSON. Body fields: attachments, bypassPhoneIntro, conference, escalationOverride, expirationInMinutes, otherResponseCountThreshold, overrideDeviceRestrictions, priority, properties, recipients, requirePhonePassword, responseOptions, senderOverrides, targetAllDevices, targetDeviceNames, voicemailOptions. Reference: https://help.xmatters.com/xmapi/#trigger-an-event Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#trigger-an-event | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: authentication is server-configured rather than model-supplied, payloads are tenant-defined open JSON, and the operation may notify recipients or change tenant data. It reinforces destructiveHint and idempotentHint=false without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well organized, with the core action and endpoint first, followed by auth, body fields, reference, and safety caveats. The long field list is justified because the body schema is otherwise opaque. Minor redundancy exists between the opening sentence and the endpoint statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive write operation with no output schema, the description covers auth, confirmation, body structure, side effects, and a documentation reference. It does not describe the response or what happens after a successful trigger, which would be useful but is not strictly necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only loosely defines body as arbitrary JSON, so the description compensates by listing the expected top-level body fields and clarifying that custom payloads remain open JSON. It also explains the auth parameter absence and confirms the exact payload shape. Path and confirm are already adequately described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Trigger an event'), the exact REST endpoint, and the mechanism ('Posts JSON to the configured integration function'). It also distinguishes this tool from nearby siblings like xmatters_trigger_an_incident by focusing specifically on events and integration functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives important preconditions: operator write opt-in, confirm:true, and server-configured authentication. However, it never explicitly tells an agent when to choose this tool over alternatives such as xmatters_trigger_an_incident or xmatters_trigger_an_incident_form, so the usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_trigger_an_incidentTrigger an incidentADestructive
Trigger an incident. POST /api/integration/1/functions/{id}/triggers. Posts JSON to the configured integration function. The documented apiKey query authentication is not exposed as a model argument; use server-configured authentication. Tenant-defined custom trigger payloads remain open JSON. Body fields: incidentDetails, recipients, properties, expirationInMinutes, overrideDeviceRestrictions, escalationOverride, bypassPhoneIntro, requirePhonePassword, voicemailOptions, senderOverrides, targetAllDevices, targetDeviceNames, priority. Reference: https://help.xmatters.com/xmapi/#trigger-an-incident Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#trigger-an-incident | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, and the description adds meaningful behavioral context: the apiKey query authentication is not exposed, server-configured authentication must be used, custom payloads remain open JSON, and the call may notify recipients or change tenant data. This complements rather than contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded, starting with the action and endpoint before moving into authentication, payload flexibility, body fields, and safety requirements. The body field list is long but useful, and the reference link provides an external escape hatch. Minor redundancy exists with the title, but overall it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent trigger with open JSON payloads, the description covers authentication, required confirmation, tenant impact, body field names, and a documentation reference. It does not describe the response format, but no output schema exists and the reference link partially covers that gap. Overall it gives an agent enough to call the tool safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, but the body schema is just a generic open JSON ref. The description compensates by enumerating the relevant body fields (incidentDetails, recipients, properties, expirationInMinutes, etc.) and clarifying that path id is the integration function id via the endpoint template. The confirm parameter's const true requirement is also reinforced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Trigger an incident') and the exact endpoint ('POST /api/integration/1/functions/{id}/triggers'), so an agent understands the operation and resource. It does not explicitly contrast with sibling tools like xmatters_trigger_an_event or xmatters_trigger_an_incident_form, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives important safety context ('Requires operator write opt-in and confirm:true; may notify recipients or change tenant data') but provides no explicit guidance on when to choose this tool over alternatives such as xmatters_trigger_an_event or xmatters_trigger_an_incident_form. Usage is only implied through the endpoint and trigger semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_trigger_an_incident_formTrigger an incident — Flow Trigger formBDestructive
Trigger an incident — Flow Trigger form. POST /api/xm/1/forms/{formId}/triggers. Additional path from the official cURL and JavaScript examples; DEFINITION instead describes the custom HTTP Request integration trigger. The Python sample omits /xm/1, so it is not followed. JSON remains open. Body fields: incidentDetails, recipients, properties, expirationInMinutes, overrideDeviceRestrictions, escalationOverride, bypassPhoneIntro, requirePhonePassword, voicemailOptions, senderOverrides, targetAllDevices, targetDeviceNames, priority. Reference: https://help.xmatters.com/xmapi/#trigger-an-incident Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#trigger-an-incident | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior, but the description adds valuable context: it requires operator write opt-in and confirm:true, clarifies that it may notify recipients or change tenant data, and notes 'JSON remains open' to warn about free-form payloads. This goes beyond the basic annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and endpoint, but includes extraneous details like 'The Python sample omits /xm/1, so it is not followed' which is irrelevant for an agent. The listing of body fields is useful but could be condensed. Overall, it is structured but not tightly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers requirements (operator opt-in, confirm) and risks (may notify, change tenant data). It also provides a reference link for details. However, it omits any mention of the response format or status codes, which would be helpful for an agent to validate the call's success. Given the complexity and lack of an output schema, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, but the body parameter is a generic recursive type with no field specificity. The description compensates by enumerating key body fields (incidentDetails, recipients, properties, etc.), giving meaning beyond the schema. It also clarifies the confirm parameter is mandatory and that path requires formId. This adds semantic value where the schema is vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool triggers an incident form via the specific endpoint POST /api/xm/1/forms/{formId}/triggers, distinguishing it from sibling tools like xmatters_trigger_an_incident. The mention of 'Flow Trigger form' and explicit resource adds clarity, though the note about cURL/JavaScript examples introduces minor ambiguity about the exact implementation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternative trigger tools (e.g., xmatters_trigger_an_incident or xmatters_trigger_an_event). It mentions operator opt-in and confirm, but provides no guidance on selection criteria or exclusions. The reference link offers external docs but does not help an agent decide between similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_unsubscribe_a_userUnsubscribe a userADestructive
Unsubscribe a user. DELETE /api/xm/1/subscriptions/{subscriptionId}/subscribers/{personId}. Body fields: none. Reference: https://help.xmatters.com/xmapi/#unsubscribe-a-user Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as destructive and non-idempotent, but the description adds critical context: the need for operator write opt-in, the confirm:true requirement, and potential side effects like notifying recipients or changing tenant data. This goes beyond the structured annotations and helps the agent anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and endpoint. It includes a reference link and essential caveats in a single paragraph. While it could be formatted more cleanly with bullet points, it contains no filler and efficiently conveys the key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the essential aspects: the operation, required path parameters, confirmation requirement, and side effects. The schema handles parameter details, so the description is sufficiently complete for an agent to invoke it correctly, though it does not address error handling or return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (query and confirm have descriptions, path does not). The tool description mentions the endpoint with {subscriptionId} and {personId}, which clarifies the path parameters, and states 'Body fields: none'. However, it does not elaborate on the query parameter's purpose or pagination beyond what the schema already states, so it only partially compensates for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Unsubscribe a user') and provides the exact HTTP DELETE endpoint, which unambiguously identifies the resource and operation. This distinguishes it from sibling tools like add_subscribers or get_subscribers, and the inclusion of the API reference link adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to remove a subscriber from a subscription) but does not explicitly contrast it with alternatives or state when not to use it. It does mention prerequisites (operator write opt-in and confirm:true) which is helpful, but lacks explicit routing to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_a_shiftUpdate a shiftADestructive
Update a shift. POST /api/xm/1/groups/{groupID}/shifts. The definition uses the collection path; cURL/Python additionally show a path-addressed shift variant, separately cataloged. Examples submit body id while the table says shiftID; both are informational, not forced. See C08. Body fields: shiftID, name, description, recurrence, members, siteHolidays, timezone, start, end, rotation, repeatEscalation, notifyEndofEscalation, id, notifyEndOfEscalation. Reference: https://help.xmatters.com/xmapi/#update-a-shift Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-a-shift | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true. The description adds meaningful behavioral context: it warns that the operation 'may notify recipients or change tenant data,' and it states the requirement for 'operator write opt-in and confirm:true.' This goes beyond the annotations by clarifying side effects and prerequisites, though it does not detail reversibility or the exact scope of tenant changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but well-organized: it leads with the core action, then provides the endpoint, clarifications, body field list, reference, and requirements. Each sentence serves a purpose; there is no fluff. It could be slightly more streamlined, but it is appropriately concise for the complexity of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description provides the essential context: the endpoint, the required path parameter (groupID), the body fields, the confirmation requirement, side effects, and a link to full documentation. It also notes the existence of a by-id variant, helping an agent choose correctly. It lacks detailed nested field structures, but that is covered by the reference, and overall the tool is well-specified for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description compensates by enumerating the body fields (shiftID, name, description, recurrence, members, siteHolidays, timezone, start, end, rotation, repeatEscalation, notifyEndofEscalation, id, notifyEndOfEscalation). It also clarifies the ambiguity between 'id' and 'shiftID' in examples versus the table. This adds meaning beyond the generic body schema description, though it does not detail nested structures for fields like recurrence or members.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Update a shift.' It specifies the HTTP method and endpoint, and explicitly differentiates from the by-id variant by noting the collection path vs. a path-addressed variant that is separately cataloged. This gives an agent an unambiguous understanding of what this tool does and how it differs from its sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the existence of a separate path-addressed shift variant ('separately cataloged') but does not provide explicit decision criteria for when to use this tool versus the by-id variant. It also notes the requirement for operator write opt-in and confirm:true, which is a usage prerequisite, but lacks explicit guidance on when not to use this tool or when to prefer an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_a_shift_by_idUpdate a shift — path-addressed shiftADestructive
Update a shift — path-addressed shift. POST /api/xm/1/groups/{groupID}/shifts/{shiftID}. Additional path from the official cURL and Python POST examples. DEFINITION and JavaScript use the collection path. Both are retained as separately named documented variants; tenant execution of the example-only variant is unverified. Examples use body id; the parameter table calls it shiftID. Body fields: shiftID, name, description, recurrence, members, siteHolidays, timezone, start, end, rotation, repeatEscalation, notifyEndofEscalation, id, notifyEndOfEscalation. Reference: https://help.xmatters.com/xmapi/#update-a-shift Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-a-shift | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that it 'requires operator write opt-in and confirm:true', 'may notify recipients or change tenant data', and flags that the example-only variant is 'unverified'. These details go beyond the annotations and disclose important side effects and prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and rambling, mixing variant history, cURL examples, parameter naming, body fields, and requirements. While informative, it lacks conciseness and clear structure, making it harder to parse quickly. The core purpose is front-loaded, but details are scattered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a free-form body, confirm requirement, and variant ambiguity, the description provides endpoint, body fields, requirements, side effects, and a reference link. It does not describe the response format (no output schema), but that is not expected. Overall it covers the key aspects an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers body and confirm with descriptions, and path parameters are self-explanatory. The description adds value by listing all body fields, clarifying the naming discrepancy between 'id' and 'shiftID', and directing to the API reference. This helps an agent construct a valid body even with 75% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update a shift — path-addressed shift' and provides the exact HTTP endpoint (POST /api/xm/1/groups/{groupID}/shifts/{shiftID}). It clearly differentiates from the sibling xmatters_update_a_shift by mentioning the 'collection path' variant, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the distinction between path-addressed and collection-path variants and notes the requirements (operator write opt-in, confirm:true). It implies this variant is used when shiftID is available, but does not explicitly state when to choose it over the sibling. Still, the context is sufficient for most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_form_recipientsUpdate form recipientsADestructive
Update form recipients. PUT /api/xm/1/forms/{formId}/recipients. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: recipients. Reference: https://help.xmatters.com/xmapi/#update-form-recipients Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-form-recipients | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavioral traits: the request body is a top-level JSON array, PUT must be used despite an incorrect Python sample, existing entries should be preserved, and the operation may notify recipients or change tenant data. This materially helps an agent understand side effects and correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but each sentence carries useful information: endpoint, body shape, method correction, preservation semantics, reference, and authorization requirements. It is front-loaded with the core purpose and method, though the array/root-key explanation could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the essential operational context: exact endpoint, HTTP method, body structure, preservation behavior, required confirmation, operator opt-in, potential side effects, and a reference for full details. This is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, and the description adds meaning beyond the schema by explaining that body fields describe array entries rather than root object keys and by naming 'recipients' as the body field. It also clarifies the confirm parameter's requirement. It does not enumerate all recipient subfields, but the reference covers that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update form recipients') and immediately identifies the exact endpoint (PUT /api/xm/1/forms/{formId}/recipients). It also clarifies the top-level array structure, which distinguishes this operation from the nested recipient update sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is the top-level form recipients update, requires confirm:true and operator write opt-in, and should preserve existing entries. It does not explicitly name the nested alternative or state when not to use it, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_form_recipients_nestedUpdate form recipients — nestedADestructive
Update form recipients — nested. PUT /api/xm/1/plans/{planId}/forms/{formId}/recipients. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: recipients. Reference: https://help.xmatters.com/xmapi/#update-form-recipients Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-form-recipients | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by warning that a Python sample incorrectly uses requests.post while the actual method is PUT, and explains that the call may notify recipients or change tenant data. It also clarifies preservation behavior and the operator write requirement, which complements destructiveHint=true and idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the endpoint and the critical array-shape clarification, and nearly every sentence earns its place. It is slightly dense, especially the meta-note about the incorrect Python sample, but that caveat is operationally important.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a highly permissive body schema, the description covers the endpoint, array payload semantics, preservation expectations, auth requirements, and side effects. It still defers detailed recipients field structure to the official operation link, so the tool is not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The body parameter in the schema is an unconstrained recursive anyOf, so the description adds essential meaning by stating the body is a top-level JSON array and that field descriptions apply to array entries, not root object keys. It also names 'recipients' as the relevant body field and reinforces confirm must be true, significantly compensating for the schema's lack of structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action 'Update form recipients', identifies the 'nested' variant, and gives the exact endpoint. The 'nested' qualifier and the top-level JSON array note distinguish it from the sibling xmatters_update_form_recipients, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives important conditions: operator write opt-in, confirm:true, and preserving entries that should not be replaced. However, it does not explicitly name alternative tools or state when to choose the nested version over the non-nested sibling, deferring some selection guidance to the 'nested' label and official documentation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_sender_permissionsUpdate sender permissionsADestructive
Update sender permissions. PUT /api/xm/1/forms/{formId}/sender-permissions. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: senderType, sender, manageScenarios. Reference: https://help.xmatters.com/xmapi/#update-sender-permissions Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-sender-permissions | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and write-only, and the description adds meaningful context: it requires operator write opt-in, confirm must be true, it may notify recipients or change tenant data, and callers must preserve existing entries they do not want replaced. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but mostly purpose-serving, with the endpoint and key caveats front-loaded. The Python-sample note and reference URL add useful context, though they could be tightened. It remains concise relative to the number of behavioral warnings it needs to convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers the auth prerequisite, confirm requirement, body shape, replacement/preservation semantics, and the target endpoint. It lacks explicit sibling-routing and relies on a link for full official semantics, but an agent has enough context to invoke the mutation correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema gives solid coverage for confirm and a generic body payload, but the body parameter lacks structured field detail. The description adds essential meaning by listing senderType, sender, and manageScenarios and by warning that they describe array entries, not mandatory root keys. It does not explain value formats or allowed values, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update sender permissions' with the full HTTP path PUT /api/xm/1/forms/{formId}/sender-permissions. It also clarifies the body shape (top-level array). It does not explicitly contrast this tool with the sibling update_sender_permissions_nested, so it misses the last bit of differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives such as update_sender_permissions_nested, the get sender-permission tools, or set_scenario_sender_permissions. It focuses on API caveats rather than selection criteria, so an agent has to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_update_sender_permissions_nestedUpdate sender permissions — nestedADestructive
Update sender permissions — nested. PUT /api/xm/1/plans/{planId}/forms/{formId}/sender-permissions. The request supports a top-level JSON array; listed body fields describe array entries, not mandatory root object keys. PUT is preserved from DEFINITION even where a Python sample incorrectly calls requests.post. Preserve any existing entries that should not be replaced; consult the official operation. Body fields: senderType, sender, manageScenarios. Reference: https://help.xmatters.com/xmapi/#update-sender-permissions Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Complete API JSON payload (including nested fields). See https://help.xmatters.com/xmapi/#update-sender-permissions | |
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses side effects: 'may notify recipients or change tenant data' and the requirement for confirm:true. It also warns about the PUT vs POST discrepancy in sample code, adding useful behavioral context that annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is information-dense but each sentence contributes value: endpoint, array structure, sample-code caution, preservation advice, body fields, reference link, and requirements. It is front-loaded with the purpose and then adds necessary caveats. Not overly verbose, though slightly heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested body, 4 params, no output schema), the description covers the essential aspects: endpoint, body structure, required confirm, side effects, and a reference. It does not detail the exact enum values or format of senderType/sender, but it directs to the official docs. This is fairly complete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes body as a generic JSON payload, but the description explains that the body is a top-level JSON array and lists the actual fields (senderType, sender, manageScenarios). It also clarifies that these are array-entry fields, not root keys. This meaningfully compensates for the schema's high-level body definition (75% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation clearly: 'Update sender permissions — nested' and gives the exact HTTP endpoint. It is a specific verb+resource. However, it does not explicitly differentiate from the sibling tool xmatters_update_sender_permissions (non-nested), so the agent must infer the difference from the 'nested' label and the array-structure note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides prerequisites (operator write opt-in, confirm:true) and a caution to preserve existing entries, but it does not state when to use this tool versus the non-nested variant or any other alternative. There is no explicit 'use this when X, use that when Y' guidance, leaving the agent to guess based on naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_upload_an_attachmentUpload an attachmentADestructive
Upload an attachment. POST /api/xm/1/attachments. Multipart file upload to temporary storage. Use the returned path when attaching to an event or scenario. File bytes are supplied by the MCP file input, not a filesystem path. Body fields: file, fileName. Reference: https://help.xmatters.com/xmapi/#upload-an-attachment Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| fields | No | ||
| upload | Yes | ||
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the upload goes to temporary storage, that file bytes come from the MCP file input rather than a filesystem path, and that the operation may notify recipients or change tenant data. These traits align with destructiveHint=true and add meaningful behavioral context beyond the boolean hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the action, endpoint, and core usage are stated in the first sentence, followed by the key input detail, required confirmation, and side-effect warning. Every sentence earns its place without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no output schema, the description covers the essential invocation details: endpoint, multipart upload, temporary storage, how bytes are supplied, required confirm=true, and the write opt-in. It also explains that the returned path is used for later attachment, which is the main postcondition an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds important meaning beyond the schema by explaining that the file is supplied through the MCP file input and that the underlying multipart body uses file and fileName. It does not fully explain how the upload.name/contentBase64 fields map to the request or describe the query/fields objects, but it compensates for the schema's moderate coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific verb and resource ('Upload an attachment'), gives the REST endpoint, and clarifies that it uploads to temporary storage for later use with an event or scenario. This distinguishes it from related upload tools like xmatters_upload_attachment_to_a_scenario, which attach directly to a scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use the tool: to get a returned path for attaching to an event or scenario. It does not explicitly name sibling alternatives or say when not to use them, so it lacks an explicit exclusion, but the context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_upload_an_epic_zipsync_fileUpload an EPIC ZipSync fileADestructive
Upload an EPIC ZipSync file. POST /api/xm/1/uploads/epic-v1. Multipart ZipSync v1.3 upload (upstream maximum 150 MB; the server may impose a smaller configured limit). File bytes are supplied by the MCP file input. Body fields: file. Reference: https://help.xmatters.com/xmapi/#upload-an-epic-zipsync-file Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| fields | No | ||
| upload | Yes | ||
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, destructiveHint=true), the description explicitly warns that the upload 'may notify recipients or change tenant data,' explains the confirm:true gate, and notes that the server may impose a smaller configured limit. This gives the agent a realistic picture of side effects and variability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence earns its place: purpose, endpoint, format/limit, file source, body field, reference link, and prerequisite/side-effect warning. The critical constraints are front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive write operation with a nested upload object and no output schema, the description covers endpoint, method, payload format, size cap, file source, required body field, confirmation/auth requirements, and potential tenant impact. The official documentation link fills any remaining detail gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description must compensate. It clarifies that file bytes come from the MCP file input and that the multipart body field is named 'file,' which directly helps with the upload object. It also reinforces the confirm:true requirement, though it leaves the generic query/fields parameters mostly undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Upload an EPIC ZipSync file,' then names the exact endpoint POST /api/xm/1/uploads/epic-v1 and format 'Multipart ZipSync v1.3.' This clearly distinguishes it from sibling upload tools like xmatters_upload_an_attachment or xmatters_upload_a_user_upload_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: size limits, MCP file input, body field expectations, and the requirement for operator write opt-in plus confirm:true. It does not explicitly contrast with alternative upload tools or state when not to use it, so it stops short of a full usage-routing explanation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_upload_attachment_to_a_scenarioUpload attachment to a scenarioADestructive
Upload attachment to a scenario. POST /api/xm/1/forms/{formId}/scenarios/{scenarioId}/attachments. Multipart file upload. The reference says multi-part/form in examples; use standard multipart/form-data as documented for the equivalent attachment upload. File bytes are supplied by the MCP file input, not a filesystem path. See C13. Body fields: file, fileName. Reference: https://help.xmatters.com/xmapi/#upload-attachment-to-a-scenario Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| fields | No | ||
| upload | Yes | ||
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds critical behavioral details not in the annotations: the requirement for operator write opt-in and confirm:true, and the potential side effects (notifying recipients or changing tenant data). This complements the destructiveHint:true annotation with specifics about what actions might be triggered, making the tool's impact clearer to the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the core action and endpoint, then clarifying the upload method and required permissions. Every sentence adds value, though the reference to 'C13' could be seen as an unclear pointer. It avoids fluff while providing necessary warnings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multipart upload, nested objects, required confirm) and the lack of an output schema, the description covers the essential operational aspects: endpoint, file source, body fields, and prerequisites. It does not detail the response format or error handling, which might be expected for a write operation, but it addresses the key risks and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 40%, and the description explicitly mentions body fields (file, fileName) and the confirm parameter's requirement, adding meaning beyond the schema. However, it does not explain the 'upload' object structure or the 'path' object, leaving some gaps that the schema partially addresses. The description helps but doesn't fully compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Upload attachment to a scenario') with the exact API endpoint and HTTP method, distinguishing it from the sibling 'xmatters_upload_an_attachment' by specifying the scenario context. It also clarifies the file upload mechanism, ensuring the agent understands the multipart/form-data requirement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on file handling (MCP file input rather than filesystem path) and references 'C13' for additional context, which helps in determining when to use this tool. However, it does not explicitly state when NOT to use this tool or mention alternatives like 'xmatters_upload_an_attachment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xmatters_upload_a_user_upload_fileUpload a User Upload fileADestructive
Upload a User Upload file. POST /api/xm/1/uploads/users-v1. Multipart CSV User Upload v1.5. File bytes are supplied by the MCP file input; optional body name labels the import job. Body fields: file, name. Reference: https://help.xmatters.com/xmapi/#upload-a-user-upload-file Requires operator write opt-in and confirm:true; may notify recipients or change tenant data.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | API query parameters; arrays are comma-joined. Documented names: none. Pagination is explicit using offset and limit; results are not automatically combined. | |
| fields | No | ||
| upload | Yes | ||
| confirm | Yes | Explicit approval of this exact mutation. Operator must also enable XMATTERS_ALLOW_WRITES. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses that the operation may notify recipients or change tenant data and requires operator write opt-in. This adds meaningful context to the destructiveHint and readOnlyHint annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the verb, endpoint, and format. The main weakness is the dense, slightly run-on final sentence that combines reference URL and safety warnings, but the overall structure is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive upload operation with no output schema, the description covers safety and side-effect concerns well. It does not explain all input parameters (query, fields) or describe what the API returns on success, leaving an agent to rely on the reference link for closure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, and the description adds useful meaning by stating that file bytes come from the MCP file input and that body fields are 'file' and 'name'. However, it leaves the 'query' and 'fields' parameters unexplained, and the phrase 'optional body name' is ambiguous against the schema's required upload.name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation ('Upload a User Upload file'), the exact endpoint (POST /api/xm/1/uploads/users-v1), and the format (Multipart CSV User Upload v1.5). This distinguishes it from sibling upload tools like xmatters_upload_an_attachment and xmatters_upload_an_epic_zipsync_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides conditions and prerequisites: operator write opt-in, confirm:true, and warnings about side effects. However, it does not explicitly state when to use this tool versus its alternatives, nor does it mention exclusions or fallback tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
179 tool updates
v0.1.0- First observed
xmatters_add_a_comment_to_an_event - First observed
xmatters_add_a_member_to_a_shift - First observed
xmatters_add_a_member_to_the_group - First observed
xmatters_add_a_timeline_note - First observed
xmatters_add_subscribers - First observed
xmatters_change_the_status_of_an_event - First observed
xmatters_create_a_change_record - First observed
xmatters_create_a_communication_plan - First observed
xmatters_create_a_device - First observed
xmatters_create_a_device_name - First observed
xmatters_create_a_form_section - First observed
xmatters_create_a_group - First observed
xmatters_create_a_person - First observed
xmatters_create_a_plan_constant - First observed
xmatters_create_a_plan_form - First observed
xmatters_create_a_scenario - First observed
xmatters_create_a_scheduled_message - First observed
xmatters_create_a_service - First observed
xmatters_create_a_service_dependency - First observed
xmatters_create_a_shared_library - First observed
xmatters_create_a_shift - First observed
xmatters_create_a_site - First observed
xmatters_create_a_subscription - First observed
xmatters_create_a_subscription_form - First observed
xmatters_create_a_temporary_absence - First observed
xmatters_create_an_external_conference_bridge - First observed
xmatters_create_an_incident - First observed
xmatters_create_an_integration - First observed
xmatters_create_form_message_templates - First observed
xmatters_create_form_response_options - First observed
xmatters_create_plan_endpoint - First observed
xmatters_create_plan_properties - First observed
xmatters_delete_a_conference_bridge - First observed
xmatters_delete_a_device - First observed
xmatters_delete_a_device_name - First observed
xmatters_delete_a_group - First observed
xmatters_delete_a_person - First observed
xmatters_delete_a_plan - First observed
xmatters_delete_a_plan_constant - First observed
xmatters_delete_a_plan_endpoint - First observed
xmatters_delete_a_scheduled_message - First observed
xmatters_delete_a_service - First observed
xmatters_delete_a_service_dependency - First observed
xmatters_delete_a_shared_library - First observed
xmatters_delete_a_shift - First observed
xmatters_delete_a_site - First observed
xmatters_delete_a_subscription - First observed
xmatters_delete_a_temporary_absence - First observed
xmatters_delete_an_integration - First observed
xmatters_get_a_change - First observed
xmatters_get_a_communication_plan - First observed
xmatters_get_a_conference_bridge - First observed
xmatters_get_a_device - First observed
xmatters_get_a_form_in_a_plan - First observed
xmatters_get_a_form_in_a_plan_nested - First observed
xmatters_get_a_form_in_a_plan_nested_recipients - First observed
xmatters_get_a_form_in_a_plan_nested_sender_permissions - First observed
xmatters_get_a_form_in_a_plan_recipients - First observed
xmatters_get_a_form_in_a_plan_sender_permissions - First observed
xmatters_get_a_group - First observed
xmatters_get_a_group_39_s_recipients - First observed
xmatters_get_a_group_39_s_supervisors - First observed
xmatters_get_a_person_39_s_devices - First observed
xmatters_get_a_person_39_s_groups - First observed
xmatters_get_a_person_39_s_supervisors - First observed
xmatters_get_a_person_by_id - First observed
xmatters_get_a_scenario - First observed
xmatters_get_a_scenario_attachment - First observed
xmatters_get_a_scheduled_message - First observed
xmatters_get_a_scheduled_message_attachment - First observed
xmatters_get_a_service - First observed
xmatters_get_a_shared_library - First observed
xmatters_get_a_shift - First observed
xmatters_get_a_signal - First observed
xmatters_get_a_site - First observed
xmatters_get_a_subscription - First observed
xmatters_get_a_subscription_form - First observed
xmatters_get_an_event - First observed
xmatters_get_an_event_annotation - First observed
xmatters_get_an_event_attachment - First observed
xmatters_get_an_import_job - First observed
xmatters_get_an_incident - First observed
xmatters_get_an_incident_by_identifier - First observed
xmatters_get_an_integration - First observed
xmatters_get_changes - First observed
xmatters_get_communication_plans - First observed
xmatters_get_conference_bridges - First observed
xmatters_get_deleted_shift_occurrences - First observed
xmatters_get_device_names - First observed
xmatters_get_device_types - First observed
xmatters_get_devices - First observed
xmatters_get_event_annotations - First observed
xmatters_get_event_audit_information - First observed
xmatters_get_events - First observed
xmatters_get_form_message_templates - First observed
xmatters_get_form_response_options - First observed
xmatters_get_form_response_options_alias - First observed
xmatters_get_form_sections - First observed
xmatters_get_forms - First observed
xmatters_get_forms_in_a_plan - First observed
xmatters_get_group_license_quotas - First observed
xmatters_get_group_members - First observed
xmatters_get_groups - First observed
xmatters_get_import_job_messages - First observed
xmatters_get_import_jobs - First observed
xmatters_get_incidents - First observed
xmatters_get_integration_logs - First observed
xmatters_get_integrations - First observed
xmatters_get_members_in_a_shift - First observed
xmatters_get_on_call_summary - First observed
xmatters_get_people - First observed
xmatters_get_plan_constants - First observed
xmatters_get_plan_endpoints - First observed
xmatters_get_plan_properties - First observed
xmatters_get_roles - First observed
xmatters_get_scenario_sender_permissions - First observed
xmatters_get_scenarios - First observed
xmatters_get_scenarios_in_a_form - First observed
xmatters_get_scheduled_messages - First observed
xmatters_get_service_dependencies - First observed
xmatters_get_services - First observed
xmatters_get_shared_libraries - First observed
xmatters_get_shift_occurrences - First observed
xmatters_get_shifts - First observed
xmatters_get_signals - First observed
xmatters_get_sites - First observed
xmatters_get_subscribers - First observed
xmatters_get_subscription_forms - First observed
xmatters_get_subscription_forms_in_a_plan - First observed
xmatters_get_subscription_share_permissions - First observed
xmatters_get_subscriptions - First observed
xmatters_get_suppressed_events - First observed
xmatters_get_temporary_absences - First observed
xmatters_get_user_delivery_data - First observed
xmatters_get_user_license_quotas - First observed
xmatters_get_who_is_on_call - First observed
xmatters_modify_a_conference_bridge - First observed
xmatters_modify_a_device - First observed
xmatters_modify_a_device_name - First observed
xmatters_modify_a_form_message_template - First observed
xmatters_modify_a_form_response_option - First observed
xmatters_modify_a_form_section - First observed
xmatters_modify_a_group - First observed
xmatters_modify_a_person - First observed
xmatters_modify_a_plan_constant - First observed
xmatters_modify_a_plan_endpoint - First observed
xmatters_modify_a_plan_form - First observed
xmatters_modify_a_scenario - First observed
xmatters_modify_a_scheduled_message - First observed
xmatters_modify_a_service - First observed
xmatters_modify_a_service_dependency - First observed
xmatters_modify_a_shared_library - First observed
xmatters_modify_a_site - First observed
xmatters_modify_a_subscription - First observed
xmatters_modify_a_subscription_form - First observed
xmatters_modify_an_incident - First observed
xmatters_modify_an_integration - First observed
xmatters_modify_communication_plan - First observed
xmatters_modify_plan_properties - First observed
xmatters_obtain_an_access_token_and_refresh_token - First observed
xmatters_refresh_an_access_token - First observed
xmatters_remove_a_member_from_the_group - First observed
xmatters_restore_deleted_shift_occurrences - First observed
xmatters_set_scenario_sender_permissions - First observed
xmatters_set_subscription_share_permissions - First observed
xmatters_trigger_an_event - First observed
xmatters_trigger_an_incident - First observed
xmatters_trigger_an_incident_form - First observed
xmatters_unsubscribe_a_user - First observed
xmatters_update_a_shift - First observed
xmatters_update_a_shift_by_id - First observed
xmatters_update_form_recipients - First observed
xmatters_update_form_recipients_nested - First observed
xmatters_update_sender_permissions - First observed
xmatters_update_sender_permissions_nested - First observed
xmatters_upload_a_user_upload_file - First observed
xmatters_upload_an_attachment - First observed
xmatters_upload_an_epic_zipsync_file - First observed
xmatters_upload_attachment_to_a_scenario
TDQS
Scored across 179 tools
The tool set is heavily redundant with many near-duplicate operations, such as multiple variants for getting forms (e.g., get_a_form_in_a_plan, get_a_form_in_a_plan_nested), aliases like get_form_response_options and get_form_response_options_alias, and separate update shift tools (update_a_shift vs update_a_shift_by_id). This makes it extremely difficult for an agent to select the correct tool, as many appear to perform the same function with slight variations.
While the prefix 'xmatters_' and verb_noun structure is generally followed, there are significant inconsistencies: mixed use of 'get_a' vs 'get', 'modify' vs 'update', and 'create' vs 'add'. Additionally, some names contain encoded characters like '39' (e.g., get_a_group_39_s_recipients), and there are aliases with suffixes like '_alias' and '_nested' that deviate from a clear pattern. The naming is not chaotic but is inconsistent enough to confuse.
With 179 tools, this server exposes an overwhelming number of operations, far beyond the typical 3-15 tools for an MCP server. This appears to be a direct dump of the entire xMatters API, including duplicated and variant endpoints, which is excessive for an agent to navigate effectively. The count severely violates the principle of a well-scoped tool set.
The server covers a wide range of domain resources with CRUD operations for people, groups, sites, plans, services, shifts, and more, including uploads and triggers. However, there are notable gaps: no delete operations for forms, scenarios, or some other entities, and some lifecycle steps are missing (e.g., no delete for scenarios). While the coverage is extensive, these gaps prevent a perfect score.
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables local MCP clients to manage messaging workflows via stdio: list and read chats/messages, send messages, react to messages, manage typing/read state, and handle contact cards and requests.162,421 npmMIT
- AlicenseAqualityBmaintenanceEnables MCP clients to connect to Agenzax's REST API over stdio, providing tools for messaging, session management, and review-mode oversight.18303 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables exposing any REST or GraphQL API as MCP tools from a single JSON spec, with writes requiring explicit confirmation before being sent.MIT
- FlicenseCqualityCmaintenanceEnables stdio-capable MCP clients to run governed enterprise operations tasks, including policy/runbook retrieval and ticket and user lookups or writes. High-risk actions are held for human approval and role-based access is enforced server-side, so clients cannot bypass governance.41-