Skip to main content
Glama

Kafka MCP Server

Python License Kafka MCP


An MCP server implementation for Kafka, allowing LLMs to interact with and manage Kafka clusters.

Features

  • Cluster Management: View broker details describe_cluster, describe_brokers.

  • Topic Management: List list_topics, create create_topic, delete delete_topic, describe describe_topic, and increase partitions create_partitions.

  • Configuration Management: View describe_configs and modify alter_configs dynamic configs for topics, brokers, and groups.

  • Consumer Groups: List list_consumer_groups, describe describe_consumer_group, and securely manage offsets with reset_consumer_group_offset and rewind_consumer_group_offset_by_timestamp. Advanced tools include state validation, dry runs, and execution audit logging.

  • Messaging: Consume messages consume_messages (from beginning, latest, or specific offsets) and produce messages produce_message.

  • Secure Connections: Connect with TLS/mTLS and SASL PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, or OAUTHBEARER.

  • JMX Monitoring: Read broker and topic metrics from one or more Prometheus JMX Exporter endpoints and summarize cluster health.

Related MCP server: Kafka MCP Server

Prerequisites

  • Python 3.10+

  • uv package manager (recommended)

  • A running Kafka cluster (e.g., local Docker, Confluent Cloud, etc.)

Installation

  1. Clone the repository.

  2. Install dependencies:

    uv sync

Configuration

Only KAFKA_BOOTSTRAP_SERVERS is required. Existing PLAINTEXT configurations remain unchanged.

Variable

Required

Description

KAFKA_BOOTSTRAP_SERVERS

Yes

Comma-separated broker addresses, such as localhost:9092.

KAFKA_CLIENT_ID

No

Kafka client ID. Defaults to kafka-mcp.

KAFKA_SECURITY_PROTOCOL

No

PLAINTEXT, SSL, SASL_PLAINTEXT, or SASL_SSL. librdkafka defaults to PLAINTEXT when omitted.

KAFKA_CLIENT_CONFIG_JSON

No

JSON object of additional scalar confluent-kafka/librdkafka client properties. Explicit variables and connection safety settings take precedence.

SASL

Set KAFKA_SASL_MECHANISM to PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI, or OAUTHBEARER whenever a SASL security protocol is used.

PLAIN and SCRAM use:

export KAFKA_SECURITY_PROTOCOL=SASL_SSL
export KAFKA_SASL_MECHANISM=SCRAM-SHA-512
export KAFKA_SASL_USERNAME="$KAFKA_USERNAME"
export KAFKA_SASL_PASSWORD="$KAFKA_PASSWORD"

GSSAPI/Kerberos supports these optional variables:

Variable

librdkafka property

KAFKA_SASL_KERBEROS_SERVICE_NAME

sasl.kerberos.service.name

KAFKA_SASL_KERBEROS_PRINCIPAL

sasl.kerberos.principal

KAFKA_SASL_KERBEROS_KEYTAB

sasl.kerberos.keytab

KAFKA_SASL_KERBEROS_KINIT_CMD

sasl.kerberos.kinit.cmd

KAFKA_SASL_KERBEROS_MIN_TIME_BEFORE_RELOGIN

sasl.kerberos.min.time.before.relogin

The prebuilt confluent-kafka wheels do not include GSSAPI. Kerberos deployments outside Docker must install confluent-kafka against a librdkafka build compiled with SASL GSSAPI support; the provided Docker image builds that variant from source and includes the Kerberos runtime tools.

OAUTHBEARER supports librdkafka's built-in OIDC flow:

export KAFKA_SECURITY_PROTOCOL=SASL_SSL
export KAFKA_SASL_MECHANISM=OAUTHBEARER
export KAFKA_SASL_OAUTHBEARER_METHOD=oidc
export KAFKA_SASL_OAUTHBEARER_CLIENT_ID="$OAUTH_CLIENT_ID"
export KAFKA_SASL_OAUTHBEARER_CLIENT_SECRET="$OAUTH_CLIENT_SECRET"
export KAFKA_SASL_OAUTHBEARER_TOKEN_ENDPOINT_URL=https://idp.example.com/oauth/token
export KAFKA_SASL_OAUTHBEARER_SCOPE=kafka

KAFKA_SASL_OAUTHBEARER_EXTENSIONS is optional. librdkafka's default unsecured-token handler is for development and testing only; it requires both KAFKA_SASL_OAUTHBEARER_CONFIG and KAFKA_ENABLE_SASL_OAUTHBEARER_UNSECURE_JWT=true instead of the OIDC variables.

