teamspeak3-mcp
Allows AI models to manage a TeamSpeak 3 server via ServerQuery, including tools for server info, channel management, client management, groups, permissions, messaging, moderation, tokens, and file operations.
Click on "Deploy 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., "@teamspeak3-mcplist all online clients on my server"
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.
TeamSpeak 3 MCP Server
Let AI models manage your TeamSpeak 3 server through the Model Context Protocol.
A Model Context Protocol (MCP) server that exposes TeamSpeak 3 ServerQuery operations as AI-callable tools. Connect Claude, Cursor, or any MCP-compatible client to manage your TeamSpeak server with natural language.
Features
35 purpose-built tools covering server management, channels, clients, groups, permissions, moderation, and more
Lazy connection — connects to TeamSpeak only when the first tool is invoked
Exponential backoff retry — automatic reconnection with up to 3 attempts
Graceful shutdown — cleans up the ServerQuery session on process exit
Centralized error handling — every tool returns structured MCP error responses
Zero-config transport — runs over
stdio, works out-of-the-box with any MCP client
Related MCP server: CS2 RCON MCP Server
Requirements
Node.js >= 18
A TeamSpeak 3 server with ServerQuery access (port
10011by default)
Getting Started
Add the following to your MCP client configuration. This works with most clients:
{
"mcpServers": {
"teamspeak": {
"command": "npx",
"args": ["teamspeak3-mcp"],
"env": {
"TEAMSPEAK_HOST": "your-server.com",
"TEAMSPEAK_PASSWORD": "your-password"
}
}
}
}No installation needed — npx downloads and runs the package automatically.
Claude Desktop
Add to your Claude Desktop config file (claude_desktop_config.json):
{
"mcpServers": {
"teamspeak": {
"command": "npx",
"args": ["teamspeak3-mcp"],
"env": {
"TEAMSPEAK_HOST": "your-server.com",
"TEAMSPEAK_PASSWORD": "your-password"
}
}
}
}Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"teamspeak": {
"command": "npx",
"args": ["teamspeak3-mcp"],
"env": {
"TEAMSPEAK_HOST": "your-server.com",
"TEAMSPEAK_PASSWORD": "your-password"
}
}
}
}Configuration
Configuration is resolved from CLI arguments first, then environment variables, with sensible defaults as fallback.
Parameter | CLI Flag | Env Variable | Default |
Host |
|
|
|
Query Port |
|
|
|
Username |
|
|
|
Password |
|
| (required) |
Virtual Server ID |
|
|
|
Enabled Tools |
|
| (all) |
Note:
TEAMSPEAK_PASSWORDrefers to the ServerQuery login password, not the TeamSpeak server connection password. You can find it in the server console output on first start, or create one via Tools → ServerQuery Login in the TeamSpeak client.
Selective Tool Loading
By default all 35 tools are registered. Use TEAMSPEAK_TOOLS (or --tools) with a comma-separated list of module names to load only what you need — useful for reducing the tool list exposed to the AI model:
{
"mcpServers": {
"teamspeak": {
"command": "npx",
"args": ["teamspeak3-mcp"],
"env": {
"TEAMSPEAK_HOST": "your-server.com",
"TEAMSPEAK_PASSWORD": "your-password",
"TEAMSPEAK_TOOLS": "server,channel,client"
}
}
}
}Available modules: server, channel, client, sgroup, cgroup, permission, messaging, moderation, token, file
Tools Reference
Server (server_*)
Tool | Description |
| Get server details (scope: |
| List resources (resource: |
| Search for clients or channels by pattern |
| View recent virtual server or instance log entries |
| Run a diagnostic check on the current connection's permissions |
Channel (channel_*)
Tool | Description |
| Create a new channel (permanent or temporary) |
| Delete a channel (with optional force flag) |
| Update channel properties (name, password, codec, talk power, etc.) |
| Get detailed channel information |
| Add, remove, or list permissions on a channel |
Client (client_*)
Tool | Description |
| Get detailed info: platform, version, country, IP, idle time, etc. |
| Move a client to another channel |
| Kick a client from the server or channel |
| Ban a client (timed or permanent) |
| Manage server group membership and individual permissions |
| List historical clients from the server database (includes offline clients) |
| Send a poke alert notification to a client |
Server Group (sgroup_*)
Tool | Description |
| Create a new server group |
| Delete a server group |
| Add, remove, or list permissions on a server group |
| List all clients assigned to a server group |
Channel Group (cgroup_*)
Tool | Description |
| Create a new channel group |
| Add, remove, or list permissions on a channel group |
| Assign a client to a channel group in a specific channel |
Permission (perm_*)
Tool | Description |
| List all available permission definitions (name, ID, description) |
| Find all assignments of a permission across the server |
| Get effective permission overview for a client in a channel |
Messaging (msg_*)
Tool | Description |
| Send a text message (mode: |
Moderation (ban_* / complaint_*)
Tool | Description |
| List all active ban rules |
| Create, delete, or clear ban rules by IP/name/UID |
| List complaints (optionally filtered by target client) |
Tokens (token_*)
Tool | Description |
| List all available privilege keys/tokens |
| Create a server group or channel group token |
Files (file_*)
Tool | Description |
| List files in a channel's file repository |
| Get detailed info about a specific file |
Development
git clone https://github.com/fl0w1nd/teamspeak3-mcp.git
cd teamspeak3-mcp
pnpm install
pnpm build # Build the project
pnpm dev # Watch mode (auto-rebuild on changes)
pnpm inspect # Debug with MCP Inspector (web UI)MCP Inspector
The project includes a pre-configured script for the MCP Inspector, a web-based debugging tool:
pnpm inspectThis launches a local web UI where you can browse available tools, invoke them interactively, and inspect request/response payloads — useful for development and troubleshooting.
Project Structure
src/
├── index.ts # Entry point, stdio transport, graceful shutdown
├── config.ts # CLI + env configuration parsing
├── connection.ts # TeamSpeak connection with retry & lazy init
├── server.ts # MCP server setup & tool registration
├── utils/
│ └── tool-handler.ts # Error handling & response utilities
└── tools/
├── server.ts # Server info, resource listing, search, logs, diagnostics
├── channel.ts # Channel CRUD & permissions
├── client.ts # Client management, permissions & poke
├── server-group.ts # Server group CRUD, permissions & members
├── channel-group.ts # Channel group CRUD, permissions & assignment
├── permission.ts # Global permission queries & overview
├── messaging.ts # Channel & private messaging
├── moderation.ts # Bans & complaints
├── token.ts # Privilege token management
└── file.ts # Channel file browserLicense
Available Tools
35 toolsban_listB
List all active ban rules on the virtual server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. "List" implies a read operation and "active" hints at filtering out expired/revoked rules, but there is no disclosure of permissions required, pagination, ordering, or result size for a ban list that can grow large.
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 front-loaded sentence with zero filler; the resource and scope appear immediately. Nothing in the sentence is redundant or padding.
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, no-output-schema read tool the definition is minimally viable, but it omits the relationship to ban_manage/client_ban and says nothing about return shape or pagination. An agent can call it, but cannot confidently route between the three ban-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?
The tool takes zero parameters, so there are no parameter semantics to document and the baseline of 4 applies. The description adds no misleading detail about inputs.
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 verb and resource ("List all active ban rules") and scopes it to "the virtual server," so an agent knows exactly what is returned. However, it makes no attempt to distinguish itself from its close siblings ban_manage and client_ban, leaving the agent to infer the 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?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives, even though ban_manage and client_ban sit right next to it in the toolset. The reader must guess whether this tool also creates, edits, or removes bans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ban_manageC
Create, delete, or clear ban rules on the server
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | IP address pattern to ban | |
| uid | No | Client unique identifier to ban | |
| name | No | Name pattern to ban | |
| time | No | Ban duration in seconds (0 = permanent) | |
| action | Yes | Action to perform | |
| ban_id | No | Ban ID (required for delete) | |
| reason | No | Ban reason | Banned by AI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states that rules can be created, deleted, or cleared, but does not describe permissions required, whether deletions are reversible, the effect of clearing all rules, or any rate limits. It signals mutation but lacks the depth expected for a destructive-capable tool.
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 and the core actions are front-loaded. It is not bloated, though it is very sparse for a tool with this many parameters.
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 that this is a mutation tool with seven parameters, no annotations, and no output schema, the description is insufficiently complete. It omits when to use each action, permission requirements, destructive implications of delete/clear, and any return or error 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 100%, so the schema already documents all seven parameters in detail, including the action enum and ban_id requirement for deletion. The description adds no meaning beyond the schema, which is the baseline case for full 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 specific set of actions (create, delete, clear) on a specific resource (ban rules), making the tool's purpose clear. However, it does not differentiate this tool from siblings like ban_list or client_ban, leaving some ambiguity about when this tool is the right choice.
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 alternatives. It does not mention ban_list for viewing bans or client_ban for banning a specific client, nor does it state prerequisites or conditions for using each action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cgroup_assignC
Assign a client to a channel group in a specific channel
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Channel group ID to assign | |
| channel_id | Yes | Channel ID where the assignment applies | |
| client_db_id | Yes | Client database ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it discloses only the bare action. It says nothing about required permissions, whether assignment is idempotent or overwrites an existing group membership, or what happens on failure — all material for a mutation tool.
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 front-loaded sentence with no filler. It is appropriately sized, though it is arguably too terse for a mutation tool with no annotations to lean on.
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 mutation tool with no annotations and no output schema, the description is thin. It omits permissions, idempotency, and side effects, leaving real gaps an agent would need filled before invoking it.
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 defines group_id, channel_id, and client_db_id. The description merely restates those concepts and adds no format, range, or edge-case detail, so the 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?
States a specific verb ('Assign') and the resources involved (client → channel group → channel), so the operation is identifiable. It does not, however, distinguish itself from related siblings like cgroup_create, cgroup_perm, or the sgroup_* family, leaving the agent to infer scope from the name alone.
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 when-to-use guidance, no prerequisites, and no mention of alternatives despite a dense sibling set (cgroup_create, cgroup_perm, client_perm). The agent is given no routing signal beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cgroup_createC
Create a new channel group
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new channel group | |
| type | No | Group type (0=template, 1=regular, 2=query) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It states the mutation ('create') but omits permissions required, side effects, reversibility, or what happens on failure. Minimal disclosure for a write 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?
A single, front-loaded sentence with no wasted words. It is appropriately sized for the core action, though it could be slightly more informative without loss of conciseness.
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 two parameters, no output schema, and no annotations, the description should convey more context about creation behavior and return expectations. The single sentence leaves significant gaps for a mutation 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 the schema already documents both parameters including the enum-like type meanings. The description adds no additional parameter semantics. Baseline 3 is appropriate when the schema does the heavy lifting.
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 and resource: 'Create a new channel group'. It is clear what the tool does and is distinguishable from most siblings by resource, but it does not explicitly differentiate itself from related group tools like sgroup_create or channel_create.
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 such as sgroup_create or channel_create. The description offers no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cgroup_permC
Manage permissions for a channel group: add, remove, or list
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Permission value (for add) | |
| action | Yes | Action to perform | |
| group_id | Yes | Channel group ID | |
| permission | No | Permission name (for add/remove) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and falls short. It does not disclose that 'add'/'remove' are mutations (likely requiring elevated auth), whether removal is reversible, or what 'list' returns — meaningfully different behaviors are flattened into one vague sentence.
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 compact sentence with the resource front-loaded and the operations trailing. It is efficient, though its brevity borders on under-specification rather than true conciseness.
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 4-parameter mutation-capable tool with no annotations and no output schema, the description is insufficient. It omits auth requirements, the semantics of the permission/value pairing, and any sense of what the list action returns.
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 (action, group_id, permission, value) is already documented in the schema with its applicable action noted. The description adds nothing beyond what the schema provides, so the 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?
States a specific verb+resource ('Manage permissions for a channel group') and enumerates the three supported operations. It implicitly distinguishes the resource from siblings like sgroup_perm and channel_perm by naming 'channel group', but never explicitly routes away from 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?
No guidance on when to use this over perm_list, perm_find, perm_overview, channel_perm, or sgroup_perm. The add/remove/list enumeration merely restates the action enum already in the schema rather than describing when each applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_createC
Create a new channel on the server
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Channel name | |
| parent_id | No | Parent channel ID | |
| permanent | No | Permanent or temporary channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it discloses nothing about side effects, permission requirements, whether 'permanent' changes behavior irreversibly, or what the tool returns. 'Create' implies mutation but no mutation-specific traits (authorization, defaults, reversibility) are described.
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, front-loaded sentence with no wasted words and the core action stated immediately. It is efficient, though arguably under-specified rather than maximally 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?
This is a mutation tool with no annotations and no output schema, so the description should compensate with permission requirements, side-effect notes, or return behavior. Instead it offers only the bare action, leaving significant gaps 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 coverage is 100%, so the schema already documents name, parent_id, and permanent with their types and defaults; the description adds no syntax, format, or constraint detail beyond that. Baseline 3 is appropriate when the schema does the heavy lifting.
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 (Create) and resource (channel) plus the scope ('on the server'), so an agent can distinguish it from channel_delete, channel_update, and channel_info at a glance. It does not, however, explicitly name or contrast itself with those siblings, keeping it below 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?
There is no guidance on when to use this tool versus alternatives, nor any stated prerequisites such as required permissions. The description only asserts what the tool does, leaving the agent to infer all usage context from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_deleteB
Delete a channel from the server
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force deletion even if clients are present | |
| channel_id | Yes | Channel ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it says nothing about irreversibility, required permissions, or what happens to connected clients. The schema hints at a 'force' flag for deleting channels with clients present, but the description never explains this behavior or its consequences.
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 that leads with the action and resource. Nothing is wasted or buried.
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 destructive, irreversible operation with no annotations and no output schema, the description is minimally viable but leaves out consequences, permission requirements, and the meaning of the force flag. An agent could call it, but not with full awareness of the impact.
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 channel_id and force are already documented in the schema, and the description adds nothing further. Per the high-coverage baseline, a 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?
States a specific verb ('Delete') and resource ('a channel'), so the operation is unambiguous. It does not explicitly differentiate itself from siblings like channel_update or channel_perm, but the destructive verb makes the distinction obvious enough.
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 when-to-use context, no prerequisites, and no mention of alternatives such as channel_update for non-destructive changes. An agent gets no routing guidance beyond the bare operation name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_infoC
Get detailed information about a specific channel
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | Channel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup, but it never confirms that, nor does it disclose permission requirements, whether missing channels error, or anything about the returned payload. For a zero-annotation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and no padding. It is efficient, though it is sized at the absolute minimum rather than fully exploiting the space for useful context.
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 read tool this is minimally adequate, but with no annotations, no output schema, and no return-format hint, an agent cannot predict what 'detailed information' contains or what errors to expect. A sentence or two more would close the 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% for the single channel_id parameter, so the schema already carries the parameter documentation. The description adds no format, range, or sourcing details (e.g., how to obtain a channel ID), which is the expected baseline when coverage is complete.
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 (channel information) scoped to a single channel identified by ID. It is clear what the tool does, but it makes no attempt to differentiate itself from sibling tools like channel_perm, channel_update, or channel_create beyond the obvious read/write distinction.
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. For example, it does not say to use this instead of or alongside channel_perm when permission details are needed, nor does it state any preconditions for retrieving channel info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_permB
Manage permissions on a specific channel: add, remove, or list
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Permission value (required for add) | |
| action | Yes | Action to perform | |
| channel_id | Yes | Channel ID | |
| permission | No | Permission name (required for add/remove) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden, yet it discloses nothing beyond the action list: no permission requirements, no note on whether add/remove are reversible or auditable, and no confirmation of whether 'list' is read-only. For a mutation-capable permission tool this is a substantial 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?
A single compact sentence, front-loaded with the verb and resource, with the three actions enumerated at the end. Nothing wasted.
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?
Adequate for a 4-param tool with full schema coverage and no output schema, but the absence of annotations and behavioral detail leaves an agent without safety, permission, or side-effect context it would need 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 the schema already documents each parameter including which are required for which action (value for add, permission for add/remove). The description adds no meaning beyond that baseline, so 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?
States a specific verb (manage permissions) and resource (a specific channel), and enumerates the three sub-operations (add, remove, list). It distinguishes itself from sibling client_perm and sgroup_perm by naming the channel scope, though it doesn't explicitly contrast 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?
The description implies usage via the action list but gives no explicit when-to-use, prerequisites, or alternative routing. An agent knows the three modes exist but not under what conditions one is preferred over channel_perm alternatives like perm_overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
channel_updateC
Update channel properties. Talk power presets: 0=normal, 50=moderated, 999=silent
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New channel name | |
| password | No | New channel password (empty string to remove) | |
| permanent | No | Make channel permanent | |
| channel_id | Yes | Channel ID to update | |
| talk_power | No | Required talk power (0=normal, 50=moderated, 999=silent) | |
| description | No | New channel description | |
| max_clients | No | Maximum number of clients | |
| codec_quality | No | Audio codec quality 1-10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says 'update' but not whether this requires elevated permissions, whether changes are immediate/reversible, or what happens to unspecified properties. Only the talk_power preset meaning is conveyed.
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, front-loaded with the core action. However, the second sentence duplicates the schema's talk_power description, so it does not fully earn 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 an 8-parameter mutation tool with no annotations and no output schema, the description is sparse: no permission requirements, no side-effect or return-value context, and no guidance on optional-vs-required fields beyond the schema's required 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 100%, so all 8 parameters are already documented, which sets the baseline at 3. The description restates the talk_power presets verbatim from the schema, adding no semantics beyond what the schema 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?
States a clear verb+resource ('Update channel properties'), which is enough to know it mutates a channel. It does not distinguish itself from sibling mutation tools such as channel_perm or cgroup_perm, which also modify channel-related state.
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 when-to-use guidance, no prerequisites, and no mention of alternatives (channel_create, channel_delete, channel_info, channel_perm). The agent must infer that this is the tool for modifying existing channel attributes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_banC
Ban a client from the server
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Ban reason | Banned by AI |
| duration | No | Ban duration in seconds (0 = permanent) | |
| client_id | Yes | Client ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and falls short. It does not disclose that this is a destructive action, whether the client is disconnected, whether the ban is reversible, or that duration=0 means permanent (that fact lives only in the schema default).
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 with no filler, and the action is front-loaded. It is efficient, though the brevity reflects under-specification rather than disciplined editing.
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 destructive, irreversible-feeling moderation tool with no annotations and no output schema, the description should cover permissions, permanence semantics, and side effects. It covers none of these, leaving the agent to reconstruct behavior from the schema and sibling names.
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 reason, duration (including the 0 = permanent convention), and client_id all documented in the schema. The description adds no parameter meaning of its own, so the 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?
States a specific verb and resource: "Ban a client from the server." An agent can identify the action immediately, but the description does nothing to separate it from the closely related sibling client_kick (kick vs. ban) or to acknowledge ban_list/ban_manage which operate on the same domain.
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 on when to ban rather than kick, no mention of prerequisites such as permissions, and no reference to any alternative tool. The agent must infer the ban/kick distinction from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_db_listA
List historical clients from the server database (includes offline clients). Supports pagination for large databases
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of entries to return (max 1000) | |
| start | No | Offset to start from (for pagination) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that offline clients are included and that pagination is supported, but says nothing about permissions required, ordering, whether results are cached/live, or any return shape.
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 tight sentences with zero filler; the scope-defining detail (offline clients) is front-loaded before the pagination note.
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-optional-parameter list tool with no output schema, the description covers the essentials but omits what a returned client record contains and any ordering or permission context an agent might need.
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 limit and start are already documented with defaults and the max-1000 cap. The description's mention of pagination adds no detail 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?
States a specific verb and resource ("List historical clients from the server database") and scopes it with "includes offline clients." This distinguishes it from point lookups like client_info, though it does not name any sibling explicitly.
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 only implied: an agent can infer the tool is for enumerating offline/historical clients and for large datasets that need pagination. There is no explicit when-to-use statement, no condition that selects this over client_info, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_infoC
Get detailed information about a specific online client
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | Client ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does not disclose whether this is a read-only operation (implied by 'Get' but not stated), what permissions are required, or what the response includes. For a read tool, it fails to mention side effects (none) or safety profile.
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 core action. It is appropriately sized, though it could be slightly more informative 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?
Given there are no annotations and no output schema, the description should explain what information is returned, whether the client must be online, and any prerequisites. It omits all of this, leaving significant gaps for an agent to infer.
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%, so the schema already documents the single parameter 'client_id' as a number. The description adds no additional meaning about the parameter, such as format, source, or constraints. Baseline 3 is appropriate because the schema does the heavy lifting for this single parameter.
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 ('detailed information about a specific online client'), distinguishing it from client_move/client_kick which are mutation siblings. However, it is vague about what 'detailed information' entails and does not differentiate it from similar info siblings like client_perm or channel_info beyond the resource name.
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 when-to-use guidance is provided. The description does not state the context for retrieving client info (e.g., after a connection event, for troubleshooting) nor does it mention alternatives or exclusions. It simply restates the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_kickB
Kick a client from the server or current channel
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Kick reason | Kicked by AI |
| client_id | Yes | Client ID | |
| from_server | No | true = kick from server, false = kick from channel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a destructive action ('Kick') but does not cover permissions required, whether the kick is reversible, what happens to the client, or the effect on other users. This is a significant gap for a moderation tool.
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 that efficiently communicates the core action and scope without any 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?
For a moderation tool with no annotations, no output schema, and destructive implications, the description is incomplete. It lacks critical behavioral context such as required permissions, consequences of kicking, and differentiation from related tools like client_ban.
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% (all three parameters have descriptions), so the baseline is 3. The description adds no parameter details beyond the schema, which already documents client_id, reason, and from_server with defaults and meanings.
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 ('Kick') and resource ('a client') with scope ('from the server or current channel'), clearly distinguishing it from siblings like client_ban and client_poke. An agent can immediately understand the tool's action 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 description implies usage by specifying the optional scope (server vs. channel), but does not explicitly state when to use this tool versus alternatives like client_ban or client_move. No exclusions or preconditions are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_moveC
Move a client to another channel
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | Client ID | |
| channel_id | Yes | Destination channel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state what happens to the client's previous channel state, whether the move is reversible, what permissions are required, or whether the client is disconnected/reconnected. Only the basic action is conveyed.
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, efficient sentence with zero waste that front-loads the core 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?
For a mutation tool with no annotations, no output schema, and no usage context, the description leaves significant gaps: side effects, permission requirements, and failure modes are all unspecified.
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%, so the schema already documents both parameters. The description imposes a near-zero addition to parameter meaning, but the baseline for full schema coverage is 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?
States a specific verb (move) and resource (client) with a clear scope (to another channel). It is distinguishable from siblings like client_kick or client_ban, but does not explicitly differentiate from those 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?
No when-to-use guidance, no prerequisites (e.g., permissions, whether the client must be online), and no alternatives mentioned. An agent must infer everything from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_permC
Manage a client's server group membership and individual permissions
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Skip flag for permission | |
| value | No | Permission value (for add_perm) | |
| action | Yes | Action to perform | |
| negate | No | Negate flag for permission | |
| group_id | No | Server group ID (for add_group / remove_group) | |
| client_id | Yes | Client ID | |
| permission | No | Permission name (for add_perm / remove_perm) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does not meet it. It never discloses that some actions mutate state (add_group, remove_group, add_perm, remove_perm) while others are read-only (list_groups, list_perms), nor any permission/authorization prerequisites or reversibility of changes.
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 with no waste, but it is under-specified rather than truly concise. It does not front-load which actions are available or what the caller must supply, leaving the schema to carry the entire operational picture.
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 multiplexed tool with seven parameters, six enum actions, no annotations, and no output schema, the description is too thin. It explains neither the action dispatch semantics nor what each read action returns, which an agent needs to invoke the right action 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 schema already documents all seven parameters including their action-specific applicability. The description adds no syntax, format, or conditional parameter meaning beyond what the schema provides, so the 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 verb 'Manage' is a catch-all, but the resource is specific: a client's server group membership and individual permissions. It does not distinguish this tool from similarly-named siblings such as sgroup_perm, channel_perm, or cgroup_perm, and it never mentions the six distinct actions the tool actually performs. Adequate but vague.
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 on when to use this tool versus alternatives like perm_overview, sgroup_perm, or perm_list. The description states a topic but not a usage context or any exclusion criteria that would help an agent choose among the many permission-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_pokeA
Send a poke (alert popup) to a client — more attention-grabbing than a private message
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Poke message | |
| client_id | Yes | Target client ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that this is an intrusive alert/popup rather than a silent message, but it says nothing about required permissions, whether the client can suppress or dismiss the popup, rate limits, 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?
A single short sentence that front-loads the action ('Send a poke...') and appends the differentiating detail. No filler, no repetition of schema content.
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 notification tool this covers purpose and relative urgency, which is largely sufficient. However, with no annotations and no output schema, the description leaves the side-effect profile (permissions, disruption, failure modes) unaddressed.
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 only two simple required parameters (client_id, message), so the schema already documents everything. The description adds no format, length, or content guidance for the poke message beyond what the schema provides, meeting 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?
States a specific verb and resource (send a poke to a client) and clarifies the resource is an 'alert popup'. It also positions the tool against plain messaging via 'more attention-grabbing than a private message,' which effectively distinguishes it from msg_send without naming the sibling explicitly.
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 comparative clause 'more attention-grabbing than a private message' gives the agent a clear selection cue: reach for this when a normal message isn't urgent enough. It stops short of stating explicit when-not conditions or naming msg_send as the fallback, so it is context rather than a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complaint_listB
List complaints on the virtual server, optionally filtered by target client
| Name | Required | Description | Default |
|---|---|---|---|
| target_client_db_id | No | Target client database ID to filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a read-only operation, but the description does not mention permissions, pagination, return format, or any other behavioral trait beyond the basic action.
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 wasted words. It communicates the action, scope, and optional filter 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?
For a low-complexity list tool with one optional parameter, the description covers the essential purpose and filter. However, with no annotations and no output schema, it omits any behavioral context such as read-only nature or pagination, leaving only minimal 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 the single parameter is already documented as 'Target client database ID to filter.' The description adds 'optionally' and restates that it filters by target client, but does not provide additional syntax or semantic detail 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 ('List') and resource ('complaints on the virtual server'), making the tool's purpose immediately clear. No sibling tool also lists complaints, but the description does not explicitly differentiate itself from the adjacent 'ban_list' or mention any alternative, 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?
It states that results can be optionally filtered by target client, but gives no guidance on when to use this tool versus alternatives or when not to use it. There are no prerequisites, exclusions, or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_infoB
Get detailed information about a specific file in a channel's file repository
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Full path to the file | |
| channel_id | Yes | Channel ID containing the file | |
| channel_password | No | Channel password if required |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies a read operation but does not state whether permissions are required, what happens if the file is missing, whether channel_password is needed, or what side effects exist. This is a significant transparency gap for an unannotated tool.
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 single sentence is front-loaded with the core action and resource, and every word contributes to clarifying what the tool retrieves. 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 simple read tool with full parameter coverage and no output schema, the description is adequate but leaves gaps around return contents, permissions, and edge cases. It does not need to duplicate the schema, but with no annotations or output schema it could say more about 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 100%, so the schema already documents all three parameters including their meaning and required status. The description adds no parameter-level detail beyond naming the file's repository context, which is the baseline expectation when the schema does the heavy lifting.
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 ('detailed information about a specific file') with clear scope ('in a channel's file repository'). It distinguishes itself from the sibling file_list by emphasizing a single specific file rather than listing files.
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 explicit when-to-use guidance, no conditions for choosing this tool over siblings like file_list or channel_info, and no prerequisites or exclusions stated. The intended use is only implied by 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.
file_listB
List files in a channel's file repository
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory path to list | / |
| channel_id | Yes | Channel ID | |
| channel_password | No | Channel password if required |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, whether authentication or channel_password is required, whether results are paginated, or what the return format looks like.
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 or filler content. Every word contributes to stating the tool's core action and 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 list tool with full schema coverage, the description is minimally sufficient to support invocation. However, with no output schema, it does not explain what information is returned about the listed files, leaving a gap for the agent to interpret the results.
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 path, channel_id, and channel_password with their meanings. The description adds no parameter-level detail beyond what the schema provides, making the 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 states a specific verb ('List') and resource ('files in a channel's file repository'), so the core purpose is immediately clear. However, it does not distinguish this tool from the sibling file_info, which likely retrieves details about a single file rather than listing files.
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 explicit guidance on when to use this tool versus alternatives such as file_info or other channel-related tools. The usage is only implied by the verb 'List', leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
msg_sendB
Send a text message to a channel or a private message to a client
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 'channel' = send to a channel, 'private' = send to a specific client | |
| message | Yes | Message text to send | |
| target_id | Yes | Channel ID (for mode=channel) or Client ID (for mode=private) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does not state required permissions, whether the send is delivered immediately, rate limits, or what happens on failure — for a mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler that conveys verb, resource, and both targets. Nothing is wasted.
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 3-parameter tool with a fully documented schema and no output schema, the description is minimally adequate. However, with no annotations it should say more about permissions or delivery behavior to be genuinely complete for a write 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%, so the enum meanings for mode and the target_id interpretation are already fully documented in the schema. The description only restates the channel/private choice, adding no syntax or format detail beyond the schema 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?
States a specific verb ('Send') and resource ('text message') plus the two delivery targets (channel or client). It is clear on its own, though it never names or distinguishes itself from siblings like client_poke or channel_info.
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 implicitly frames usage (sending a message, choosing channel vs private), but offers no when-to-use guidance or explicit alternatives among the many sibling tools. An agent must infer the routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perm_findA
Find all assignments of a specific permission across server groups, channel groups, channels, and clients
| Name | Required | Description | Default |
|---|---|---|---|
| permission | Yes | Permission name (e.g. 'b_virtualserver_info_view') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the traversal scope (server groups, channel groups, channels, clients), but says nothing about permissions required, result size/pagination, or whether the operation is purely read-only (only implied by 'Find').
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 the verb front-loaded and zero filler. The scope enumeration is the one detail worth carrying and it is placed at the end where it reads naturally.
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-required-parameter read tool with no output schema, the description covers purpose and search scope adequately. The main omission is any note on result volume or required permissions, which is minor given the tool's simplicity.
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?
One parameter at 100% schema description coverage, so the schema already documents 'permission' including an example value. The description adds only the notion that the parameter selects 'a specific permission', matching the baseline for 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?
Clear verb ('Find') plus resource ('assignments of a specific permission') and an explicit search scope across server groups, channel groups, channels, and clients. It distinguishes itself from a plain permission listing, though it does not name siblings like perm_list or perm_overview as 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 use case (auditing where a given permission is granted) is implied by 'Find all assignments... across...', but there is no explicit when-to-use statement or routing to an alternative such as perm_list or perm_overview. Guidance is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perm_listA
List available permission definitions. Use 'filter' to search by keyword (e.g. 'kick') or 'category' to narrow by domain. Returns only names by default; set verbose=true for descriptions
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Keyword to search in permission name or description | |
| verbose | No | Include permission descriptions (increases token usage) | |
| category | No | Filter by permission category |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully discloses return behavior ('returns only names by default; set verbose=true for descriptions') and warns of token cost, but never mentions access requirements or whether the full permission set is always visible. Partial coverage of behavior beyond structure.
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?
Three short sentences, each earning its place: purpose first, usage second, return behavior third. No filler, well 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?
There is no output schema, yet the description compensates by stating what is returned by default and how verbose changes it. With zero required parameters and full schema coverage, the remaining gap is the absence of any safety/permission context on a read tool, which is minor.
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 filter, verbose, and category. The description adds only a concrete example keyword ('kick') and reinforces the verbose tradeoff, which is marginal added value over structured data. 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?
States a specific verb and resource: 'List available permission definitions.' An agent knows exactly what it retrieves. However, it never distinguishes itself from close siblings like perm_find and perm_overview, which implies overlapping lookup capabilities.
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 explains how to use the filter and category parameters, which implies a browsing/lookup context, but never says when to choose this tool over perm_find, perm_overview, or the various *_perm tools. No exclusions or alternatives are named, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
perm_overviewB
Get the effective permission overview for a client in a specific channel. Shows all permissions and their sources
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | Channel ID | |
| client_db_id | Yes | Client database ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. Words like 'Get' and 'Shows' imply a read-only query, and 'effective' plus 'their sources' hints that inherited/group permissions are resolved rather than raw. That is genuine behavioral value, but it says nothing about auth requirements, output shape, or cost.
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, front-loaded with the core action, with no padding. The second sentence usefully clarifies that sources are included, though it slightly overlaps 'overview' in the first.
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 query tool with no annotations and no output schema, the description covers what the tool produces at a high level (permissions plus their sources) but gives no hint of the response structure an agent would need to consume. Adequate but with a clear 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 only two, clearly named numeric parameters (client_db_id, channel_id), so the schema does the heavy lifting. The description only restates that a client and channel scope the query, adding no format or constraint detail beyond the schema. 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?
States a specific verb and resource: 'Get the effective permission overview for a client in a specific channel.' The 'effective' qualifier and 'their sources' give it real specificity. However, it does not differentiate from nearby siblings like perm_list, client_perm, channel_perm, or perm_find, so an agent still needs to guess which resolves the same need.
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 explicit when-to-use or when-not guidance. With siblings such as perm_list, client_perm, channel_perm, and perm_find in the toolset, ambiguity is high and the description does nothing to route the agent. Usage is only implied by the phrase 'effective permission overview for a client in a specific channel.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_diagnoseB
Diagnose current ServerQuery connection permissions and provide troubleshooting info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. 'Diagnose' implies a safe read, but it doesn't state that it is read-only, whether it requires elevated permissions, or what form the troubleshooting output takes. Minimal disclosure for a zero-annotation tool.
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 efficient sentence with the action front-loaded and no filler. Well-sized for a no-parameter 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 parameters and no output schema, the description needn't explain return values, but 'provide troubleshooting info' is vague about what an agent will actually receive, leaving the diagnostic output underspecified.
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 zero parameters, so there are no parameter semantics to convey; the baseline of 4 applies. The description appropriately doesn't waste space describing inputs that don't exist.
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 (Diagnose) and resource (current ServerQuery connection permissions) plus an auxiliary output (troubleshooting info). Clear what it does, though it doesn't explicitly distinguish itself from the neighboring perm_overview or server_info 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?
Only an implied usage context ('troubleshooting') with no explicit when-to-use, when-not, or named alternatives among the many permission-related siblings (perm_overview, perm_list, client_perm). An agent must guess when to reach for this over perm_overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_infoB
Get TeamSpeak server information. Use scope 'overview' for general server details, 'connection' for network/bandwidth statistics
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Info scope: 'overview' = general server details, 'connection' = network statistics | overview |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the full disclosure burden to the description. While it indicates a read-style 'Get' operation, it omits key behavioral details like required permissions, rate limits, or whether the network statistics are real-time/cumulative. There is no contradiction with the structured data.
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 that front-loads the main purpose and then explains the scope options. No significant waste is present.
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 read tool with full schema coverage and no output schema, the description covers the basics. However, with no annotations and no output schema, it does not mention what the return data includes or any prerequisites, leaving some gaps 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 single parameter 'scope' has full schema coverage including an enum and a detailed description. The description restates the same meanings without adding new syntax, constraints, or examples. With high 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 explicitly states 'Get TeamSpeak server information', giving a clear verb and resource. It distinguishes from nearby siblings like server_diagnose and server_list by specifying it returns general server data with scope options, though it doesn't explicitly contrast with these siblings.
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 through the scope descriptions ('Use scope overview for general server details, connection for network/bandwidth statistics'), but the tool does not state when it should be used versus alternatives such as server_diagnose or server_list, nor does it offer exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_listC
List server resources: online clients, channels, server groups, or channel groups
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | Resource type to list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It adds one useful qualifier ('online' clients) but says nothing about permissions, scoping, pagination, or completeness of the listing, leaving the mutation/safety profile and result behavior undisclosed.
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 efficient sentence that front-loads the verb and the available resource types. No wasted text, though it is perhaps terse enough to omit useful context.
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 one-parameter list tool with no output schema, the description is minimally adequate: it names the listable resources but omits return shape, permissions, and pagination. It is complete enough to call correctly but not to anticipate results.
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 enum already enumerates the four resource values, so the baseline is 3. The description adds a small amount of meaning by qualifying clients as 'online', but otherwise restates the enum.
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 (List) and resource (server resources) and enumerates the four listable types, so an agent knows exactly what comes back. It does not explicitly contrast itself with close siblings like server_search or server_info, 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?
There is no explicit when-to-use guidance and no mention of the alternative tools (server_search, server_info). The reader can infer it is for enumeration, but nothing tells the agent when this is preferable to the sibling search/info tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_logC
View recent entries from the virtual server log
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Number of log lines to retrieve | |
| reverse | No | Newest first | |
| begin_pos | No | Starting position in log file | |
| instance_log | No | Show instance log instead of virtual server log |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it only gestures at "recent entries" without stating that output is bounded (default 50, max 100 lines), that it is read-only, whether permissions are required, or what the return looks like. It adds almost no behavioral context an agent couldn't infer from the verbs.
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 that is front-loaded with the action and resource and contains no filler. It is appropriately sized, though perhaps too terse to be maximally useful.
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 tool with full schema coverage and no output schema, the description is minimally adequate, but it omits any guidance on output format, the instance-vs-virtual-server distinction, or relationship to sibling diagnostic tools. An agent can call it, but with less confidence than a richer definition would give.
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 (lines, reverse, begin_pos, instance_log) is documented in the schema itself with defaults and bounds. The description adds no format, paging, or positional semantics beyond that, so the 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?
States a specific verb ("View") and a specific resource ("virtual server log"), so the agent knows this is a read of log entries. However, it offers no differentiation from nearby siblings like server_diagnose or server_info, which could plausibly also surface log/status output.
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 indication of when to reach for this tool versus server_diagnose or server_info, nor any prerequisites or exclusions. Usage is only weakly implied by the word "View" and "recent entries".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_searchB
Search for online clients by name/UID or channels by name pattern
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Search type | |
| by_uid | No | Search clients by unique identifier instead of name (only for type=client) | |
| pattern | Yes | Search pattern (name or UID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose one real behavioral trait, that only *online* clients are matchable, but says nothing about permissions, result limits, or return shape, which is significant for a query tool with 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?
A single front-loaded sentence with no filler; every word maps to a searchable dimension of 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 parameterized search tool with no annotations and no output schema, the definition is adequate but thin: it does not hint at the result format, pagination, or whether results are capped, leaving the agent to discover return behavior empirically.
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 type, by_uid, and pattern. The description broadly mirrors this (name/UID, channel name pattern) without adding syntax or format detail beyond it, 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?
States a specific verb (Search) and resource (online clients / channels) with the two searchable axes (name/UID vs name pattern). It is clearly distinguishable from siblings like server_list or client_info, though it does not name a sibling explicitly.
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 rather than stated: the agent can infer this is the lookup tool for clients/channels, and 'online clients' quietly scopes the target set. There is no explicit when-to-use, when-not-to-use, or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sgroup_clientsC
List all clients assigned to a server group
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Server group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' implies a read-only operation, but nothing is said about permissions required, whether offline/empty groups are handled, or pagination/result limits. For a tool with zero annotation coverage 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?
A single front-loaded sentence with no filler or redundancy. It is appropriately sized, though it is minimal rather than maximally 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 one-parameter read tool with complete schema coverage and no output schema, the description is minimally adequate. It would be stronger if it noted the read-only nature or what the client entries represent.
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 a single, well-documented group_id, so the baseline is 3. The description adds no format, range, or sourcing detail 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?
States a specific verb (list) and resource (clients assigned to a server group), which is clear enough to distinguish from the related sgroup_perm and sgroup_create tools. However, it does not explicitly contrast with adjacent client-listing siblings such as client_db_list or client_info.
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 statement of when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer that this is the lookup for membership in a server group from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sgroup_createB
Create a new server group
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new server group | |
| type | No | Group type (0=template, 1=regular, 2=query) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says only that a group is created, without mentioning permissions required, whether the name must be unique, what side effects occur, or what is returned.
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 zero waste. It is appropriately sized for a simple creation tool and contains no redundant phrasing.
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 input schema fully covers the parameters and required field, so the description is minimally sufficient for invocation. However, with no annotations and no output schema, it omits behavioral context such as permissions and creation effects.
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 two parameters are already documented in the input schema. The description adds no meaning beyond the schema, making the baseline 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 states a specific verb and resource: 'Create a new server group'. It distinguishes the action from destructive siblings like sgroup_delete, but does not explicitly differentiate it from other creation tools such as cgroup_create.
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, what prerequisites exist, or how it differs from alternatives like cgroup_create or sgroup_perm. 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.
sgroup_deleteA
Delete a server group. Use force=true to remove even if clients are assigned
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force deletion even if clients are assigned to this group | |
| group_id | Yes | Server group ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It usefully reveals the blocking behavior when clients are assigned, but never states that deletion is irreversible, what happens to memberships/permissions, or what permission level is required for a destructive 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?
Two short sentences, zero filler, with the core action front-loaded before the conditional modifier. Nothing could be removed without losing information.
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?
Simple two-parameter tool with no output schema, so return values need no explanation. However, for an unannotated destructive operation the description omits irreversibility and authorization context, leaving meaningful gaps for an agent deciding whether to call it.
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 parameters are already documented, including force's meaning and its default of false. The description's restatement of force adds no syntax or format detail beyond the schema, 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?
States a specific verb and resource ('Delete a server group') and is unambiguous. It is easily distinguished from the sibling sgroup_create and readable without opening the schema, though it never names a sibling explicitly to sharpen the distinction.
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 gives one conditional instruction ('Use force=true to remove even if clients are assigned'), which implies the default path fails when clients exist. There is no guidance on prerequisites, permissions, or when to prefer an alternative such as reassigning clients first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sgroup_permC
Manage permissions for a server group: add, remove, or list
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Skip flag | |
| value | No | Permission value (for add) | |
| action | Yes | Action to perform | |
| negate | No | Negate flag | |
| group_id | Yes | Server group ID | |
| permission | No | Permission name (for add/remove) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but says nothing about required privileges, whether add/remove are idempotent, whether changes are reversible, or what happens with negate/skip. The 'negate' and 'skip' flags ('Negate flag', 'Skip flag') are opaque and never explained here.
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 front-loaded sentence with the scope first and actions last, no wasted words. It is efficient, though the terseness leaves important semantics unstated rather than being excessive.
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?
A mutation tool with six parameters, no annotations, and no output schema needs more: the description omits permission requirements, effect of the negation/skip flags, and return behavior. An agent can pick the action but not predict the result or preconditions.
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%, so the baseline is 3; the schema documents group_id, action, permission, and value. The description repeats action values but adds no meaning for negate/skip/value beyond the (tautological) schema text.
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?
Names a specific verb (manage) plus resource (server group permissions) and enumerates the three actions, which separates it from sibling permission tools like cgroup_perm and client_perm by scope. It stops short of explicitly contrasting those siblings.
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 statement of when to choose this tool over cgroup_perm, client_perm, or perm_list/perm_overview; usage is only implied by the 'server group' scope. No prerequisites or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_createC
Create a new privilege key/token for server or channel group access
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Server group ID (type=0) or channel group ID (type=1) | |
| channel_id | No | Channel ID (required for channel group tokens) | |
| custom_set | No | Custom client properties (format: ident=value|ident=value) | |
| token_type | Yes | 0 = server group token, 1 = channel group token | |
| description | No | Token description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose that the returned token is a secret typically shown only once, what permissions are required, or that creation is irreversible. For a credential-minting mutation tool this is a significant omission.
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 tight sentence with the action front-loaded and no filler. It is efficient, though arguably terse given the tool is a security-sensitive mutation.
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?
A write/credential tool with no annotations, no output schema, and five parameters, two of them required. The description omits the conditional requirement logic (channel_id needed for channel tokens) and any behavioral context, leaving the agent under-informed for a sensitive operation.
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 five parameters are documented in the schema itself, including token_type, group_id, and channel_id semantics. The description adds only the general server/channel distinction already fully covered by the schema, 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?
Specific verb+resource: 'Create a new privilege key/token for server or channel group access' clearly states what it does and the scope of access it targets. It is distinguishable from the read-only sibling token_list, though it does not name that sibling explicitly.
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 on when to use this versus alternatives (e.g., token_list) and no prerequisites or exclusions stated. The phrase 'for server or channel group access' hints at scope but does not tell the agent when creation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_listA
List all privilege keys/tokens available on the server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only listing but never explicitly states non-destructiveness, whether this requires admin privileges to call, or whether the result is paginated. Volume and auth requirements are undisclosed.
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 well-formed sentence with zero filler. The verb and scope are front-loaded and no sentence is wasted.
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 discovery tool with no output schema, the description is only minimally complete. It doesn't explain what a 'privilege key' looks like in the response or note that token_create likely follows, leaving the agent to guess about output shape and next steps.
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?
There are no parameters, so per the rubric this is a baseline 4. The description correctly implies the tool takes no input by describing a global server-wide listing.
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 ('privilege keys/tokens') plus scope ('available on the server'). It is immediately distinguishable from token_create and perm_list, and an agent can tell what it returns 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 implies this is a discovery operation for available token types, but never says when to call it. There is no mention of token_create as the follow-up action or any prerequisite context, leaving usage to inference.
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.
35 tool updates
v1.0.3- First observed
ban_list - First observed
ban_manage - First observed
cgroup_assign - First observed
cgroup_create - First observed
cgroup_perm - First observed
channel_create - First observed
channel_delete - First observed
channel_info - First observed
channel_perm - First observed
channel_update - First observed
client_ban - First observed
client_db_list - First observed
client_info - First observed
client_kick - First observed
client_move - First observed
client_perm - First observed
client_poke - First observed
complaint_list - First observed
file_info - First observed
file_list - First observed
msg_send - First observed
perm_find - First observed
perm_list - First observed
perm_overview - First observed
server_diagnose - First observed
server_info - First observed
server_list - First observed
server_log - First observed
server_search - First observed
sgroup_clients - First observed
sgroup_create - First observed
sgroup_delete - First observed
sgroup_perm - First observed
token_create - First observed
token_list
TDQS
Scored across 35 tools
Most tools have clearly distinct purposes, but the perm_* family (perm_overview, perm_list, perm_find, channel_perm, client_perm, sgroup_perm, cgroup_perm) has overlapping 'manage permissions' functions that could confuse without careful reading. Similarly, ban_* tools (ban_list, ban_manage, client_ban) have some overlap. Descriptions help distinguish them, but boundaries aren't always crisp.
Tool names mostly use a consistent verb_noun or noun_verb pattern (e.g., channel_create, client_kick, sgroup_perm), but there are minor deviations like server_list (noun_verb) and sgroup_create (abbreviated noun). The abbreviations (sgroup, cgroup, perm) are consistent within categories, making the naming predictable overall.
With 35 tools, the count is heavy for a TeamSpeak server management MCP. While many are distinct operations, the number could overwhelm an agent, and some tools (e.g., perm_overview vs perm_list) might be consolidated. The scope is broad, but the count feels borderline excessive.
The tool set covers most CRUD operations for channels, clients, server groups, channel groups, permissions, bans, messages, files, tokens, and complaints. However, some gaps exist: no tools for banning by IP/range, no detailed server group info beyond permissions, and no file upload/download operations. These are minor but noticeable for a complete management surface.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI dialogue using various LLM models via AceDataCloud
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
MCP server for Sendbird — chat users, channels, members, and messages from your AI client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI models to interact with VoIPBin's VoIP services, supporting features like call management, agent management, campaigns, conferences, and chat functionality.4MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows management of Counter-Strike 2 game servers via RCON commands using natural language.10MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables AI models like Claude to control TeamSpeak servers, allowing users to manage channels, send messages, configure permissions, and perform server administration through natural language commands.4010MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that integrates TAK Server with AI systems, providing geospatial-aware tools for querying, analyzing, and interacting with tactical data.10MIT