Skip to main content
Glama

Breaking changes between versions

diff_versions
Read-onlyIdempotent

Detect breaking changes and deprecations in a Python package between two versions or since a date, optionally limited to symbols your code uses.

Instructions

Breaking changes and deprecations of a package between two versions, or since a date such as your training cutoff ('YYYY-MM-DD'). Optionally restrict to the symbols your code uses. Most severe first.

Input Schema

NameRequiredDescriptionDefault
limitNo
packageYes
to_versionNoDefaults to the latest indexed release.
from_versionYesVersion, or a date 'YYYY-MM-DD' (nearest release on/before).
used_symbolsNo
include_addedNo

Output Schema

NameRequiredDescriptionDefault
noteNo
eventsYes
packageYes
truncatedNo
to_versionYes
from_versionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is covered. The description adds useful behavioral context by stating results are ordered most severe first and can be restricted to used symbols, though it does not mention the result limit or pagination behavior.

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

Conciseness5/5

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

The description is compact and front-loaded: it names the core purpose first, then the date alternative, then the optional symbol restriction and ordering. Every clause adds useful information without waste.

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

Completeness4/5

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

With an output schema and read-only/idempotent annotations already present, the description covers the core invocation context well. It is slightly incomplete because it does not explain include_added or limit, but an agent can still understand the main operation.

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 low at 33%, so the description carries more burden. It explains the date format for from_version and the used_symbols restriction, but leaves include_added and limit unexplained beyond their schema names, creating clear gaps for a 6-parameter tool.

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

Purpose4/5

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

The description clearly states the specific resource and operation: breaking changes and deprecations of a package between two versions or since a date. It distinguishes itself from general symbol tools by focusing on version-to-version breaking changes, though it does not explicitly name sibling tools as alternatives.

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

Usage Guidelines4/5

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

It gives clear usage context: comparing two versions, comparing since a date such as a training cutoff, and optionally restricting to symbols your code uses. It lacks explicit when-not-to-use guidance or named alternatives like check_symbols or symbol_history.

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