Metadata and client-assertion flows are also supported. Set KAFKA_SASL_OAUTHBEARER_METADATA_AUTHENTICATION_TYPE=azure_imds for Azure IMDS. AWS IAM uses aws_iam with KAFKA_SASL_OAUTHBEARER_CONFIG; it additionally requires confluent-kafka[oauthbearer-aws] 2.15 or newer. JWT assertion properties such as sasl.oauthbearer.grant.type and sasl.oauthbearer.assertion.private.key.file can be passed through KAFKA_CLIENT_CONFIG_JSON, so the base 2.13 client remains compatible.

TLS and mTLS

The following variables map directly to librdkafka TLS settings:

Variable

Description

KAFKA_SSL_CA_LOCATION

CA certificate path. The system CA store is used when omitted.

KAFKA_SSL_CERTIFICATE_LOCATION

Client certificate path for mTLS.

KAFKA_SSL_KEY_LOCATION

Client private key path for mTLS.

KAFKA_SSL_KEY_PASSWORD

Optional private key password.

KAFKA_SSL_ENDPOINT_IDENTIFICATION_ALGORITHM

Hostname verification algorithm, usually https.

KAFKA_SSL_CRL_LOCATION

Certificate revocation list path.

The client certificate and key must be configured together. Less common librdkafka properties, including PKCS#12 keystores and cipher controls, can be supplied through KAFKA_CLIENT_CONFIG_JSON:

export KAFKA_SECURITY_PROTOCOL=SSL
export KAFKA_CLIENT_CONFIG_JSON='{"ssl.keystore.location":"/run/secrets/client.p12","ssl.keystore.password":"secret"}'

JMX Exporter

JMX monitoring is optional and does not affect the Kafka tools. Run Prometheus JMX Exporter as a Java agent on each broker, then provide its HTTP /metrics endpoints. Keeping Java RMI disabled avoids exposing Kafka's unauthenticated remote JMX port.

export KAFKA_JMX_EXPORTER_ENDPOINTS='{
  "broker-1": "http://broker-1:7071/metrics",
  "broker-2": "http://broker-2:7071/metrics",
  "broker-3": "http://broker-3:7071/metrics"
}'

The value may also be a JSON array, a comma-separated URL list, or a comma-separated name=url list. For HTTPS or an authenticated reverse proxy, use:

Variable

Description

KAFKA_JMX_TIMEOUT_SECONDS

Per-request timeout. Defaults to 5.

KAFKA_JMX_VERIFY_SSL

Verify HTTPS certificates. Defaults to true.

KAFKA_JMX_CA_LOCATION

Custom CA certificate path.

KAFKA_JMX_CLIENT_CERTIFICATE_LOCATION

HTTPS client certificate path.

KAFKA_JMX_CLIENT_KEY_LOCATION

HTTPS client key path.

KAFKA_JMX_CLIENT_KEY_PASSWORD

Optional HTTPS client key password.

KAFKA_JMX_USERNAME / KAFKA_JMX_PASSWORD

HTTP Basic authentication.

KAFKA_JMX_BEARER_TOKEN

HTTP Bearer authentication.

KAFKA_JMX_HEADERS_JSON

Additional HTTP headers as a JSON object of strings.

Basic and Bearer authentication are mutually exclusive. JMX tools return a structured not_configured response when no exporter endpoints are set.

Usage

Running the Server

You can run the server directly using uv or python, or use Docker.

export KAFKA_BOOTSTRAP_SERVERS=localhost:9092
uv run kafka-mcp

Using Docker

The image supports TLS, PLAIN, SCRAM, OAUTHBEARER/OIDC, and GSSAPI. Its multi-stage build compiles the Python client against a checksum-verified librdkafka release with Kerberos support.

  1. Build the Docker image:

    docker build -t kafka-mcp .
  2. Run the container:

    docker run -i --rm -e KAFKA_BOOTSTRAP_SERVERS=host.docker.internal:9092 kafka-mcp

    (Note: Use host.docker.internal instead of localhost if your Kafka cluster is running on the host machine.)

Claude Desktop Configuration

Add the following to your Claude Desktop configuration file (claude_desktop_config.json):

{
  "mcpServers": {
    "kafka": {
      "command": "<uv PATH>",
      "args": [
        "--directory",
        "<kafka-mcp PATH>",
        "run",
        "kafka-mcp"
      ],
      "env": {
        "KAFKA_BOOTSTRAP_SERVERS": "localhost:9092"
      }
    }
  }
}

