AKHQ MCP Server
Allows AI assistants to interact with Apache Kafka clusters via AKHQ's REST API, providing tools for managing topics, consumer groups, schema registry, nodes/brokers, Kafka Connect, ksqlDB, and ACLs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AKHQ MCP Serverlist all topics in the dev environment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AKHQ MCP Server
An MCP (Model Context Protocol) server for AKHQ — the GUI for Apache Kafka.
Enables AI assistants (Claude, Cursor, etc.) to interact with Kafka clusters through AKHQ's REST API.
Features
Multi-environment support — configure multiple AKHQ instances (dev, staging, prod) and switch between them at runtime
Flexible authentication — supports no auth, HTTP Basic auth, and Bearer auth
Comprehensive AKHQ API coverage — topics, consumer groups, schema registry, nodes/brokers, Kafka Connect, ksqlDB, ACLs
Related MCP server: KafkaIQ
Installation
npm install
npm run buildOr run directly via npx:
{
"mcpServers": {
"akhq": {
"command": "npx",
"args": ["akhq-mcp-server"]
}
}
}Configuration
Option 1: Config file (recommended for multiple environments)
Set the AKHQ_CONFIG_FILE environment variable to point to a JSON config file:
AKHQ_CONFIG_FILE=/path/to/akhq-config.json npx akhq-mcp-serverExample config file (akhq-config.json):
{
"environments": [
{
"name": "local",
"baseUrl": "http://localhost:8080",
"auth": { "type": "none" }
},
{
"name": "dev",
"baseUrl": "https://akhq-dev.example.com",
"auth": {
"type": "basic",
"username": "admin",
"password": "secret"
}
},
{
"name": "prod",
"baseUrl": "https://akhq-prod.example.com",
"auth": {
"type": "bearer",
"token": "eyJhbGci..."
}
}
],
"defaultEnvironment": "local"
}Auth types:
"none"— no authentication"basic"— HTTP Basic authentication (username + password)"bearer"— Bearer authentication
Option 2: Environment variables (single environment)
Variable | Description | Default |
| Base URL of your AKHQ instance |
|
| Name for this environment |
|
| Auth type: |
|
| Username (for | |
| Password (for | |
| Bearer token (for |
Example with basic auth:
AKHQ_BASE_URL=https://akhq.example.com \
AKHQ_AUTH_TYPE=basic \
AKHQ_AUTH_USERNAME=admin \
AKHQ_AUTH_PASSWORD=secret \
node dist/main.jsMCP Client Setup
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"akhq": {
"command": "node",
"args": ["/path/to/akhq-mcp-server/dist/main.js"],
"env": {
"AKHQ_CONFIG_FILE": "/path/to/akhq-config.json"
}
}
}
}Cursor
Add to .cursor/mcp.json in your project or globally:
{
"mcpServers": {
"akhq": {
"command": "npx",
"args": ["akhq-mcp-server"],
"env": {
"AKHQ_CONFIG_FILE": "/path/to/akhq-config.json"
}
}
}
}Available Tools
Environment Management
Tool | Description |
| List all configured AKHQ environments |
| Switch the active AKHQ environment |
| Get the currently active environment |
General
Tool | Description |
| Get all auth details for current instance |
| Get all cluster info |
| Get current user info |
| Get default topic configuration |
Topics
Tool | Description |
| List all topics |
| Create a new topic |
| Get topic details |
| Delete a topic |
| Get topic configuration |
| Update topic configuration |
| Get topic messages |
| Produce a message to a topic |
| Delete records from a topic |
| Get ACLs for a topic |
Consumer Groups
Tool | Description |
| List all consumer groups |
| Get consumer group details |
| Delete a consumer group |
| Get consumer group offsets |
| Update consumer group offsets |
| Get ACLs for a consumer group |
| Get consumer group members |
| Get topics for a consumer group |
Schema Registry
Tool | Description |
| List all schemas |
| Create a new schema |
| Get schema by subject |
| Delete a schema |
| Get all versions of a schema |
| Get a specific schema version |
Nodes / Brokers
Tool | Description |
| List all nodes |
| Get node details |
| Get node configuration |
| Update node configuration |
| Get node log configuration |
Kafka Connect
Tool | Description |
| List all connectors |
| Create a connector |
| Get connector details |
| Delete a connector |
| Get connector configuration |
| Update connector configuration |
| Pause a connector |
| Resume a connector |
| Restart a connector |
| Get connector tasks |
| Restart a connector task |
| List connect plugins |
ksqlDB
Tool | Description |
| Get ksqlDB server info |
| List ksqlDB queries |
| List ksqlDB streams |
| List ksqlDB tables |
| Execute a ksqlDB statement |
| Execute a ksqlDB pull query |
ACLs
Tool | Description |
| List all ACLs for a cluster |
| Get ACLs for a specific principal |
Development
npm run build # Compile TypeScript
npm run dev # Watch modeLicense
This project is licensed under the MIT License.
Available Tools
58 toolsclear_bearer_tokenADestructiveIdempotent
Clear the stored bearer token for an AKHQ environment. The next API call will fail with an auth error prompting for a new token.
| Name | Required | Description | Default |
|---|---|---|---|
| environment | Yes | The environment name whose token should be cleared |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true, and the description aligns with those. It adds valuable context beyond the annotations by explaining the consequence: the next API call will fail with an auth error prompting a new token. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler. The core action is front-loaded, and the behavioral consequence is stated concisely in the second sentence. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, side-effect-only tool with strong annotations and a sibling set_bearer_token, the description is sufficient. It explains the action, the scope, and the follow-up consequence. No output schema is needed here because the tool returns no meaningful value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the environment parameter already documented as 'The environment name whose token should be cleared.' The tool description only restates the environment concept without adding new parameter-level detail, so the schema carries the parameter semantics fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Clear') and a specific resource ('stored bearer token for an AKHQ environment'), and it clarifies the scope is per-environment. This clearly differentiates it from the sibling set_bearer_token, which performs the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a stored token should be removed so that the next call prompts for a new one. However, it does not explicitly name the alternative (set_bearer_token) or state when not to use this tool, leaving some selection reasoning to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_connectBDestructive
Delete a connect definition
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description simply repeats the destructive nature with the word 'Delete'. It adds no further behavioral context such as irreversibility, cascading effects, or prerequisites. No contradiction exists, but the description provides no value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, precise sentence with no filler words. It front-loads the action and resource clearly, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity delete operation with complete schema documentation and strong destructive annotations, the description is largely sufficient. It includes the essential action and resource, and the schema provides required parameter details. Slightly more context about deletion effects could push it higher, but nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description does not add any parameter-level meaning, but the schema carries the burden, making a baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Delete') and a specific resource ('connect definition'). It is distinct enough from sibling delete tools like delete_topic and delete_schema, though it does not explicitly differentiate itself from related connect tools such as post_connect or get_connects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as post_connect, get_connect_by_name, or get_connect_resume. The usage context is only implied by the name and description, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_groupBDestructive
Delete a consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is destructive, but the description adds no behavioral context beyond that, such as irreversibility, impact on group offsets or members, or behavior when the group does not exist. With no output schema, these details would be valuable for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short, front-loaded sentence with no filler or redundancy. Every word contributes to stating the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema fully documents the two required parameters and the annotations provide the destructive safety signal, so the description is minimally sufficient for invocation. However, for a destructive operation with no output schema, it lacks context about postconditions and prerequisites, leaving some uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters ('cluster' and 'groupName'), so schema description coverage is 100%. The free-text description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource, 'Delete a consumer group', which unambiguously states the operation. It also differentiates this tool from sibling tools like get_groups and delete_topic by naming the consumer group as the target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no caveats such as whether the group must be inactive or unused. The usage context must be inferred entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_schemaBDestructive
Delete a schema subject
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| subject | Yes | Schema subject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds no further behavioral detail such as permanence, whether all versions under the subject are removed, or auth/rate-limit implications, so it contributes little beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with the verb and object front-loaded. There is no filler, redundancy, or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the annotations cover the destructive profile, but the description omits important side effects of deleting a schema subject, such as whether all versions are removed permanently. With no output schema and no mention of prerequisites or fallback behavior, the description is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for both parameters, cluster and subject, so the schema already documents them. The description only repeats 'schema subject' and adds no extra semantic detail about parameter values or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb ('Delete') and a clear resource ('a schema subject'), making the action unambiguous. It also distinguishes this tool from sibling schema tools like get_schema_by_subject, get_schema_versions, and post_schema, which perform read or create operations instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus alternatives, no preconditions, and no exclusion criteria. Usage must be inferred entirely from the verb 'Delete'; nothing explains when deletion is appropriate or what conditions must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_topicBDestructive
Delete a topic
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond the word 'delete', but the annotations already declare destructiveHint=true and idempotentHint=false, and the text does not contradict them. It does not describe permanence, cascading effects, or failure behavior, but the annotation coverage lowers the burden on the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, with no filler or repetition. It is appropriately sized for a simple tool, though it is so terse that it contributes little beyond the schema and annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive operation, the annotations and schema cover the main safety profile. However, the description omits any statement about consequences, response behavior, or edge cases, leaving the agent with only minimal guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'cluster' and 'topicName' both described. The description 'Delete a topic' adds no parameter-level meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('a topic'), making the core operation clear. It differentiates from sibling delete_* tools at the noun level (e.g., delete_topic_records, delete_group), though it does not explicitly say 'entire topic' or 'Kafka topic'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as delete_topic_records, nor are prerequisites (cluster/topic existence, authorization) or exclusion conditions mentioned. The description relies entirely on the tool name to imply usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_topic_recordsCDestructive
Delete records from a topic
| Name | Required | Description | Default |
|---|---|---|---|
| offset | Yes | Delete records up to this offset | |
| cluster | Yes | Cluster name | |
| partition | Yes | Partition number | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate that. But it adds no behavioral context beyond the literal delete: it doesn't state that deletion is permanent, that it applies to a single partition up to the specified offset, or any side effects. This is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no fluff. However, it is under-specified for such a destructive operation, so while concise, it is not fully appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and terse annotations, the description should explain the operational details (partition-specific deletion, offset semantics, irreversibility). It does not, leaving the agent to infer critical behavior for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters have schema descriptions, so the schema carries the semantic load. The description itself doesn't enrich the parameter meanings, but with 100% coverage, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('records from a topic'), which distinguishes it from sibling delete_topic that removes the entire topic. However, it omits the 'up to offset' scope that the schema reveals, leaving some ambiguity about what 'records' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 delete_topic, nor does it mention prerequisites or exclusions. The intended use case (deleting records up to an offset in a partition) is left entirely to schema inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_aclsARead-onlyIdempotent
List all ACLs for a cluster
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Optional search term | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the cluster-level 'all ACLs' scope, which is useful, but it does not disclose behaviors like whether results include only direct ACLs, whether search filters client-side, or what happens for an unknown cluster. The bar is lower due to strong annotations, so this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, active-voice sentence with zero filler. The verb, resource, and scope are front-loaded, making the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with well-covered parameters and strong annotations, this is minimally viable. However, there is no output schema, and the description does not clarify return shape, filtering semantics, or behavior in edge cases such as missing clusters or empty ACL sets. It is complete enough for tool selection but not fully complete for sophisticated invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required cluster and optional search are already documented in the schema. The description reinforces that the tool lists ACLs for a cluster, but it does not add meaning to the search parameter beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all ACLs for a cluster.' The word 'all' and the cluster scope help distinguish it from sibling tools like get_acls_by_principal, get_topic_acls, and get_group_acls, but it does not explicitly name or contrast these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a cluster' implies when to use this tool, and the presence of sibling tools implies filtered alternatives exist. However, the description gives no explicit guidance on when to choose this versus get_acls_by_principal, get_topic_acls, or get_group_acls, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_acls_by_principalCRead-onlyIdempotent
Get ACLs for a specific principal
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| principal | Yes | Principal name | |
| resourceType | No | Resource type filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no additional behavioral context such as whether the principal can be a user or group, what happens when no ACLs match, or how resourceType affects results; it mostly restates the tool's basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It is efficient and easy to parse, though it is so terse that it contributes little beyond the tool name; still, this is a conciseness strength rather than a defect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and multiple ACL-related siblings, the description is incomplete: it does not explain return shape, filtering semantics of resourceType, or when to use this tool instead of get_acls/get_topic_acls/get_group_acls. The read-only annotations reduce the burden, but the agent still lacks enough context for reliable selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a meaningful description ('Cluster name', 'Principal name', 'Resource type filter'). The tool description adds nothing beyond identifying 'principal' as the focus, so the schema carries the semantic burden; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a read operation ('Get') against a specific resource ('ACLs') scoped by principal, so the tool's purpose is unambiguous. It does not explicitly distinguish itself from sibling ACL tools such as get_acls and get_topic_acls, but the 'specific principal' scope helps narrow the meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over sibling ACL-related tools such as get_acls, get_topic_acls, or get_group_acls. It also does not mention any required setup such as a bearer token or environment. The principal scoping implies a use case, but no explicit conditions or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_authsBRead-onlyIdempotent
Get all auth details for current instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, so the safe/read-only nature is covered. The description adds the useful scoping detail that it returns all auth details for the current instance, but does not disclose return shape, errors, or auth-source specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler; every word contributes to defining scope ('all', 'current instance'). It is appropriately sized for a parameterless read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with safety annotations, the description is close to sufficient, but no output schema exists and 'auth details' is left imprecise, especially given the closely related sibling tools. An agent might still wonder exactly which authentication or authorization data will be returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema description coverage, there are no parameter meanings for the description to add. The baseline of 4 for zero-parameter tools applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a specific resource ('all auth details'), and a scope ('current instance'), so it conveys the tool's core function beyond the name. It does not explicitly differentiate itself from sibling tools like get_me, get_acls, or get_acls_by_principal, which also touch auth-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer get_auths over the many auth-related siblings, and no exclusions or alternatives are mentioned. The only hint, 'for current instance', gives some context but does not say how this differs from get_acls or get_me.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clusterARead-onlyIdempotent
Get all cluster info for current instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the 'current instance' scoping constraint, which is useful, but it does not disclose return format, possible errors, or any additional behavioral traits beyond what the annotations already establish.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and resource. Every word contributes to meaning, and there is no redundant or filler content. It is arguably minimal, but for a no-parameter read-only tool this brevity is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple: no parameters, no nested objects, no output schema, and strong safety annotations. The description sufficiently states what is returned (cluster info for the current instance). It could be more specific about what 'cluster info' includes, but for invocation purposes the description is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics burden for the description. The schema is fully complete for an empty input object, and no parameter-level explanation is needed. The baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get all cluster info for current instance.' It plainly identifies what the tool does and scopes it to the current instance, which helps distinguish it from the many other get_* tools in the sibling list (e.g., get_nodes, get_topics, get_me). No ambiguity remains about the target resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an agent needs cluster-level metadata for the current instance, but it does not explicitly state when to use this tool versus alternatives or when not to use it. There are no direct cluster-related siblings, so the lack of explicit routing is minor, but the guidance is still mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_by_nameBRead-onlyIdempotent
Get a specific connect definition
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the annotations: readOnlyHint=true, idempotentHint=true, and destructiveHint=false all match 'Get'. However, it adds no behavioral context beyond what annotations already declare, such as not-found behavior, response shape, or whether the definition includes configs and tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the action and target. It avoids repetition, fluff, or schema duplication, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, read-only lookup tool with three fully documented required parameters and read-only annotations. However, with no output schema, the description does not explain what a 'connect definition' contains or what happens if no matching definition is found. It is minimally viable but leaves a few practical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter and its role is already documented. The description adds no additional meaning about how cluster, connectId, and name relate or how they should be combined to identify a specific connect definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a specific connect definition'. This clearly indicates a targeted fetch by name, and the tool's name further disambiguates it from the sibling get_connects, which lists connects. It could be stronger by explicitly naming related siblings, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_connects, get_connect_configs, or get_connect_tasks. The word 'specific' implies a by-name lookup, but there are no explicit conditions, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_configsBRead-onlyIdempotent
Get configuration of a connector
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral context beyond this, such as what the response contains, whether missing connectors produce errors, or how connectId relates to cluster. It is not contradictory, but it contributes no extra transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or redundant details. It is appropriately concise for a simple read operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full parameter schema coverage and rich annotations, the description is nearly sufficient. However, it lacks any guidance on sibling-tool selection or what the returned configuration looks like, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three required parameters with descriptive names and descriptions, so the baseline is 3. The description adds no additional meaning about how the parameters interact or what values are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('configuration of a connector'), which is clear and matches the tool name. However, it does not explicitly distinguish this from sibling tools like get_connect_by_name or post_connect_configs, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the many related sibling tools. There is no mention of alternatives, exclusions, or the context in which retrieving connector configuration is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_pauseCRead-onlyIdempotent
Pause a connector
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Pause a connector,' which implies a state-changing operation, but the annotations mark readOnlyHint as true. This is a direct annotation contradiction. The description also does not disclose what pausing does to the connector state, whether it is reversible, or what the outcome is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The four-word description is extremely concise and front-loaded, with no filler or redundant phrasing. It could include slightly more behavioral context while still remaining concise, but as written it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and an annotation contradiction, the description leaves important gaps: the effect on the connector, how the three required identifiers relate to the pause operation, and what response is expected are all unstated. The conflicting read-only annotation makes the context actively misleading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters (name, cluster, connectId) with 100% coverage, so the description does not need to repeat them. It adds no additional meaning beyond what the schema provides, which meets the baseline for well-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Pause') and a clear target ('a connector'), so the tool's basic function is understandable. It is not a tautology and is distinguishable from sibling tools like get_connect_resume and get_connect_restart, though it does not add any scope or contextual nuance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool, what conditions apply, or how it compares to alternatives such as resume or restart. The agent is left to infer when pausing is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_pluginsBRead-onlyIdempotent
List all connect plugins
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds only the 'all' scope and does not disclose pagination, output shape, or cluster-specific behavior, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, repetition, or irrelevant detail. It is appropriately front-loaded and every word contributes to the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read-only list operation, and the schema plus annotations cover parameters and safety. However, with no output schema and no usage guidance, the description does not fully explain what 'connect plugins' means or how this tool differs from nearby connect-related siblings, leaving it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters described as 'Cluster name' and 'Connect cluster ID'. The description itself adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('connect plugins'), and 'all' clarifies the scope. It is clear, but it does not explicitly differentiate from sibling tools like get_connects or get_connect_by_name, so it falls short of the strongest purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus get_connects, get_connect_by_name, or get_connect_tasks. The description only states the action with no exclusions, alternatives, or contextual cues to help an agent route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_restartCRead-onlyIdempotent
Restart a connector
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Restart a connector,' which is a state-changing operation, while the annotations declare readOnlyHint=true and destructiveHint=false. This is a direct contradiction: a restart is not read-only. The description also provides no detail about what the restart does to the connector's runtime state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler words. It is not overly verbose, though it is slightly too terse to be considered excellent given the operational nature of the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is far too minimal for a state-changing operation: it does not explain what 'restart' means here, what side effects occur, what response to expect, or when it should be used. The annotation contradiction also makes the overall context misleading rather than merely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (name, cluster, connectId) having a basic description. The tool description adds no parameter meaning, but because the schema already documents all three parameters, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Restart') and resource ('a connector'), so an agent can tell it is an operational action rather than a retrieval. It is clear, though it does not explicitly differentiate from the sibling get_connect_task_restart, which restarts a connector task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as get_connect_resume, get_connect_pause, or get_connect_task_restart. The description gives no context about prerequisites, side effects, or why an agent would choose this operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_resumeCRead-onlyIdempotent
Resume a connector
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Resume a connector', which implies a state-changing control operation, but annotations declare readOnlyHint=true. This is a direct contradiction. No context is provided about side effects, permissions, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief and front-loaded, but it omits helpful context such as what state the connector transitions to or how it relates to pause/restart. It is concise to the point of being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal context, the description leaves out what a successful resume returns, whether the connector must be paused first, and whether there are side effects. The annotation contradiction further undermines completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter has a clear schema description. The tool description itself adds no parameter semantics, but the schema already handles this sufficiently, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Resume' with the resource 'connector', clearly identifying the action. It does not explicitly differentiate from sibling tools like get_connect_pause or get_connect_restart, but the core semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus alternatives. It does not mention prerequisites such as the connector needing to be paused, nor does it reference related sibling operations like get_connect_pause or get_connect_restart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connectsARead-onlyIdempotent
List all connect definitions for a cluster
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| search | No | ||
| cluster | Yes | Cluster name | |
| perPage | No | ||
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and non-destructiveness, so the description only adds cluster scoping to that safety profile. It does not disclose pagination or filtering behavior implied by page, perPage, and search, though nothing contradicts the read-only hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no redundant words; the action and scope are front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list with no output schema, the description is minimally viable, but it omits pagination/search behavior and does not hint at the return shape of a 'connect definition.' The agent still has to infer several details from parameter names and sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 2 of 5 parameters have schema descriptions (40% coverage), and the description adds no detail about page, search, or perPage semantics. The required cluster and connectId parameters are only loosely reinforced by the phrase 'for a cluster,' leaving optional parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List all'), a resource ('connect definitions'), and a scoping context ('for a cluster'). It is clearly distinguishable from siblings such as get_connect_by_name and get_connect_configs, which target a single or filtered item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'List all' gives a clear retrieval context and implies this is the plural/listing counterpart to get_connect_by_name. It does not explicitly name alternatives or state when not to use the tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_task_restartCRead-onlyIdempotent
Restart a specific connector task
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| taskId | Yes | Task ID | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Restart a specific connector task', which is a state-changing operation, yet annotations declare readOnlyHint=true and idempotentHint=true. This is a direct contradiction; the description provides no disclosure of side effects, restart semantics, or consequences, so an agent would be actively misled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the core action and resource, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing restart operation with no output schema and contradictory annotations, the description is incomplete. It does not explain what happens to the task, whether the restart is synchronous, or what response to expect, and the readOnly contradiction undermines the agent's ability to reason about the operation safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and every parameter has a basic description in the schema. The tool description adds no additional meaning beyond the schema, so the baseline of 3 applies. It does not clarify the relationship between 'cluster' and 'connectId', but the schema already names both.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Restart') and resource ('specific connector task'), making the operation clear. It differentiates at the resource level from sibling get_connect_restart, which targets a connector rather than a task, though it does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_connect_restart or get_connect_tasks. The description states the action but does not mention prerequisites, exclusions, or conditions that would help an agent choose between related connector/task operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connect_tasksBRead-onlyIdempotent
Get tasks for a connector
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds little beyond the operation itself and does not describe what is returned or any behavioral constraints such as required connector existence, but there is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. Every word contributes to communicating the operation and target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only operation with fully described parameters and safety annotations, the description is minimally viable. However, with no output schema, the agent receives no detail about the shape of the returned tasks or potential edge cases, leaving some ambiguity about what exactly is retrieved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters name, cluster, and connectId are already documented. The description does not add any additional semantic meaning beyond the fact that tasks belong to a connector, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get tasks for a connector'. This is not a tautology and distinguishes the tool from connector-level tools like get_connect_by_name, though it does not explicitly differentiate itself from closely related task operations like get_connect_task_restart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description neither mentions conditions for use nor points to sibling tools such as get_connect_task_restart or get_connect_configs, leaving the agent to infer the intended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_environmentARead-onlyIdempotent
Get the currently active AKHQ environment
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a read-only, idempotent, non-destructive call, so the key behavioral safety is covered. The description contributes the stateful notion of a 'currently active' environment but does not add return-shape or state-source details. It is consistent with annotations and adequate for this simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, front-loading the verb and target resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless getter with read-only annotations, this is nearly complete: no inputs, no side-effects, and a self-explanatory result. The only minor gap is that no output schema exists and the description does not spell out the return type/shape, but 'currently active AKHQ environment' is unambiguous enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, and the schema is empty with 100% coverage. There is nothing for the description to add about parameters; this is the 0-parameter baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description names the exact operation ('Get') and resource ('currently active AKHQ environment'). The qualifier 'currently active' distinguishes it from sibling list_environments (all environments) and set_environment (changes selection), so an agent can select it without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The wording implies the tool should be used when the agent needs the active environment, and the existence of list_environments/set_environment suggests alternatives, but the description never states when to choose this tool over them or provides explicit when-not conditions. Usage is implied, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_aclsBRead-onlyIdempotent
Get ACLs for a consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, and the description is consistent with that. It adds no additional behavioral context such as pagination, authentication, or error behavior, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler or redundancy. It front-loads the verb and object, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with complete schema descriptions and safety annotations, the description is nearly sufficient. It lacks an explicit return format or usage boundaries, but nothing essential blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both cluster and groupName described. The description adds little beyond mapping 'consumer group' to the groupName parameter, which aligns with the baseline expectation when the schema already documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and names the resource ('ACLs for a consumer group'), which clearly indicates this tool fetches group-scoped ACLs rather than cluster- or topic-scoped ones. It does not explicitly name sibling alternatives, so it doesn't score a full 5, but the resource scoping is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as get_acls, get_acls_by_principal, or get_topic_acls. The intended use case is only implied by the resource phrase and is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_by_nameBRead-onlyIdempotent
Get details for a specific consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, which covers the safety profile of this read operation. The description adds only the scope of the lookup ('specific consumer group') and does not disclose not-found behavior, error handling, or return shape, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It states the action and resource compactly without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple two-parameter read operation with full schema descriptions and read-only annotations, so basic invocation is adequately covered. However, because there is no output schema, the vague term 'details' leaves the return payload unspecified, and the description does not mention error behavior or environment/auth prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters, cluster and groupName, are required and have clear schema descriptions, and schema description coverage is 100%. The description adds no additional parameter-level meaning beyond what the schema already provides, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('details for a specific consumer group'), making the tool's core purpose obvious. It is distinguishable from get_groups because it targets one named group, but it does not explicitly separate it from related get_group_* tools such as get_group_offsets or get_group_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like get_groups or the other get_group_* tools. The word 'specific' implies a by-name lookup, but the description does not state exclusions, prerequisites, or alternatives. The agent must infer usage from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_membersCRead-onlyIdempotent
Get members of a consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the basic action: it does not mention whether members are returned as a list, whether empty groups are possible, how errors are surfaced, or whether the response includes client connection metadata. This would be more critical because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is efficiently front-loaded and easy to parse, though it could convey more functional detail without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter input and read-only annotations, the description is minimally viable. However, with no output schema, the description should ideally clarify what a 'member' looks like or what response shape to expect. The current description is adequate for basic invocation but leaves gaps about group membership behavior, such as empty or nonexistent groups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'cluster' and 'groupName' already described in the input schema. The description adds no additional parameter-level semantics beyond what the schema already provides, which matches the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get members of a consumer group', clearly identifying what the tool returns. It does not explicitly differentiate from sibling tools like get_group_by_name or get_group_offsets, but the resource 'members' is distinct enough to avoid major ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over alternatives. There is no mention of what other tools could be used instead, such as get_group_by_name for group metadata or get_group_offsets for offsets, leaving the agent to infer selection purely from the tool name and the terse description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_offsetsBRead-onlyIdempotent
Get offsets for a consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only nature is covered. The description adds no further behavioral context, such as behavior for unknown groups, whether results include per-partition details, or whether any data is returned incrementally, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to the core meaning, though the brevity leaves some context implicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with supportive annotations, this is minimally complete: an agent knows the operation is safe and needs only cluster and groupName. However, there is no output schema and the description does not describe the return shape, leaving ambiguity about what offsets data will be returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with cluster described as 'Cluster name' and groupName as 'Consumer group name.' The description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get offsets for a consumer group.' It also distinguishes this tool from sibling group tools such as get_group_by_name, get_group_members, and get_group_topics by naming offsets specifically. It is not a full tautology, though it stays very close to the tool name and does not detail what form the offsets take.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent can infer to use this when it needs the offsets of a consumer group. However, the description gives no explicit guidance about when not to use it, nor does it mention alternatives such as post_group_offsets for writing offsets or get_group_by_name for group metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_groupsBRead-onlyIdempotent
List all consumer groups
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| search | No | ||
| cluster | Yes | Cluster name | |
| perPage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat safety traits. It adds the entity type and 'all' scope, but gives no detail about pagination, search behavior, or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, direct sentence with the action front-loaded. It is concise, though arguably too skeletal to provide meaningful guidance beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with safety annotations, the description is minimally viable. However, it lacks sibling differentiation, output expectations, and clarification of the three undocumented optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, with only 'cluster' documented. The description does not explain page, search, or perPage, and it fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('list') and resource ('consumer groups'), and the 'all' scoping distinguishes it from get_group_by_name. It does not explicitly name sibling alternatives, 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.
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 get_group_by_name, delete_group, or get_group_offsets. The intended usage is only implied by the verb 'list' and the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_topicsARead-onlyIdempotent
Get topics for a consumer group
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the useful scoping fact that the result is topics for a consumer group, but it does not disclose return format, ordering, pagination, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the meaning, and the core action and resource are immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, two-parameter read-only lookup with robust annotations and no output schema, the description is nearly complete. 'Get topics' reasonably implies the return value, and the schema covers all required parameters; only explicit return-shape wording is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with 'Cluster name' and 'Consumer group name' already documented in the input schema. The description does not add additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'Get topics', and a specific resource, 'for a consumer group', which clearly distinguishes this from broader tools like get_topics or other group-level tools like get_group_members and get_group_offsets. It does not explicitly name a sibling, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrasing implies this tool should be used when an agent needs the topics associated with a particular consumer group. However, it provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives such as get_groups or get_group_by_name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ksqldb_infoCRead-onlyIdempotent
Get ksqlDB server info
| Name | Required | Description | Default |
|---|---|---|---|
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description adds no extra behavioral context. It does not explain what 'server info' includes, whether authentication is needed, or what the response looks like, leaving the agent reliant entirely on the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It is appropriately concise for a simple getter, though it could have been slightly more informative without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description should compensate by explaining what 'server info' returns, but it does not. Given the large sibling set and vague scope, an agent would be uncertain about the tool's exact output and when it is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters (ksqldb and cluster) documented in the schema. The tool description adds no additional meaning about the relationship between the parameters or how they should be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('ksqlDB server info'), which helps distinguish it from sibling tools focused on specific ksqlDB objects like queries, streams, and tables. However, 'server info' is somewhat vague and does not specify exactly what information is returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many ksqlDB-related siblings such as get_ksqldb_queries, get_ksqldb_streams, or get_ksqldb_tables. There are no explicit context cues, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ksqldb_queriesBRead-onlyIdempotent
List all ksqlDB queries
| Name | Required | Description | Default |
|---|---|---|---|
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, which the description matches. The description adds no further behavioral context such as pagination, response shape, or whether the listing is scoped to the provided cluster.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler and the key action front-loaded. It is appropriately concise for a simple read-only list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description is mostly adequate given the schema and annotations. However, with no output schema, it does not describe what a returned ksqlDB query looks like or clarify whether the list is scoped to the required cluster/ksqldb parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters have straightforward names and descriptions. The tool description itself adds no additional parameter-level meaning, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('ksqlDB queries'), with an explicit 'all' scope. It doesn't explicitly contrast with sibling tools, but the resource type is distinct from get_ksqldb_streams and get_ksqldb_tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_ksqldb_streams, get_ksqldb_tables, or put_ksqldb_query. The intended usage must be inferred entirely from the tool name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ksqldb_streamsARead-onlyIdempotent
List all ksqlDB streams
| Name | Required | Description | Default |
|---|---|---|---|
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not burdened with safety disclosure. It adds only the 'all' scope, indicating no filtering, but does not describe pagination, output shape, or any other runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single precise sentence with no filler or redundant information. It is appropriately front-loaded and immediately conveys the tool's action and target resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with full schema coverage and robust annotations, the description is nearly complete for selecting and invoking the tool. It could be more complete by indicating what a stream listing returns or any cluster-scoping nuance, but nothing essential to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both required parameters already have clear descriptions ('ksqlDB cluster name' and 'Cluster name'). The tool description adds no additional parameter context, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('all ksqlDB streams'), clearly distinguishing this from sibling tools like get_ksqldb_tables, get_ksqldb_queries, and get_ksqldb_info. The resource named in the description is enough for an agent to select the right tool without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when the caller needs the complete set of ksqlDB streams, but it provides no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as get_ksqldb_tables or get_ksqldb_queries. The sibling names exist, but the description itself does not route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ksqldb_tablesARead-onlyIdempotent
List all ksqlDB tables
| Name | Required | Description | Default |
|---|---|---|---|
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds little beyond a broad 'all' claim and does not mention result shape, pagination, or how the required parameters affect the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler or redundancy. It front-loads the key verb and object, making it immediately scannable and understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation, the schema and annotations provide the essential invocation details. However, the description omits any note about expected output or how the cluster and ksqlDB parameters relate, leaving a small but non-critical completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions cover both parameters at 100% coverage ('ksqlDB cluster name' and 'Cluster name'). The tool description adds no additional parameter meaning, so it does not compensate beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (List) and resource (ksqlDB tables), which is enough to distinguish it from sibling tools like get_ksqldb_streams and get_ksqldb_queries. The word 'all' also signals a full enumeration rather than a targeted lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_ksqldb_streams, get_ksqldb_queries, or put_ksqldb_execute. The description only states what the tool does, leaving the agent to infer usage context from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meARead-onlyIdempotent
Get current user info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds that the tool returns current user info, but does not disclose further behavioral details such as return format or auth dependencies. Given the annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence contains the full purpose with no filler. It is appropriately front-loaded and every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with annotations covering safety and no output schema, the description sufficiently conveys what the agent gets: current user info. There are no arguments to specify and no edge cases to mention, so nothing necessary is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the 100% schema description coverage is trivial and the description cannot add parameter-level meaning. Per the rubric, zero parameters earns a baseline of 4, and no further explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('current user info'), making the tool's function unambiguous. Among the many sibling tools focused on environments, topics, groups, schemas, and nodes, get_me is the only one about the current user, so it is easily distinguished without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the usage context: call this tool whenever current user information is needed. There are no alternative tools for this purpose, so no exclusion guidance is necessary; the context is clear even without explicit when/when-not statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodeARead-onlyIdempotent
Get details for a specific node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds the single-node scope but does not disclose response contents or not-found behavior; there is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It states the action and scope immediately and contains only information relevant to selecting the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two fully documented required parameters and rich safety annotations, the description is nearly sufficient. The main gap is that no output schema exists and the description does not clarify what 'details' include or what the return payload looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with nodeId and cluster both documented in the schema. The description adds no parameter-level meaning beyond the implied requirement that a specific node is identified by these two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and resource ('details for a specific node'), making it a single-node read operation. It implicitly contrasts with the plural sibling get_nodes, though it does not explicitly name alternative tools like get_node_configs or get_node_logs. 'Details' is somewhat generic, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The phrase 'specific node' implies this tool is for fetching one known node rather than listing all nodes, but the distinction from related node tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_configsBRead-onlyIdempotent
Get configuration for a node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only behavior is established. The description adds no additional behavioral context such as response shape, error conditions, or authorization requirements, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and is appropriately front-loaded. It is concise and easy to parse, though it could have included a brief sibling distinction without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool, the annotations and schema cover the safety profile and required inputs. However, there is no output schema and the description does not clarify what the returned configuration contains or how it differs from other node-related tools, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both nodeId and cluster documented in the input schema. The description adds no further parameter meaning, such as the relationship between the cluster and node ID or how to obtain valid node IDs, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get configuration for a node.' It identifies what the tool returns without ambiguity. However, it does not explicitly differentiate from sibling tools like get_node, get_nodes, or post_node_configs, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_node, get_nodes, or post_node_configs. It does not mention exclusions, prerequisites, or context that would help an agent choose between similar node-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_logsBRead-onlyIdempotent
Get log configuration for a node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as readonly, idempotent, and non-destructive, so the description does not need to repeat that. It adds some context by specifying 'log configuration' rather than log content, but it does not describe response shape, authorization needs, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler or redundancy. It is efficient for a simple tool, though it is very terse and leaves some context to be inferred.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with complete schema coverage and safety annotations, the description is minimally adequate. However, with no output schema, it does not clarify what the returned log configuration looks like or how it relates to other node/topic log-related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with cluster and nodeId both documented in the schema itself. The description provides no additional parameter-level meaning, so it appropriately relies on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get log configuration for a node' clearly identifies a specific verb and resource, and it names the target as configuration rather than log content. It is distinct enough from siblings like get_node_configs and get_topic_logs, but it does not explicitly differentiate itself among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as get_node_configs or get_topic_logs. The description only states what it does, not the conditions or context that should lead an agent to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodesARead-onlyIdempotent
List all nodes (brokers) in a cluster
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context by clarifying that nodes are brokers and that the scope is a single cluster, but it does not disclose return format, pagination, or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with a useful parenthetical clarification. Every word earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter list tool with rich annotations and complete schema coverage, the description is adequate. It could slightly improve by noting what the returned node list contains, but the verb 'List' already implies a list is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single cluster parameter with the description 'Cluster name,' so the baseline is 3. The tool description adds no additional parameter semantics beyond implying the cluster scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List all nodes (brokers) in a cluster.' It is clear and the plural 'all nodes' differentiates it from siblings like get_node, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the agent needs all nodes in a cluster, but it provides no explicit when-to-use guidance or mention of alternatives such as get_node for a single node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_by_subjectCRead-onlyIdempotent
Get a schema by subject
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| subject | Yes | Schema subject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context beyond the action itself, such as what is returned, whether the subject must exist, or how it differs from listing versions. With no extra disclosure, the description contributes minimally to behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, 'Get a schema by subject,' which is concise and front-loaded. There is no redundant phrasing or filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the presence of closely related sibling tools (get_schema_versions, get_schema_version), the description is too terse to fully inform an agent about return semantics or usage boundaries. It does not explain whether the tool returns the latest schema, all versions, or just metadata, which is needed for correct invocation in this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'cluster' and 'subject' have meaningful descriptions in the input schema. The tool description itself does not add any further parameter details, so the baseline of 3 applies because the schema handles the documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a schema by subject' uses a specific verb and resource, clearly indicating the action and the key qualifier. However, it does not explicitly differentiate itself from sibling tools like get_schema_versions or get_schema_version, leaving some ambiguity about whether it returns a list, a latest version, or a specific schema definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus its siblings. It does not mention alternatives such as get_schema_versions or get_schema_version, nor does it specify conditions like 'use this to fetch the latest schema for a subject'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schemasCRead-onlyIdempotent
List all schemas in the schema registry
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| search | No | ||
| cluster | Yes | Cluster name | |
| perPage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond the act of listing, but does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundant elaboration. It communicates the core operation efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and multiple undocumented parameters, the description is insufficiently complete. It does not explain pagination, search behavior, or what the response contains, so an agent may not know how to correctly pass optional parameters or interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, with only 'cluster' documented in the input schema. The description does not compensate for the undocumented 'page', 'search', and 'perPage' parameters at all, leaving their meaning and usage entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('schemas'), and the scope ('schema registry'). It does not explicitly differentiate from related tools like get_schema_by_subject or get_schema_versions, but 'all schemas' conveys a broad listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative schema-related tools such as get_schema_by_subject or get_schema_versions. The intended use is only implied by 'List all schemas', with no explicit conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_versionCRead-onlyIdempotent
Get a specific version of a schema
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| subject | Yes | Schema subject | |
| version | Yes | Schema version |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond restating the operation: it does not explain what a schema version represents, whether 'version' has special semantics, or what happens when a version does not exist. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no filler, so it is structurally concise. However, it mostly echoes the tool name and contributes little substantive information, making it under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with fully documented parameters and strong annotations, the description is minimally sufficient to invoke the tool correctly. It lacks sibling differentiation and return-value context, but the absence of an output schema and the low complexity keep this from being a severe gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema already documents cluster, subject, and version. The description adds no additional parameter meaning. No compensation is needed, but also no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a specific version of a schema.' It conveys the core function and loosely distinguishes itself from the plural sibling get_schema_versions. However, it does not explicitly differentiate from closely related siblings like get_schema_by_subject or get_schema_versions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 gives no context about selecting it over get_schema_versions or get_schema_by_subject, and it does not mention exclusions or prerequisites. The usage scenario must be inferred entirely from the tool name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schema_versionsARead-onlyIdempotent
Get all versions of a schema
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| subject | Yes | Schema subject |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no additional behavioral context such as return format, ordering, pagination, or behavior when the subject does not exist, which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with zero wasted words: 'Get all versions of a schema.' It is front-loaded and communicates the essential action and object immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented parameters and strong annotations, the description is minimally adequate. However, since there is no output schema, it would be better to clarify what the response contains or how versions are represented; the current text leaves return behavior to the agent's inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both required parameters (cluster and subject) are already described as 'Cluster name' and 'Schema subject.' The description adds no extra parameter meaning, but with full schema coverage the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('all versions of a schema'), which directly distinguishes it from the sibling get_schema_version. The scope is unambiguous and an agent can immediately tell what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'all versions' implicitly signals that this is the right tool when every version is needed, and that get_schema_version is for a single version. However, it never explicitly names alternatives or states when not to use this tool, so the guidance remains implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topicBRead-onlyIdempotent
Get details for a specific topic
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Get' is consistent with those. However, the description adds no extra behavioral context such as error cases, permissions, response format, or scope limitations beyond what annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only six words and front-loads the action and object without filler. It is appropriately sized for a simple read tool and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation, the schema covers required parameters and annotations cover the safety profile. However, with no output schema and multiple topic-related siblings, 'details' is vague enough that the agent may not know exactly what data this endpoint returns or when to prefer it over get_topic_configs or get_topic_logs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter meaning is already carried by the input schema for both cluster and topicName. The description does not add any additional semantic detail about these parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a specific topic'), and the word 'specific' signals a single-topic lookup rather than listing. It is distinguishable from get_topics, though it does not spell out how it differs from closely related siblings like get_topic_configs or get_topic_logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance about when to use this tool versus alternatives such as get_topic_configs, get_topic_logs, or get_topics. There is no mention of when-not-to-use or any explicit routing signal beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_aclsARead-onlyIdempotent
Get ACLs for a specific topic
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not restate safety. It adds the topic-scoped behavior, but does not disclose details like authentication needs, error cases, or response format. Given strong annotations, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It conveys the essential action and scope immediately while leaving parameter details to the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read-only tool with only two self-explanatory parameters and strong annotations, the description is complete enough for an agent to select and invoke it correctly. No output schema exists, but the tool's purpose and scope are sufficiently clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (cluster, topicName) are already described clearly in the schema. The description does not add meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a specific resource ('ACLs') and scope ('for a specific topic'). This clearly distinguishes it from siblings like get_acls and get_acls_by_principal, which target different ACL scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific topic' gives clear context for when this tool is appropriate: when ACLs are needed for one topic. It does not explicitly name alternative tools or state when not to use it, but the scope is reasonably clear from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_configsCRead-onlyIdempotent
Get configuration for a topic
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive, and the description adds no behavioral detail beyond that. There is no statement about what configs are returned, how defaults are handled, or any error/empty-topic behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no filler and is appropriately front-loaded. It is slightly redundant with the tool name, but compactness is a strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with fully documented parameters and strong annotations, the basic call is usable. However, the missing scope clarification versus get_topic_defaults_configs and the lack of any output/return context leave a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both cluster and topicName are documented, so the description does not need to explain them. The description itself adds no semantic detail beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb ('get') and resource ('configuration for a topic'), so the basic action is clear. However, it does not distinguish this from the closely named sibling get_topic_defaults_configs or mention whether this returns effective/current configs rather than defaults.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives such as get_topic_defaults_configs or get_topic. An agent must infer the intended context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_defaults_configsARead-onlyIdempotent
Get default topic configuration
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description's 'Get' wording is consistent with those annotations and adds the resource context. It does not add further behavioral detail such as what happens if no defaults exist or whether the result reflects environment-specific overrides, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded phrase with no unnecessary words. Every part of it conveys the resource and action, making it appropriately concise for a zero-parameter read-only tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial parameterless getter, the description is almost sufficient. However, it does not clarify what 'default topic configuration' encompasses, how it relates to get_topic_configs, or what the return value will look like, especially since no output schema exists. This leaves some ambiguity for an agent deciding between this and related topic configuration tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics to document. The schema is empty and coverage is 100%, and the description need not add parameter detail. This aligns with the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get default topic configuration'. It clearly indicates a read operation for default topic settings, which is distinct from siblings like get_topic_configs and get_topic. However, it does not explicitly contrast itself with those siblings, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'default topic configuration' implies this tool is for retrieving default/global topic configuration rather than per-topic configuration. There is no explicit mention of when to use this tool versus get_topic_configs or post_topic_configs, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topic_logsCRead-onlyIdempotent
Get logs (messages) for a topic
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| sort | No | oldest or newest | |
| after | No | Pagination cursor | |
| search | No | ||
| cluster | Yes | Cluster name | |
| perPage | No | ||
| partition | No | ||
| timestamp | No | ISO 8601 timestamp | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds only the 'logs = messages' clarification and no behavioral detail on pagination, ordering, filtering limits, or what the returned messages include. Adequate but thin given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One six-word sentence with zero filler, and the core resource is front-loaded. It is efficient but arguably too sparse — for a 9-parameter tool it trades away substance for brevity, so it doesn't earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with no output schema, this is thin. Nothing explains pagination semantics, the content of returned logs, or how this differs from get_node_logs and get_topic. An agent would be guessing about search, partition, and timestamp behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 56% (5 of 9 parameters documented), and the description itself names none of the parameters. Four parameters (page, search, perPage, partition) are undocumented in both schema and description. The description adds no semantic value beyond the schema's partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('logs (messages) for a topic'). The parenthetical '(messages)' usefully disambiguates from the sibling get_node_logs by clarifying these are topic messages, not node-level logs. However, it doesn't explicitly contrast with siblings, so it lands just below the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives. It doesn't mention that get_node_logs covers node-level logs, when to prefer get_topic, or how pagination/filtering parameters factor into usage. An agent must infer usage entirely from the name and the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topicsCRead-onlyIdempotent
List all topics for a cluster
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| show | No | Filter: ALL, HIDE_INTERNAL, HIDE_INTERNAL_STREAM | |
| search | No | Search term | |
| cluster | Yes | Cluster name | |
| perPage | No | Items per page | |
| sortField | No | ||
| sortOrder | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'List all topics,' but the openWorldHint annotation indicates the tool may return non-exhaustive results, so the claim of 'all' directly contradicts an annotation. The description also adds nothing about pagination, filtering, or response behavior beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with no filler words. However, it is concise to the point of omitting important behavioral and usage context, so the brevity is not fully appropriate for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining what the agent can expect back and how to complete the request. It does not mention pagination, filters, sorting, or the open-world caveat, leaving an incomplete picture for a tool with seven parameters and a large sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, and the schema already explains most parameters including cluster, page, show, search, and perPage. The description contributes no additional parameter meaning; sortField and sortOrder are still undocumented in the schema, but their intent is fairly inferable from their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List'), resource ('topics'), and scope ('for a cluster'). The plural 'all topics' also helps distinguish it from singular tools like get_topic, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_topic, get_topic_configs, or post_topic. The only usage hint is the cluster scope, leaving the agent to infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_environmentsARead-onlyIdempotent
List all configured AKHQ environments
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds little behavioral context beyond the word 'configured', but there are no hidden side effects or contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list operation with strong safety annotations, the description is essentially complete. It does not specify the return shape, but 'List all configured AKHQ environments' sufficiently conveys that the tool returns the available environments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema shows an empty properties object, so no parameter documentation is needed. The description correctly avoids inventing any parameter-related detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb, 'List', and a clear resource, 'all configured AKHQ environments', with explicit scope. This distinguishes it from sibling tools like set_environment and get_current_environment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternative tools. An agent must infer that list_environments is for enumeration while set_environment and get_current_environment handle the active environment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_connectC
Create a new connect definition
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| configs | Yes | Connector configuration | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and idempotentHint=false, and the description adds little beyond restating that a new definition is created. It does not disclose behaviors such as what happens when the connectId already exists, whether existing definitions are affected, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It immediately communicates the core action and resource without filler, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four required parameters and no output schema, the description is too sparse. It does not explain what a 'connect definition' is, how it relates to the cluster/connectId, or what the agent should expect after invocation, leaving important context implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters adequately. The description itself adds no extra meaning about cluster, connectId, name, or configs, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Create') and resource ('connect definition'), so an agent can tell this is a creation operation. However, it does not explicitly distinguish it from sibling tools like post_connect_configs, leaving some ambiguity about the exact boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as post_connect_configs or get_connects. There are no context cues, prerequisites, or exclusion criteria, so an agent must infer usage from the schema and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_connect_configsC
Update a connector configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Connector name | |
| cluster | Yes | Cluster name | |
| configs | Yes | Connector configuration | |
| connectId | Yes | Connect cluster ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false, destructive=false, and idempotent=false. The description merely restates the update intent and adds no extra behavioral context such as whether the configuration is replaced or merged, whether the connector restarts, or the effect on running tasks. No contradiction with annotations, but no added transparency either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tight sentence with no filler. It is structured well and easy to parse, though it is so brief that it sacrifices explanatory richness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with four required parameters, no output schema, and a sibling ecosystem including create, get, and delete operations, the description is too thin. It omits return behavior, side effects, and the relationship between connectId and cluster, leaving an agent without enough context to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (name, cluster, configs, connectId) are documented in the schema. The description adds no parameter-level meaning beyond 'Update a connector configuration', so it does not need to compensate; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and a clear resource ('connector configuration'), distinguishing it from read-only siblings like get_connect_configs and creation tools like post_connect. It does not explicitly name or contrast sibling tools, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as post_connect, get_connect_configs, or delete_connect. The description simply states the mutation without indicating prerequisites, the lifecycle context, or cases where another tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_group_offsetsC
Update consumer group offsets
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| offsets | Yes | Offsets to set | |
| groupName | Yes | Consumer group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and idempotentHint=false, and the description adds no behavioral context beyond the word 'Update'. It doesn't disclose whether existing offsets are overwritten wholesale, whether the group must be stopped, what side effects occur, or any auth requirements — a real gap for a mutation tool. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single four-word sentence with zero wasted words and the verb front-loaded. It is appropriately terse, though it is also the bare minimum — no secondary context is included, which is more a completeness issue than a conciseness one.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with no output schema, the description is incomplete: it doesn't explain what the response looks like, what success means, what offsets get committed, or any prerequisites. An agent calling this tool cannot predict the call's outcome beyond 'offsets get updated.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cluster, groupName, and offsets are each already documented in the input schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('consumer group offsets'), making the tool's purpose immediately clear. It implicitly contrasts with sibling get_group_offsets, which reads the same resource, though it doesn't explicitly name the alternative, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like get_group_offsets (read) or delete_group (remove). No prerequisites are mentioned, such as whether the consumer group must exist or be inactive, and no exclusions or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_node_configsC
Update configuration for a node
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Node ID | |
| cluster | Yes | Cluster name | |
| configs | Yes | Configuration entries |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a non-readOnly, non-idempotent, open-world write, and the description adds no behavioral context beyond restating 'update.' It does not disclose whether configs replaces the entire configuration set or merges with existing entries, nor whether changes apply immediately or require a restart.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single six-word sentence with the verb front-loaded and zero filler. It is efficient and scannable, though the terseness borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with a fully documented schema and safety annotations, the core essentials are present. However, it omits useful operational context: what the response looks like (no output schema), how configs are applied (merge vs. replace), and that get_node_configs is the read counterpart.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with nodeId, cluster, and configs each described, so the baseline of 3 applies. The description contributes nothing beyond the schema — it provides no extra meaning about how the configs array is interpreted (e.g., full replacement vs. patch).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and a specific resource ('configuration for a node'), making the operation immediately clear. It is distinguishable from read siblings like get_node_configs by the verb, but it never names that alternative explicitly, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus get_node_configs (to read current values) or post_topic_configs/post_connect_configs (similar tools for other resource types). There are no prerequisites, conditions, or exclusions stated; the agent must infer usage entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_schemaC
Create a new schema
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes | Schema definition (JSON string) | |
| cluster | Yes | Cluster name | |
| subject | Yes | Schema subject | |
| schemaType | No | AVRO, JSON, PROTOBUF |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds no behavioral context beyond the word 'create', such as what happens if the schema subject already exists, whether this is a full replacement, or any authentication requirements. It does not contradict the annotations, but it provides no additional value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: 'Create a new schema' is a single clear phrase with no filler. It loses a point for being so terse that it borders on restating the tool name, but it is not bloated or poorly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is four words and omits critical context for a write operation: expected return value, error behavior, whether existing schemas are overwritten or rejected, and how schemaType interacts with the schema string. The input schema covers parameter meaning, but the absence of output schema and any behavioral notes leaves the tool under-specified for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters already have descriptive text in the input schema (e.g., 'Schema definition (JSON string)', 'Cluster name', 'Schema subject'). The description 'Create a new schema' adds nothing about parameter semantics, but the schema fully compensates for this, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new schema' states a specific verb and resource, making it clear that this tool creates a schema. However, it does not explicitly distinguish itself from sibling tools like get_schemas or delete_schema, though the verb 'create' provides reasonable differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, such as when to post a new schema versus retrieving or deleting one. There are no exclusions, prerequisites, or context about the intended workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_topicC
Create a new topic
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Topic name | |
| cluster | Yes | Cluster name | |
| configs | No | Topic configurations | |
| partition | No | Number of partitions | |
| replication | No | Replication factor |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already state: readOnlyHint=false, idempotentHint=false, and destructiveHint=false already tell the agent this is a mutating, non-idempotent, non-destructive operation. The description does not disclose what happens on duplicate topic creation, whether the operation is synchronous, whether special permissions are needed, or what the response is. It is consistent with the annotations but contributes nothing beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five words, one sentence, zero filler. The verb 'Create' is front-loaded and every word earns its place. Nothing could be trimmed without losing the core meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with five parameters (including a nested configs object), no output schema, and no stated prerequisites or failure behavior, the description is too thin. The agent cannot learn what happens if the topic already exists, whether auth/environment setup is required first, or what a successful call returns. The complete schema covers parameters, but tool-level context is largely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%—name, cluster, configs, partition, and replication each have a description—so the baseline is 3 per the rubric. The description 'Create a new topic' adds no parameter-level meaning, but the schema fully carries that burden, so no penalty beyond baseline is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Create a new topic' states a specific verb and resource with no ambiguity—an agent can tell this is the topic-creation operation and distinguish it from get_topic, delete_topic, post_topic_configs, and post_topic_produce. However, it does no explicit differentiation work (no sibling named, no 'unlike X' clause), so it stops one notch short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites mentioned (e.g., that an environment or bearer token may be required, as suggested by sibling tools set_environment and set_bearer_token), and no exclusions. The agent gets zero direction beyond the bare action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_topic_configsC
Update configuration for a topic
| Name | Required | Description | Default |
|---|---|---|---|
| cluster | Yes | Cluster name | |
| configs | Yes | Configuration entries | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a write operation with readOnlyHint=false, so the description adds no behavioral detail beyond that. It does not disclose whether the config update replaces all settings or merges only the provided ones, what permissions are needed, or what errors might occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and resource, and it contains no filler. It is appropriately concise for a simple statement of purpose, though it does not carry the behavioral depth needed for a mutating operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema, this description is incomplete. It does not explain update semantics such as overwrite vs. merge, does not mention prerequisites like the topic already existing, and does not describe expected return behavior. The schema covers parameter shapes but not the operational context an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described as 'Cluster name', 'Configuration entries', and 'Topic name'. The description contributes no additional parameter-level meaning, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Update configuration for a topic,' which identifies this as a mutation of topic-level settings rather than a read operation or topic creation. It does not explicitly contrast with siblings like get_topic_configs or post_topic, so it falls short of maximum differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as post_topic, get_topic_configs, or post_node_configs. An agent must infer the intended use case purely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_topic_produceB
Produce a message to a topic
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Message key | |
| value | Yes | Message value | |
| cluster | Yes | Cluster name | |
| headers | No | Message headers | |
| partition | No | Target partition | |
| topicName | Yes | Topic name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnly=false and idempotent=false, so the description need not repeat that this is a write operation. The description's 'produce a message' conveys the basic side-effect of publishing to a topic, but it does not disclose additional consequences such as required permissions, partition/offset behavior, or failure modes. With annotations lowering the bar, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. Every word earns its place and nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple produce call, required parameters are fully documented in the schema and the action is stated. However, the description is minimal: no output/response format, no prerequisite about the topic existing, and no pointer to related operations. Given no output schema, a bit more context would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a clear description. The tool description adds no parameter-level meaning beyond the schema, which meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource ('produce a message to a topic') and the tool name clearly distinguishes it as the produce operation rather than topic creation. However, it does not explicitly contrast with sibling tool post_topic, so it lacks the sibling differentiation that would earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. There is no mention that creating a topic is handled by post_topic, nor any note about prerequisites such as the topic already existing or needing a selected cluster. The agent is left to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_ksqldb_executeCIdempotent
Execute a ksqlDB statement
| Name | Required | Description | Default |
|---|---|---|---|
| ksql | Yes | The ksql statement to execute | |
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name | |
| streamsProperties | No | Properties for the streams application |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the tool name. Annotations indicate readOnlyHint=false and idempotentHint=true, but the description does not clarify side effects, error behavior, or what happens when a statement is executed repeatedly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words. It is concise and front-loaded, though it sacrifices useful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no description of return values, errors, or the distinction between executing versus querying, the description is incomplete for an agent deciding how to invoke this tool correctly. The presence of the sibling put_ksqldb_query makes the missing usage context especially significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters including `ksql`, `ksqldb`, `cluster`, and `streamsProperties` are documented in the schema. The description itself adds no parameter-level meaning, which is acceptable given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Execute' with the resource 'ksqlDB statement', making the core action clear. However, it does not distinguish itself from the sibling put_ksqldb_query, which may also execute ksqlDB statements, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of put_ksqldb_query or other siblings. The description is too generic to help an agent decide between execute and query variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
put_ksqldb_queryCIdempotent
Execute a ksqlDB pull query
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL query to execute | |
| ksqldb | Yes | ksqlDB cluster name | |
| cluster | Yes | Cluster name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides no behavioral context beyond the annotations: no mention of side effects, auth requirements, output format, or potential cost/latency. Even with annotations lowering the bar, the description adds no additional transparency about what happens when the query executes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence with no wasted words and front-loads the key action. It is appropriately concise, though slightly thin for a tool that has an ambiguous sibling relationship.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with a complete schema, the description is minimally viable: it identifies the operation and query type. However, it leaves out the distinction from put_ksqldb_execute and any note about result handling, which an agent might need to invoke the correct sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter semantics are fully handled by the schema. The description itself adds no parameter-level detail, but the baseline of 3 applies because the schema already documents all three required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Execute a ksqlDB pull query.' The qualifier 'pull query' distinguishes it from other ksqlDB operations like listing queries or streams. However, it does not explicitly contrast with the similarly named sibling put_ksqldb_execute, so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as put_ksqldb_execute or get_ksqldb_queries. The phrase 'pull query' implies a use case, but the description never states exclusions or points to a sibling for push queries or other statement types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_bearer_tokenAIdempotent
Set or refresh the bearer token for an AKHQ environment. Use this when a request fails with an expired/unauthorized token error.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The new bearer token | |
| environment | Yes | The environment name to set the token for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and non-destructiveness, and the description adds the refresh semantics and environment scoping. It does not go further to explain whether the token overwrites existing auth or whether it persists, but there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences contain only essential information: the action, the resource scope, and the triggering condition. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with two required parameters and no output schema, the description plus schema gives enough context to call it correctly. It could clarify whether the token replaces existing tokens, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both token and environment parameters already explained. The description adds no additional parameter format details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-object pairing ('Set or refresh the bearer token') and scopes it to an AKHQ environment. It is clearly distinguishable from sibling clear_bearer_token and other auth-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: when a request fails with an expired/unauthorized token error. This is actionable context, though it does not explicitly contrast with clear_bearer_token or other auth tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_environmentBIdempotent
Switch the active AKHQ environment
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The environment name to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context, such as whether the switch affects subsequent calls or whether the environment must already exist. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single concise sentence that delivers the essential purpose without any filler. It is appropriately front-loaded and wasteful of no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one required parameter and clear annotations, the description and schema are sufficient for an agent to invoke it correctly. The only minor gap is lack of connection to sibling environment tools, but it is not critical for the core action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter 'name' is already self-explanatory in the schema. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Switch') and a clear resource ('active AKHQ environment'), making the tool's core function immediately understandable. It is distinct enough from sibling tools like list_environments or get_current_environment because it implies a state-changing action, though it does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, such as when to list available environments first with list_environments or how to verify the current environment afterward. The description provides no context about prerequisites 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.
58 tool updates
v1.0.0- First observed
clear_bearer_token - First observed
delete_connect - First observed
delete_group - First observed
delete_schema - First observed
delete_topic - First observed
delete_topic_records - First observed
get_acls - First observed
get_acls_by_principal - First observed
get_auths - First observed
get_cluster - First observed
get_connect_by_name - First observed
get_connect_configs - First observed
get_connect_pause - First observed
get_connect_plugins - First observed
get_connect_restart - First observed
get_connect_resume - First observed
get_connect_task_restart - First observed
get_connect_tasks - First observed
get_connects - First observed
get_current_environment - First observed
get_group_acls - First observed
get_group_by_name - First observed
get_group_members - First observed
get_group_offsets - First observed
get_group_topics - First observed
get_groups - First observed
get_ksqldb_info - First observed
get_ksqldb_queries - First observed
get_ksqldb_streams - First observed
get_ksqldb_tables - First observed
get_me - First observed
get_node - First observed
get_node_configs - First observed
get_node_logs - First observed
get_nodes - First observed
get_schema_by_subject - First observed
get_schema_version - First observed
get_schema_versions - First observed
get_schemas - First observed
get_topic - First observed
get_topic_acls - First observed
get_topic_configs - First observed
get_topic_defaults_configs - First observed
get_topic_logs - First observed
get_topics - First observed
list_environments - First observed
post_connect - First observed
post_connect_configs - First observed
post_group_offsets - First observed
post_node_configs - First observed
post_schema - First observed
post_topic - First observed
post_topic_configs - First observed
post_topic_produce - First observed
put_ksqldb_execute - First observed
put_ksqldb_query - First observed
set_bearer_token - First observed
set_environment
TDQS
Each tool targets a distinct resource/action, and overlapping areas like topics, groups, schemas, and connectors are separated by resource names. A few names are misleading—get_connect_pause, get_connect_resume, and get_topic_produce imply reads rather than actions—but descriptions make the intended purpose clear.
Most tools follow a get_/post_/delete_/put_ resource pattern, with list_ and set_ used for environment operations. However, mutating actions like pause, resume, restart, and produce are inconsistently prefixed with get_ instead of post_ or action verbs, making the convention less predictable.
With 58 tools, the server presents an extremely large surface for an agent to reason about, far beyond the typical well-scoped MCP server range. Even though the tools map to distinct AKHQ modules, the sheer count is an extreme mismatch for usability and tool selection.
The tool surface covers nearly every AKHQ domain: environments, topics, consumer groups, schemas, nodes, connectors, and ksqlDB, including lifecycle actions and config updates. The main gap is the lack of ACL create/delete operations, and schema deletion only removes a subject rather than individual versions.
Maintenance
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
- mcpOAuthcom.vibgrate
Query your team's drift, vulnerability, and upgrade data from any AI assistant. OAuth 2.1, 51 tools.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Kafka and Postgres Monitoring Stack
Kafka + Redis + MinIO Stack Generator
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Apache Kafka topics, allowing users to publish messages to and read messages from Kafka instances through natural language.1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and monitor Apache Kafka clusters through natural language, providing real-time operations, health monitoring, consumer lag analysis, and temporal trend detection for intelligent cluster management.-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Apache Kafka through natural language, supporting operations like producing/consuming messages, managing topics, and querying brokers, partitions, and consumer group offsets.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Kafka clusters via MCP, supporting topic management (list, create, delete, inspect), connection initialization, and more through natural language.1Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/seb-noirot/akhq-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server