Skip to main content
Glama

Changes to an entry's small print

changes_since
Read-onlyIdempotent

Inspect what actually changed between releases of an MCP server, skill, or plugin: diff, grade, and grading rule for each release, with date and severity filters.

Instructions

The releases of one entry whose tool descriptions, schemas or instructions changed, each with its diff, its grade and the rule that graded it (rules at https://smallprint.dev/how-we-grade). Use it to read what actually changed, after lookup_entry or changed_since_approval said something did; use changed_since_approval instead when the question is only whether anything moved since an approved version. Filters: since keeps releases published on or after a date; min_severity drops changes below a grade (default low, so plain version bumps and identical releases are never listed). Returns at most 12 releases in text; the structured result carries all of them. Read-only: one HTTPS GET to smallprint.dev per call, no account, no key, nothing about the caller sent, and the server or skill asked about is never run or contacted. Rate limited to one entry per request; a 429 answer says to wait a minute. A name not in the catalog returns a plain error, not a guess.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe entry, with its registry prefix when known: npm:@scope/name, pypi:name, mcp-registry:io.github.owner/server, skills.sh:owner/repo/skill, oci:ghcr.io/owner/image. A bare name is read as an npm package. Case-sensitive, up to 300 characters.
sinceNoISO date, YYYY-MM-DD; only releases published on or after it. Omit for every release on record.
min_severityNoLowest grade to include: info, low, medium, high or critical. Default low. Use high to see only changes that name a secret, a destination or an instruction to hide something.low

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
totalYes
releasesYes
canonicalNameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.1.1
    • addedInput schema / properties / min_severity / description
      Added value: +"Lowest grade to include: info, low, medium, high or critical. Default low. Use high to see only changes that name a secret, a destination or an instruction to hide something."
    • addedInput schema / properties / name / description
      Added value: +"The entry, with its registry prefix when known: npm:@scope/name, pypi:name, mcp-registry:io.github.owner/server, skills.sh:owner/repo/skill, oci:ghcr.io/owner/image. A bare name is read as an npm package. Case-sensitive, up to 300 characters."
    • changedInput schema / properties / since / description
      Previous value: -"ISO date; releases published on or after it"New value: +"ISO date, YYYY-MM-DD; only releases published on or after it. Omit for every release on record."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "canonicalName": {
      +      "type": "string"
      +    },
      +    "releases": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "changes": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "diff": {
      +                  "type": "string"
      +                },
      +                "field": {
      +                  "type": "string"
      +                },
      +                "rule": {
      +                  "type": "string"
      +                },
      +                "severity": {
      +                  "type": "string"
      +                },
      +                "subject": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "field",
      +                "subject",
      +                "severity",
      +                "rule",
      +                "diff"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "from": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "publishedAt": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "summary": {
      +            "type": "string"
      +          },
      +          "to": {
      +            "type": "string"
      +          },
      +          "worst": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to",
      +          "publishedAt",
      +          "worst",
      +          "summary",
      +          "changes"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "total": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "canonicalName",
      +    "url",
      +    "releases",
      +    "total"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark it read-only and idempotent; the description adds concrete behavioral facts: one HTTPS GET to smallprint.dev, no account, no key, no caller data sent, the target server or skill is never run or contacted, one entry per request, 429 means wait a minute, and unknown names return a plain error. This goes well beyond what annotations provide and does not contradict them.

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 long but every sentence earns its place: purpose, usage guidance, filters, output limits, privacy guarantees, rate limiting, and error behavior. It is front-loaded with the core result and alternatives before diving into details, with no filler.

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

Completeness5/5

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

It covers output shape (text capped at 12 releases vs structured result carrying all), filter behavior, privacy/security footprint, rate limiting, and error handling. With an output schema present and rich annotations, nothing an agent needs to select or invoke this tool correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema for since and min_severity by explaining their filtering effect and the real-world consequence of the default low (plain version bumps and identical releases are never listed). The name parameter is left to the schema, but the schema already documents it thoroughly.

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 description identifies exactly what the tool returns: releases of one entry whose tool descriptions, schemas, or instructions changed, each with its diff, grade, and grading rule. It also explicitly contrasts it with changed_since_approval, so an agent can distinguish it from siblings without opening schemas.

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?

It states when to use this tool ('to read what actually changed, after lookup_entry or changed_since_approval said something did') and when to prefer changed_since_approval instead ('only whether anything moved since an approved version'). It also explains how the since and min_severity filters shape results.

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