Debugging / Development

To verify that the server can start and connect to your Kafka cluster (ensure your Kafka is running first):

# Set your bootstrap server
export KAFKA_BOOTSTRAP_SERVERS=localhost:9092

# Run a quick check
uv run python -c "from src.kafka_mcp import main; print('Imports successful')"

Available Tools

Category

Tool Name

Description

Cluster

describe_cluster

Get cluster metadata (controller, brokers).

describe_brokers

List all brokers.

Metrics

describe_cluster_health

Summarize replication, ISR, controller, log-directory, and broker reachability signals.

get_broker_metrics

Read curated broker metrics or filtered raw exporter samples.

get_topic_metrics

Read metrics carrying the requested topic label.

Topics

list_topics

List all available topics.

describe_topic

Get detailed info (partitions, replicas) for a topic.

create_topic

Create a new topic with partitions/replication factor.

delete_topic

Delete a topic.

create_partitions

Increase partitions for a topic.

Configs

describe_configs

View dynamic configs for topic/broker/group.

alter_configs

Update dynamic configs.

Consumers

list_consumer_groups

List all active consumer groups.

describe_consumer_group

Get members and state of a group.

get_consumer_group_offsets

Get committed offset, high/low watermarks, and calculate total lag for a topic.

reset_consumer_group_offset

Safely change consumer group offsets to earliest, latest, or a specific offset.

rewind_consumer_group_offset_by_timestamp

Rewind/advance consumer group offsets securely based on a timestamp.

Messages

consume_messages

Consume messages from a topic (supports offsets, limits).

produce_message

Send a message to a topic.

Project Structure

src/kafka_mcp/
├── configs/       # Configuration handling
├── connections/   # Kafka client factories (singleton)
├── metrics/       # Prometheus JMX Exporter client and parser
├── tools/         # Tool implementations
│   ├── admin.py     # Topic & Config management
│   ├── cluster.py   # Cluster metadata
│   ├── consumer.py  # Consumer group & message consumption
│   ├── metrics.py   # Broker, topic, and cluster health metrics
│   └── producer.py  # Message production
└── main.py        # Entry point & MCP tool registration

Troubleshooting

  • Connection Refused: Ensure KAFKA_BOOTSTRAP_SERVERS is correct and reachable.

  • SASL Authentication Failed: Verify the security protocol, mechanism, credentials, and CA trust path together.

  • JMX Status Is Unknown: Ensure the exporter rules include Kafka broker/controller MBeans. Raw samples remain available through get_broker_metrics(include_raw=true).

Available Tools

19 tools
alter_configsB

Update dynamic configs for a resource. resource_type: "topic", "broker", or "group" configs: Dictionary of config key-value pairs

ParametersJSON Schema
NameRequiredDescriptionDefault
configsYes
resource_nameYes
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It indicates mutation ('Update') but does not disclose side effects, authorization needs, or reversibility. The brief text adds limited behavioral insight.

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?

Two sentences efficiently describe the action and parameters with no extraneous content. Information is front-loaded and easy to scan.

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?

Given 3 parameters and an output schema, the description is minimally adequate. It states the action and parameter types but omits usage context, prerequisites, or comparison to sibling tools like describe_configs.

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 coverage is 0%, so description must compensate. It explains resource_type with allowed values and configs as a dictionary of key-value pairs. However, resource_name is only named, and no specifics about valid config keys are provided.

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 verb 'Update' and the resource 'dynamic configs for a resource,' listing specific resource_type values. However, it does not explicitly differentiate from sibling tools like describe_configs, which reads configs.

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 on when to use this tool versus alternatives (e.g., describe_configs for reading) or when not to use it (e.g., non-dynamic configs). The description lacks context for appropriate usage.

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

consume_messagesB

Consumes messages from a topic. offset_spec: 'earliest', 'latest', or specific integer offset. timeout: seconds to wait for messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
timeoutNo
partitionNo
topic_nameYes
offset_specNolatest

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided; description only mentions offset_spec and timeout but omits side effects like offset advancement, commit behavior, or blocking nature.

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?

Two sentences, front-loaded with purpose, then parameter details. Efficient but could be more structured with one line per parameter.

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?

