Skip to main content
Glama

compare_clusters

Identify topic differences between Kafka clusters to find missing, differing, or matching topics and broker counts across environments without changing anything.

Instructions

Compare the topics of 1 to 100 other clusters against the one this endpoint serves, through items. Reports which topics only this cluster has, which only the other has, which exist on both but disagree, and how many brokers and topics each side has. Comparing one cluster is an items array of length one.

Use it to find what preproduction has that production does not, or to check whether two environments still match. Topics reported as only on the other cluster carry their partition count, replication factor and explicitly-set configs, so the report can be handed straight to create_topic.

This tool creates and changes nothing. To create the missing topics, pass them to create_topic, which previews them against the broker first.

Only configs a topic sets for itself are compared. Two clusters may carry different broker defaults, and comparing inherited values would report every topic as different. Internal topics are excluded unless include_internal is set.

Topic listings come from the client's metadata cache, so a topic created within the last few seconds may still be reported as missing. Repeat the comparison after a moment rather than creating it twice.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesThe clusters to compare against, 1 to 100 of them. Comparing one cluster is an array of length one. Results follow this order and an unreachable cluster is reported against its own item.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
atomicYes
failedYes
appliedYes
resultsYes
succeededYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so: it declares the tool is read-only, explains that only explicitly-set topic configs are compared (and why inherited defaults would falsely flag everything), notes internal topics are excluded by default, discloses metadata-cache staleness that can report a just-created topic as missing, and states how unreachable clusters are reported.

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 and output shape are front-loaded, and each paragraph carries distinct value (semantics, workflow, exclusions, caveat). It runs long and repeats the 'array of length one' framing that the schema already states, which keeps it short of a 5.

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?

An output schema exists, so return values need not be explained, yet the description still characterizes the report well enough to know it is directly consumable and even speculates on the actionable payload (partition count, replication factor, explicit configs). Combined with the exclusions and staleness caveats, nothing needed to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the nested item fields (search, cluster, include_internal) are already documented in the schema. The description reinforces scope ('1 to 100', array of length one) but adds little syntax or format detail beyond what the schema already states, 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?

States a specific verb and resource — comparing topics across 1-100 clusters against the endpoint's own cluster — and enumerates exactly what the comparison produces (only-here, only-there, disagreeing, broker/topic counts). An agent can distinguish this from list_topics or describe_topic without opening any schema.

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 concrete scenarios ('find what preproduction has that production does not', 'check whether two environments still match') and explicitly routes the agent onward: missing topics should be handed to create_topic rather than re-created by hand. It also states this tool changes nothing, which tells the agent when this tool is not the right one.

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