better-discord-mcp
Allows reading and controlling Discord through a BetterDiscord plugin, including reading channels, sending messages, searching, and moderation actions like ban, kick, timeout, and delete.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@better-discord-mcpshow me recent messages in #general"
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.
better-discord-mcp
An MCP server that lets an AI client (Claude Desktop / Claude Code) read and control Discord through a BetterDiscord plugin. It drives your logged-in Discord client, so it can read any channel you can see, send messages, and perform moderation (ban / kick / timeout / delete) wherever your account has permission.
Claude ──stdio──▶ MCP server ──WebSocket(127.0.0.1:6473)──▶ BD plugin ──▶ Discord⚠️ Important: Terms of Service
This automates a user account, not a bot account. Automating a user account ("selfbotting") violates Discord's Terms of Service and can result in account termination, regardless of intent. Use only on your own or explicitly authorized servers, ideally with a test account. You accept the risk.
For ToS-compliant moderation, build a real Discord bot instead — but that cannot "see your client" the way this does.
Related MCP server: discord-mcp
Setup
1. Install the BetterDiscord plugin
Copy
plugin/DiscordMCP.plugin.jsinto your BetterDiscord plugins folder:Windows:
%AppData%\BetterDiscord\plugins\
Open Discord → Settings → Plugins → enable DiscordMCP.
It will keep trying to connect to the bridge every 3s (toast shows status).
2. Install server deps
npm install3. Register the MCP server with your client
Claude Code:
claude mcp add discord -- node "/absolute/path/to/better-discord-mcp/server/index.js"Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/better-discord-mcp/server/index.js"]
}
}
}The server hosts the WebSocket bridge; the plugin connects to it. Start order
doesn't matter — the plugin auto-reconnects. Use the discord_status tool to
confirm the link is up.
Tools
Read / info
Tool | Purpose |
| Is the plugin connected? |
| Current guild / channel / user |
| List your servers |
| Channels in a guild |
| Recent messages in a channel |
| Search a guild or channel |
| User / guild-member info |
| List a guild's roles |
| List open DM channels |
Messaging
Tool | Purpose |
| Send a message |
| Edit your own message |
| React to a message |
| Show typing indicator |
| Open/fetch a DM with a user |
Moderation (🔒 gated — need confirm:true)
Tool | Purpose |
| Delete a message |
| Bulk-delete recent messages (<14 days) |
| Ban (needs Ban Members) |
| Kick (needs Kick Members) |
| Timeout / un-timeout a member |
| Add a role (Manage Roles) |
| Remove a role (Manage Roles) |
🔒 = destructive: the first call returns a confirmation preview and does
nothing; re-call with confirm:true to execute. Disable with
DISCORD_MCP_REQUIRE_CONFIRM=false.
Full surface (~100 tools)
This exposes essentially all of Discord's REST-driven features. Beyond the
common tools above, there are named tools for: audit log, bans (list/get/unban),
threads (create/edit/join/leave/members/archived lists), forum posts, channel
permission overwrites, channel/role reordering, polls, replies & embeds,
crossposting, scheduled events, AutoMod rules, stickers, integrations,
webhooks (create/edit/execute), invites (resolve/join), friends/block/notes,
status, prune, voice mute/deafen & status, welcome screen, vanity url, and more.
See COVERAGE.md for the complete map and what is not reachable.
discord_request — raw escape hatch
For anything without a named tool (templates, onboarding, slash-command registration, brand-new endpoints), call any REST endpoint directly:
discord_request(method="post", path="/guilds/123/templates", body={ "name": "..." })Non-GET raw calls are also gated by the confirmation rule.
What is NOT possible via this bridge
Voice audio (joining/streaming/listening), live event streaming, and the
full online-member list are gateway/WebRTC, not REST — this bridge can't
drive them. It can move/mute/deafen members and set voice channel status.
Use polling (get_messages) instead of live message events.
Config
DISCORD_MCP_PORT(default6473) — must matchthis.portin the plugin.DISCORD_MCP_TIMEOUT(default15000ms) — per-request timeout.DISCORD_MCP_REQUIRE_CONFIRM(defaulttrue) — gate destructive tools.
How API calls are authenticated
Current Discord builds obfuscate the internal REST client (getAPIBaseURL) and
the token module (getToken), so the plugin doesn't rely on them. Instead it
sniffs your Authorization header from Discord's own outgoing requests
(hooking XMLHttpRequest/fetch) and then calls https://discord.com/api/v9
directly with fetch. This is version-proof — it survives Discord updates.
One consequence: the token is only captured after Discord makes an authenticated request. Most live traffic goes over the gateway WebSocket, so right after enabling the plugin you may need to switch channels once to trigger a REST call. After that the token is cached for the session.
Troubleshooting
not connected: Discord must be running with the plugin enabled. Check the plugin toast / Discord devtools console (Ctrl+Shift+I) for errors.Auth token not captured yet: click into a different channel once (forces a REST request the plugin can read the token from), then retry.Discord API 401/403: your account lacks permission for that action, or the captured token is stale — toggle the plugin off/on and switch channels.Diagnostics:
discord_request(path="__debug__")dumps module/token state for debugging without touching devtools.
Available Tools
128 toolsdiscord_accept_inviteB
Join a server via invite code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| confirm | No | Set true to actually perform this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The confirm parameter, which makes the action destructive and requires explicit confirmation, is not mentioned in the description, leaving the agent unaware of this critical behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the description omits the important destructive nature and the need for the confirm flag. The lack of output schema is not an issue, but the behavioral context is incomplete for safe 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?
With schema coverage at 50% (only confirm has description), the description adds minimal meaning beyond 'invite code' for the code parameter. The baseline is 3 due to moderate coverage, but the description does not explain the format or source of the code.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Join' and the resource 'server via invite code', which distinguishes it from sibling tools like discord_create_invite and discord_delete_invite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool vs alternatives, or any prerequisites like needing to be logged in or having a valid invite code. The context of sibling tools is not exploited.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_add_friendB
Send a friend request (by userId, or username+discriminator).
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | ||
| username | No | ||
| discriminator | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It merely states 'Send a friend request' without disclosing whether this adds a direct friend or sends a pending request, rate limits, permission requirements, or side effects like rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the core purpose. It is concise, but could be slightly expanded to include usage constraints without losing efficiency.
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 three optional parameters, no output schema, and a vast set of sibling tools, the description is too brief. It omits what the tool returns (e.g., a friend request object or success confirmation), error scenarios, and the nature of the friend request (pending vs. immediate acceptance).
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 0%, so the description must explain parameter usage. It does so by noting two identification methods (userId or username+discriminator), but it fails to define 'discriminator' (e.g., the four-digit tag) or clarify that exactly one method should be used. The guidance is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Send a friend request') and specifies the identification methods (by userId or username+discriminator). It distinguishes this tool from its many siblings, which cover guild, message, role, and other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like discord_get_user or discord_ban_user. There is no mention of prerequisites, such as the need for a mutual relationship or existing user interaction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_add_reactionB
Add a reaction. Use a unicode emoji (e.g. 👍) or custom as name:id.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the basic action and emoji format, omitting important behavioral traits like required permissions, side effects (e.g., duplicate reactions), rate limits, or failure modes. Minimal disclosure.
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-structured sentence that immediately states the action and critical emoji detail. No wasted words; highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and three required parameters, the description is too minimal. It lacks information on return value, constraints (e.g., maximum reactions), error handling, or prerequisites. For a mutation tool, more context is needed to avoid agent mistakes.
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 0%. The description only addresses the 'emoji' parameter by explaining its format. The 'channelId' and 'messageId' parameters are left unexplained, relying on their names. This insufficiently compensates for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add a reaction' with a specific verb and resource, and distinguishes the tool from siblings like discord_remove_reaction. It also specifies the emoji format (unicode or custom as name:id), which adds precision.
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 the tool is used to add reactions but offers no explicit guidance on when to use it versus alternatives (e.g., removing reactions) or any preconditions. It is implied from the action alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_add_roleB
Add a role to a member (requires Manage Roles).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| roleId | Yes | ||
| userId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It only mentions 'requires Manage Roles' but does not discuss idempotency, side effects, hierarchy requirements, or return behavior. This is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence and parenthetical permission note. While short, it communicates the core action efficiently, though additional behavioral details could be added without losing 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 simple mutation tool with no output schema and no annotations, the description omits critical context such as that the roleId must belong to an existing role in the guild, that the userId must be a current member, and that the bot must have the necessary role hierarchy. This leaves 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?
Schema description coverage is 0%, so the description should compensate by explaining parameters. It adds no information about the meaning, format, or constraints of guildId, userId, roleId, or reason, failing to provide any value beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resources 'role' and 'member', making the tool's purpose unambiguous. It also distinguishes itself from the sibling tool 'discord_remove_role' by explicitly focusing on addition.
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 does not explicitly state when to use this tool vs alternatives like 'discord_create_role' or 'discord_edit_role'. However, the action of adding an existing role to a member is inherently clear from the name and description, providing implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_ban_userA
Ban a user from a guild (requires your account to have Ban Members).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| userId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes | ||
| deleteMessageSeconds | No | Delete this many seconds of the user's recent messages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic action and permission, but omits details like the irreversible nature of bans, impact on user, or audit logging. The confirm parameter hints at destructiveness but is not described in the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core purpose and a key prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (2 required), no output schema, and no annotations, the description is inadequate. It fails to explain the confirm safety mechanism, the deleteMessageSeconds parameter, or the behavior/result of a ban. Sibling tools like discord_kick_user have similar complexity but are better documented.
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 40% (only confirm and deleteMessageSeconds have descriptions). The tool description adds no extra meaning; it does not explain guildId, userId, or the function of confirm (beyond the schema's 'destructive action') or deleteMessageSeconds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (ban), the resource (user from guild), and a prerequisite (permission). It distinguishes from siblings like discord_kick_user and discord_unban_user.
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 mentions the required permission ('requires your account to have Ban Members'), providing clear context for when the tool is usable. However, it does not explicitly exclude scenarios or reference alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_block_userC
Block a user.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not explain what blocking entails (e.g., prevents DMs, hides messages, etc.). The behavioral impact is completely 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?
The description is very concise (one sentence) but lacks structure and detail. It is not overly verbose, but the conciseness comes at the cost of completeness.
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 no annotations, no output schema, and a single parameter, the description fails to provide complete context. The agent cannot adequately understand the tool's effect or when to use it among 80+ sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'userId' has a schema description coverage of 0%. The description adds no meaning to the parameter, leaving the agent uninformed about what value to provide.
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?
It's a clear statement of purpose, but lacks differentiation from 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?
No guidance is provided on when to use this tool versus alternatives like ban_user, kick_user, or timeout_user. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_bulk_banB
Ban many users at once (up to 200). Requires Ban Members + Manage Guild.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes | ||
| userIds | Yes | ||
| deleteMessageSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description says nothing about destructive nature or that confirm must be true to execute. The confirm parameter's schema description covers destructiveness, but the tool description itself lacks this critical behavioral detail.
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 clear sentence, no wasted words. Could benefit from adding key behavioral notes without being bulky.
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 batch tool with 5 parameters, no output schema, and no annotations, the description is too minimal. Missing confirm gate, parameter explanations, and return 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 coverage is low (20%). Description adds no value for any of the 5 parameters. Does not explain guildId, userIds, reason, or deleteMessageSeconds.
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?
Clearly states it bans many users at once (up to 200), a specific verb+resource+capacity. Distinguishes from sibling discord_ban_user which is for single bans.
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?
Mentions required permissions (Ban Members + Manage Guild) and implies batch usage. However, does not explicitly compare with single-ban tool or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_automod_ruleC
Create an AutoMod rule. rule = raw Discord AutoMod rule object.
| Name | Required | Description | Default |
|---|---|---|---|
| rule | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a write operation ('Create') but does not disclose any behavioral traits such as side effects, permission requirements, rate limits, or that the rule object must conform to Discord's API schema. With no annotations, the description carries full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the purpose. However, its brevity sacrifices essential details, making it too terse for a tool with a complex input. It is concise but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested object parameter, no annotations, no output schema, and many sibling tools), the description is severely inadequate. It fails to provide enough information for an agent to use the tool correctly, such as the structure of the rule object or required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for parameters. The description only mentions 'rule = raw Discord AutoMod rule object,' which vaguely explains the rule parameter but omits guildId entirely. It adds minimal value beyond the schema, leaving both parameters largely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create an AutoMod rule,' which directly indicates the action and resource. It distinguishes from sibling tools like discord_list_automod_rules, discord_edit_automod_rule, and discord_delete_automod_rule. The mention of 'raw Discord AutoMod rule object' further clarifies the nature of the parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it specify prerequisites like required permissions (e.g., Manage Server). It lacks any context about appropriate scenarios or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_channelB
Create a channel or category in a guild. type: 0=text, 2=voice, 4=category, 5=announcement, 13=stage, 15=forum. Put a channel under a category with parentId.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| nsfw | No | ||
| type | No | 0 text, 2 voice, 4 category, 5 announcement, 13 stage, 15 forum | |
| topic | No | ||
| reason | No | ||
| bitrate | No | Voice only | |
| guildId | Yes | ||
| parentId | No | Category ID to nest under | |
| position | No | ||
| userLimit | No | Voice only | |
| slowmodeSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It lists type values and parentId but fails to mention required permissions, rate limits, or what happens on success/failure. For a mutation tool, this is insufficient.
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 two sentences, front-loaded with the main action, and efficient. No unnecessary 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?
Given 11 parameters, no annotations, and no output schema, the description is incomplete. It lacks information about permissions, success/failure responses, and limitations, which are critical for a creation 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 coverage is low (36%) and the description only adds meaning for type (with values) and parentId (nesting). Other parameters like nsfw, topic, bitrate are not explained. The description partially compensates but leaves significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'channel or category in a guild', with specific type mappings. It distinguishes from sibling tools like edit/delete by focusing on creation.
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 for creating channels or categories and mentions nesting with parentId, but does not explicitly state when to use this tool versus alternatives like discord_edit_channel or discord_create_category (if such existed). No exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_emojiB
Create a custom emoji. imageDataUri must be a data URI (data:image/png;base64,...).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| guildId | Yes | ||
| imageDataUri | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It fails to mention side effects, rate limits, permission requirements, or response format, only specifying the data URI format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose and a key constraint, with no 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?
Given the absence of output schema, annotations, and parameter descriptions, the description is insufficiently complete—it omits return value, error conditions, and permission context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage. The description adds meaning only for imageDataUri (specifying it must be a data URI), leaving guildId and name unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a custom emoji' clearly states the action and resource, distinguishing it from sibling tools like discord_delete_emoji or discord_list_emojis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a critical format guideline for imageDataUri but lacks context on when to use this tool vs alternatives (e.g., editing an existing emoji) and does not mention prerequisites like permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_forum_postC
Create a forum post (thread + starter message).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tagIds | No | ||
| content | Yes | ||
| channelId | Yes | ||
| autoArchiveMinutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action but does not disclose permissions, side effects, or return behavior. With zero disclosures, this is insufficient.
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?
It is terse but at the expense of completeness. The single sentence lacks enough detail to be useful for an agent, making it under-specified rather than concise.
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 5 parameters, no output schema, and no annotations, the description is severely incomplete. It does not describe return values, parameter roles, or behavior beyond the bare 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 coverage is 0% and the description adds no meaning to any of the 5 parameters. It does not map 'name', 'content', 'tagIds', 'autoArchiveMinutes', or 'channelId' to the forum post creation process.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a forum post as a thread and starter message, which is a specific action. It distinguishes from siblings like discord_create_thread and discord_send_message, but could be more explicit about the forum context.
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 discord_create_thread or discord_send_message. No context for prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_group_dmB
Create a group DM with the given user IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| userIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the action 'Create' without disclosing side effects, permission requirements, rate limits, or potential failure modes. It is minimally informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant information. It is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about return values, whether the tool requires authentication, or any context about group DM creation limits. It is insufficient for a tool with no output schema and no annotations.
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 description mentions 'user IDs' but does not clarify the format (Discord user IDs, usernames?) or constraints like minItems (2) found in the schema. It adds little beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'group DM', and the method 'with the given user IDs', making the purpose unambiguous and distinguishing it from similar tools like discord_open_dm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like discord_open_dm or discord_send_message in an existing DM. There is no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_guildA
Create a new server (you become owner). icon is a data URI or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| icon | No | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses that the user becomes owner and that icons can be data URIs or URLs. However, it does not mention required permissions, rate limits, side effects (e.g., creating a default channel), or error conditions. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler. Every word adds value. The most important information (action, resource, ownership, icon format) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, no output schema, no enums) and no annotations, the description is adequate for basic usage. It explains the critical parameters and ownership effect. However, it could mention the return value (the created guild object) and required permissions for 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?
With 0% schema description coverage, the description adds meaning: it clarifies that icon accepts data URI or URL. The 'name' parameter is not elaborated beyond the schema, but it is straightforward. The description compensates for the coverage gap partially, though name constraints (length, characters) are missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('a new server'). It also specifies that the user becomes owner, which is a key distinction from edit/delete tools. This contrasts well with sibling tools like 'discord_edit_guild' or 'discord_delete_guild'.
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 for creating a server where the user gains ownership, but it does not explicitly state when to use this tool versus alternatives (e.g., when to create vs edit vs delete). There is no guidance on prerequisites or conflicts with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_inviteB
Create an invite link for a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| unique | No | ||
| maxUses | No | 0 = unlimited | |
| channelId | Yes | ||
| temporary | No | ||
| maxAgeSeconds | No | 0 = never expires |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behaviors such as required permissions (e.g., 'Create Instant Invite'), rate limits, or the fact that it returns an invite object. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the complexity of invite creation (5 parameters), the description should mention return values, permissions, and potential errors. It fails to provide complete context for an agent to use 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?
The schema covers 40% of parameters with descriptions (maxUses, maxAgeSeconds) explaining '0 = unlimited' and '0 = never expires'. The description adds no further meaning. Other parameters like channelId, unique, temporary are self-explanatory but not elaborated. Baseline 3 is appropriate given partial schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (invite link for a channel). It distinguishes from sibling tools like discord_get_invites, discord_delete_invite, and discord_accept_invite.
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. No indication of prerequisites (e.g., channel permissions) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_pollC
Create a poll message.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | ||
| question | Yes | ||
| channelId | Yes | ||
| multiselect | No | ||
| durationHours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as required permissions, side effects (e.g., message creation), poll duration, or multiselect capability. With no annotations, the description carries the full burden but fails to provide meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, but it is underspecified. Conciseness should not come at the cost of essential information; here, crucial context about poll behavior and parameters is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 5 parameters, and 0% schema description coverage, the description is far from complete. An agent cannot infer return values, error cases, or effective usage from this sparse text.
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 0%, yet the description offers no explanation of parameters like 'answers', 'multiselect', or 'durationHours'. The agent receives no additional meaning beyond raw schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a poll message' clearly states the tool's function as creating a poll. It is specific enough to distinguish from other message-related tools, but lacks detail on what constitutes a poll (e.g., multiple answers) and does not differentiate from tools like discord_send_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like discord_send_message or discord_create_forum_post. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_roleC
Create a role. permissions is a permission bitfield as a string.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| color | No | RGB integer, e.g. 0xFF0000 | |
| hoist | No | Show separately in member list | |
| reason | No | ||
| guildId | Yes | ||
| mentionable | No | ||
| permissions | No | Permission bitfield, e.g. '8' for Administrator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Create a role' without disclosing effects, permissions required, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with a brief clarifying note on permissions. No excess, but could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, 7 parameters, moderate schema coverage. Description is too terse to provide complete context for a creation tool. Missing details like the guild context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 43% (3 of 7 parameters have descriptions). Description adds minimal extra meaning for permissions, but leaves 4 parameters undocumented. Does not compensate for low 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?
Description states 'Create a role' with specific verb and resource. Clearly distinguishes from sibling tools like discord_edit_role and discord_delete_role.
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. No context about prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_scheduled_eventC
Create a scheduled event. entityType: 1=stage,2=voice,3=external. Times are ISO8601.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| endTime | No | ||
| guildId | Yes | ||
| location | No | ||
| channelId | No | ||
| startTime | Yes | ||
| entityType | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses entityType mapping and time format, but misses other behavioral aspects like required permissions, rate limits, or side effects. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. No extraneous words, though more content could be added without losing 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 8 parameters, no output schema, and limited description, the tool definition is incomplete. It lacks information on return values, prerequisites, and what happens after creation.
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 0%. The description only explains entityType and time format, ignoring 6 other parameters (guildId, name, endTime, location, channelId, description). Insufficient compensation for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'scheduled event', and includes useful details like entityType values and time format. However, it does not explicitly differentiate from sibling tools like discord_edit_scheduled_event or discord_delete_scheduled_event.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context about when it is appropriate or not. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_threadC
Create a thread. Pass messageId to thread off a message, otherwise a standalone thread in the channel.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| type | No | 11 public, 12 private (standalone only) | |
| channelId | Yes | ||
| messageId | No | ||
| slowmodeSeconds | No | ||
| autoArchiveMinutes | No | 60, 1440, 4320, or 10080 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It only states the basic creation behavior. It omits side effects, permission requirements, return value, and constraints such as auto-archive behavior. Important attributes like effects on channel state are absent.
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 two sentences long with no filler. It is front-loaded with the core action. However, it could be slightly more structured (e.g., bullet points) but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description is incomplete. It does not cover parameter roles, return values, or error scenarios. For a creation tool with multiple configuration options, it provides insufficient information 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?
Schema coverage is only 33%, and the description adds no parameter details beyond the existence of messageId. It fails to explain type, slowmodeSeconds, autoArchiveMinutes, name, or channelId semantics, leaving the agent to infer from the schema alone.
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 'Create a thread' with a clear verb and resource. It adds specificity by noting the two modes (via messageId or standalone), which helps distinguish basic usage. However, it does not explicitly differentiate from similar create tools like discord_create_forum_post, so it is not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use messageId versus not ('Pass messageId to thread off a message, otherwise a standalone thread'), which is helpful. However, it offers no comparison with sibling tools like discord_create_forum_post or discord_edit_thread, and no when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_create_webhookC
Create a webhook on a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states 'Create a webhook', implying a write operation, but fails to mention required permissions (e.g., 'Manage Webhooks'), side effects, rate limits, or whether the webhook is created immediately or asynchronously.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), but it is underspecified and lacks necessary details. Conciseness should not come at the expense of completeness; additional context is needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and parameter descriptions, the single-sentence description is wholly insufficient. It does not explain return values (e.g., webhook ID), error handling, or preconditions, leaving the AI agent with little guidance 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?
Schema coverage is 0% and the description adds no information about the two required parameters (name, channelId). The description does not explain what each parameter does or provide any constraints (e.g., name length limits). This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a webhook on a channel' clearly states the action (create) and the resource (webhook) with location, distinguishing it from related sibling tools like discord_delete_webhook or discord_list_webhooks. However, it could be more specific about the type of webhook (e.g., Discord incoming webhook).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., discord_execute_webhook or discord_edit_webhook). There is no mention of prerequisites, permissions, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_crosspost_messageC
Publish (crosspost) a message from an announcement channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It only states the basic function (crossposting) but does not disclose behavioral traits such as permissions required, whether it is reversible, rate limits, or the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is optimally concise and 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?
Given no annotations, no output schema, and minimal parameter info, the description is insufficient. It does not cover prerequisites, side effects, or return behavior, leaving significant gaps for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to the parameters beyond their names ('channelId', 'messageId'). It does not explain formats, constraints, or how they relate to the action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Publish (crosspost)') and the resource ('message from an announcement channel'). It is specific and distinct from sibling tools like discord_send_message or discord_edit_message, though it does not explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It implies it's for announcement channels, but does not state when not to use it or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_automod_ruleC
Delete an AutoMod rule.
| Name | Required | Description | Default |
|---|---|---|---|
| ruleId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosure. It merely states 'Delete' but does not elaborate on destructiveness, irreversibility, permissions, or side effects beyond what the confirm parameter implies (which is in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It front-loads the action, but omits parameter details or behavioral context, making it too sparse.
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 action with no output schema and low schema documentation, the description should explain what the ruleId and guildId refer to, and any necessary permissions. It fails to provide this context, leaving the tool incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only confirm has a description). The tool description adds no parameter information; guildId and ruleId are undefined in both the description and schema, leaving the agent to guess their format and origin.
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 'Delete an AutoMod rule' clearly states the verb and resource. It distinguishes from sibling tools like discord_create_automod_rule and discord_edit_automod_rule, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites or conditions. The existence of siblings implies usage, but no explicit context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_channelA
Delete a channel or category (deleting a category does NOT delete its channels).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| confirm | No | Set true to actually perform this destructive action | |
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that deleting a category does not delete channels, but omits important behavioral details like required permissions, need for confirm parameter to be true, and irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence that directly states the tool's purpose and a key caveat. No unnecessary 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?
No output schema, and the description lacks crucial context for a destructive action: no mention of permission requirements, the confirm parameter guard, or what happens on success/failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only confirm has description). The description does not explain channelId or reason parameters, leaving them ambiguous beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete a channel or category' and specifies a key behavioral nuance (deleting category does NOT delete its channels), distinguishing it from other delete tools like discord_delete_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description implies usage for deletion of channels/categories but does not mention prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_channel_permissionC
Remove a permission overwrite.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| overwriteId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits beyond 'remove'. It lacks details on permission requirements, reversibility, side effects, or rate limits, leaving the agent underinformed about the tool's 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?
While the description is only five words, it is overly terse and omits necessary information. Conciseness should not come at the expense of completeness; here, it fails to provide adequate context for usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and parameter descriptions, the description is extremely incomplete. It does not explain return values, required permissions, or the effect of the operation, making it insufficient for correct tool 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 input schema has 0% description coverage, and the description does not explain what channelId and overwriteId refer to. For instance, overwriteId could be a user or role ID, and this ambiguity is not resolved.
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 'Remove a permission overwrite' clearly specifies the verb (remove) and resource (permission overwrite), and distinguishes this tool from siblings like discord_grant_permission and discord_revoke_permission, which operate on permissions more generally.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as discord_revoke_permission or when not to use it. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_emojiC
Delete a custom emoji.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| emojiId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states 'delete' but does not mention that this is destructive and irreversible, nor that a 'confirm' parameter is required to execute. No details on permissions or error states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste. However, it is overly terse and omits important behavioral and parameter details. A slightly longer description (e.g., including confirmation requirement) would be more useful without losing 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?
Given the lack of annotations and output schema, and low parameter coverage, the description is insufficient. It does not cover return values, error handling, or the requirement to set 'confirm' to true. The tool is simple but the description still underinforms.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 33% description coverage (only 'confirm' described). The description adds no parameter information. It fails to explain 'guildId' and 'emojiId', nor does it clarify the role of 'confirm'. For a deletion requiring confirmation, this is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete) and the resource (custom emoji). It effectively distinguishes from sibling tools like discord_create_emoji or discord_list_emojis. However, it is essentially a restatement of the tool name, lacking additional context.
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 (e.g., editing or listing emojis). No information on prerequisites or conditions (e.g., required permissions like 'MANAGE_EMOJIS'). The description is silent on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_guildB
Delete a server you own. Irreversible.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It states 'Irreversible' and implies destructive action, but lacks details on effects like server, channels, and data destruction.
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?
Extremely concise and front-loaded: two sentences with no unnecessary words. Every word adds value.
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?
No output schema and minimal description. Does not explain return value, success/failure indicators, or the role of the confirm parameter beyond the schema. Incomplete for a destructive tool with no annotations.
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 50% (confirm has a description, guildId does not). The description adds context that guildId refers to a server you own, but does not explicitly explain each parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete a server) and the condition (you own). It distinguishes from sibling tools like discord_leave_guild which leaves rather than deletes.
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 versus alternatives such as discord_leave_guild or other deletion tools. Does not specify prerequisites beyond ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_integrationC
Delete a guild integration.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes | ||
| integrationId | Yes |
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 burden. It only says 'Delete' without disclosing irreversibility, required permissions, or side effects. The confirm parameter's description hints at destructiveness, but the tool description itself is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with the core action. However, it may be too brief, sacrificing completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature and three parameters, the description lacks critical context such as return value, permissions, or parameter explanations. It is insufficient for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33%—only the confirm parameter has a description. The required parameters guildId and integrationId are not described in the schema or the tool description, leaving their semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a guild integration' with a specific verb and resource. It distinguishes from sibling tools like discord_create_invite or discord_list_integrations.
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, such as disabling or listing integrations. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_inviteC
Revoke an invite by code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| confirm | No | Set true to actually perform this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details. It says 'Revoke' which implies a destructive action but does not mention permissions, side effects, or irreversibility. The 'confirm' parameter in the schema partially addresses this, but the description itself does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 4 words, but it is too minimal to be informative. While front-loaded, it lacks structure and could include more detail without losing 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?
Given the destructive nature of the tool and the existence of many sibling tools, the description is incomplete. It does not explain the effect of revocation, potential dependencies, or return information, especially since no output schema is provided.
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 description mentions 'by code' corresponding to the 'code' parameter, but does not explain what the code is or how to obtain it. With schema coverage at 50%, the description fails to compensate and adds no meaningful parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Revoke' and identifies the resource 'invite by code', which clearly states what the tool does. It distinguishes from sibling tools like discord_create_invite, discord_accept_invite, and discord_get_invite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives, no prerequisites, and no when-not-to-use context. It is a single sentence without usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_messageB
Delete a message in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it deletes a message but omits behavioral details like irreversibility, permission requirements, or that it may fail if the bot lacks 'Manage Messages' permission. No annotations are present to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler words. Efficiently conveys 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 destructive action with a confirmation parameter, the description should explain the confirmation pattern and potential outcomes. No output schema or error handling info is provided, leaving the agent uncertain about return values or failure modes.
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 33% (only the 'confirm' parameter has a description). The tool description adds no extra meaning to 'channelId' or 'messageId' beyond their names. The 'confirm' description is helpful but insufficient for the required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and clearly identifies the resource ('a message in a channel'). It distinguishes from siblings like discord_send_message or discord_edit_message.
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 (e.g., discord_purge_messages). No mention of required permissions, potential failures, or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_roleC
Delete a role from a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| roleId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'delete' implying destructiveness, but omits details about permissions, side effects, or the role's impact on users/permissions.
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?
Very concise single sentence, but under-informative—fails to provide essential details for a destructive 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?
Given 4 parameters, destructive nature, and no output schema, the description is severely incomplete. Missing permission requirements, return value, and side 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?
With only 25% schema description coverage, the description adds no value to parameters. It does not explain guildId, roleId, or reason beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'a role from a guild', distinguishing it from siblings like discord_add_role or discord_edit_role.
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, no mention of prerequisites or contexts where deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_scheduled_eventC
Delete a scheduled event.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| eventId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present; description does not disclose behavioral traits beyond the obvious deletion. It fails to mention that the action is irreversible, requires confirmation (via the confirm parameter), or any permission requirements.
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?
Extremely concise with a single sentence, no wasted words. However, it is too brief, sacrificing necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the destructive nature of deletion and lack of annotations or output schema, the description is insufficient. It does not explain the confirmation flow, return value, or safety considerations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 33% of parameters have descriptions in the schema. The tool description adds no meaning to the parameters, leaving guildId and eventId undocumented. The confirm parameter's role is implied but not explained in the description.
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?
Clearly states the action 'Delete' and the target resource 'a scheduled event.' This is specific and distinguishes it from siblings like create, edit, and list scheduled events.
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 provided on when to use this tool versus alternatives, such as editing instead of deleting, or prerequisites like permissions. The description offers no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_stickerC
Delete a guild sticker.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes | ||
| stickerId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'delete' but omits details like irreversibility, required permissions, or the role of the 'confirm' parameter for destructive actions.
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 description is concise but too sparse. It earns its place in being brief, but could include critical context without sacrificing 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 destructive tool with three parameters and no output schema, the description is incomplete. It fails to explain the confirm parameter or any behavioral implications, leaving the agent with insufficient context to use the tool 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?
The description adds no meaning beyond the input schema. Schema description coverage is only 33% (confirm has a description), but the text does not explain any parameter, such as the need for guildId and stickerId or the function of confirm.
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 'Delete a guild sticker' clearly states the action (delete) and the resource (guild sticker). It is specific and distinguishes this tool from siblings like discord_list_stickers or discord_edit_sticker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions for safe deletion. The description lacks context on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_delete_webhookA
Delete a webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| webhookId | Yes |
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 discloses the destructive nature via the 'confirm' parameter description, but does not elaborate on irreversibility, auth needs, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded and contains no unnecessary 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 simple deletion tool with no output schema, the description is adequate but does not mention success/failure behavior or response format, leaving some 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 description coverage is only 50% (only 'confirm' has a description). The tool description does not add any parameter information, leaving 'webhookId' undocumented in both schema and description.
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 'Delete a webhook' uses a specific verb and resource, clearly distinguishing it from sibling tools like discord_create_webhook, discord_edit_webhook, and discord_list_webhooks.
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 the tool is used when a webhook needs to be deleted, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites like permissions or webhook existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_automod_ruleC
Edit an AutoMod rule. fields = raw Discord AutoMod fields.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| ruleId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is relied upon for behavioral traits, but it only states 'Edit an AutoMod rule' without disclosing permissions, destructive or additive nature, rate limits, or side effects. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) but the second sentence is cryptic and may require external knowledge. It is concise but lacks substance.
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 no output schema, no annotations, and a complex nested parameter, the description is incomplete. It fails to explain the edit's behavior (replace vs merge), result, or format requirements for the 'fields' object.
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 0%, so the description must add meaning. It explains 'fields = raw Discord AutoMod fields', which hints at the expected input but does not cover the other two parameters (guildId, ruleId) or provide format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Edit') and resource ('AutoMod rule'), distinguishing it from sibling tools like create and delete. However, it could be more specific about what aspects of the rule are editable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions for editing an AutoMod rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_channelC
Edit a channel/category (name, topic, parent/category, position, slowmode, nsfw, voice bitrate/limit).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| nsfw | No | ||
| topic | No | ||
| reason | No | ||
| bitrate | No | ||
| parentId | No | Move under this category (empty string to remove) | |
| position | No | ||
| channelId | Yes | ||
| userLimit | No | ||
| slowmodeSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It does not mention permissions requirements, that unspecified fields remain unchanged, or any side effects of editing channels/categories. The description is minimal and lacks important safety context 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?
The description is a single sentence that efficiently lists editable fields. However, it could be better organized (e.g., using bullet points) but it has no unnecessary 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?
With 10 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value, error conditions, or that only specified fields are updated. Leaves significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10% (only parentId has a description). The description lists parameters but does not add meaning beyond their names—e.g., 'slowmode' corresponds to slowmodeSeconds but no units, 'voice bitrate/limit' maps to bitrate and userLimit without clarification. It fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit a channel/category' and lists specific editable fields (name, topic, parent/category, position, slowmode, nsfw, voice bitrate/limit). This distinguishes it from sibling tools like discord_create_channel and discord_delete_channel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like discord_edit_guild or discord_edit_role. The description only states what it edits, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_emojiB
Rename a custom emoji (or restrict to roleIds).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| emojiId | Yes | ||
| guildId | Yes | ||
| roleIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose permissions needed, whether the action is destructive, or effect on existing role restrictions. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. Efficient and to the point.
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?
Lacks output schema and annotations. Does not state return values, side effects, or prerequisites. Incomplete for a reliable agent decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description must compensate. It adds meaning for 'name' and 'roleIds' but does not explain required params 'guildId' and 'emojiId'. Partial coverage keeps score at baseline 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?
Description clearly states the verb (rename/restrict) and resource (custom emoji), and distinguishes from sibling tools discord_create_emoji and discord_delete_emoji.
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 rename vs restrict, or when to use alternatives like create or delete. Agents lack context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_guildC
Edit guild name/description/icon (iconDataUri is a data URI).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| reason | No | ||
| guildId | Yes | ||
| description | No | ||
| iconDataUri | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only notes that it edits and that iconDataUri is a data URI. It does not disclose permissions, side effects, or return behavior, which is insufficient 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?
The description is a single, front-loaded sentence with no waste. It efficiently states the tool's purpose and a key detail about icon format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no schema descriptions, no annotations, and many siblings, the description lacks essential context like return value, usage notes, or prerequisites. It is too brief for reliable selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists three editable fields (name, description, icon), but the schema has five parameters. It does not explain 'reason' or 'guildId' beyond their names. Given 0% schema coverage, this adds some value but is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it edits guild name, description, and icon, specifying the resource and actions. However, it does not explicitly differentiate from sibling tools like discord_edit_channel, though the name 'guild' provides natural 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?
No guidance on when to use this tool vs alternatives, such as when to use discord_get_guild_info for reading or discord_create_guild for creation. Usage context is implied but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_messageA
Edit one of your own messages.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the action and ownership, but fails to mention that editing is limited to content (based on input schema), any editing restrictions (e.g., can't edit other users' messages), rate limits, or whether prior messages are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of five words, extremely concise and front-loaded with the core functionality. Every word serves a purpose without unnecessary detail.
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 tool with 3 required parameters and no output schema, the description is minimally complete. It covers the basic action but lacks details on response, errors, prerequisites, or optional fields, which would help a agent use the tool 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 0% and the description adds no explanation for the three parameters (channelId, messageId, content). While parameter names are self-explanatory, the description does not compensate for the lack of schema descriptions, leaving ambiguity about required format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (edit), the resource (message), and the ownership condition (one of your own messages). It effectively distinguishes from sibling tools like discord_delete_message or discord_send_message.
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 that the message must be your own, providing basic usage context. However, it does not explicitly state when to use this tool over alternatives like discord_reply_message or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_profileB
Edit your own account: username, avatar, banner (data URI or URL), bio.
| Name | Required | Description | Default |
|---|---|---|---|
| bio | No | ||
| avatar | No | ||
| banner | No | ||
| username | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It only states 'edit,' which implies mutation, but does not disclose behavioral traits such as rate limits, overwrite behavior, or required permissions. The description is too minimal.
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 that immediately conveys the tool's purpose and the editable fields. No unnecessary 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?
Given the lack of output schema and annotations, the description should provide more behavioral context, such as what happens after editing, response format, or constraints. The current description is insufficient for an agent to fully understand the tool's 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?
The description adds meaning by noting that avatar and banner accept data URI or URL, which is not in the schema. However, it does not explain constraints on username or bio format. With 0% schema coverage, it partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits the user's own account and lists the specific fields (username, avatar, banner, bio). It is specific and distinct from sibling tools like discord_set_status or discord_edit_guild, though it does not explicitly differentiate.
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 for editing one's own profile but offers no guidance on when to use this tool versus alternatives or any prerequisites like authentication. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_roleB
Edit a role's name/permissions/color/hoist/mentionable.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| color | No | ||
| hoist | No | ||
| reason | No | ||
| roleId | Yes | ||
| guildId | Yes | ||
| mentionable | No | ||
| permissions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the mutation action but does not disclose effects, reversibility, permissions required, or any side effects. With no annotations, 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?
Single concise sentence with no filler, efficiently communicates the core purpose. Could benefit from structured breakdown of 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?
Minimal description for a tool with 8 parameters and no output schema or annotations. Lacks information on return values, error conditions, and behavioral details.
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?
Adds meaning for 5 of 8 parameters by listing them in the description, but omits roleId, guildId, and reason. Since schema coverage is 0%, the description partially compensates but is incomplete.
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?
Clearly states the action 'Edit a role' and lists specific editable attributes (name/permissions/color/hoist/mentionable), distinguishing it from sibling tools like create_role or delete_role.
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 vs alternatives. Does not mention prerequisites, conditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_scheduled_eventC
Edit a scheduled event. fields = raw Discord event fields.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| eventId | Yes | ||
| guildId | Yes |
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 only states 'Edit a scheduled event' and 'fields = raw Discord event fields' without explaining effects (e.g., whether editing a started event is allowed, if changes are immediate, or if there are any rate limits or side effects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the core action, but it is arguably too terse. While concise, it sacrifices informativeness; every sentence could earn its place with more detail about the 'fields' parameter or usage 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?
Given the tool's complexity (3 required parameters, one nested object, no output schema), the description is insufficient. It lacks details on what fields are editable, the structure of the 'fields' object, expected response, and error conditions. The description is incomplete for effective use.
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 0%, yet the description only adds meaning for the 'fields' parameter ('raw Discord event fields'), which is vague. It does not explain 'guildId' or 'eventId' beyond their names, leaving the agent to infer their purpose. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Edit' and the resource 'scheduled event', making the tool's purpose immediately understandable. However, it does not differentiate from sibling tools like discord_create_scheduled_event or discord_delete_scheduled_event, missing an opportunity to clarify scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to edit vs create or delete). There is no mention of prerequisites, such as needing the bot to have manage events permission or the event being in a specific state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_stageC
Edit the current Stage topic.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'Edit', which implies mutation, but omits critical details like required permissions, whether the stage must be live, or any rate limits. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no waste. However, it could be slightly expanded with key details without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and zero parameter descriptions, the tool description is severely incomplete. It fails to explain input semantics, success criteria, or behavioral constraints, leaving the agent with insufficient info to use the tool 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 0%, and the description does not explain the parameters (topic, channelId). It adds no meaning beyond the schema, leaving the agent to guess the format or constraints of the topic or how to identify the correct channel.
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 'Edit the current Stage topic' clearly states the verb (edit), resource (Stage topic), and scope (current). It effectively distinguishes from sibling tools like discord_start_stage or discord_end_stage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites, context, or exclusions mentioned. The agent receives no direction on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_stickerB
Edit a guild sticker's name/description/tags.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| guildId | Yes | ||
| stickerId | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It mentions editable fields but omits details like required permissions, immediate effect, return value, or partial update behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action. Every word is necessary; no waste.
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?
Without annotations or output schema, the description is too brief for a mutation tool. It lacks information on permissions, error cases, and return value, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description partially compensates by listing editable fields (name, description, tags). However, it does not explain the meaning of guildId and stickerId, nor any constraints on tags or description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Edit' and specifies the resource 'a guild sticker's name/description/tags.' It distinguishes from sibling tools like 'discord_delete_sticker' and 'discord_list_stickers' by focusing on modification of fields.
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 provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_threadC
Archive/unarchive, lock/unlock, or rename a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| locked | No | ||
| archived | No | ||
| threadId | Yes | ||
| autoArchiveMinutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility for behavioral disclosure. It does not explain side effects (e.g., archiving hides thread, locking prevents messages), permissions needed, or whether operations are reversible beyond the 'unarchive/unlock' hints. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 11-word sentence conveys the core functionality efficiently. Every word is necessary; no filler. Well front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description is too sparse. It fails to explain how each action affects the thread, what permissions are needed, or the meaning of auto-archive. Significant gaps remain.
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 0%, so description must compensate. It adds meaning by grouping `archived` and `locked` into paired actions and explicating `name` as rename. However, it ignores `autoArchiveMinutes` and doesn't clarify `threadId`'s role. Partially compensates but misses one 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?
Description clearly states the tool edits threads via three specific actions: archive/unarchive, lock/unlock, and rename. It distinguishes from sibling tools like discord_create_thread and discord_edit_message by focusing on thread modifications. However, it omits the autoArchiveMinutes parameter, slightly reducing completeness.
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. It does not mention prerequisites (e.g., manage threads permission) or context for using it over other thread-related tools like discord_create_thread. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_webhookB
Edit a webhook's name/channel.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| channelId | No | ||
| webhookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only says 'Edit', implying mutation, but fails to disclose required permissions (e.g., manage webhooks), whether changes are reversible, or any side effects beyond the edit itself.
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?
Extremely concise at 5 words, front-loading the action and what it edits. No redundancy, but could benefit from a brief additional sentence on usage without being 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 the tool's simplicity (3 params, no output schema), the description is too minimal. It lacks information on return value, required permissions, or examples, leaving 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 coverage is 0%, so description must compensate. It mentions editable fields ('name/channel'), which maps to the `name` and `channelId` parameters, adding minimal meaning. However, it does not explain value constraints or that `webhookId` is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits a webhook's name and/or channel. It uses a specific verb ('Edit') and resource ('webhook'), and distinguishes from sibling tools like create, delete, list, and execute webhook.
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 such as discord_create_webhook or discord_delete_webhook. No context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_welcome_screenC
Edit the welcome screen. fields = raw Discord welcome-screen fields.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | ||
| guildId | Yes |
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 burden. It states 'Edit,' implying mutation, but does not disclose any behavioral traits like required permissions, side effects, or whether the operation is idempotent. This is insufficient for a modification 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 concise (two short sentences) with no filler. It gets straight to the point, though it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of modifying a Discord welcome screen (which requires specific object fields), and the lack of annotations, output schema, or parameter descriptions, the description is severely incomplete. It does not inform the agent about return values, error conditions, or how to construct valid inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description says 'fields = raw Discord welcome-screen fields,' which adds some minimal context that the 'fields' parameter expects a raw Discord object. However, it does not explain the required structure or syntax for 'guildId' or 'fields'. The description adds little beyond the schema name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit the welcome screen,' which is a specific verb and resource. It distinguishes from 'discord_get_welcome_screen' (read) among siblings. However, it does not elaborate on what the welcome screen is or what editing entails beyond passing raw fields.
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. There is no mention of prerequisites, such as having read the welcome screen first via the sibling tool 'discord_get_welcome_screen'. The description is purely imperative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_edit_widget_settingsB
Enable/disable the guild widget and set its invite channel.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| guildId | Yes | ||
| channelId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided; the description carries full burden. It states the basic behavior (enable/disable, set channel) but does not disclose side effects, permissions required, idempotency, or error conditions. For a mutation tool, more behavioral detail is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy. Every word is necessary and directly conveys the tool's purpose. Excellent 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 3 parameters, no output schema, and no annotations, the description is minimal. It does not explain return values, error handling, or relationship with sibling tools beyond the basic edit/get pairing. More context would be beneficial for 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 0%; the description only loosely maps to parameters (enabled, channelId) but does not explain each parameter individually, format, constraints, or required conditions. guildId is required but not mentioned. The description adds minimal value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Enable/disable the guild widget and set its invite channel' clearly states the tool's action using specific verbs (enable/disable, set) and resource (guild widget, invite channel). It distinguishes from the sibling discord_get_widget_settings by indicating it is the modification counterpart.
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, no prerequisites (e.g., permissions needed), and no explicit when-not-to-use conditions. Usage is implied from the description but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_end_pollC
End a poll early.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It only states the action without disclosing side effects, permissions required, or what happens after ending the poll (e.g., results finalization).
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. It is front-loaded and efficient, but could include more useful information without significant bloat.
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 tool with two parameters and no output schema, the description is too minimal. It fails to clarify behavioral details like required permissions, whether ending is irreversible, or how results are handled.
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 0%, and the tool description does not explain the parameters (channelId, messageId). The parameter names are somewhat self-explanatory, but the description adds no additional meaning to assist the agent.
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 'End a poll early' clearly states the action (end) and the resource (poll). It is specific and distinct from sibling tools like discord_create_poll or discord_get_poll_voters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives or what prerequisites are needed. The description is minimal and leaves 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.
discord_end_stageC
End the current Stage.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description does not disclose behavioral traits such as required permissions, whether the action is irreversible, or effects on participants. Only the confirm parameter hints that this is a destructive 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 sentence, which is concise but lacks structure. It could include more information without becoming verbose, but it is not padded with unnecessary 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?
Given the low complexity (2 parameters, no output schema), the description is incomplete. It does not explain side effects, prerequisites, or the outcome of the action, leaving the agent underinformed.
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 50% with only confirm having a description. The tool description adds no meaning to parameters; channelId is left unexplained. The confirm parameter's description already resides in the schema, so the tool description offers no additional value.
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 'End the current Stage.' clearly indicates the action of ending a stage, which is distinct from sibling tools like start, edit, or request_to_speak. However, it does not explicitly specify that the stage is associated with a channel identified by channelId.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as discord_edit_stage. There is no mention of prerequisites or scenarios where ending a stage is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_execute_webhookC
Post a message via a webhook (needs webhook token).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | ||
| embeds | No | ||
| content | No | ||
| username | No | ||
| avatarUrl | No | ||
| webhookId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the prerequisite but does not disclose rate limits, idempotency, error handling, or side effects. The tool is clearly a write operation, but lacks behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but under-specified. It front-loads the core action but omits necessary details. It could be expanded 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 6 parameters and no output schema or annotations, the description is too sparse. It does not explain how to obtain a webhook token, the role of each parameter, or what the response looks like. This makes the tool harder to use 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 0%, and the description only mentions the token requirement. The other 5 parameters (webhookId, embeds, content, username, avatarUrl) are not explained, leaving the agent with no semantic understanding beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Post a message via a webhook', specifying the action (post), resource (webhook), and a prerequisite (needs webhook token). This distinguishes it from sibling tools like discord_send_message which sends messages via bot.
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 mentions the need for a webhook token but provides no guidance on when to use this tool vs alternatives (e.g., discord_send_message, discord_send_embed). Usage context is implied but exclusions or conditional advice are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_follow_announcementC
Follow an announcement channel into a target channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | announcement channel | |
| targetChannelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It only states the action 'follow' but does not specify side effects (e.g., creates a channel follower relationship), permissions required, or whether the action is reversible. This omission leaves significant behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 7 words). While brevity is valued, it comes at the cost of necessary detail. The structure is straightforward but under-informative for a tool that likely requires specific permissions and 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?
Given the tool has two required parameters, no output schema, and simple action, the description should provide enough context for correct invocation. It fails to mention important aspects like permission requirements (e.g., 'Manage Webhook' or 'Manage Channels'), scope (guild-level?), and whether the action is idempotent. The description is incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (channelId has a description). The description maps channelId as 'announcement channel' and targetChannelId as 'target channel', adding partial context beyond the schema. However, it still lacks clarity on the nature of the 'target channel' (e.g., a text channel in the same guild?) and any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('follow') and the resources ('announcement channel into a target channel'). It is specific and conveys the primary purpose. However, it does not explicitly differentiate from similar tools like discord_crosspost_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, permissions, or exclusion of other approaches. The user is left to infer usage context 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.
discord_get_audit_logC
Read the guild audit log.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| userId | No | ||
| guildId | Yes | ||
| actionType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavior. It only states 'Read', implying no side effects, but fails to mention return format, pagination, rate limits, or what constitutes an audit log entry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (5 words) but lacks necessary detail. It is a single sentence that could benefit from expansion without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an audit log tool with 4 parameters, no output schema, and no annotations, the description is severely incomplete. It omits what the tool returns, filtering options, and behavioral notes.
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 0%, yet the description does not explain any parameter (limit, userId, actionType). Users must infer meaning without any textual help.
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 'Read the guild audit log' clearly states the action (read) and resource (guild audit log), distinguishing it from sibling tools like discord_get_guild_info or discord_get_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., discord_list_bans, discord_get_prune_count). There are no exclusions or context hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_banC
Get a single ban entry.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It fails to mention any behavioral traits such as required permissions (e.g., 'Ban Members' permission), what happens if the user is not banned, or whether the operation is idempotent. This is a significant gap for a tool that reads potentially sensitive moderation 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, concise sentence with no unnecessary words. It is front-loaded with the action and resource. However, it could be slightly expanded to include parameter guidance without losing conciseness, hence a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, no output schema, and simple input schema, the description should provide more context. It does not describe the return value (what fields a ban entry contains), any prerequisites, or how errors are handled (e.g., ban not found). This incomplete context may lead to incorrect tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 2 parameters ('userId', 'guildId') with zero description coverage (0%). The description does not explain the meaning or role of these parameters. While the parameter names are somewhat self-explanatory, the description should clarify that 'guildId' identifies the Discord server and 'userId' the banned user, which it fails to do.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single ban entry' uses a specific verb ('Get') and resource ('ban entry'), clearly indicating it retrieves a single ban. This distinguishes it from sibling tools like 'discord_list_bans' (lists all bans) and 'discord_ban_user' (creates a ban), fulfilling the purpose clarity dimension well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, exclusions, or compare it to siblings such as 'discord_list_bans' or 'discord_unban_user'. An agent would have to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_channelB
Get a single channel's details.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility. It only says 'Get a single channel's details' without disclosing read-only nature, permission requirements, or what 'details' entail.
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. However, it is very brief and could still be considered under-specified, though not 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 the tool's simplicity (one required parameter, no output schema), the description is minimally adequate. It tells the agent the basic purpose, but lacks additional context such as common use cases or relationship to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'channelId' is self-explanatory, but the description adds no extra meaning (e.g., format, source, or expected values). Schema coverage is 0% yet description provides no clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'channel', and specifies it's for a single channel, distinguishing it from sibling tools like discord_get_channels which lists multiple channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., discord_get_channels). The description lacks any when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_channel_invitesC
List invites for a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states the action with no mention of permissions, rate limits, error behavior, or return value traits. Minimal disclosure.
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?
Extremely short but under-specified. While the tool is simple, the description restates the name without adding useful context. Not truly concise as value is minimal.
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 no annotations, no output schema, and only one parameter, the description fails to provide adequate context. No explanation of what invites are returned, no usage examples, and no caveats about permissions or state.
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?
Single parameter channelId has no description in schema (0% coverage). The tool description adds no meaning beyond the parameter name, such as format, examples, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (list) and resource (invites) with scope (for a channel). It distinguishes from sibling tools like create/delete by being a read operation, but does not differentiate from similar 'get_invites' 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?
No guidance on when to use this tool vs. alternatives like discord_get_invites or discord_get_invite. No context for prerequisites, permissions, or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_channelsA
List channels in a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes | Guild (server) ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits (e.g., read-only, result order, channel types). It only states what it does, not how it behaves beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with the 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 one parameter and no output schema, the description is minimally complete. However, it lacks any information about return values or side effects, which is acceptable for a read operation but could be improved.
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 a single parameter described as 'Guild (server) ID'. The description adds no additional meaning beyond the schema, achieving baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'channels in a guild'. It distinguishes from sibling tools like discord_get_guilds and discord_get_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. However, the tool's purpose is self-evident from the name and description, so it's adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_connectionsA
List your linked accounts (Steam, Spotify, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'List your linked accounts...' without further behavioral details (e.g., authentication requirements, whether it returns all connections, rate limits). The description carries the full burden but provides minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that front-loads the action and resource. No 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 simple read tool with no parameters and no output schema, the description is mostly complete. It lacks details on return format or pagination, but these are not critical for understanding the tool's core function.
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?
No parameters exist, so schema coverage is 100%. The description adds value by specifying the nature of the returned data ('linked accounts') and examples, going beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'your linked accounts' with concrete examples (Steam, Spotify). This uniquely identifies the tool among many siblings, none of which list connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. However, the tool is simple and self-explanatory; the context of listing linked accounts is clear from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_contextA
Get the currently selected guild, channel, and the logged-in user.
| 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 bears full responsibility for behavioral disclosure. It indicates a read-only operation ('Get'), which is correct. However, it does not mention performance implications, required permissions, or potential errors. For a straightforward retrieval tool, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and immediately conveys the tool's purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the minimal description suffices. It covers the key return elements (guild, channel, user). However, it could benefit from a brief note on the output format (e.g., IDs vs objects) to be fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema fully describes the input (none). The description adds no additional parameter information, but according to guidelines, zero parameters warrant a baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves the currently selected guild, channel, and logged-in user. It uses a specific verb ('Get') and identifies the exact resources, distinguishing it from sibling tools that perform actions on these entities.
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 does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of prerequisites, alternatives, or scenarios where this tool is particularly useful (or not). This is acceptable for a simple getter but leaves room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_dmsA
List your open DM and group-DM channels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the operation is a listing, but does not mention authentication requirements or what constitutes 'open' channels. Minimal but adequate for a simple read 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?
Single sentence, no redundancy, directly states purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and no output schema. Description is sufficient for core functionality, though a note on return format would enhance 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?
No parameters exist; schema coverage is 100%. Baseline is 4 per instructions, and description adds no further parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists open DM and group-DM channels, using a specific verb and resource. It distinguishes well from sibling tools like discord_get_channels which list guild channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not guidance or alternative tools mentioned. Given the simplicity, usage is implied but could benefit from noting alternatives for guild channels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_guild_infoC
Get details about a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It only states the action but fails to mention that this is a read operation, any required permissions, rate limits, or the scope of 'details' 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 extremely concise with a single, front-loaded sentence. While efficient, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, no output schema, and no annotations, the description is insufficient. It omits return values, side effects, prerequisites, and is too minimal to guide an agent effectively.
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 0%, and the description adds no meaning beyond the schema field name 'guildId'. No clarification on its format, source, or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details about a guild' uses a specific verb ('Get') and resource ('details about a guild'), clearly distinguishing it from sibling tools like discord_get_guilds (list guilds) or discord_edit_guild (modify guild).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., discord_get_guilds for a list, discord_get_channel for channel details), nor does it state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_guildsA
List all guilds (servers) the user is in.
| 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 must carry the full burden. It indicates a read operation ('list') but does not disclose what information is returned (e.g., guild names, IDs) or any behavioral traits like authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words, perfectly concise.
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 parameterless list tool, the description is mostly complete. However, lacking an output schema, it could specify what fields are returned (e.g., guild names and IDs), but it is still adequate.
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 0 parameters, and schema coverage is 100%, so the description need not add extra parameter details. The baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'guilds (servers)', and distinguishes from sibling tools like discord_get_guild_info (specific guild) and discord_get_channels (channels within guild).
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 (to list guilds), but provides no explicit guidance on when to use this vs. alternatives like discord_get_guild_info or discord_leave_guild, and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_inviteB
Resolve an invite code (with member counts).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It indicates 'with member counts' but does not disclose read-only nature, authentication needs, or potential rate limits. Behavioral traits are insufficiently explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant words. It efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is partially complete. It states the parameter and mention of member counts, but does not clarify the full return structure (e.g., guild/channel info).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'code' with 0% description coverage. The description adds that it is an 'invite code', which provides context beyond the schema. However, it could specify format or source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resolves an invite code and includes member counts. It is specific and distinct from sibling tools like 'discord_create_invite' or 'discord_delete_invite', though it does not explicitly differentiate 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 is provided on when to use this tool versus alternatives such as 'discord_get_invites' or 'discord_accept_invite'. The description only states what it does without contextual usage cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_invitesC
List a guild's invites.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses only that it lists invites (a read operation), but with no annotations provided, it fails to mention permissions, rate limits, or the nature of the response. The behavioral transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—one sentence with no unnecessary words. It is front-loaded, but could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of sibling tools like discord_get_channel_invites and discord_get_invite, the description should clarify scope (guild-wide vs channel-specific) and mention what data is returned. It does not provide enough context for proper use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single parameter guildId, and the tool description adds no additional meaning or constraints. The parameter 'guildId' is left completely unexplained, forcing the agent to infer its type and role from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'a guild's invites', indicating the tool retrieves all invites for a guild. However, it does not distinguish from similar sibling tools like discord_get_channel_invites or discord_get_invite, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as discord_get_channel_invites (for channel-specific invites) or discord_get_invite (for a specific invite). The description lacks context for appropriate selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_messageC
Fetch a single message.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description does not disclose behavioral details such as permissions needed, error cases, or return format. Minimal value beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 4 words, front-loaded with the action. However, it may be too minimal for context-rich environments.
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?
No output schema, and the description does not explain what is returned (e.g., full message object). Given the many sibling tools, this lack of detail reduces 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 coverage is 0%, and the description adds no meaning beyond parameter names. While 'channelId' and 'messageId' are self-explanatory, the description misses an opportunity to clarify format or purpose.
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 'Fetch a single message' uses a specific verb and noun, clearly distinguishing it from siblings like discord_get_messages and discord_search_messages.
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 vs alternatives (e.g., discord_get_messages, discord_search_messages). The agent gets no context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_messagesA
Read messages from a channel. Use before/after/around (message IDs) to page through history beyond the latest 100.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Get messages after this message ID (newer) | |
| limit | No | How many messages | |
| around | No | Get messages around this message ID | |
| before | No | Get messages before this message ID (older) | |
| channelId | Yes | Channel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the read-only nature ('Read messages') and mentions paging behavior, which is helpful. However, with no annotations, it fails to communicate potential constraints like rate limits, permission requirements, or that limits are capped at 100. The description is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, front-loading the core purpose and then adding critical paging guidance. Every word contributes meaning with no redundancy or fluff.
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?
While the description covers the main use case and paging, it lacks details about return format (e.g., message order, fields included) and does not explain what happens if no messages are found or when the limit is exceeded. For a tool with 5 parameters and no output schema, more context would be beneficial, but the description is still functional.
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 baseline is 3. The description adds value by explaining the semantic purpose of before/after/around parameters for paging history, which goes beyond the schema descriptions that merely state 'Get messages after this message ID'. This guidance helps an AI agent understand how to use these parameters together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Read messages from a channel', specifying the resource (channel) and verb (read). It distinguishes itself from siblings like discord_get_message (single message), discord_send_message, and discord_search_messages by focusing on retrieving multiple messages with paging support.
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 explicitly advises using 'before/after/around (message IDs) to page through history beyond the latest 100', providing clear context for when to apply these parameters. It implies basic usage without paging (just channelId and limit) but does not explicitly state when not to use this tool or mention alternatives like discord_search_messages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_noteC
Get your private note on a user.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits, but it only states the action. It does not disclose return values, error cases, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise but overly brief. It lacks structure and depth, though it is front-loaded with the key 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?
Given the simple tool with one parameter and no output schema, the description fails to explain what the note is or what the tool returns. It is incomplete for effective use.
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 0% and the description adds no meaning to the userId parameter. The parameter is undefined beyond its type, leaving the agent guessing about format or source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get your private note on a user.' uses a specific verb and resource, clearly indicating the action and object. It distinguishes itself from sibling tools like discord_set_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or limitations. No usage context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_pinnedB
List pinned messages in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only states the action without mentioning nondestructiveness, permissions, rate limits, or behavior on invalid channels. This leaves significant ambiguity.
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 purpose. Every word is necessary, with no fluff 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 one parameter and no output schema, the description is adequate but not complete. It does not specify the return format (e.g., list of messages) or any ordering/pagination, which would be helpful.
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 channelId lacks any description in the schema (0% coverage). The tool description only implies that channelId identifies the channel, adding minimal meaning beyond the parameter name and type.
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 'List pinned messages in a channel' clearly specifies the action (list), resource (pinned messages), and scope (in a channel). This distinguishes it from siblings like discord_get_messages (general messages) and discord_pin_message (adding pins).
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 like discord_get_messages. There is no mention of prerequisites or exclusions, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_poll_votersC
List users who voted for a poll answer.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| answerId | Yes | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It fails to mention pagination behavior (implied by the limit parameter), permissions required, or whether the poll must be active. The description is a single sentence that does not address these aspects.
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 exceptionally concise, consisting of one sentence that is front-loaded and contains no extraneous information. Every word is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is severely incomplete. It omits critical details such as output format, parameter explanations, and usage context, making it insufficient for an agent to use the tool 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 0%, requiring the description to compensate. However, the description does not explain the purpose of any parameter beyond the vague mention of 'poll answer'. channelId, messageId, and limit are left undefined, forcing the agent to infer their 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 clearly states the action (list) and the resource (users who voted for a poll answer). It is specific and distinguishes from sibling tools like discord_get_reactions by focusing on poll votes rather than reactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as the need for an existing poll, or situations where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_prune_countB
Count members who would be pruned for inactivity.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. 'Count' implies a read-only operation, but it does not explicitly state that no modification occurs, nor mention permissions or limitations. It is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Perfectly concise.
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 query tool with no output schema, the description lacks explanation of inputs and output. It does not mention parameters or the return value (count), making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds no meaning to the parameters (guildId and days), leaving their purpose entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Count') and the resource ('members who would be pruned for inactivity'). It is specific and distinguishes from siblings like discord_prune_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., discord_prune_members). The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_reactionsB
List users who reacted with an emoji.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| limit | No | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('List users'), which is correct for a getter. However, it lacks details on pagination, rate limits, or what happens when no reactions exist. With no annotations, more behavioral context would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasted words. However, 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 no annotations and no output schema, the description is too minimal. It does not explain return format, error cases, or parameter usage. For a list operation, more completeness is expected (e.g., returns an array of user objects).
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 0% and the description provides no explanations for parameters like 'emoji' (how to format?), 'limit' (what are edge cases?), or 'channelId'/'messageId'. Parameter names are somewhat intuitive but the description adds no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('users who reacted'), and the condition ('with an emoji'). It distinguishes itself from sibling tools like discord_add_reaction and discord_remove_reaction, which add or remove reactions.
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. Siblings like discord_get_poll_voters (for polls) or discord_remove_user_reaction (removing specific user reaction) exist, but the description offers no context for choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_rolesC
List a guild's roles.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states only 'list,' implying a read-only operation, but lacks details about permissions required, potential errors (e.g., invalid guild ID), rate limits, or the scope of roles returned (e.g., all roles in the guild).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (5 words) and front-loaded, but it is too minimal. It could include a sentence about the return value or usage context without becoming verbose, so it is adequate but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameter descriptions, the tool definition is incomplete. The agent needs more context—such as what the return value contains, prerequisites, or how to handle errors—to use this tool effectively amid many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single required parameter 'guildId' with no description in the schema (0% coverage) and no additional context in the tool description. The agent receives no guidance on how to obtain or use this parameter, reducing its ability to invoke the tool correctly.
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 'List a guild's roles' uses a specific verb (list) and clearly identifies the resource (roles). It succinctly defines the tool's function and distinguishes it from sibling tools like discord_add_role or discord_remove_role, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention preconditions, such as having the guild ID, or contrast with other role-related operations like creating, editing, or deleting roles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_userB
Get info about a user by ID (optionally as a guild member).
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| guildId | No | If set, include guild member info |
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 only states the basic operation without disclosing any behavioral traits beyond the fact that it retrieves info. For example, it doesn't mention whether it's read-only, permissions needed, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no unnecessary words. It is front-loaded with the core purpose. However, it could be slightly more informative without sacrificing 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?
Given the tool has no output schema and minimal annotations, the description should explain what 'info' includes or what the response contains. It does not, leaving the agent unsure of the return value. The tool is relatively simple but still incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 50% (only guildId has a description). The tool description adds minimal value for userId beyond 'by ID'. It does not compensate for the missing schema description of userId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get info' and the resource 'a user by ID', plus the optional guild member context. This distinguishes it from sibling tools like discord_get_guilds or discord_get_channels.
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 for getting user info but provides no explicit guidance on when to use vs alternatives such as discord_search_members or discord_get_ban. No exclusions or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_vanity_urlC
Get the guild's vanity invite.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits. It does not mention that the guild must have a vanity URL configured, any required permissions, or potential errors (e.g., if no vanity URL exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise—one sentence, no extraneous words. It efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema, read-only nature), the description is minimally adequate but lacks context about prerequisites (e.g., guild must have a vanity URL) and return values. Sibling tool discord_get_invite has a similar description, so some confusion is possible.
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 sole parameter 'guildId' has 0% schema description coverage, and the description adds no meaning beyond the schema. Although the parameter's purpose is somewhat obvious from context, the description does not clarify its format or provide any guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the guild's vanity invite.' clearly states the action (get) and resource (vanity invite), and the scope (guild-specific). It distinguishes from sibling tools like discord_get_invite by specifying 'vanity', though it lacks an explicit explanation of what makes it unique.
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 usage guidance is provided. The description does not specify when to use this tool over alternatives (e.g., discord_get_invite) or any prerequisites (e.g., guild must have a vanity URL set).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_welcome_screenC
Get the guild welcome screen.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Get' but does not mention read-only nature, permissions, or what happens if the guild has no welcome screen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is well-structured for its minimal 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?
Given no output schema, the agent has no information about the response format. The description is too brief to be considered complete for a tool that returns data.
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 0%, yet the description adds no meaning to the 'guildId' parameter. It fails to clarify what the guild ID is or its format, leaving the agent uninformed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the guild welcome screen,' using a specific verb and resource. It distinguishes from the sibling 'discord_edit_welcome_screen' by indicating a read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Given the sibling 'edit' tool, it could mention getting the screen before editing, but it does not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_get_widget_settingsC
Get the guild widget settings.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility for behavioral disclosure. It fails to mention any behavioral traits like required permissions (e.g., MANAGE_GUILD), rate limits, potential errors (e.g., guild not found), or that this is a read-only operation. The minimal description provides no transparency beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it lacks structure. It states the purpose without elaboration, which is insufficient for an AI agent. The single sentence earns its place by stating purpose, but does not provide additional value like context or caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is incomplete. It does not explain what 'widget settings' are, what the return value contains, or how errors are handled. An AI agent needs more context to invoke the tool 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?
The input schema has one parameter 'guildId' with a string type but no description. Schema description coverage is 0%, and the tool description does not add any meaning to this parameter. While the parameter name is self-explanatory, the description could clarify its purpose (e.g., 'The ID of the guild to retrieve widget settings for'). Not done.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get the guild widget settings' clearly states the action (get) and the resource (guild widget settings). It distinguishes the tool from its sibling 'discord_edit_widget_settings' by implying a read-only operation, which is appropriate for a retrieval tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidelines are provided. The description does not mention when to use this tool versus alternatives, such as checking prerequisites (e.g., guild ID validity) or permissions. The context is implied but not stated, leaving ambiguity for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_grant_permissionC
Add one or more permissions to a role by name (e.g. BAN_MEMBERS). Reads current perms and ORs in the new ones — does not clobber existing perms.
| Name | Required | Description | Default |
|---|---|---|---|
| roleId | Yes | ||
| guildId | Yes | ||
| permissions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it reads current permissions and ORs them (non-destructive), but does not mention required permissions, rate limits, error handling, or side effects like event triggers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and key behavior. Could integrate parameter clarifications 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?
No output schema, simple structure. Description explains core operation but omits usage context, prerequisites, error handling, and return format. For mutation tool with 3 required params, it is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description mentions 'permissions by name' and provides an example. However, roleId is an ID, not a name, creating ambiguity. Does not explain guildId or permissions format beyond the example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds permissions to a role, with an example permission (BAN_MEMBERS). It distinguishes from sibling tools like revoke_permission by specifying 'reads current perms and ORs in the new ones — does not clobber existing perms.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like discord_set_channel_permission or discord_edit_role. The description lacks context about prerequisites (e.g., requiring 'manage roles' permission) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_kick_userC
Kick a user from a guild (requires Kick Members).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| userId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions the required permission but fails to state that kicking is non-permanent, that the user can rejoin, or that the action is destructive (though the 'confirm' parameter in the schema hints at destructiveness). The description adds minimal value beyond the action name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but this brevity comes at the cost of missing essential information. It earns a middle score as it is not verbose but is under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema, many sibling tools), the description is incomplete. It lacks context on how kick differs from ban or timeout, the optionality of 'reason', and the consequences of the action, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only 'confirm' described). The description does not explain 'guildId', 'userId', or 'reason', nor does it add any parameter information beyond what the schema provides. It fails to compensate for the low 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 clearly states the action 'Kick a user from a guild' and includes a required permission, making the purpose explicit. However, it does not differentiate from sibling tools like discord_ban_user or discord_timeout_user, preventing a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to kick vs. ban vs. timeout). There is no mention of appropriate contexts or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_leave_guildC
Leave a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to mention that this is a destructive action, requires permissions, or has irreversible effects. The confirm parameter's schema hint is not echoed in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise but at the cost of important details. It is under-specified rather than efficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no output schema, and no annotations, the description lacks essential context like error conditions, side effects, or return behavior, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the schema; guildId lacks description, and only 'confirm' has an inline description. The word 'Leave' provides minimal context.
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 'Leave a guild.' clearly states the action and resource. It is distinct from sibling tools like discord_delete_guild or discord_kick_user, though it doesn't explicitly differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as leaving vs. being kicked, or prerequisites like not being the owner.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_active_threadsC
List active threads in a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention required permissions, rate limits, or what constitutes 'active' threads.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single-sentence description is concise and front-loaded, but may be too terse given the lack of annotations and sibling differentiation.
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 tool with no annotations and a sibling tool for archived threads, the description should clarify what 'active' means and note any permissions. It lacks this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not add any meaning to the single parameter 'guildId' beyond its name.
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?
Descriptions states 'list active threads in a guild', providing a clear verb and resource. However, it does not differentiate from sibling tool 'discord_list_archived_threads'.
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 (e.g., discord_list_archived_threads). No prerequisites or contextual hints provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_archived_threadsC
List archived threads in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| private | No | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It merely states the action without mentioning permissions, pagination, or response details, providing minimal insight beyond the tool's name.
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?
While very concise with a single sentence, the description is under-specified, sacrificing necessary detail for brevity. It fails to provide structured information that would aid an agent in understanding the tool's full capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and parameter descriptions, the description is far too minimal to provide a complete understanding. The agent has insufficient context to invoke this tool correctly, especially among many similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about the three parameters (channelId, limit, private). Even though parameter names are somewhat self-explanatory, the agent receives no guidance on their behavior or constraints.
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 'List archived threads in a channel.' clearly states the verb (list), resource (archived threads), and scope (in a channel). However, it does not distinguish this tool from siblings like 'discord_list_active_threads' or 'discord_list_thread_members'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites or when-not-to-use scenarios mentioned. With many sibling list tools, this omission is significant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_automod_rulesC
List a guild's AutoMod rules.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the action but omits details such as permissions required, response format, pagination, or any side effects. For a read operation, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, precise sentence with no wasted words. It is appropriately concise for such a straightforward operation, though it could benefit from a bit more structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and low complexity, the description still lacks essential context: it does not mention what the list contains (e.g., rule objects), how results are ordered, or any rate limit considerations. It is incomplete for an agent to confidently invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single 'guildId' parameter, and the description does not explain its meaning or expected format. The description adds no value beyond the schema structure.
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 ('AutoMod rules'), clearly indicating the action and distinguishing it from sibling tools that create, delete, or edit AutoMod rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The intended usage is implied by the name and context, but the description does not provide when/why or when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_bansD
List a guild's bans.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is minimal. It does not disclose important behavioral traits such as pagination (the 'limit' parameter suggests pagination), permission requirements, rate limits, or what happens on errors (e.g., invalid guild ID).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, but it is under-specified for a useful tool. It lacks structure such as a summary, parameter descriptions, or usage notes. Conciseness here sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description fails to cover return values, error conditions, or pagination behavior. The tool is a simple list operation, but critical context about how to interpret results is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters ('guildId' and 'limit'), but the description gives no explanation of their meaning or usage. Schema coverage is 0%, so the description adds no value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List a guild's bans.' identifies the verb (list) and resource (bans), but does not add specificity beyond the tool name. It fails to distinguish from sibling tools like 'discord_get_ban' or 'discord_unban_user' except implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'discord_get_ban' for a specific ban or 'discord_ban_user' for creating bans. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_emojisC
List a guild's custom emojis.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or error handling. The description carries the full burden but adds no value 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 sentence, which is concise, but it lacks structure such as sections or examples. It is appropriately short but insufficiently informative for a complete understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is incomplete. It does not explain the return format, pagination, or edge cases (e.g., no emojis found). Given the tool's simplicity, more detail is expected.
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 has 0% description coverage on parameters; the single required parameter 'guildId' is not described in the schema or the description. The description adds no meaning beyond the schema, leaving the agent without guidance on expected input format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), resource (guild's custom emojis), and scope. It distinguishes from sibling tools like discord_create_emoji and discord_delete_emoji.
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 vs alternatives, no prerequisites or context provided. The description is minimal and implies usage only by stating the function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_guild_webhooksB
List all webhooks in a guild.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits such as read-only nature, permission requirements, rate limits, or pagination. The description adds no behavioral context beyond the 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?
Description is extremely concise (one sentence) and front-loaded with the core action. No 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 simple tool with one parameter and no output schema, the description adequately states what it does. However, it lacks usage context and behavioral details, which are relevant for an agent.
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 0%, and the description adds no meaning to the single parameter 'guildId'. It does not explain its format or purpose beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'webhooks', and scope 'in a guild', distinguishing it from sibling tool 'discord_list_webhooks' which may list webhooks at a different scope.
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 'discord_list_webhooks' or when not to use it. No context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_integrationsC
List guild integrations.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks any behavioral details such as auth requirements, rate limits, or whether the operation is read-only.
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, but it is too brief and lacks necessary detail, making it barely adequate.
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?
No output schema and minimal description. The tool has one required parameter and no explanation of what integrations are, what the output contains, or any edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning to the required 'guildId' parameter. It only states the tool lists integrations without explaining the parameter's role.
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 'List guild integrations' uses a specific verb and resource, clearly indicating the tool lists integrations for a guild. It distinguishes itself from sibling tools like 'discord_delete_integration'.
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; no context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_permissionsA
List all Discord permission names and their bit values. Use these names with grant/revoke.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description is clear about the read-only listing behavior. Lacks detail on return format or pagination, but adequate for a simple listing.
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 concise sentences, front-loaded with action, no 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?
Given no parameters and no output schema, the description completely covers what the tool does and its purpose.
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?
No parameters, baseline 4, but description adds value by explaining output contains names and bit values, exceeding baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all Discord permission names and their bit values, using specific verb and resource, and distinguishes from siblings like grant/revoke.
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?
Explicitly tells when to use this tool: to obtain permission names for use with grant/revoke operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_relationshipsB
List friends/blocked (relationships).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the action without disclosing any behavioral traits (e.g., authentication needs, pagination, or side effects). The burden is on the description, which is insufficient.
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?
Extremely concise at 4 words, front-loaded with action, no filler. Could be slightly more descriptive but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no output schema or annotations, yet description omits any details about returned data, format, or scope. Incomplete for a Discord relationships listing.
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?
Input schema has 0 parameters with 100% coverage; description adds no param details but schema is already complete. Baseline 4 applies per instructions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and resource 'friends/blocked (relationships)', clearly distinguishing it from other list tools like guilds, channels, or messages.
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, nor any context about prerequisites or expected use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_scheduled_eventsC
List a guild's scheduled events.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behaviors but only says 'List'. No mention of what events are returned (upcoming/past), ordering, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence is concise and focused, but lacks detail that could improve completeness without losing 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?
Given simplicity and lack of output schema/annotations, description is insufficient. No info on output format, pagination, or parameter semantics.
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 0% and description does not explain the 'guildId' parameter, its format, or requirements beyond being required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List' and the resource 'scheduled events' for a guild. It is specific and distinguishes from siblings like create/edit/delete.
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. Doesn't mention when to list vs create/edit/delete, or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_stickersA
List a guild's stickers.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states 'list', implying a read operation, but does not mention any permissions, rate limits, or side effects. The description is minimal on behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, four-word sentence with no unnecessary words. It is maximally concise while conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one parameter, the description is nearly complete. It lacks specification of the return format (e.g., fields of sticker objects), but since there is no output schema, it would be helpful to mention this. Still, it's adequate for an agent to understand the tool's function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no description for the guildId parameter (0% coverage). The description provides some context by linking guildId to 'a guild's stickers', but it does not explain the format (e.g., Discord snowflake) or any constraints. It adds value but not enough to fully compensate for the missing schema descriptions.
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 'List a guild's stickers' clearly states the action (list), the resource (stickers), and the scope (a guild's). It unequivocally distinguishes from sibling tools like discord_list_emojis which lists emojis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. However, the purpose is self-evident, and there are no sibling tools for stickers, so the context makes it clear this is the tool for listing stickers. Score 3 for implied usage without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_thread_membersC
List members of a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as permissions required, pagination, or return format. For a list operation, 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?
The description is extremely concise (4 words) and front-loaded. However, it lacks structure and may be too terse for an agent to fully understand the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description is incomplete. It omits context on returned data, pagination, and permissions, which are important for an agent to use the tool 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?
The single parameter 'threadId' is self-explanatory from its name, but the description adds no additional meaning or constraints. With 0% schema description coverage, the tool definition fails to enrich the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'members of a thread'. However, it does not differentiate from sibling tools like discord_search_members or other thread-related tools, but the purpose is still specific 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?
There is no guidance on when to use this tool versus alternatives. No context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_list_webhooksC
List a channel's webhooks.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'List a channel's webhooks' without mentioning read-only nature, permission requirements (e.g., manage webhooks), rate limits, or return characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) and front-loaded. Every word carries meaning, but it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is incomplete. It doesn't explain the output (list of webhook objects), error conditions, or permissions needed, leaving the agent underinformed.
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 0%, and the tool description provides no additional meaning for the channelId parameter beyond its name. The parameter is required but without any format or context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'webhooks' scoped to 'a channel', distinguishing it from sibling tools like discord_create_webhook or discord_list_guild_webhooks.
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, no prerequisites or exclusions mentioned. The agent has no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_modify_user_voice_stateA
Stage moderation: invite a user to speak (suppress:false) or move them to audience (suppress:true).
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| guildId | Yes | ||
| suppress | No | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explains the effect of the 'suppress' parameter (false=invite to speak, true=move to audience), which is helpful. However, it does not mention required permissions (e.g., 'Requires moderator privileges'), side effects, or the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. It contains no filler or redundant information, and every word adds valuable context. It is optimally sized for quick comprehension.
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 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain three required parameters (userId, guildId, channelId) or any constraints (e.g., channelId must be a stage channel). The tool's return value is also omitted. While the description covers core behavior, it lacks critical details for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all parameters. It only explains the 'suppress' parameter, leaving 'userId', 'guildId', and 'channelId' undefined. The description implicitly suggests 'channelId' is a stage channel, but fails to clarify the role of each parameter. This is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Stage moderation: invite a user to speak (suppress:false) or move them to audience (suppress:true).' It uses specific verbs (invite/move) and identifies the resource (user voice state in stage). This distinguishes it from sibling tools like discord_set_voice_state (self-modify) and discord_move_member_voice (voice channel move).
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 for stage channel moderation ('Stage moderation:') but does not explicitly state when to use or avoid this tool compared to alternatives. It lacks explicit exclusions or prerequisites (e.g., 'Only works in stage channels'). However, the context is clear enough for an AI to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_move_member_voiceA
Move a member to another voice channel (they must already be connected). Omit channelId to disconnect.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| guildId | Yes | ||
| channelId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It reveals the tool mutates voice channel membership, requires the member to be connected, and that omitting channelId disconnects. However, it does not disclose permission requirements, error behavior (e.g., if member not connected), or rate limits, leaving some gaps.
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 two sentences, front-loaded with the action, and every word adds value. It is concise without sacrificing essential 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?
For a simple mutation tool with 3 parameters and no output schema, the description covers the primary use case and the special case of disconnection. However, it lacks descriptions for the required parameters (userId, guildId) and does not mention validation or return behavior, which would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains the role of 'channelId' (omit to disconnect) but does not describe 'userId' or 'guildId'. The description partially compensates for the lack of schema documentation but leaves key parameters undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool moves a member to another voice channel, with the condition 'they must already be connected' and explains the disconnect behavior. Although a sibling 'discord_modify_user_voice_state' exists, the description does not explicitly differentiate, but the purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite (member must be connected) and a usage hint (omit channelId to disconnect), but does not mention when not to use this tool or suggest alternatives like discord_set_voice_state. Usage guidance is implied but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_open_dmB
Open (or fetch) a DM channel with a user; returns the channelId.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It hints at idempotency with 'open (or fetch)' but does not state whether it creates a new DM channel if one does not exist or errors. It also omits required permissions (e.g., must be friends? mutual guilds?) and side effects. This leaves ambiguity for a mutation-like 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 12-word sentence, extremely concise. It front-loads the action and directly states the output. No extraneous information; every word is purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description covers purpose and return value. However, it lacks details on whether the operation is idempotent, what happens if the user does not exist, and any side effects. For a tool with no annotations, these gaps reduce completeness to a minimum viable level.
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 sole parameter 'userId' is described only as 'with a user' in the description, but its format (Discord user ID) and how to obtain it are not explained. With 0% schema description coverage, the description adds little meaning beyond the parameter name. The AI must infer what a 'userId' is in Discord context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens or fetches a DM channel with a user and returns the channelId. It uses a specific verb ('open'/'fetch') and identifies the resource ('DM channel with a user'). Among siblings, it is distinct from discord_get_dms (which lists DMs) and discord_create_group_dm (group DMs), so purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you need a DM channel ID for a user, but it does not explicitly state when to use this over alternatives like discord_get_dms or discord_create_group_dm. No when-not-to-use or prerequisites are provided, so guidance is adequate but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_pin_messageC
Pin a message.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Pin a message', implying mutation but omits permissions, destructive nature (if any), rate limits, or side effects. Falls short of minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief (three words), but under-specifies the tool. Conciseness should not sacrifice necessary information; this is more omission than conciseness. Front-loading is irrelevant when content is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and 0% parameter coverage, the description must compensate. It fails to convey required permissions, return values, or edge cases (e.g., already-pinned messages). Incomplete for an AI to use reliably.
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 0%; neither the schema nor the description explains what channelId and messageId represent. The description adds no meaning beyond the parameter names. Fails to clarify required identifiers or formats.
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 is a simple verb+resource ('Pin a message'), which is clear but does not differentiate from sibling tools like discord_unpin_message or discord_get_pinned. It lacks specificity about context (e.g., channel, scope).
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 vs alternatives (e.g., unpin, get pinned). No mention of prerequisites or conditions. The agent is left to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_prune_membersC
Prune (kick) inactive members.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| reason | No | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the action but does not disclose behavioral traits such as requiring confirmation (though hinted in the 'confirm' parameter's description), potential irreversibility, rate limits, or permission requirements. With no annotations, the description should provide more transparency about the destructive nature of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, which aligns with conciseness goals. However, it could be restructured to include key behavioral details without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature (pruning members), the lack of output schema, and missing annotations, the description is inadequate. It does not explain default behavior (e.g., default days=7), what constitutes 'inactivity,' or how to preview the count (sibling 'discord_get_prune_count' exists but is not referenced).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 25% schema description coverage, the description adds no meaning for parameters like 'days,' 'reason,' or 'guildId.' The sole parameter description exists in the schema for 'confirm.' The description fails to compensate for the low coverage, leaving most parameters unexplained.
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 'Prune (kick)' and identifies the resource as 'inactive members,' making the action clear. However, it does not distinguish itself from the sibling tool 'discord_kick_user' which also kicks members, missing an opportunity to clarify the difference between single vs. batch operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'discord_kick_user' or 'discord_ban_user.' There is no mention of prerequisites such as required permissions or the context in which pruning is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_purge_messagesA
Bulk-delete recent messages in a channel (optionally only from one user). Only affects messages newer than 14 days; requires Manage Messages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent messages to scan | |
| userId | No | Only delete messages from this user | |
| confirm | No | Set true to actually perform this destructive action | |
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the destructive nature (bulk-delete), the 14-day limit, and permission requirement. However, it omits the critical need to set 'confirm' to true to execute the action, which is a key behavioral trait.
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 concise sentences front-load the main action and add essential constraints. No 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?
Lacks mention of the 'confirm' parameter requirement and the maximum limit of 100 messages. While it covers the 14-day constraint and permission, these gaps reduce completeness for a mutation tool with no output schema.
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 75% (3 of 4 params have descriptions). The description adds minimal value beyond the schema, only mentioning the optional user filter (userId). The 'limit' and 'confirm' parameters are not elaborated beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'bulk-delete' and resource 'recent messages in a channel', with an optional user filter. It distinguishes from sibling tools like discord_delete_message (single message) and other bulk operations like discord_prune_members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes key usage conditions: only messages newer than 14 days and requires 'Manage Messages' permission. However, it does not explicitly mention when to use alternatives (e.g., discord_delete_message for single messages).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_remove_all_reactionsB
Remove all reactions (or all of one emoji) from a message.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | No | ||
| confirm | No | Set true to actually perform this destructive action | |
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It indicates destructive action ('remove') but does not disclose permissions needed, error cases, rate limits, or what happens to the message. Only basic transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no redundancy. Front-loaded with key action and scope. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and 4 params, the description is too brief. Does not explain confirm boolean necessity, return format, or failure modes. Leaves significant gaps for an agent.
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 has 4 params with 25% coverage (only confirm has description). Description adds emoji behavior context but ignores channelId, messageId, and confirm purpose. Fails to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'remove', resource 'all reactions (or all of one emoji)', and object 'from a message'. Distinguishes from siblings like discord_remove_reaction and discord_remove_user_reaction.
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 vs. alternatives. Does not mention prerequisites, when to provide emoji vs. omit, or when to use other reaction tools. Implied usage is too vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_remove_reactionC
Remove your reaction from a message.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states action, does not disclose key behaviors such as that the reaction must be the user's own, or failure modes if reaction doesn't exist, or rate limits. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameter descriptions, the description is too minimal for an agent to reliably select and invoke the tool, especially when compared to richer sibling definitions.
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 0% and description adds no meaning to parameters (emoji, channelId, messageId). Agent has no guidance on format or constraints beyond field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'remove your reaction' - a specific verb and resource, and implicitly distinguishes from sibling tools like discord_remove_all_reactions (removes all reactions) and discord_remove_user_reaction (removes another user's reaction) by specifying 'your'.
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 discord_remove_user_reaction or discord_remove_all_reactions. Also no prerequisites or conditions (e.g., must have added the reaction first) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_remove_relationshipB
Remove a friend / cancel request / unblock.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| confirm | No | Set true to actually perform this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose that this is a destructive action or mention the confirmation parameter. Without annotations, the description should explicitly warn about irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and efficiently front-loads the purpose. No unnecessary 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?
Given the simplicity (2 params, no output schema), the description is adequate but missing key context about destruction and parameter roles. Could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. The confirm parameter is described in the schema but not reiterated, and userId is unexplained. With 50% schema coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove') and the targets ('friend', 'request', 'unblock'), distinguishing it from siblings like discord_add_friend and discord_block_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., discord_block_user for blocking), and no prerequisites or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_remove_roleC
Remove a role from a member (requires Manage Roles).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| roleId | Yes | ||
| userId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action and permission, omitting important details such as whether the operation is destructive, rate limits, side effects, or the role of the 'confirm' parameter. This leaves the agent underinformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise and front-loaded. However, it omits critical context, so while it is brief, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, limited schema coverage, no output schema, and no annotations, the description is incomplete. It lacks details about return value, the necessity of the 'confirm' parameter, and potential side effects, making it insufficient for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only 'confirm' described). The description adds no additional meaning to the parameters; it does not explain 'guildId', 'userId', 'roleId', or 'reason'. Since coverage is low, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove a role from a member.' It identifies the resource (role) and the action (remove). However, it doesn't explicitly differentiate from sibling tools like discord_add_role, though the verb 'remove' distinguishes it.
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 mentions the required permission 'requires Manage Roles,' which is a prerequisite. However, it provides no explicit guidance on when to use this tool versus alternatives (e.g., discord_add_role, discord_delete_role) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_remove_user_reactionC
Remove a specific user's reaction.
| Name | Required | Description | Default |
|---|---|---|---|
| emoji | Yes | ||
| userId | Yes | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the action without any behavioral disclosure. No annotations exist, so the description carries full burden but fails to mention permissions, side effects, or error conditions. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no superfluous text. It is efficiently structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 required parameters, no output schema, and no annotations, the description is vastly incomplete. It omits prerequisites, error handling, and expected outcomes, leaving the agent underinformed.
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 0%, and the description adds no meaning to the 4 parameters. It implies emoji and userId for 'specific user's reaction' but does not clarify channelId or messageId. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Remove a specific user's reaction.' This distinguishes it from sibling tools like discord_remove_reaction (which likely removes own reaction) and discord_add_reaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as discord_remove_reaction or discord_add_reaction. The description does not specify prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_reorder_channelsB
Reorder channels. positions: array of {id, position, parent_id?}.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes | ||
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks detail on side effects, permissions required, or whether the operation is atomic. For a mutation tool, this is insufficient.
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 concise sentences with front-loaded purpose and parameter explanation. No 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?
Given no output schema, no annotations, and many sibling tools, the description is minimal. It omits details like whether all channels must be included, handling of parent_id, and permissions.
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 0%, so the description must compensate. It adds structure for the positions array but does not explain the guildId parameter. Partially helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reorders channels and provides the structure of the positions parameter. It distinguishes from sibling tools like discord_reorder_roles by specifying 'channels'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., edit_channel). The description does not mention prerequisites or when reordering is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_reorder_rolesB
Reorder roles. positions: array of {id, position}.
| Name | Required | Description | Default |
|---|---|---|---|
| guildId | Yes | ||
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose any behavioral traits such as whether the operation is atomic, affects permissions, or requires ordering rights. Only states 'Reorder roles' with no additional context.
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?
Extremely concise with only two sentences, no wasted words. Front-loaded with the main purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description provides minimal but adequate information. It lacks details on return values or side effects, but given simplicity and no output schema, it meets a basic threshold.
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 description adds meaning for the 'positions' parameter by specifying its structure as 'array of {id, position}', which is not defined in the schema (only 'array' type). However, it does not describe 'guildId' beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool reorders roles, directly naming the action and resource. It distinguishes from sibling tools like create_role, edit_role, delete_role which perform different operations.
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 vs alternatives (e.g., when to use discord_delete_role vs reorder). No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_reply_messageB
Reply to a message (set ping:false to not ping the author).
| Name | Required | Description | Default |
|---|---|---|---|
| ping | No | ||
| embeds | No | ||
| content | No | ||
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the entire burden. It only discloses the ping behavior, but does not mention permissions needed, rate limits, error handling, or whether the reply is visible to others. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence plus a parenthetical. It is front-loaded with the core action. While it could include more detail, it wastes no words and is easily parsed.
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 5 parameters, no output schema, and no annotations, the description is too sparse. It does not explain what the tool returns, how to use content or embeds, or any error conditions. An agent would need additional context to use 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 0%, yet the description only explains the ping parameter. Required params channelId and messageId are self-explanatory from names, but content and embeds remain completely undescribed. The description adds marginal value beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Reply to a message', which is specific and distinguishes it from siblings like discord_send_message (new message) and discord_edit_message (edit existing). The mention of 'ping:false' adds parameter-specific context.
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 a tip about setting ping:false to avoid pinging the author, but does not provide explicit when-to-use or when-not-to-use guidance relative to other messaging tools like discord_send_message. No prerequisites or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_requestA
Advanced: call ANY Discord REST endpoint directly (covers every feature not wrapped by a named tool). path is relative, e.g. /guilds/{id}/templates.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| path | Yes | API path beginning with /, e.g. /channels/123/messages | |
| query | No | ||
| method | No | get | |
| confirm | No | Set true to actually perform this destructive action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions the 'confirm' parameter for destructive actions but doesn't discuss authentication, rate limits, error responses, or idempotency. The behavior depends heavily on the endpoint, but the description could add more general warnings.
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 two sentences long and front-loaded with the purpose. It efficiently conveys the key point: it's a catch-all for endpoints not wrapped. Could be slightly more structured but is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex as a raw API caller, and no output schema exists. The description doesn't explain return format, error handling, or how to use the 'confirm' parameter effectively. While the tool's purpose is clear, a more complete description would help agents handle responses and destructive actions safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 40% (path and confirm have descriptions). The description adds meaning to 'path' by stating it's relative and giving an example. However, it doesn't clarify 'body', 'query', or 'method' beyond what schema shows. Given the low coverage, more description for these parameters would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calls any Discord REST endpoint directly, covering features not wrapped by named tools. It uses specific verb 'call' and resource 'Discord REST endpoint' and distinguishes itself from the extensive list of sibling tools that wrap specific endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: for features not covered by named tools. It doesn't explicitly exclude using it when a named tool exists, but the context of sibling tools provides clear guidance. No prerequisites or error handling are mentioned, but the directive is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_request_to_speakB
Raise your hand to speak in a Stage (set cancel:true to lower).
| Name | Required | Description | Default |
|---|---|---|---|
| cancel | No | ||
| guildId | Yes | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states the basic action and the effect of the 'cancel' parameter, but does not mention permissions, side effects, or what happens after the request (e.g., approval process). Minimal but not misleading.
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 that immediately communicates purpose and syntax. No 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?
Given no output schema and no annotations, the description is too brief. It does not mention that the user must be in a Stage channel, any permissions needed, or the outcome of the request. Partially complete for a simple action but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'cancel' parameter ('set cancel:true to lower'), but does not explain 'guildId' or 'channelId', which are common Discord IDs. The description adds some value but insufficient for the low 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 clearly states the tool's action: 'Raise your hand to speak in a Stage' and explains the inverse action using 'cancel:true to lower'. It uses a specific verb and resource, and distinguishes from siblings like 'discord_set_voice_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 guidance on when to use this tool versus alternatives (e.g., 'discord_set_voice_state' or 'discord_modify_user_voice_state'). The description lacks context about prerequisites like being connected to a Stage channel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_revoke_permissionB
Remove one or more permissions from a role by name. Reads current perms and ANDs them out — leaves other perms intact.
| Name | Required | Description | Default |
|---|---|---|---|
| roleId | Yes | ||
| guildId | Yes | ||
| permissions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool reads current permissions and performs a bitwise AND removal, leaving other permissions intact. This is transparent about the mechanism, though it omits potential errors or permission requirements.
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 sentences, zero waste. Directly states purpose and mechanism. No redundant or irrelevant 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?
Given no annotations, no output schema, and 0% schema coverage, the description is too brief. It lacks details on return values, error handling, permission prerequisites, and valid permission values. Essential 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 coverage is 0%, so description must compensate. It clarifies that 'permissions' are an array of permission names being removed, but fails to describe the format of permission strings, and is inconsistent by mentioning 'by name' while roleId is used. No info on roleId or guildId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove), the resource (permissions from a role), and that it can handle multiple permissions. It distinguishes from siblings like grant_permission (add) and set_channel_permission (channel-specific). However, it misleadingly says 'by name' while the parameter is roleId, which could cause confusion.
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 discord_set_channel_permission or discord_grant_permission. The description does not mention prerequisites (e.g., required permissions) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_search_membersC
Search guild members by username/nickname prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions prefix matching, but lacks details on case sensitivity, pagination, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence that is front-loaded and efficient, but it is too brief and lacks necessary details, making it under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and no output schema or annotations, the description is insufficient. It does not explain return format, pagination, error handling, or required permissions.
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 0%, and description adds minimal meaning: it indicates 'query' is a prefix. No explanation for 'guildId' or 'limit' parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches guild members by username or nickname prefix, using specific verbs and resources. It distinguishes itself from other search tools like discord_search_messages.
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 alternative search or member tools. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_search_messagesC
Search messages in a guild (set guildId) or a DM/channel (set channelId).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Text to search for | |
| guildId | No | ||
| authorId | No | Restrict to this author | |
| channelId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers minimal behavioral disclosure. It does not mention if the operation is read-only, what permissions are required, what the response format is, or any pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core purpose without extraneous words. It could be slightly expanded to include key constraints without losing 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?
Given the lack of output schema and annotations, the description is insufficient. It does not explain what the tool returns, how results are ordered, or any limitations. For a search tool with 5 parameters, more detail is needed.
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 description adds value beyond the schema by indicating that guildId and channelId are used to scope the search. However, it does not explain other parameters like limit or authorId beyond what is in the schema. With schema coverage at 40%, the description partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches messages in a guild or DM/channel. It identifies the specific verb 'Search' and the resource 'messages'. However, it does not explicitly distinguish from sibling tools like discord_get_messages, which might retrieve messages by different criteria.
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 is provided. The description mentions setting guildId or channelId but does not clarify mutual exclusivity or provide any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_send_embedC
Send a message with rich embeds (Discord embed objects).
| Name | Required | Description | Default |
|---|---|---|---|
| embeds | Yes | ||
| content | No | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states basic functionality. It does not disclose behavioral traits such as rate limits, permissions required, or error handling for invalid embeds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action. However, it is too minimal for the complexity of the tool, sacrificing completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and parameter documentation, the description is grossly insufficient. It does not provide enough context for an AI agent to correctly format embed objects or understand return values.
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 0%, meaning the description adds no meaning beyond the raw schema. It does not explain the structure of the 'embeds' array (e.g., required fields in an embed object) or the role of 'content'.
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 'Send a message with rich embeds (Discord embed objects)' clearly states the verb (send), resource (message with embeds), and distinguishes it from siblings like discord_send_message which likely sends plain text.
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 over alternatives like discord_send_message or discord_reply_message. The description does not mention when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_send_fileA
Send a file/image to a channel. source is a data URI or http(s) URL. For multiple files use the files array.
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | ||
| source | No | data URI or http(s) URL of the file | |
| content | No | Optional message text | |
| filename | No | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions source format (data URI or http(s) URL) and multiple file support, but omits details like permissions, file size limits, side effects, or return value. It provides basic but not comprehensive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, with two sentences that deliver the core purpose and key parameter guidance immediately. No unnecessary 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?
Given five parameters and no output schema, the description covers the essential distinction (single vs multiple files) but leaves other parameters like filename and content largely unexplained. It is adequate for basic usage but not exhaustive.
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 description adds meaning beyond the schema by clarifying that source is a data URI or http(s) URL and that for multiple files one should use the files array. This explains the relationship between source and files, which the schema alone does not. However, filename and content remain poorly explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a file/image to a channel, distinguishing it from text message or embed tools. It also mentions the files array for multiple files, which adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides limited guidance: it notes using the files array for multiple files, but fails to specify when to choose this tool over alternatives like discord_send_message or discord_send_embed. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_send_messageC
Send a message to a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message text | |
| channelId | Yes | Channel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Send a message' without mentioning authentication requirements, rate limits, potential side effects (e.g., triggering notifications), or success/failure behavior. This is insufficient 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?
The description is a single short sentence with no unnecessary words. However, it sacrifices informativeness for brevity, and considering the many siblings, more detail would improve utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high number of sibling tools and the lack of annotations or output schema, the description is incomplete. It does not specify the type of message, expected return values, or important constraints like message length limits, leaving significant gaps for the agent.
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% and both parameters have basic descriptions ('Message text', 'Channel ID'). The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action (send) and resource (message to a channel). However, with many sibling tools like discord_reply_message, discord_send_embed, and discord_send_file, it fails to specify that this is for plain text messages, making it less distinctive.
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. For example, it does not indicate that discord_send_embed or discord_reply_message should be preferred for embedded or reply messages. The description lacks context for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_channel_permissionB
Set a permission overwrite. type 0=role, 1=member. allow/deny are bitfield strings.
| Name | Required | Description | Default |
|---|---|---|---|
| deny | No | ||
| type | Yes | ||
| allow | No | ||
| reason | No | ||
| channelId | Yes | ||
| overwriteId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must fully disclose behavior. It mentions setting an overwrite but does not clarify if it creates or updates, required permissions, side effects on existing overwrites, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action and then clarify key parameters. No redundant 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?
With 6 parameters, no output schema, and no annotations, the description is incomplete. Lacks context on permissions, typical usage, and expected outcomes. Only partial parameter explanation.
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?
Adds meaning for type (0=role,1=member) and allow/deny (bitfield strings), but schema coverage is 0% and description ignores channelId, overwriteId, and reason. Partially compensates for schema gaps.
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?
Clearly states 'Set a permission overwrite' (specific verb+resource). Distinguishes from sibling tools like discord_grant_permission and discord_revoke_permission by focusing on overwrite operations.
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 some guidance on type parameter values and allow/deny format, but does not specify when to use this tool versus alternatives like grant_permission or revoke_permission. No when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_nicknameA
Set a member's nickname (omit userId to set your own). Pass empty/no nickname to clear.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| userId | No | ||
| guildId | Yes | ||
| nickname | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only mentions the action (setting/clearing) but says nothing about permissions, destructiveness, side effects, or failure modes. This is insufficient 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?
Two sentences, front-loaded with the action, no filler. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks critical context: required guildId, auth needs, error cases, and return behavior. It covers the core operation but is incomplete for an agent to safely use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It clarifies userId's optionality and nickname's clearing function, adding value. However, it does not explain the required guildId or the optional reason parameter, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set), resource (nickname), and scope (member's or own). The verb 'set' with 'nickname' is precise, and the note about omitting userId for self distinguishes it from other member-modification 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?
The description provides explicit guidance on when to use it (to set or clear a nickname) and how to handle the userId parameter. It lacks explicit 'when not to use' or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_noteC
Set your private note on a user.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| userId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. It states 'Set' implying mutation but does not specify if notes are overwritten, length limits, or permission requirements. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is very concise and front-loaded with the key action. However, it sacrifices detail that could be added without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 required params, no output schema), the description is minimal but lacks explanation of what 'private note' means, conflicting with user expectations about privacy. Incomplete for an agent unfamiliar with Discord.
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 0%, and the description does not explain what userId or note represent beyond their names. No additional semantic context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Set' and resource 'private note on a user', making it easy to understand the tool's function. This distinguishes it from sibling tools like discord_get_note.
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 vs alternatives (e.g., discord_get_note for reading). Missing context like prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_statusA
Set your status (online/idle/dnd/invisible) and/or custom status text.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| customText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It explains what the tool does (sets status and custom text) but does not mention whether changes are persistent, affect other sessions, or require any permissions. It covers the main action but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. Every word contributes to explaining the tool's purpose. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema and no annotations, the description covers the core functionality. However, it lacks details on return values, error handling, or prerequisites. It is minimally complete but not overly informative.
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 0% as the description does not detail parameter meanings beyond naming them. The description mentions 'status' and 'custom status text' but does not specify valid values for status (e.g., online, idle, dnd, invisible) or any constraints on customText. The schema provides enum for status, but the description adds little value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: setting Discord presence status and/or custom text. It uses a specific verb 'Set' and specifies the resource 'your status', which distinguishes it from sibling tools like 'discord_status' that likely retrieve status.
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?
While no explicit when/when-not guidance is given, the description implies straightforward usage for changing one's own Discord status. Given the simplicity of the operation, this is adequate, but it could mention that it is only for the current user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_voice_stateC
Server mute/deafen a member (mute/deaf booleans).
| Name | Required | Description | Default |
|---|---|---|---|
| deaf | No | ||
| mute | No | ||
| reason | No | ||
| userId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavior. It only states the action (mute/deafen) but omits critical details: whether changes are persistent, if requires permissions, side effects on the user's client, or if it applies globally to the server. The description is insufficient for an AI agent to anticipate outcomes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one short sentence), but this comes at the cost of omitting essential information. It is not efficiently structured to convey the tool's full purpose and parameters. A more informative but still concise description would be better.
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 5 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain required parameters (guildId, userId), the effect of missing booleans, or what the tool returns. An AI agent would struggle to use this tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'mute/deaf booleans' but does not explain the other 3 parameters (reason, userId, guildId) beyond their obvious names. An agent cannot determine formatting constraints or the need for userId/guildId values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to server mute or deafen a member, using specific boolean parameters. It identifies the verb (mute/deafen) and resource (member), but does not explicitly distinguish it from siblings like 'modify_user_voice_state' or 'set_voice_status'.
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 guidelines are provided on when to use this tool versus alternatives, nor any prerequisites (e.g., user must be in a voice channel, required permissions). The description gives no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_set_voice_statusC
Set a voice channel's status text (empty to clear).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions that an empty status clears it, but it does not disclose permissions required, error behavior for invalid channelId, rate limits, or whether the status is visible to all members. Since no annotations are present, the description carries full burden but is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. It is appropriately front-loaded with the action and resource. However, it could be slightly longer to include necessary behavioral details without losing 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?
Given the tool has 2 parameters, no output schema, and no annotations, the description is incomplete. It does not cover prerequisites, return values, side effects, or edge cases like channel visibility. An agent would lack sufficient context to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters. It partially explains 'status' as status text and that empty clears, but it does not explain 'channelId' at all, leaving its purpose ambiguous. The description adds some meaning but not enough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('voice channel's status text'), which distinguishes it from sibling tools like discord_set_voice_state that handle mute/deaf settings. However, it does not explicitly differentiate from discord_modify_user_voice_state, though the resource is different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to set voice state instead of status text. There are no prerequisites, exclusions, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_start_stageC
Start a Stage in a stage channel.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| channelId | Yes | ||
| privacyLevel | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states 'Start a Stage', which implies a mutation, but does not mention permissions required, rate limits, side effects (e.g., whether it triggers notifications), or any other behavioral details. This is insufficient for a tool that modifies state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is underspecified. It sacrifices essential information for brevity. For a tool with three parameters and no annotations, a more detailed description is warranted.
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 no annotations, no output schema, and poor schema coverage, the description should provide comprehensive context. It fails to mention what happens on success (e.g., returns a stage object or confirmation), error conditions, or any side effects. The description is inadequate for an agent to use this tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has three parameters (topic, channelId, privacyLevel) with zero description coverage. The tool description does not explain what these parameters mean or how to use them. For example, it does not clarify that 'topic' is the title of the stage or that 'privacyLevel' likely corresponds to Discord's stage privacy levels (1=public, 2=private). No value is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Start' and resource 'Stage in a stage channel', distinguishing it from the sibling tools 'discord_edit_stage' and 'discord_end_stage'. However, it is somewhat vague and could benefit from specifying that a stage is a Discord voice channel feature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'discord_edit_stage' or 'discord_end_stage'. It lacks context about prerequisites, such as the user having permission to start a stage or the channel being a stage channel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_statusA
Check whether the BetterDiscord plugin bridge is connected.
| 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 must carry the burden. It discloses the action (check connection) but does not mention permissions, side effects, or rate limits. Adequate for a simple read-only check.
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 of 8 words with no waste. The verb 'Check' is front-loaded, making the purpose immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is mostly complete. However, it could clarify the output format (e.g., boolean or string) for a status check.
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 zero parameters and the schema is fully covered. The description does not need to add parameter details. Baseline score of 4 is appropriate for no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb 'Check' and resource 'BetterDiscord plugin bridge' and the property 'is connected'. It distinguishes this tool from numerous sibling tools that perform other Discord operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for verifying bridge connectivity but does not explicitly mention when to use it vs alternatives or when not to use it. Context is clear from the purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_thread_add_memberC
Add a member to a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| threadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, and the description fails to disclose behavioral details like required permissions, thread type restrictions, or side effects on the user's state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (6 words) and front-loaded, but it omits essential details that are needed for correct use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and two opaque parameters, the description is incomplete. A mutation tool needs more context about effects and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the two required parameters (threadId, userId), and the input schema has 0% coverage. An agent cannot infer what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a member to a thread.' It uses a specific verb and resource, and distinguishes from sibling tools like discord_thread_remove_member and discord_thread_join.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as requiring permissions, membership prerequisites, or threading contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_thread_joinB
Join a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only states the action without disclosing permissions needed, expected thread state, side effects (e.g., adding user to thread members), or error conditions. No annotations provided to compensate.
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?
Extremely concise (3 words) with no wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is minimal but lacks critical context such as permission requirements, preconditions, or threading details.
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 0%, but the single parameter 'threadId' is self-explanatory from its name. Description adds no additional meaning 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?
Description clearly states the action ('Join') and resource ('a thread'), distinguishing it from sibling tools like discord_thread_leave and discord_thread_add_member.
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 vs alternatives (e.g., discord_thread_add_member for adding others). No context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_thread_leaveB
Leave a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| threadId | Yes |
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 only restates the tool's name without disclosing any side effects, permissions, or behavior beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with three words, no redundancy, and front-loaded with the action. However, it may be too minimal for a complete specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple action, the description is too sparse. It does not mention return values (no output schema) or side effects, leaving the agent without enough context for robust decision-making.
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 0%, and the description adds no information about the single parameter 'threadId'. The parameter name is self-explanatory, but the description should compensate for the low coverage by explaining its purpose or format.
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 'Leave a thread.' clearly states the action and resource. It distinguishes from sibling tools like 'discord_thread_join' which performs the opposite action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like discord_thread_remove_member. Usage is implied by the straightforward action of leaving a thread, but no when-not or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_thread_remove_memberC
Remove a member from a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | ||
| threadId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention side effects (e.g., irreversible), required permissions (e.g., manage threads), or any constraints (e.g., user must be in thread).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) and front-loaded, but it sacrifices completeness. It could include more context without being 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 the simplicity of the tool (2 parameters, no output schema) and the presence of similar sibling tools, the description lacks sufficient context about permissions, typical use cases, and distinguishing features. It is incomplete for safe and effective use.
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 0%, meaning the description must add meaning. It does not explain the parameters threadId and userId (e.g., format as snowflakes, where to obtain them). The parameter names are somewhat self-explanatory but insufficient for correct use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (remove a member) and the resource (thread). It is specific but does not differentiate from sibling tools like discord_thread_leave or discord_thread_add_member.
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 vs alternatives like discord_thread_leave (which removes the bot) or discord_thread_add_member. No context on permissions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_timeout_userC
Time out (mute) a guild member for a duration in seconds. Pass 0 to remove the timeout.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| userId | Yes | ||
| confirm | No | Set true to actually perform this destructive action | |
| guildId | Yes | ||
| durationSeconds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It mentions the action but does not disclose side effects, required permissions, rate limits, or the need for the confirm parameter (which is only hinted in the schema). The behavioral impact of a timeout is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the core action. However, it omits useful information that could be included without sacrificing 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 5 parameters, 3 required, no output schema, and a destructive action, the description is too sparse. It lacks prerequisites, error handling, return value, and permission context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only confirm has a description). The tool description adds context only for durationSeconds (implicitly) but fails to explain reason, userId, guildId, or the confirm parameter's role. No compensation for low 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 clearly states the action (time out/mute), the resource (guild member), and the duration unit (seconds). It also includes the special case of passing 0 to remove the timeout, distinguishing it from sibling tools like kick or ban.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use timeout versus other moderation actions (e.g., kick, ban). The description does not mention alternatives or provide context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_trigger_typingC
Show the typing indicator in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Show the typing indicator', which implies a non-destructive action but does not explain if it auto-cancels, duration, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it lacks necessary details for a tool with no annotations or schema descriptions. The front-loading is adequate, but the content is insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one param, no output schema), the description is minimally complete, but it omits important context like when the indicator stops, whether it conflicts with other actions, or how it relates to sibling tools like send_message.
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 sole parameter channelId has no description in the schema (0% coverage) and the tool description adds no meaning about the parameter (e.g., format, required role, or purpose beyond 'channel').
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 'Show' and resource 'typing indicator' indicate the tool triggers a typing indicator. However, it lacks specificity: does it start or stop? It is not fully clear, and it does not distinguish from sending messages or other actions.
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 sending a message or replying. An explicit when-to-use or when-not-to-use statement is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discord_unban_userC
Unban a user.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| userId | Yes | ||
| guildId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It fails to disclose important behaviors such as permission requirements, side effects (e.g., removing ban), or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words) and front-loaded, but it is under-specified to the point of being inadequate. It earns its place but adds little value.
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 but critical action like unbanning, the description lacks completeness. It does not cover success/failure behavior, required permissions, or any return value, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no explanation of any parameter. Even the purpose of userId, guildId, or reason is not clarified, leaving the schema's minimal information as the only guide.
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 'Unban a user.' clearly states the action and resource, but does not differentiate from sibling tools like discord_ban_user or discord_get_ban. It is specific enough but minimal.
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. It does not mention prerequisites, exclusions, or context, leaving the agent to infer 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.
discord_unpin_messageC
Unpin a message.
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the action without disclosing behavioral traits such as permission requirements, idempotency, or behavior on already unpinned messages. This is insufficient for an agent to safely invoke the 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 extremely concise at just two words, but conciseness here results in under-specification. It lacks necessary structure or additional context to be truly 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?
Given the simple nature of the operation, the description should be more complete. Without annotations, output schema, or parameter documentation, it fails to provide adequate information for an agent to understand the tool's behavior and requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters, and the tool description adds no meaning beyond the parameter names. channelId and messageId are self-explanatory but the description fails to explain their roles or constraints, leaving significant ambiguity.
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 'Unpin a message' clearly states the action (unpin) and the resource (message), making the purpose immediately understandable. However, it does not differentiate from sibling tools like discord_pin_message or discord_delete_message, which limits clarity in a broader toolset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as discord_pin_message or discord_delete_message. There is no mention of prerequisites, context, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, but there are several overlapping tools for sending messages (send_message, reply_message, send_embed, send_file, execute_webhook) that could cause confusion for an agent. Overall, the descriptions help disambiguate.
All tools follow a consistent verb_noun pattern with the 'discord_' prefix in snake_case, e.g., discord_send_message, discord_create_role. No naming inconsistencies.
With 128 tools, the server is massively over-scoped. This far exceeds the typical well-scoped range of 3-15 tools, making it difficult for agents to navigate and select the correct tool.
The tool set covers virtually all Discord API features, including guild, channel, role, permission, webhook, emoji, thread, scheduled events, automod, voice, and user management. A generic discord_request tool ensures no endpoint is missing.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
AI voice generation: text-to-speech and voice cloning from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI clients to manage Discord servers through natural language, offering tools for guilds, channels, messages, roles, members, webhooks, invites, and automations. Includes a conversational agent that responds to @mentions in Discord.8Apache 2.0
- AlicenseAqualityFmaintenanceEnables LLMs to read and send Discord messages, list servers and channels, and monitor unread messages via a selfbot that uses a user token (violates Discord ToS).8161MIT
- AlicenseNot gradedqualityDmaintenanceControl your Discord server with AI. Lets you manage channels, roles, members, messages, and more through natural language.348MIT
- AlicenseNot gradedqualityDmaintenanceLets any MCP-compatible AI client interact with Discord — send messages, manage channels, create webhooks, assign roles, and more.301MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sys0xdbg/better-discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server