Tool has 5 parameters and no annotations; description covers 2 parameters partially. Output schema exists but doesn't excuse missing parameter context. Adequate but not thorough.

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 coverage 0%; description adds meaning for offset_spec and timeout but ignores topic_name, partition, and limit, which have defaults and types not explained.

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 clearly 'Consumes messages from a topic', providing specific verb and resource. Distinct from siblings like produce_message or get_consumer_group_offsets.

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 on when to use this tool versus alternatives (e.g., produce_message, describe_topic). Missing context like offsets management.

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

create_partitionsB

Increases the number of partitions for a topic. Note: Partition count can only be increased, not decreased.

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYes
new_total_countYes

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?

With no annotations provided, the description carries the full burden. It discloses the irreversible nature of increasing partitions, which is key. However, it omits other behavioral aspects like need for topic existence, permission requirements, or whether it affects existing partitions.

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?

Two sentences, zero fluff, directly states purpose and a key note. Efficient and well-structured with no extraneous 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 tool has 2 parameters and an output schema exists, but the description lacks details like prerequisites (topic must exist), exact behavior of new_total_count (replace or add), and error conditions. It is minimally adequate but not fully complete.

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 description must compensate. It does not explain the parameters 'topic_name' or 'new_total_count' beyond the context. An agent needs to infer that 'new_total_count' means the desired total count, but no details on constraints like must be greater than current count.

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 verb 'Increases' and the resource 'partitions for a topic'. It distinguishes from siblings like create_topic or alter_configs by focusing solely on partition count increase.

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 a constraint (partition count can only be increased) but does not specify when to use this tool versus alternatives like alter_configs or when it's inappropriate. No explicit guidance on context.

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

create_topicC

Creates a new topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
configNo
topic_nameYes
num_partitionsNo
replication_factorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, and the description only says 'creates'. It doesn't disclose that this is a mutation, any required permissions, or what happens to existing topics. Output schema exists but return format is not described.

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

Conciseness3/5

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

Extremely concise at one sentence, but lacks any structure or additional context. It is not overly verbose, but could include more helpful information without becoming wordy.

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?

With 4 parameters and 0% schema coverage, the description is too minimal. It doesn't mention return values (output schema exists) or any constraints. Given the number of sibling tools, more context is needed.

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%, but the description adds no parameter info. While parameter names are somewhat self-explanatory, 'config' is vague and would benefit from explanation (e.g., map of topic-level configs).

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 ('Creates a new topic') and distinguishes from siblings like delete_topic and describe_topic. However, it lacks context like 'in Kafka cluster' which would clarify the domain.

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 on when to use this tool vs alternatives such as alter_configs or produce_message. No prerequisites or when-not-to-use mentioned.

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

delete_topicC

Deletes a topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

The description provides no behavioral details beyond the action. It does not mention consequences like data loss, required permissions, or whether the topic must exist. Annotations are absent, so the description should compensate but fails.

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

Conciseness3/5

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

The description is single-sentence and direct, but overly brief. While concise, it sacrifices necessary detail for completeness.

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 destructive operation with one parameter and no annotations, the description lacks essential context like error cases, irreversibility, or output behavior. The existence of an output schema does not compensate for missing behavioral information.

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?

With 0% schema description coverage, the description should explain the parameter. It does not mention topic_name or any additional context, leaving the agent to rely solely on the parameter name.

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 specifies the verb 'Deletes' and the resource 'a topic', clearly indicating the tool's action. It differentiates from siblings like create_topic or describe_topic.

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 on when to use this tool versus alternatives, such as when deletion is irreversible or required permissions. The description lacks context for decision-making.

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

describe_brokersB

Returns a list of brokers with their details.

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?

No annotations are present, and the description only states it returns a list. It fails to disclose whether it is read-only, any authentication requirements, or potential side effects.

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?

The description is a single, front-loaded sentence with no wasted words. It could be considered slightly terse but not under-specified for a zero-parameter tool.

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 the tool has no parameters and outputs a list of broker details, the description is adequate. However, it lacks context on what 'details' include, though the output schema likely covers that.

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?

There are no parameters, so the baseline is 4. The description adds no parameter-specific information since none exist.

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 it 'Returns a list of brokers with their details,' specifying the verb and resource. It is distinguishable from siblings like describe_cluster or describe_topic, but does not explicitly differentiate itself.

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 usage guidance is provided; the description does not indicate when to use this tool versus alternatives like describe_cluster or describe_topic.

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

describe_clusterA

Returns information about the Kafka cluster (brokers, controller).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'returns information' without disclosing side effects, permissions, rate limits, or data freshness. Minimal behavioral detail beyond purpose.

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?

Single sentence of 10 words, front-loaded with action. No redundancy or excess. Every word 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?

Tool is simple with no parameters and an output schema. Description explains what is returned. Could mention lightweight nature or snapshot characteristic, but adequate for its complexity.

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?

Input schema has zero parameters, so description adds no param info. Baseline for 0 params is 4. Description is sufficient as schema covers all (vacuous) details.

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 verb 'returns' and the resource 'Kafka cluster', specifying the aspects 'brokers, controller'. This differentiates it from siblings like describe_brokers (individual broker details) and describe_topic (topic info).

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?

No explicit guidance on when to use this tool versus alternatives like describe_brokers or describe_topic. The purpose is implied but lacks clear contextual cues for decision-making.

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

describe_cluster_healthB

Summarizes Kafka health signals exposed by Prometheus JMX Exporter.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/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 implies a read-only action through the verb 'summarizes', but does not explicitly state that it is non-destructive, whether any permissions are required, or what errors might occur. It also does not clarify what 'health signals' encompasses beyond the name.

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, focused sentence with no wasted words. The core purpose is front-loaded, placing the action and resource at the start. Every word contributes to meaning.

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 that the tool takes no parameters and has an output schema (presumably defining the health signal structure), the description is reasonably complete. However, it stops short of explaining what sorts of health signals are included or how they might differ from other metric tools, leaving some ambiguity about scope.

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 there is nothing for the description to elaborate on. Per the guideline, a baseline of 4 applies when no parameters exist, and the description does not need to provide additional parameter context.

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 states a specific action ('Summarizes') on a specific resource ('Kafka health signals') and names the data source ('Prometheus JMX Exporter'). This clearly identifies the tool's function and distinguishes it from siblings like describe_cluster or get_broker_metrics, which focus on different aspects of the cluster.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus the sibling describe tools. The description does not mention use cases, prerequisites, or alternatives, leaving the agent to infer when this is the right choice.

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

describe_configsB

Get dynamic configs for a resource. resource_type: "topic", "broker", or "group" (case insensitive)

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_nameYes
resource_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/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 says 'Get dynamic configs.' It does not disclose any behavioral traits such as authentication, rate limits, side effects, or error handling. Minimal transparency.

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?

The description is concise with two sentences, front-loading the main purpose. No extraneous information, though a bit bare.

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?

Despite having an output schema, the description provides insufficient context about the tool's behavior, error handling, or the nature of configs returned. More detail would improve completeness.

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?

With 0% schema description coverage, the description partially compensates by listing valid values for resource_type. However, resource_name receives no additional meaning beyond the schema, leaving it ambiguous.

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 ('Get'), the resource ('dynamic configs'), and the resource type with valid values. It distinguishes from siblings like 'alter_configs' and other describe tools.

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 lists valid resource_type values but does not provide explicit when-to-use or when-not-to-use guidance. No mention of alternatives or context for choosing this tool over others.

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

describe_consumer_groupC

Describes a specific consumer group.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral transparency. It only says 'describes,' implying a read operation, but does not disclose whether the tool requires permissions, what happens if the group does not exist, or if there are any side effects. This is insufficient for a tool with no annotation support.

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?

The description is extremely concise, consisting of a single sentence with no filler. However, it may be overly terse at the expense of providing essential details. Every word earns its place, but additional context could be added without significant verbosity.

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 presence of an output schema, the description does not need to explain return values. However, it lacks context on what 'describe' entails—e.g., state, members, partition offsets. With no annotations and a single parameter, the description should provide a fuller picture of the tool's functionality to aid agent decision-making.

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 input schema has one parameter 'group_id' with 0% description coverage. The tool description does not mention or explain this parameter, leaving its meaning and constraints entirely undocumented. The schema defines its type as string and required, but the description adds no value beyond the schema itself.

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 'Describes a specific consumer group' clearly identifies the verb 'describes' and the resource 'consumer group'. It distinguishes from sibling tools like list_consumer_groups (which lists all groups) and get_consumer_group_offsets (which gets offsets). However, it lacks specificity on what aspects are described (e.g., state, members, partition assignment).

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 usage guidelines are provided. The description does not mention when to use this tool versus alternatives, nor does it specify prerequisites or exclusions. For example, it does not clarify that this tool is for a single group while list_consumer_groups is for listing all groups.

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

describe_topicB

Returns detailed information about a specific topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
topic_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It only states 'returns detailed information' without specifying what information, permissions needed, or side effects (likely none). The output schema may cover return details, but the description adds no behavioral context.

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?

