Skip to main content
Glama

API breaking-change report

submit_api_contract_diff
Idempotent

Compare two OpenAPI documents and report every breaking change — removed paths and operations, and newly required parameters — with the affected operation named. Before publishing an API change, to see which operations existing callers lose. Do not choose this when you need a full schema compatibility checker, or when the documents are not OpenAPI JSON. Example requests: Diff these two OpenAPI specs and tell me what breaks for existing clients. | Will upgrading this API version break my integration? Here are both specs. | List the breaking changes between the old and new API contract.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "inputs": "<inputs>",
      "authorized_by": "<authorized_by>"
    },
    "name": "submit_api_contract_diff"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputsYes
quote_idNoThe quote_id returned by POST /v1/jobs. Required to authorize a priced capability; the service rejects a priced job that does not name the quote it issued.
authorized_byYesIdentifier of the human or agent authorizing this job.
accepted_priceNoThe amount accepted, exactly as quoted (for example "5.00" or 5). Checked against the stored quote, so a price that moved between quote and authorize is refused rather than silently absorbed. Optional, but sent to make the acceptance explicit.

Output Schema

NameRequiredDescriptionDefault
quoteNo
stateYes
job_idYes
artifactsNo
access_tokenNoPer-job credential. Present it as the X-Job-Token header to read the job or list it. Keep it; it is the only credential for this job.
verificationNoIndependent verification. verification.ok = false means the job failed, not a partial success.
capability_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is largely covered. The description adds real behavioral scope by narrowing detection to three change classes, which tells the agent what it will and will not be told. It omits the priced-job/authorization flow (quote_id, accepted_price) and the 1 MB ceiling, though the schema covers those.

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

Conciseness4/5

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

Purpose, timing, and exclusions are front-loaded in the first two sentences with no wasted framing. The three example utterances are somewhat redundant with the first sentence and consume roughly a third of the text, but they do encode realistic routing phrases.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description fully covers the analytical scope of the tool. The one meaningful omission is that this is a priced capability requiring a quote, which the description never hints at even though the schema enforces it.

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

Parameters3/5

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

Schema description coverage is 75%, so the schema already explains old_contract, new_contract, quote_id, and accepted_price in detail. The description adds nothing about any parameter — no note on input format beyond 'OpenAPI JSON' and no mention of the required authorization fields — so the baseline 3 applies.

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

Purpose5/5

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

The first sentence names a specific verb (compare) and resource (two OpenAPI documents) and enumerates exactly what counts as a breaking change — removed paths and operations plus newly required parameters — with the affected operation named. That enumeration distinguishes it from generic diff siblings like submit_json_diff and submit_json_schema_validation.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('Before publishing an API change, to see which operations existing callers lose') and two explicit exclusions: full schema compatibility checking, and non-OpenAPI-JSON inputs. The three sample requests reinforce when an agent should route here rather than to a sibling validator.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources