Skip to main content
Glama
smartsys

changelog-mcp

by smartsys

changelog-mcp

changelog-mcp

CI License: MIT Python

Ein universeller MCP-Server für das Changelog-Management. Er funktioniert mit allen MCP-fähigen KI-Assistenten, darunter Claude Code, Cursor, Windsurf, Cline und Claude Desktop.

Das Problem

KI-Assistenten sind sehr gut darin, Changelog-Einträge zu formulieren, aber weniger zuverlässig beim Verwalten einer Changelog-Datei. Typische Probleme sind:

  • vorhandene Einträge werden versehentlich überschrieben oder gelöscht,

  • Versionsnummern werden falsch erhöht oder vergessen,

  • das Format wird inkonsistent,

  • Merge-Konflikte entstehen,

  • im schlimmsten Fall wird die gesamte Changelog-Datei beschädigt.

Je größer ein Projekt wird und je häufiger KI Änderungen dokumentiert, desto höher wird dieses Risiko.

Related MCP server: Claude Session Logger

Die Lösung

changelog-mcp nimmt der KI die Verwaltung der Changelog-Dateien vollständig ab.

Statt Markdown-Dateien direkt zu bearbeiten, schreibt die KI ausschließlich strukturierte Änderungsdatensätze in eine JSONL-Datei. Diese Datei ist die einzige Quelle der Wahrheit. Daraus erzeugt der Server anschließend deterministisch alle Markdown-Changelogs.

Der Server übernimmt dabei unter anderem:

  • sicheres Hinzufügen neuer Einträge,

  • automatische Versionsberechnung,

  • konsistente Formatierung,

  • Generierung von CHANGELOG.md und CHANGELOG-full.md,

  • automatische Backups, bevor Dateien geändert werden.

Dadurch kann die KI sich auf den Inhalt konzentrieren, während der Server sicherstellt, dass die Changelog-Historie konsistent und nachvollziehbar bleibt.

Status: Aktive Entwicklung. Die Basisversion (Server, Store und 15 Tools) ist funktionsfähig und über den stdio-Transport verifiziert.

Features

  • 15 MCP-Tools (Setup, Erfassung, Release, Suche, Rendern, Migration) über stdio.

  • Drei Format-Presets: keep-a-changelog, conventional, smart.

  • Einträge korrigierbar: edit_entry / delete_entry ändern oder entfernen Einzeleinträge per ID; bereits veröffentlichte Einträge sind vor dem Löschen geschützt.

  • Strukturierte Suche mit Freitext-Ranking und Filtern (Kategorie, Datei, Version, Zeitraum).

  • Migration bestehender Changelogs (import_records + verify_store).

  • Versionierung semver oder patch-only, konfigurierbarer Prefix.

  • Defense-in-Depth: Zeilen-Validierung beim Lesen (defekte Zeilen werden gemeldet und übersprungen), Path-Traversal- und Symlink-Schutz, Größenlimit, Render-Schutz. Korrekturen laufen über angehängte Records statt über Mutation bestehender Zeilen, sodass die Rohhistorie in der JSONL-Datei nachvollziehbar bleibt.

  • Rotierendes Backup: vor der ersten Änderung je Zeitraum (Default täglich) wird der Store gesichert; die letzten 30 Backups bleiben erhalten. Ordner, Intervall, Aufbewahrung und Dateiname-Muster sind konfigurierbar.

  • Zero-Config: läuft ohne Konfigurationsdatei mit sinnvollen Defaults.

Installation & Einbindung in den KI-Client

Der Server läuft als stdio-MCP-Server und wird über uvx gestartet — kein manuelles Environment nötig (Voraussetzung: uv ist installiert). Trage ihn in die MCP-Konfiguration deines Clients ein. Bei Claude Code ist das die Datei .mcp.json im Projekt-Root (im Repo liegt sie als Vorlage unter .mcp.json.example):

{
  "mcpServers": {
    "changelog": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/smartsys/changelog-mcp", "changelog-mcp"],
      "env": {
        "CHANGELOG_MCP_CONFIG": "./documentation/changelog/changelog-mcp-config.json"
      }
    }
  }
}

Feld für Feld:

  • command / argsuvx holt den Server direkt aus diesem Repository und startet ihn; eine separate Installation entfällt.

  • env.CHANGELOG_MCP_CONFIG — Pfad zu deiner Config-Datei, relativ zum Projekt-Root (der Pfad im Beispiel ist frei wählbar — leg die Datei ab, wo es zu deinem Projekt passt, siehe Konfiguration). Ohne diese Variable startet der Server im Zero-Config-Modus mit Defaults.

Nach dem Eintragen den Client neu starten; die Changelog-Tools stehen dann zur Verfügung.

Geplant: Veröffentlichung auf PyPI, danach genügt "args": ["changelog-mcp"] (ohne --from).

Erster Start: einmal init_changelog

uvx installiert nur den Server (das Paket). Keine Config und kein Store werden mitgeliefert — beide gehören in dein Projekt. Nach dem Eintragen der .mcp.json rufst du daher einmal das Tool init_changelog auf (z.B. „Initialisiere den Changelog"). Es legt an, was fehlt:

  • den Store (changelog.jsonl, die Quelle der Wahrheit),

  • die Config — und zwar genau am Pfad aus CHANGELOG_MCP_CONFIG (bzw., ohne die Variable, changelog-mcp-config.json im Projekt-Root).

init_changelog ist idempotent: Ein zweiter Aufruf überschreibt nichts — ein vorhandener Store und eine vorhandene Config bleiben unangetastet. Ohne diesen Aufruf laufen die Tools im Zero-Config-Modus (Defaults), aber ohne Config-Datei, die du bearbeiten kannst.

Pro Projekt einrichten

Der Server ist ein einmal installiertes Werkzeug, aber ein Changelog gehört immer zu genau einem Projekt — es gibt keinen globalen Changelog. Config, Store und .mcp.json werden relativ zum jeweiligen Projekt-Root aufgelöst. Richte den Server deshalb in jedem Projekt separat ein: .mcp.json eintragen und einmal init_changelog ausführen.

CLI: mehrere Projekte aus einem Prozess

Neben dem MCP-Server bringt das Paket den Befehl changelog mit — dieselben Werkzeuge über dieselbe Logik, nur mit dem Zielprojekt als Argument. Das löst den Fall, für den ein MCP-Server nicht gebaut ist: Ein Serverprozess ist beim Start an ein Projekt gebunden; wer die Changelogs mehrerer Repos von einer Stelle aus pflegt, bräuchte sonst einen Prozess je Repo.

Einmal global installieren:

uv tool install --from git+https://github.com/smartsys/changelog-mcp changelog-mcp

Danach genügt ein Aufruf je Repo:

changelog --repo /pfad/zu/projekt-a \
  --config /pfad/zu/projekt-a/documentation/changelog/changelog-mcp-config.json \
  add --category Added --description "Neues Feature"

changelog --repo /pfad/zu/projekt-b --config /pfad/zu/projekt-b/changelog-mcp-config.json \
  unreleased

Globale Optionen

Option

Bedeutung

--repo <pfad>

Zielprojekt. Default: aktuelles Verzeichnis — dann verhält sich die CLI wie der MCP-Server

--config <pfad>

Konfigurationsdatei explizit (entspricht CHANGELOG_MCP_CONFIG)

--json

Ausgabe als {"ok": true, "result": "..."} statt Klartext

Befehle

14 Unterbefehle decken alle 15 Tools ab (preview_release steckt in release --preview):

Befehl

entspricht dem Tool

init [--format smart|keep-a-changelog|conventional]

init_changelog

current

get_current_version

next [--bump patch|minor|major]

get_next_version

config

get_config

add --category X --description Y [--details ...] [--files ...] [--bump ...] [--private]

add_entry

edit <id> [--category] [--description] [--details ...] [--files ...]

edit_entry

delete <id>

delete_entry

unreleased

list_unreleased

release [--summary <json|@datei>]

create_release

release --summary <...> --preview

preview_release

search [--query --category --file --version --released|--unreleased --date-from --date-to --limit]

search_entries

show <version>

get_release

render

render_changelog

import --file <json>

import_records

verify <quelldatei>

verify_store

--details und --files sind wiederholbar. --summary nimmt die Section-Liste ([{"category": "Added", "items": ["..."]}]) als Inline-JSON oder als @pfad/zur/datei.json. import --file erwartet eine Liste von Einträgen oder ein Objekt {"entries": [...], "releases": [...]}.

Zwei Unterschiede zum MCP-Server

  1. Die Config ist Pflicht (außer bei init). Findet die CLI keine Konfigurationsdatei, bricht sie mit Exit 1 ab, statt still auf die Zero-Config-Defaults zurückzufallen — diese zeigen auf einen anderen Store und würden unbemerkt eine zweite changelog.jsonl anlegen. Der MCP-Server behält seinen Zero-Config-Modus.

  2. Die Suchkette ist dieselbe wie beim Server: CHANGELOG_MCP_CONFIG--repo-Verzeichnis → Git-Root. Liegt die Config wie im Standard-Layout unter documentation/changelog/, wird sie dort nicht gesucht — dann --config übergeben.

Exit-Codes: 0 Erfolg, 1 fachlicher Fehler (Meldung auf stderr, kein Traceback), 2 Benutzungsfehler (fehlendes Argument).

Konfiguration

Der Server läuft ohne Konfigurationsdatei (Zero-Config) mit sinnvollen Defaults. Der einfachste Weg zu einer eigenen, bearbeitbaren Config ist init_changelog (siehe Erster Start) — es schreibt die Datei mit allen Default-Werten an den Pfad aus CHANGELOG_MCP_CONFIG. Danach passt du dort an, was du brauchst.

Alle Felder sind optional. Was du weglässt, bleibt auf dem Default. Eine vollständige Datei mit den Standardwerten sieht so aus:

{
  "format": "smart",
  "store":        { "file": "changelog.jsonl", "path": "./documentation/changelog" },
  "changelog":    { "file": "CHANGELOG.md", "path": "./", "encoding": "utf-8", "entrySpacing": 2, "includePrivate": false },
  "fullChangelog":{ "enabled": true, "file": "CHANGELOG-full.md", "path": "./documentation/changelog", "includePrivate": false },
  "versioning":   { "mode": "semver", "prefix": "", "fixedMajor": null, "fixedMinor": null },
  "backup":       { "enabled": true, "path": "./documentation/changelog/backup", "interval": "daily", "retention": 30, "fileFormat": "changelog-{date}.jsonl" },
  "dateFormat": "YYYY-MM-DD",
  "language": "de"
}

Alle Pfade sind relativ zum Projekt-Root. Der Server prüft sie streng (kein .., keine Symlinks aus dem Projekt heraus). Die aktuell aktive, aufgelöste Konfiguration kannst du jederzeit mit dem Tool get_config ausgeben lassen.

Die Blöcke im Überblick

Block

Zweck

Details

format

Kategorien-Regeln + Aussehen der Versions-Überschrift

Format-Presets

store

Ort der JSONL-Quelle der Wahrheit

unten

changelog

die kuratierte CHANGELOG.md

unten

fullChangelog

die detaillierte CHANGELOG-full.md

unten

versioning

wie Versionsnummern vergeben werden

Versionierung

backup

automatische Sicherung des Stores

Backups

dateFormat / language

Datumsformat und Sprach-Metadatum

unten

includePrivate

private Einträge doch publizieren

Private Einträge

store — legt fest, wo die JSONL-Datei liegt, aus der alles generiert wird:

  • file — Dateiname (Default changelog.jsonl).

  • path — Ordner relativ zum Projekt-Root (Default ./documentation/changelog).

changelog — die kuratierte, öffentliche CHANGELOG.md (nur Release-Zusammenfassungen):

  • file / path — Name und Ort der Datei (Default CHANGELOG.md im Projekt-Root).

  • encoding — Textkodierung der beiden Markdown-Dateien: utf-8 | utf-16le | latin1 | ascii (Default utf-8). Der Store selbst ist immer UTF-8.

  • entrySpacing — Anzahl Leerzeilen zwischen zwei Versionsblöcken (≥ 0, Default 2).

  • includePrivate — siehe Private Einträge.

fullChangelog — die detaillierte CHANGELOG-full.md mit jedem Einzeleintrag:

  • enabledfalse schaltet diese Datei komplett ab (Default true).

  • file / path — Name und Ort (Default CHANGELOG-full.md).

  • includePrivate — siehe Private Einträge.

dateFormat — Datumsformat der Einträge und Überschriften über die Tokens YYYY, MM, DD. Beispiele: YYYY-MM-DD2026-07-19, DD.MM.YYYY19.07.2026.

language — reines Metadatum (Default en). Wird derzeit nicht ausgewertet und ändert nichts am Verhalten; die Sprache der Ausgaben liegt an deiner Nutzung, nicht an diesem Feld.

Format-Presets

Das Feld format bestimmt, welche Kategorien erlaubt sind und wie die Versions-Überschriften in CHANGELOG.md / CHANGELOG-full.md aussehen. Drei Presets stehen zur Wahl:

smart (Default)

Flexibles Preset mit frei wählbaren Kategorien — du legst die Kategorien selbst fest.

  • Kategorien (frei, keine Validierung): beliebig. Empfohlen als Vorschlagsliste: Added · Changed · Deprecated · Removed · Fixed · Security · Documentation

  • Versions-Überschrift: ## [1.2.3] - 2026-07-19

  • Geeignet, wenn ein Projekt eigene Kategorien braucht, die keiner der strikten Presets abdeckt.

keep-a-changelog

Der verbreitete Standard nach keepachangelog.com.

  • Kategorien (strikt validiert): Added · Changed · Deprecated · Removed · Fixed · Security

  • Versions-Überschrift: ## [1.2.3] - 2026-07-19

  • Nur diese sechs Kategorien sind zulässig; jede andere wird mit einer Fehlermeldung abgelehnt.

conventional

Angelehnt an Conventional Commits.

  • Kategorien (strikt validiert): Features · Bug Fixes · Performance · Reverts · Breaking Changes

  • Versions-Überschrift: ## 1.2.3 (2026-07-19)

  • Ebenfalls streng: nur die genannten Kategorien sind erlaubt.

Versionierung

Der Block versioning steuert, wie die Versionsnummern vergeben werden. Wichtig zu verstehen: in diesem Server bekommt jeder einzelne add_entry eine eigene Versionsnummer — die Version zählt also pro Änderung hoch, nicht erst beim Release. Ein Release bündelt anschließend die Spanne der Einträge unter der höchsten Versionsnummer dieser Spanne.

mode: "semver" (Default)

Klassisches Semantic Versioning mit den drei Stellen MAJOR.MINOR.PATCH. Beim add_entry (und get_next_version) bestimmt der Parameter bump, welche Stelle steigt:

  • bump: "patch" (Default) — 1.2.31.2.4 (Fehlerbehebungen, Kleinigkeiten).

  • bump: "minor"1.2.31.3.0 (neue, abwärtskompatible Funktionen).

  • bump: "major"1.2.32.0.0 (Breaking Changes).

Bei leerem Store ist die Initialversion 0.1.0 (bzw. fixedMajor.fixedMinor.0, falls gesetzt).

Beispielkette: Start 0.1.0add_entry(bump=patch)0.1.1add_entry(bump=minor)0.2.0add_entry(bump=major)1.0.0.

mode: "patch-only"

Major und Minor sind fest verdrahtet, nur die Patch-Stelle zählt fortlaufend hoch. Der Parameter bump wird in diesem Modus ignoriert. Gedacht für Projekte, die einfach eine durchlaufende Nummer wollen (z.B. eine Firmware- oder Doku-Reihe 1.4.x).

  • Die feste Basis kommt aus fixedMajor / fixedMinor (Default 0 / 1, also Basis 0.1).

  • Beispiel mit fixedMajor: 1, fixedMinor: 4: 1.4.11.4.21.4.3 → …

  • Änderst du die Basis später (z.B. auf fixedMinor: 5), springt der nächste Eintrag auf 1.5.1.

prefix

Reiner Anzeige-Prefix vor der Nummer in den Überschriften, üblich ist "v". Aus 1.2.3 wird dann z.B. ## [v1.2.3] - 2026-07-19. Der Store speichert weiterhin die nackte Nummer; der Prefix betrifft nur die Darstellung (Default leer, also kein Prefix).

fixedMajor / fixedMinor

  • Im Modus semver: setzen Major/Minor der Initialversion bei leerem Store (Default null0.1.0).

  • Im Modus patch-only: die feste Basis, gegen die die Patch-Nummer läuft (Default 0.1).

Private Einträge

Ein Eintrag kann per add_entry(..., private=true) als privat markiert werden — für Änderungen an nicht-öffentlicher Doku, die trotzdem im Store nachvollziehbar bleiben soll. Standardmäßig erscheinen private Einträge weder in CHANGELOG.md noch in CHANGELOG-full.md. Zwei Flags (Default jeweils false) heben das gezielt auf:

  • changelog.includePrivate — private Einträge fließen in den kuratierten CHANGELOG.md-Summary ein (list_unreleased zeigt sie dann ebenfalls).

  • fullChangelog.includePrivate — private Einträge werden in CHANGELOG-full.md gerendert.

Bei false blendet list_unreleased private Einträge aus, damit sie gar nicht erst in den öffentlichen Summary geraten. create_release bündelt sie dennoch (sie gelten als released); ein Release nur aus privaten Einträgen erzeugt keinen öffentlichen Block.

Backups

Der Server sichert den Store automatisch, bevor er im jeweiligen Zeitraum zum ersten Mal geändert wird — als Sicherheitsnetz für den Fall, dass Einträge versehentlich geändert oder getilgt werden. Ausgelöst wird beim ersten schreibenden Tool-Aufruf (kein Scheduler nötig).

  • enabled — Backups an/aus (Default true).

  • path — Zielordner, relativ zum Projekt-Root (Default ./documentation/changelog/backup).

  • intervaldaily | weekly | monthly: ein Backup pro Zeitraum (Default daily).

  • retention — Anzahl behaltener Backup-Dateien; ältere werden entfernt (Default 30).

  • fileFormat — Dateiname-Muster; {date} wird zur Zeitraum-Kennung (YYYY-MM-DD, YYYY-Www, YYYY-MM).

Beispiel-Konfigurationen

Minimal — nur ein anderes Format, sonst alle Defaults:

{ "format": "keep-a-changelog" }

Interne Doku — private Einträge im Detail-Changelog sichtbar, in der öffentlichen aber nicht:

{
  "format": "smart",
  "changelog":    { "includePrivate": false },
  "fullChangelog":{ "enabled": true, "includePrivate": true }
}

Fortlaufende Patch-Reihe mit v-Prefix (z.B. Firmware 1.4.x):

{
  "format": "smart",
  "versioning": { "mode": "patch-only", "prefix": "v", "fixedMajor": 1, "fixedMinor": 4 }
}

Ergebnis: Überschriften wie ## [v1.4.1] - 2026-07-19, mit jedem Eintrag v1.4.2, v1.4.3, …

Tools

Der Server stellt 15 MCP-Tools bereit. Alle Parameter werden an der Tool-Grenze mit Pydantic validiert; Fehlermeldungen sind deutsch und folgen dem Muster Beschreibung + Kontext + Lösung.

Setup & Version

Tool

Parameter

Beschreibung

init_changelog

format? (keep-a-changelog | conventional | smart)

Bootstrap: legt Store und Config-Datei an, was fehlt (Config am Pfad aus CHANGELOG_MCP_CONFIG). Idempotent — vorhandener Store/Config bleiben unangetastet. Die Markdown-Dateien entstehen erst beim ersten Release.

get_current_version

Höchste Version im Store plus Anzahl unveröffentlichter Einträge.

get_next_version

bump? (major | minor | patch, Default patch)

Berechnet die nächste Version aus der höchsten Store-Version und dem Bump-Modus.

get_config

Zeigt die aktive, aufgelöste Konfiguration als JSON inklusive Herkunft der Werte.

Laufende Erfassung

Tool

Parameter

Beschreibung

add_entry

category, description, details? (Liste), files? (Liste), bump? (Default patch), private? (Default false)

Hängt einen validierten Einzeleintrag an den Store an. private=true hält ihn aus den publizierten Changelogs (siehe Abschnitt „Private Einträge").

edit_entry

id, category?, description?, details? (Liste), files? (Liste)

Ändert Felder eines Eintrags per ID — nur die genannten Felder, Version und Datum bleiben. Intern als Korrektur-Record angehängt; der Read-Layer rechnet die Änderung ein. IDs liefern list_unreleased / search_entries.

delete_entry

id

Löscht einen unveröffentlichten Eintrag per ID (Tilgungs-Record); er entfällt in allen Ausgaben. Bereits released Einträge sind publizierte Historie und werden abgelehnt.

Veröffentlichen

Tool

Parameter

Beschreibung

list_unreleased

Zeigt die öffentlichen Einträge seit dem letzten Release und die künftige Release-Version; private Einträge sind ausgeblendet, solange changelog.includePrivate=false.

preview_release

summary (Liste von Sections)

Rendert den Release-Block wie create_release, ohne zu schreiben (Trockenlauf).

create_release

summary? (Liste von Sections)

Bündelt alle unveröffentlichten Einträge (auch private) zu einem Release und rendert beide Markdown-Dateien neu. summary beschreibt nur den öffentlichen Block; bei einem reinen Privat-Release darf er leer bleiben.

Suche & Abruf

Tool

Parameter

Beschreibung

search_entries

query?, category?, file?, version?, released?, dateFrom?, dateTo?, limit? (Default 10)

Durchsucht den strukturierten Store mit Freitext-Ranking; alle Filter werden UND-kombiniert.

get_release

version

Zeigt einen Release mit Zusammenfassung und allen gebündelten Einzeleinträgen.

Rendern & Migration

Tool

Parameter

Beschreibung

render_changelog

Erzeugt beide Markdown-Dateien neu aus dem Store (idempotent, mit Render-Schutz).

import_records

entries (Liste), releases? (Liste)

Migration: hängt geparste Einträge und optional Releases an den Store an.

verify_store

sourceFile

Vergleicht die Versions-Überschriften einer Quelldatei mit dem Store und meldet Fehlendes.

Lizenz

MIT

Available Tools

15 tools
add_entryA

Hängt einen validierten Einzeleintrag an den Store an (append-only).

private=true: Eintrag bleibt aus den publizierten Changelogs, solange das jeweilige includePrivate-Flag der Config nicht gesetzt ist.

ParametersJSON Schema
NameRequiredDescriptionDefault
bumpNopatch
filesNo
detailsNo
privateNo
categoryYes
descriptionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses significant behavioral traits: entries are validated, append-only, and the private flag controls inclusion in published changelogs. This goes beyond a simple add action, though it could mention what happens on duplicate or invalid input.

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 extremely concise: two sentences that front-load the core action and then clarify an important behavioral nuance. Every word earns its place, with no redundancy or filler.

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

Completeness2/5

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

Given the tool has 6 parameters and an output schema, the description is incomplete. It covers the main purpose and private flag logic, but omits key details about bump, files, details, and the overall required parameters. The presence of an output schema does not compensate for missing parameter semantics.

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

Parameters2/5

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

The schema has 0% description coverage, and the description only explains the 'private' parameter's effect. Other parameters (bump, files, details, category, description) are not semantically described. The description fails to compensate for the lack of schema documentation, leaving parameter meanings largely implicit.

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 clearly states the tool's function: appends a validated single entry to the store (append-only). The verb 'appends' and the append-only constraint distinguish it from sibling tools like edit_entry and delete_entry, making its purpose obvious and unique.

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

Usage Guidelines3/5

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

The description implies usage for adding new entries (append-only), but does not explicitly mention alternatives or when not to use it. It could be clearer by contrasting with edit_entry or delete_entry, but the append-only note provides implicit guidance.

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

create_releaseA

Bündelt unveröffentlichte Einträge zu einem Release und rendert beide Dateien.

summary beschreibt nur den öffentlichen Block. Bei einem reinen Privat-Release (alle offenen Einträge privat, includePrivate=false) darf summary leer bleiben.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses that the tool bundles unreleased entries and renders two files, and it adds a specific behavioral rule about summary being allowed to be empty for purely private releases. However, it does not mention state changes, prerequisites, or potential side effects beyond rendering. With no annotations present, the description carries full burden and is only partially transparent.

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 two sentences long, with the first providing the primary action and the second detailing a parameter rule. It is front-loaded and contains no filler.

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

Completeness3/5

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

The description covers the main function and an important parameter nuance, but it lacks guidance on when to use the tool and doesn't clarify what 'both files' refers to. Given the output schema exists, return type is likely covered, so overall completeness is moderate.

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?

The schema only defines summary as a nullable array of Section objects with a default, while the description explains that summary describes only the public block and may be empty for private-only releases. This adds meaningful semantic context beyond the type definition, though it does not cover all aspects of the Section structure.

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 clearly states that the tool bundles unpublished entries into a release and renders two files, using a specific verb and resource. It differentiates from siblings like preview_release or get_release by indicating an actual creation/rendering action. The meaning of 'both files' is not expanded, but the core 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.

Usage Guidelines2/5

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 preview_release or render_changelog. The only usage-related note is about summary behavior for private releases, which concerns parameter handling rather than tool selection. Thus, the description lacks context for an agent to choose this tool appropriately.

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

delete_entryA

Löscht einen unveröffentlichten Eintrag per ID (append-only Tilgung).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the deletion is append-only, indicating a soft-delete/tombstone mechanism, and restricts the operation to unpublished entries. Though it doesn't cover error handling or permissions, it discloses the most critical behavioral traits.

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 a single, information-dense German sentence. Every element—action, target, scope, and behavioral nuance—serves a purpose without filler or redundancy.

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?

Given a single parameter and an output schema, the description adequately covers the action, scope, and side-effect. It doesn't explain return values, but the output schema handles that. The rule limiting deletion to unpublished entries is explicitly stated, addressing the key precondition.

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?

The input schema has no descriptions for the 'id' parameter, leaving its purpose implicit. The description clarifies that the ID identifies an unpublished entry, adding essential domain context that the schema lacks. This compensates for the 0% schema description coverage, even though it doesn't specify ID format.

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 clearly states the action (deletes), the target (an unpublished entry), and the method (by ID). The addition of 'append-only deletion' distinguishes this from a permanent delete and from sibling tools like edit_entry or add_entry.

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?

The phrase 'unpublished entry' establishes a clear scope: this tool is intended only for entries that have not been released. While no alternatives are explicitly named, the constraint strongly implies published entries are out of scope, providing clear context without explicit exclusions.

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

edit_entryA

Ändert Felder eines Eintrags per ID (nur genannte Felder, append-only).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
filesNo
detailsNo
categoryNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the key behavioral trait of append-only and that only specified fields are modified, which is critical for safe usage. It does not mention permissions or return format, but for this straightforward edit operation, the disclosed behavior is reasonably complete.

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 a single concise sentence in German, front-loaded with the action and key scoping details. No filler or redundant information.

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

Completeness3/5

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

The description covers the core purpose and a critical behavior, but lacks explicit usage context and per-parameter details. Given that an output schema exists and parameter names are self-explanatory, it is minimally adequate for a simple edit tool, yet it could be more complete with guidance on when to use it.

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 0%, so the description must compensate. It does so by indicating that 'id' is the entry identifier and other parameters are the fields to edit. The append-only rule applies to all named fields, providing meaningful semantic context beyond bare parameter names.

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 clearly states the tool modifies fields of an entry by ID, specifying 'only named fields' and 'append-only'. This distinguishes it from siblings like add_entry and delete_entry, which handle different operations.

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

Usage Guidelines3/5

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

Usage is implied: use this when you need to change specific fields of an existing entry. However, there is no explicit mention of when not to use it or comparison to alternatives like add_entry or delete_entry. The 'only named fields' hint suggests a partial update, but no explicit exclusions.

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

get_configA

Zeigt die aktive, aufgelöste Konfiguration als JSON inkl. Herkunft.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. The verb 'zeigt' implies a read-only operation, which is a positive signal. However, it does not explicitly state that the operation has no side effects, nor does it mention potential prerequisites (e.g., the need to initialize the store). It adds useful context about the output (resolved, with provenance) but leaves some behavioral aspects unstated.

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 a single, compact sentence in German, with no unnecessary words. It front-loads the primary action and format, delivering all the information without clutter.

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?

Given the tool's simplicity (zero parameters), the presence of an output schema, and the fact that it returns the resolved configuration with provenance, the description is complete enough. It covers what the tool does and what output to expect, without needing to explain return values in detail because the output schema exists.

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?

The tool has zero parameters, and the schema coverage is trivially 100%. Per the rubric, a baseline of 4 is appropriate since there are no parameters to document. The description adds no parameter-specific details, but none are needed.

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 clearly states the tool's function: 'Zeigt die aktive, aufgelöste Konfiguration als JSON inkl. Herkunft.' It specifies a specific verb (zeigt), a resource (Konfiguration), output format (JSON), and an additional attribute (Herkunft). This distinguishes it from sibling tools like verify_store or get_current_version, which address different concerns.

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

Usage Guidelines3/5

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

The description implies usage when one needs to inspect the resolved configuration, but it does not provide explicit when-to-use guidance or mention alternatives. No exclusions or prerequisites are stated, making the usage context only weakly implied.

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

get_current_versionA

Höchste Version im Store plus Anzahl unveröffentlichter Einträge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description only lists the returned data. It gives no behavioral details such as being read-only, error conditions, or store requirements. The agent has to assume it is a safe query.

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?

A single German sentence efficiently conveys the tool's output. It is front-loaded and free of fluff.

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?

The tool has no input parameters and an output schema, so the description's mention of the two data points is sufficient. However, it omits usage context and behavioral disclaimers, which slightly reduces completeness.

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?

With zero parameters, the schema fully covers the input. The description adds no parameter-specific information, but none is needed. Baseline of 4 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 description clearly states it retrieves the highest version in the store and includes the count of unpublished entries. This is a specific verb+resource and distinguishes from sibling tools like get_next_version (which implies next) and list_unreleased.

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

Usage Guidelines2/5

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. It merely describes what it returns without mentioning appropriate contexts or exclusions, leaving the agent to infer usage.

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

get_next_versionC

Berechnet die nächste Version aus der höchsten Store-Version und dem Modus.

ParametersJSON Schema
NameRequiredDescriptionDefault
bumpNopatch

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits such as side effects or state reads. It only says the tool calculates a version, which implies a read-only operation, but it does not explicitly confirm this or mention any dependencies like the store being initialized.

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 a single, concise sentence that front-loads the core action. It contains no redundant words or irrelevant details, making it highly efficient.

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

Completeness2/5

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

The tool is simple, but the description lacks essential context: it does not explain what the 'highest store version' refers to, how the mode influences the result, or when to invoke this tool in a changelog workflow. The output schema exists but the surrounding semantics are insufficient.

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

Parameters1/5

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

The schema documents a single 'bump' parameter with enum values and a default, but schema description coverage is 0%. The description mentions 'Modus' (mode) but does not explain how major/minor/patch affect the calculation, leaving the parameter semantics unclear.

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 clearly states the tool's function: 'Berechnet die nächste Version aus der höchsten Store-Version und dem Modus' (calculates the next version from the highest store version and the mode). This specific verb+resource distinguishes it from siblings like get_current_version and create_release.

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

Usage Guidelines2/5

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. It does not mention any prerequisites, exclusions, or scenarios where get_next_version is preferred over other version-related tools.

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

get_releaseB

Zeigt einen Release mit Zusammenfassung und allen gebündelten Einträgen.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

The verb 'zeigt' (shows) implies a read-only operation, which is a useful behavioral hint. However, with no annotations at all, the description carries the full burden, and it does not mention potential errors, authentication needs, rate limits, or whether a missing release returns an error. The read-only implication is the main transparent element.

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 a single concise sentence that clearly states what the tool does. Every word contributes to the purpose, with no repetition or filler. It is well-structured and front-loaded.

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

Completeness3/5

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

For a simple retrievial tool with one parameter and an output schema present, the description is somewhat adequate. However, it does not explain how the version parameter identifies the release or what happens if the release is not found. The presence of an output schema reduces the need to describe return values, but the description remains thin on usage context.

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

Parameters2/5

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

Schema description coverage is 0% since the single 'version' parameter has no description. The tool description does not mention the version parameter or explain its format/meaning. The parameter name is self-explanatory, but the description fails to compensate for the schema's lack of information.

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 'Zeigt einen Release mit Zusammenfassung und allen gebündelten Einträgen' clearly states the tool shows a release including summary and bundled entries, using the specific verb 'shows' and resource 'release'. This is clear but does not explicitly differentiate from sibling tools like preview_release or list_unreleased, though the mention of summary and entries adds specificity.

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

Usage Guidelines2/5

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 does not mention any exclusions, prerequisites, or references to sibling tools, so the agent receives no decision support.

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

import_recordsB

Migration: hängt geparste Einträge (und optional Releases) an den Store an.

ParametersJSON Schema
NameRequiredDescriptionDefault
entriesYes
releasesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that the tool appends data ('hängt an'), indicating an additive, non-destructive operation. However, with no annotations provided, it fails to disclose important behaviors such as validation, duplication handling, or error cases.

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 a single, front-loaded sentence that efficiently communicates the core purpose without unnecessary words.

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

Completeness2/5

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

For a migration tool with complex nested objects and no annotations, the description is under-specified. It does not mention prerequisites, expected input format beyond 'parsed', side effects, or return behavior, leaving significant gaps for an AI agent.

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?

The description mentions 'parsed entries' and 'optional releases' which map directly to the two schema parameters. The schema already provides detailed structural definitions, so the description adds only minimal semantic value beyond naming the parameters.

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 tool appends parsed entries and optionally releases to the store, using a specific verb and resource. The 'Migration' prefix provides context, but it does not explicitly differentiate from sibling tools like add_entry or create_release.

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

Usage Guidelines3/5

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

The usage context is implied by the 'Migration' prefix, suggesting this tool is for bulk import after parsing. However, the description does not explicitly mention when to use it over alternatives like add_entry or preview_release, nor does it provide any exclusions.

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

init_changelogB

Legt leeren Store und Config-Datei an (Markdown entsteht beim ersten Release).

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the side effect of creating store and config files, and clarifies that Markdown is not yet created. However, it does not specify whether the tool is idempotent, what happens if files already exist, or required permissions.

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?

A single sentence that is direct and front-loaded with the action ('Legt leeren Store und Config-Datei an') and adds a clarifying parenthetical about Markdown timing. Every word earns its place with no redundancy.

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

Completeness3/5

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

For an initialization tool with one optional parameter and an output schema, the description gives the core action and a key timing detail. However, it lacks guidance on format semantics and any preconditions or effects on existing data, making it only partially complete for an agent to use confidently.

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

Parameters2/5

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

The description does not mention the 'format' parameter at all. The schema provides enum values (keep-a-changelog, conventional, smart) and a default of null, but no semantics for choosing between them. With 0% schema description coverage, this is a significant gap that the description fails to fill.

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 clearly states the tool creates an empty store and config file, with a specific note that Markdown is deferred until the first release. This distinguishes it from siblings like create_release or render_changelog, which handle later stages.

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

Usage Guidelines2/5

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 that this should be run before other changelog operations, nor does it describe any prerequisites. The note about Markdown creation is a temporal hint but not a usage directive.

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

list_unreleasedA

Zeigt alle Einträge seit dem letzten Release und die künftige Release-Version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. 'Zeigt' (shows) makes it clear this is a read-only operation, and it specifies the exact contents of the response (entries since last release plus the future release version). While it doesn't cover ordering or edge cases, it provides sufficient transparency for a simple list operation.

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 a single, front-loaded German sentence that conveys all essential information without any filler. It is appropriately concise and well-structured.

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?

Given the tool has no parameters and an output schema exists, the description provides enough context to understand the tool's purpose and output. It doesn't need to explain return values or elaborate on behavior beyond what is already clear from the description and schema.

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?

The tool has zero parameters, so the schema already exhaustively describes the input (empty object). The description adds no parameter-specific meaning because none are needed, aligning with the baseline of 4 for parameterless tools.

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 clearly states what the tool does: it lists all entries since the last release and indicates the next release version. This distinguishes it from sibling tools like get_release or get_current_version, which focus on specific versions rather than the unreleased backlog.

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

Usage Guidelines3/5

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

The description implicitly communicates when to use this tool—when you want to see unreleased entries and the upcoming version. However, it offers no explicit comparison or exclusion of alternatives such as search_entries or preview_release, so the guidance remains 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.

preview_releaseA

Rendert den Release-Block wie create_release, ohne zu schreiben.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing side effects. It explicitly states the tool does not write, which is a critical non-destructive behavior. However, it doesn't elaborate on validation, error conditions, or other runtime behavior beyond this main distinction.

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 a single, front-loaded sentence that conveys the essential action and its non-writing nature without any redundant information.

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

Completeness3/5

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

The description covers the core functional difference from create_release, but given the tool's only parameter is a complex nested array and the description offers no parameter context, there is a significant gap in completeness. The existence of an output schema helps, but the lack of input guidance makes this only minimally viable.

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

Parameters2/5

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

The description does not mention the 'summary' parameter at all. The schema has a detailed Section structure, but with 0% description coverage, the tool description offers no guidance on how to construct the preview content, leaving the agent to infer from schema alone.

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 clearly states the tool renders the release block ('Rendert den Release-Block') and explicitly contrasts with create_release by saying it does so without writing ('ohne zu schreiben'), making its purpose distinct from the sibling write operation.

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 provides a direct comparison to create_release, indicating this tool is the non-persistent preview variant. This gives clear context for when to use it (to preview) versus when to use create_release (to actually write), though it doesn't mention other alternatives like render_changelog.

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

render_changelogB

Erzeugt beide Markdown-Dateien neu aus dem Store (idempotent, Render-Schutz).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It does mention idempotency and render protection, which are useful, but it leaves unclear what happens to existing files, whether writes are destructive, or what 'Render-Schutz' exactly entails. Significant behavioral context is missing.

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 a single sentence with zero wasted words. It front-loads the action and adds two key behavioral notes (idempotent, render protection), making it a model of concise writing.

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

Completeness3/5

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

The tool is simple (no parameters) and an output schema exists, which could cover return values. However, the description lacks context on how this tool fits into the overall workflow, such as prerequisites (e.g., init_changelog) or when it should be called relative to other operations. It is minimally adequate but leaves gaps.

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?

The tool takes zero parameters, so the schema trivially covers everything. Per the rubric, a baseline of 4 is appropriate when there are no parameters, as the description does not need to compensate for missing parameter documentation.

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 action (recreates both Markdown files) and the resource (from the store), making it a specific verb+resource combination. It does not explicitly differentiate from sibling tools, but the wording makes its purpose obvious as a render operation.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. While idempotency and render protection imply it is safe to call multiple times, there is no mention of prerequisites, workflow position, or exclusions compared to sibling tools.

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

search_entriesB

Durchsucht den strukturierten Store (Ranking, alle Filter UND-kombiniert).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNo
limitNo
queryNo
dateToNo
versionNo
categoryNo
dateFromNo
releasedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden. It discloses that filters are AND-combined and that ranking is applied, but it does not state whether the operation is read-only, how pagination or limit works, or any other behavioral traits. The lack of annotation coverage makes this a significant gap.

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 a single, concise sentence in German that front-loads the main verb and resource. Every word earns its place, with no filler or redundant explanation.

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

Completeness2/5

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

Given 8 parameters and no annotations, the description is too sparse. Although an output schema exists, the description does not address how filters interact with each other beyond AND-combination, what the default behavior is when no filters are set, or what 'file' refers to. The ranking behavior is mentioned but not elaborated.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only states 'all filters AND-combined', which gives a general sense but does not explain individual parameters like query, file, version, or limit. The parameter names in the schema provide some self-evidence, but the description adds minimal semantic value.

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 tool searches the structured store, with ranking and all filters AND-combined. This identifies the operation and resource, and implies a distinction from sibling tools like list_unreleased, though it does not name alternatives.

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

Usage Guidelines3/5

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

The description implies usage for filtered searches by mentioning 'all filters AND-combined', but it does not explicitly state when to use this tool versus alternatives like list_unreleased or get_release. No exclusions or alternative tool names are provided.

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

verify_storeA

Vergleicht Versions-Headings der Quelldatei mit dem Store und meldet Fehlendes.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceFileYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the read/comparison behavior and that missing headings are reported, but it does not explicitly state that the operation is non-mutating or describe any side effects or required permissions. This is a basic level of transparency, not comprehensive.

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 a single, concise sentence that front-loads the main action and avoids any redundancy. Every phrase earns its place.

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?

For a simple verification tool with one parameter and an output schema, the description covers the core purpose and parameter role adequately. It could include more on when to use, but the operation's simplicity and the presence of an output schema reduce the need for extensive elaboration.

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?

The description references 'Quelldatei' (source file), clarifying that the sourceFile parameter contains the version headings used for comparison. This adds meaning beyond the bare schema, which only defines the parameter name and type. With only one parameter, this is sufficient compensation for the 0% schema coverage.

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 clearly states the tool compares version headings from a source file against the store and reports missing ones. It uses a specific verb ('Vergleicht') and defines the resource, distinguishing it from sibling tools like get_current_version or list_unreleased.

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

Usage Guidelines3/5

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

The description implies the tool is used to verify the completeness of version headings in the store, but it does not explicitly state when to use it versus other store management tools, nor does it mention alternatives or exclusions. Context is present but not fully explicit.

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. Dates show when Glama detected each change.

  1. 15 tool updatesv0.1.0
    • First observedadd_entry
    • First observedcreate_release
    • First observeddelete_entry
    • First observededit_entry
    • First observedget_config
    • First observedget_current_version
    • First observedget_next_version
    • First observedget_release
    • First observedimport_records
    • First observedinit_changelog
    • First observedlist_unreleased
    • First observedpreview_release
    • First observedrender_changelog
    • First observedsearch_entries
    • First observedverify_store

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct action: store verification, initialization, config, versioning, entry CRUD, release lifecycle, rendering, search, migration. No two tools overlap in purpose; even preview_release vs create_release clearly differ in write vs dry-run.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (verify_store, init_changelog, get_current_version, add_entry, etc.). The pattern is uniform across read, write, and lifecycle operations.

Tool Count5/5

Fifteen tools is at the upper bound but each serves a distinct need in changelog management (entries, releases, config, rendering, import). The set remains well-scoped without redundant utilities.

Completeness4/5

The domain covers entry CRUD, release creation/preview, config init and read, version calculation, rendering, verification, and migration. Minor gaps exist (no release update/delete, no direct get_entry), but releases appear intentionally immutable and entries are accessible via list/search.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A local-first MCP server for AI programming branch notes and mainline decision logging, supporting branch management, summary merging, and Markdown export with optional Git-mode for isolated branch conversations.
    3
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    A local MCP server that records completed tasks to daily JSONL files and promotes substantial work to a cumulative weekly Markdown worklog, providing persistent, searchable logs of AI-assisted productivity.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that lets AI coding agents save immutable, versioned Markdown reports into md-log, a human-in-the-loop review and archive layer for vibe coding.
    15
    150
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Repository-native protocol and MCP server for coordinating work items, documentation, changelogs, and project memory between humans and AI agents, using Markdown files in a Git repository as the canonical data source.
    30
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/smartsys/changelog-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server