The description is a single sentence with no unnecessary words. It is front-loaded with the core action, but could be slightly more informative without losing conciseness.

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?

Given the low complexity (1 parameter) and existence of an output schema, the description is adequate for basic use. However, it lacks usage guidance and behavioral details, making it minimally complete.

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 coverage is 0%, meaning the description does not explain the parameter 'topic_name' beyond its name. It fails to add meaning like required format, examples, or valid values, which is needed when schema lacks descriptions.

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 verb ('returns detailed information') and resource ('a specific topic'). It distinguishes itself from sibling tools like describe_brokers, describe_cluster, etc., by focusing on a single topic.

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 on when to use this tool vs alternatives, such as describe_configs or describe_consumer_group. No when-not-to-use or context provided.

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

get_broker_metricsB

Returns curated or filtered raw JMX Exporter metrics for one or all brokers.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
broker_idNo
include_rawNo
metric_nameNo
label_filtersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only hints at two modes ('curated' and 'raw') without explaining what each entails. It does not state read-only status, defaults (e.g., when broker_id is null), pagination, or error handling. The description is too terse to convey necessary 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 a single, efficient sentence that front-loads the core purpose without waste. Every word contributes to defining the tool's function, making it easy to scan.

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?

Despite having an output schema, the tool has five optional parameters and no annotations. The description fails to provide usage context, parameter semantics, or behavioral details. An agent cannot confidently invoke this tool correctly without additional schema inspection and heuristics, making it incomplete for this complexity level.

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 for the five parameters, but it does not. Only vague hints exist: 'one or all brokers' implies broker_id, and 'curated or raw' might relate to include_raw, but metric_name and label_filters are completely unexplained. The description adds minimal value over the bare schema.

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 returns JMX Exporter metrics, specifies 'curated or filtered raw' as the nature, and scopes to 'one or all brokers.' This distinguishes it from siblings like get_topic_metrics (topic-level) and describe_brokers (metadata), so the 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 guidance is provided on when to use this tool versus alternatives. It does not mention conditions (e.g., 'use for broker-level metrics' or 'for topic metrics, use get_topic_metrics'). An agent would have to infer usage from the name and surrounding tools, which is insufficient.

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

get_consumer_group_offsetsA

Get the committed offsets and lag for a specific consumer group and topic. Returns the committed offset, high/low watermarks, and calculated lag for each partition.

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYes
topic_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/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 accurately describes the output (committed offset, watermarks, lag) but does not mention read-only nature, authentication needs, rate limits, or error conditions. It adds moderate value beyond the bare minimum.

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, front-loaded with the purpose, followed by details of return values. No unnecessary words, making it efficient for an AI agent to parse.

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 the tool's simplicity (2 required params, output schema exists), the description covers the core purpose and expected return. However, it omits potential error conditions (e.g., group not found) and usage context, which would be beneficial for a Kafka tool. Overall, it is nearly complete for a read operation.

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 input schema has 0% description coverage, so the description must clarify parameter meaning. It implicitly links group_id and topic_name to 'specific consumer group and topic', but provides no further detail on format, constraints, or examples. This is only minimal added value.

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 verb 'get', the resource 'committed offsets and lag', and specifies it is for a specific consumer group and topic. This effectively distinguishes it from sibling tools like describe_consumer_group or reset_consumer_group_offset, which have different purposes.

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 its siblings. It does not mention prerequisites, such as requiring an existing consumer group or topic, nor does it exclude scenarios where other tools might be more appropriate.

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

get_topic_metricsB

Returns JMX Exporter metrics labeled for a Kafka topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
broker_idNo
topic_nameYes
include_rawNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/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 implies a read-only operation ('Returns'), which is acceptable for a metrics tool, but it does not disclose other behaviors such as aggregation across brokers, pagination limits, or any potential performance implications. It adds minimal value beyond the obvious read semantics.

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 directly states the core function. It is appropriately sized for the tool's simplicity and contains no filler or redundant information.

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 four parameters, an output schema, and no annotations, the description is too sparse. It fails to explain any parameter semantics, provides no usage context, and does not mention the output schema or return format. The existence of an output schema reduces some burden, but the missing parameter guidance and usage context make it incomplete for correct invocation.

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 has 0% description coverage, so the description must compensate. However, it mentions none of the four parameters (topic_name, limit, broker_id, include_raw) and offers no explanation of their roles or constraints. This is a significant gap for a tool with a required parameter and three optional ones, leaving the agent without crucial semantic context.

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 returns JMX Exporter metrics for a Kafka topic, specifying the verb 'Returns' and the resource type. It differentiates from siblings like get_broker_metrics (broker-level) and describe_topic (configuration/description), making the purpose 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?

The description provides no guidance on when to use this tool versus alternatives such as get_broker_metrics or describe_topic. There are no explicit conditions, exclusions, or mentions of sibling tools, leaving the agent to infer selection based solely on the name and brief description.

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

list_consumer_groupsB

Lists all consumer groups.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/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. It states the action but does not explicitly confirm it is a read-only operation, nor does it disclose any potential side effects or permissions. The minimal wording is insufficient for full transparency.

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?

The single-sentence description is concise and directly states the purpose. However, it could be slightly restructured to front-load more context, but overall it is efficient.

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?

Given the presence of an output schema and zero parameters, the description is mostly complete for the tool's simplicity. However, it lacks usage context and behavioral details beyond the basic action, making it barely adequate.

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 zero parameters, and schema description coverage is 100%. The description does not need to elaborate on parameters. This is adequate.

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 'Lists all consumer groups' clearly states the verb 'lists' and the resource 'consumer groups'. This distinguishes it from sibling tools like 'describe_consumer_group', which targets a specific group.

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 on when to use this tool versus alternatives such as 'describe_consumer_group' or other listing tools. The description lacks context for appropriate usage.

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

list_topicsB

Returns a list of all topic names in the cluster.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must fully convey behavior. It only states it returns a list of names, with no mention of side effects, performance, pagination, or ordering. This is minimal for a read operation without annotation support.

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, clear sentence that is front-loaded and contains no wasted words. It efficiently conveys the tool's purpose.

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 the tool's simplicity (no parameters, output schema exists), the description adequately states the return type. It could mention possible empty results or scope, but the existing output schema likely covers structure. Overall complete for this complexity level.

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 zero parameters, so description adds no parameter-specific meaning. Baseline for 0 parameters is 4 per guidelines. The description correctly indicates no input is needed.

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 returns all topic names in the cluster. It distinguishes from siblings like 'describe_topic' which provides details, but does not explicitly differentiate from other list-tools. The verb 'Returns' and resource 'list of all topic names' are specific.

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 such as 'describe_topic' for details. No prerequisites, exclusions, or conditions are mentioned. The usage context is implied only.

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

produce_messageC

Produces a message to a topic.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
valueYes
headersNo
topic_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behaviors. It only states the basic action without detailing side effects (e.g., auto-creation of topics, idempotency, retries) or requirements (e.g., authentication). For a producing tool, this is insufficient for safe invocation.

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 no wasted words. It is front-loaded and immediately understandable. However, extreme brevity sacrifices completeness.

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 complexity (4 parameters, no schema descriptions, no annotations, has output schema), the description is severely incomplete. It lacks details on return values, error conditions, or messaging system specifics, which are critical for correct usage.

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?

With 0% schema description coverage, the description adds no meaning beyond parameter names. It does not explain the purpose of 'key' or 'headers' or how they affect message delivery. The agent must guess semantics from names alone, which is risky.

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 'Produces a message to a topic.' clearly states the action (produce) and the resource (message to a topic). It distinguishes from sibling tools like 'consume_messages' or admin tools. However, the verb 'produces' is slightly vague; 'publish' or 'send' would be more standard.

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 on when to use this tool versus alternatives like 'consume_messages' or topic management tools. The description does not mention prerequisites, such as topic existence or authorization, leaving the agent without context for appropriate use.

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

reset_consumer_group_offsetA

Resets the offset of a consumer group using AdminClient. offset_spec: 'earliest', 'latest', or a specific integer offset string. dry_run: If True, only calculates and returns the proposed offset changes without applying them. force: If True, forces the modification even if the group is active or STABLE.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
dry_runNo
group_idYes
partitionNo
topic_nameYes
offset_specNolatest

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

No annotations provided, so description carries burden. It explains key behaviors: uses AdminClient, defines offset_spec values, dry_run (only calculates), force (override active group). Does not cover error states or idempotency, but sufficient for core 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?

Two sentences: first states purpose, second details parameters. No fluff, front-loaded, each sentence adds value. Ideal for quick scanning.

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?

Has output schema, so return values not needed. Description covers main behaviors but lacks prerequisites (e.g., group must exist) and side effects. With no annotations, completeness is adequate but not thorough.

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 coverage is 0% (no parameter descriptions). Description adds meaning for 3 of 6 parameters (offset_spec, dry_run, force) but omits group_id, topic_name, and partition behavior (null = all partitions). Self-explanatory names partially compensate, but incomplete.

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?

Description clearly states the action ('Resets the offset of a consumer group') and resource, with specific parameter explanations (offset_spec, dry_run, force). It distinguishes from sibling tools like 'rewind_consumer_group_offset_by_timestamp' by focusing on manual offset reset rather than timestamp-based.

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?

Description implies usage when resetting offsets to earliest/latest/specific integer but lacks explicit 'when to use' vs. alternatives. No guidance on prerequisites or exclusions, though the offset_spec details give context.

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

rewind_consumer_group_offset_by_timestampB

Rewinds consumer group offsets manually based on a specific timestamp. Finds offsets matching the timestamp using Consumer, then sets using AdminClient. dry_run: If True, only calculates and returns the proposed offset changes without applying them. force: If True, forces the modification even if the group is active or STABLE.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNo
dry_runNo
group_idYes
partitionNo
topic_nameYes
timestamp_msYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

The description details the internal steps (Consumer, AdminClient) and explains the dry_run (preview changes) and force (override active group) parameters. This goes beyond the bare minimum, though it omits potential side effects like message loss 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?

The description is three sentences, front-loaded with the core action ('Rewinds... manually based on a specific timestamp'), followed by technical details and parameter explanations. Every sentence adds value 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?

Given the complexity (6 parameters, no annotations), the description is adequate but lacks prerequisites (permissions, group state), error conditions, and return value context (though an output schema exists). The force parameter notes one important constraint, but more completeness is needed.

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?

With 0% schema description coverage, the description must compensate. It explicitly explains dry_run and force but only implicitly covers group_id, topic_name, and timestamp_ms through the purpose. It does not describe the partition parameter or the unit of timestamp_ms, leaving gaps for half of 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 rewinds consumer group offsets based on a timestamp, with specific verbs ('Rewinds') and resources ('consumer group offsets'). However, it does not explicitly differentiate from sibling tools like 'reset_consumer_group_offset', though the timestamp-based method implies uniqueness.

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 on when to use this tool over alternatives. The description mentions dry_run and force but lacks context for appropriate usage scenarios or exclusions.

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. 3 tool updatesv2.0.0
    • Addeddescribe_cluster_health
    • Addedget_broker_metrics
    • Addedget_topic_metrics
  2. 16 tool updatesv1.1.1
    • First observedalter_configs
    • First observedconsume_messages
    • First observedcreate_partitions
    • First observedcreate_topic
    • First observeddelete_topic
    • First observeddescribe_brokers
    • First observeddescribe_cluster
    • First observeddescribe_configs
    • First observeddescribe_consumer_group
    • First observeddescribe_topic
    • First observedget_consumer_group_offsets
    • First observedlist_consumer_groups
    • First observedlist_topics
    • First observedproduce_message
    • First observedreset_consumer_group_offset
    • First observedrewind_consumer_group_offset_by_timestamp

TDQS

B3.4/5.0
Disambiguation4/5

Tools are generally distinct, with clear purposes for topics, consumer groups, brokers, and cluster info. There is a slight overlap between reset_consumer_group_offset and rewind_consumer_group_offset_by_timestamp, but descriptions clarify the difference.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case, e.g., create_topic, describe_cluster, list_consumer_groups. This makes the tool set predictable and easy to navigate.

Tool Count5/5

With 16 tools, the server covers a broad range of Kafka operations without being overwhelming. Each tool serves a distinct purpose, and the count is appropriate for a Kafka management interface.

Completeness4/5

The tool set covers essential Kafka operations: topic lifecycle, message produce/consume, consumer group management, and cluster/broker/config info. Minor gaps like partition reassignments or ACL management exist but do not hinder common use cases.

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
    An MCP server that enables interaction with Kafka clusters to manage topics, monitor consumer groups, and stream messages. It provides a comprehensive suite of tools for broker metadata inspection and local Kafka user management.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that enables AI assistants to safely interact with Apache Kafka clusters, providing tools for topic management, message operations, consumer groups, and cluster information.
    3
    MIT
  • F
    license
    C
    quality
    D
    maintenance
    Exposes Kafka administration operations as MCP tools, enabling AI agents to inspect Kafka clusters using natural language.
    1
    -

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/wklee610/kafka-mcp'

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