Skip to main content
Glama

📖 Overview

Discp is a production-grade Discord MCP server written in TypeScript. It bridges AI assistants to Discord with 117 native tools, supporting both User/Alt Accounts and Bot Accounts seamlessly without requiring bot verification or developer portal setup.

🛡️ Anti-Abuse Human Pacing (Zero Warning Flags)

To prevent accounts from triggering Discord security checkpoints, rate-limits, or password resets, Discp enforces natural human pacing (1.2s – 2.5s randomized intervals) across sensitive write operations (creating channels, roles, categories, webhooks, and assigning permissions).

🎨 Creative Variation (No Repetitive Designs)

Discp equips AI models with tools to discover fresh aesthetic symbols and channel architectures dynamically:

  • get_discord_symbols: Curated offline library of dividers, channel prefixes, role badges, sparkles, and layout templates.

  • search_discord_symbols: Searches online databases (emojicombos, emojidb) live on demand so every server gets unique aesthetics.

  • get_discord_syntax_guide: Complete cheatsheet of Discord markdown techniques, timestamps, mentions, and internal navigation links.


Related MCP server: MCP Discord

🛠️ Complete Tool Catalog (117 Tools)

Domain

Count

Highlight Tools

Server Operations

11

list_servers, get_server_info, modify_server_settings, create_server, setup_community_server, get_audit_logs, modify_server_widget, prune_members

Channels & Categories

14

create_text_channel, create_voice_channel, create_stage_channel, create_category, edit_channel, edit_category, delete_channel, delete_category, list_channels, list_channels_in_category, find_channel, get_channel_info, move_channel

Permissions

4

list_channel_permissions, upsert_role_channel_permissions, upsert_member_channel_permissions, delete_channel_permission

Messages & Reactions

12

send_message, edit_message, delete_message, read_messages, bulk_delete_messages, pin_message, unpin_message, list_pinned_messages, add_reaction, remove_reaction, clear_reactions, get_message_attachments

Formatting & Mentions

3

format_discord_mention, resolve_discord_mentions, get_discord_syntax_guide

Symbols & Aesthetics

2

get_discord_symbols, search_discord_symbols

Users & Direct Messages

6

get_user_info, get_user_id_by_name, send_direct_message, edit_direct_message, delete_direct_message, read_direct_messages

Members & Moderation

11

kick_member, ban_member, unban_member, timeout_member, remove_timeout, set_member_nickname, list_bans, get_ban_info, list_members, search_members, get_member_info

Roles

7

list_roles, get_role_info, create_role, edit_role, delete_role, assign_role, remove_role

AutoModeration

5

list_automod_rules, get_automod_rule, create_automod_rule, edit_automod_rule, delete_automod_rule

Interactive Polls

3

create_poll, end_poll, get_poll_answer_voters

Threads

6

create_thread, modify_thread, join_thread, leave_thread, list_active_threads

Forums

7

create_forum_channel, edit_forum_channel, list_forum_channels, get_forum_channel_info, list_forum_tags, create_forum_post, list_forum_posts

Voice Channels

4

move_voice_member, disconnect_voice_member, modify_voice_state

Scheduled Events

5

create_scheduled_event, edit_scheduled_event, delete_scheduled_event, list_scheduled_events, get_scheduled_event_users

Invites

4

create_invite, list_invites, delete_invite, get_invite_details

Webhooks

4

create_webhook, delete_webhook, list_webhooks, send_webhook_message

Emojis & Stickers

8

list_emojis, get_emoji_details, create_emoji, edit_emoji, delete_emoji, list_stickers, create_sticker, delete_sticker

Bot Utilities

2

get_bot_info, generate_bot_invite_url


⚡ Quickstart

1. Clone & Build

git clone https://github.com/SharimAli/discp.git
cd discp
npm install
npm run build

2. Environment Configuration

Copy .env.example to .env:

# 'user' (for user/alt account token) or 'bot' (for Discord bot token)
DISCORD_ACCOUNT_TYPE=user

# Your Token
DISCORD_TOKEN=your_token_here

# Default Server ID (Optional: commands will default to this guild)
DISCORD_GUILD_ID=your_default_server_id_here

🔌 Client Integration Guides

1. Cursor IDE

In ~/.cursor/mcp.json or .cursor/mcp.json:

{
  "mcpServers": {
    "discp": {
      "command": "node",
      "args": ["/path/to/discp/dist/index.js"],
      "env": {
        "DISCORD_ACCOUNT_TYPE": "user",
        "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
        "DISCORD_GUILD_ID": "YOUR_SERVER_ID"
      }
    }
  }
}

2. Claude (Desktop & Code CLI)

  • Claude Desktop: Add to %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "discp": {
      "command": "node",
      "args": ["/path/to/discp/dist/index.js"],
      "env": {
        "DISCORD_ACCOUNT_TYPE": "user",
        "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
        "DISCORD_GUILD_ID": "YOUR_SERVER_ID"
      }
    }
  }
}
  • Claude Code CLI:

claude mcp add discp node /path/to/discp/dist/index.js \
  --env DISCORD_ACCOUNT_TYPE=user \
  --env DISCORD_TOKEN="YOUR_DISCORD_TOKEN" \
  --env DISCORD_GUILD_ID="YOUR_SERVER_ID"

3. Google Antigravity IDE

In ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "discp": {
      "command": "node",
      "args": ["C:\\path\\to\\discp\\dist\\index.js"],
      "env": {
        "DISCORD_ACCOUNT_TYPE": "user",
        "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
        "DISCORD_GUILD_ID": "YOUR_SERVER_ID"
      }
    }
  }
}

4. OpenCode Desktop / OpenClaw

In opencode.json:

{
  "mcp": {
    "servers": {
      "discp": {
        "command": "node",
        "args": ["/path/to/discp/dist/index.js"],
        "env": {
          "DISCORD_ACCOUNT_TYPE": "user",
          "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
          "DISCORD_GUILD_ID": "YOUR_SERVER_ID"
        }
      }
    }
  }
}

5. Other Editors (VS Code / Cline / Roo Code / Continue / Windsurf)

Use the standard MCP server definition in your tool's settings (cline_mcp_settings.json, ~/.codeium/windsurf/mcp_config.json, or .continue/config.json):

{
  "mcpServers": {
    "discp": {
      "command": "node",
      "args": ["/path/to/discp/dist/index.js"],
      "env": {
        "DISCORD_ACCOUNT_TYPE": "user",
        "DISCORD_TOKEN": "YOUR_DISCORD_TOKEN",
        "DISCORD_GUILD_ID": "YOUR_SERVER_ID"
      }
    }
  }
}

6. HTTP / SSE Mode (n8n, Flowise, Remote AI)

Run Discp as a persistent network microservice:

export MCP_TRANSPORT=http
export PORT=8085
node dist/index.js
  • SSE Stream: http://localhost:8085/sse

  • Messages: http://localhost:8085/messages

  • Health Check: http://localhost:8085/health


💡 Discord Mention & Formatting Syntax

Component

Syntax

Rendered Result

Channel Pill

<#1555613673920270347>

Clickable #welcome-and-faq link

Role Pill

<@&1555613563899347044>

Colored @Moderator badge

User Pill

<@1188806930802675745>

Clickable @coded2233 profile

Dynamic Time

<t:1727888400:R>

Relative countdown (in 2 days, 3 hours ago)

Server Tab

<id:browse> / <id:guide>

Direct link to Server Channels or Onboarding

Subtext

-# Small muted note

Reduced-size secondary text

Spoiler

||hidden text||

Click-to-reveal black bar

Tip: Enable resolveMentions: true in send_message or edit_message to automatically convert #general and @Moderator into native Discord clickable pills!


When designing servers, AI assistants are encouraged to consult:


📜 License

Distributed under the MIT License. See LICENSE for more details.


⚠️ Disclaimer

  • Discord Terms of Service: Automating user accounts (selfbots) is against Discord's Terms of Service and Community Guidelines. While Discp integrates natural human pacing (1.2s – 2.5s randomized intervals) to safeguard accounts, using user account tokens is done strictly at your own discretion and risk.

  • Limitation of Liability: The authors and contributors assume no responsibility or liability for any account terminations, suspensions, rate limits, or sanctions enforced by Discord.

  • Non-Affiliation: Discp is an independent open-source project and is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Discord Inc. or its affiliates.

Available Tools

117 tools
add_reactionC

Add an emoji reaction to a message

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesEmoji character (e.g. "👍") or custom emoji ID/name
channelIdYesDiscord channel ID
messageIdYesDiscord message ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden for a mutation tool. It does not state that it requires the ADD_REACTIONS permission, what happens if the reaction already exists (idempotency), whether it adds to or replaces existing reactions, or any rate-limit behavior.

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

Conciseness4/5

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

A single front-loaded sentence with zero wasted words. It is appropriately sized for the action, though it is so terse that it omits information an agent would need for correct invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a mutation that succeeds or fails based on permissions and emoji validity, the description is too thin. It should at least note the permission requirement and behavior when the emoji or message is invalid.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents channelId, messageId, and emoji (including the custom-emoji format). The description adds no parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Add") and resource ("emoji reaction to a message"), which is unambiguous against siblings. However, it does not explicitly distinguish itself from remove_reaction or clear_reactions, which are the nearest alternatives in the sibling list.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus remove_reaction, clear_reactions, or send_message. No preconditions, no exclusions, and no indication of context (e.g., typical reaction workflows) are provided.

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

assign_roleC

Assign a role to a user in the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
roleIdYesRole ID to assign
userIdYesTarget User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, and it discloses almost nothing: it does not mention required permissions (typically Manage Roles), whether the operation is idempotent, whether it emits an audit-log entry (despite a reason parameter existing), or what happens on failure with an invalid role/user.

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

Conciseness4/5

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

A single short sentence with the action front-loaded and zero filler. It is efficient, though its brevity borders on under-specification rather than conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-mutating permission tool with no annotations and no output schema, the description should cover permission requirements, idempotency/side effects, and failure behavior. None of that is present, so the definition is materially incomplete despite the schema documenting the parameters.

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

Parameters3/5

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

Schema description coverage is 100% – all four parameters (userId, roleId, reason, guildId) are documented in the schema itself. The description adds no format, constraint, or default-resolution detail (e.g., how guildId defaults to DISCORD_GUILD_ID), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Assign) and resource (role to user in the server), which is clear enough to act on. However, it does not differentiate from the closely named sibling remove_role or mention the nuance of role assignment vs. role editing (edit_role), leaving that distinction to the name alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite conditions (e.g., bot permissions), and no pointer to alternatives such as remove_role for the inverse operation. The agent must infer usage entirely from the name.

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

ban_memberC

Ban a user from the server and optionally purge recent messages (0 to 604800 seconds = 7 days)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesUser ID to ban
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
deleteMessageSecondsNoNumber of seconds of message history to purge (max: 604800 = 7 days)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the message-purge window (0–604800s, capped at 7 days), but omits key traits for a destructive moderation action: required permissions, that the ban persists until unban_member is called, and error/edge behavior. Substantial gaps remain.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the action precedes the optional modifier. The parenthetical '0 to 604800 seconds = 7 days' duplicates schema content but is brief, so it is only a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema moderation mutation, the description covers the core action and the purge option but leaves permissions, reversibility, and failure modes unstated. Adequate but with clear gaps given the tool's destructive nature.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents userId, reason, guildId, and deleteMessageSeconds thoroughly. The description merely restates the deleteMessageSeconds range that the schema already encodes, adding no new semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Ban a user from the server') that is clearly distinguishable from siblings like kick_member, unban_member, and timeout_member. The optional message-purge capability is also called out. However, it never explicitly contrasts itself with the adjacent moderation tools, so it stops short of a 5.

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

Usage Guidelines2/5

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

The description explains what the tool does but gives no when-to-use guidance or routing to alternatives such as kick_member or timeout_member for less severe moderation. The purge-window mention is capability detail rather than usage guidance. An agent gets no help deciding ban vs. the other member-moderation siblings.

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

bulk_delete_messagesA

Bulk delete (purge) multiple recent messages in a channel (max 100, messages must be < 14 days old)

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesNumber of messages to delete (2-100)
reasonNoAudit log reason
channelIdYesDiscord channel ID

TDQS

A3.5/5.0
Behavior3/5

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

No annotations, so the description carries the full burden. It usefully discloses the 14-day age limit (not present in the schema) and the 100-message cap, which are real behavioral constraints, but it omits permission requirements (Manage Messages), irreversibility, and partial-failure behavior.

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

Conciseness5/5

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

A single front-loaded sentence with the core action first and the two hard constraints parenthesized. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, annotation-free mutation tool with no output schema, the definition covers the practical constraints but leaves out permissions, irreversibility, and what happens when messages exceed 14 days. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all three params are already documented. The description restates the max-100 constraint already in the schema and adds no syntax or format detail for 'reason' or 'channelId'. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Bulk delete (purge) multiple recent messages in a channel') and the 'bulk/multiple' scope implicitly distinguishes it from the singular delete_message sibling. No sibling is named explicitly, so it stops short of full differentiation.

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

Usage Guidelines3/5

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

The constraints (max 100, <14 days old) imply when it is applicable, but there is no explicit when-to-use/how-it-differs-from-delete_message guidance. Usage is inferable rather than stated.

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

clear_reactionsC

Remove all reactions from a message

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesDiscord channel ID
messageIdYesDiscord message ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It hints at bulk/destructive scope with 'all reactions', but says nothing about whether the operation is irreversible, what permission (e.g. Manage Messages) it requires, or how it behaves on a message with no reactions.

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

Conciseness4/5

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

A single short sentence with no wasted words, and the action and scope are front-loaded. It is terse to the point of omitting behavioral context, but structurally sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive bulk mutation with no annotations and no output schema, the description should disclose permissions, irreversibility, and edge-case behavior. None of that is present, leaving meaningful gaps for an agent deciding whether to call it.

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

Parameters3/5

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

Schema description coverage is 100%, so channelId and messageId are already documented as Discord channel/message IDs. The description adds no format or targeting detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Remove) and resource (reactions) with scope (all, from a message), so an agent knows exactly what it does. It doesn't explicitly contrast with the sibling remove_reaction (which removes one specific reaction), so the boundary relies on inference.

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

Usage Guidelines2/5

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

No guidance on when to use this versus remove_reaction or add_reaction, no prerequisites, and no mention of required permissions. The agent must infer the use case 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.

create_automod_ruleC

Create a new AutoModeration rule (e.g. block bad words, spam, or mention raids)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRule name
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
keywordsCsvNoComma-separated list of keywords to match (for KEYWORD trigger)
triggerTypeNoRule trigger typeKEYWORD
blockMessageNoWhether to block the triggering message
mentionLimitNoMax allowed unique mentions (for MENTION_SPAM trigger)
alertChannelIdNoChannel ID to send an alert log message to
timeoutSecondsNoTimeout user for N seconds (up to 28 days)
regexPatternsCsvNoComma-separated list of regex patterns

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a mutation but discloses nothing about permission requirements, that the rule takes effect immediately, or any rate limits. The examples are the only added behavioral hint.

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

Conciseness5/5

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

A single front-loaded sentence with no wasted words; the verb and resource come first and the examples are a tight parenthetical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits the important relationship that triggerType determines which params apply (keywordsCsv for KEYWORD, mentionLimit for MENTION_SPAM), leaving the agent to infer conditional parameter usage from schema text alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all ten parameters, including defaults and enum values. The description's examples of triggers loosely map to the triggerType enum but add no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create) and resource (AutoModeration rule) and gives concrete examples of trigger categories. It is distinguishable from edit_automod_rule, delete_automod_rule, and list_automod_rules, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

No guidance on when to create a rule versus edit an existing one, no mention of required bot permissions (Manage Server), and no note that it needs a guild context. Usage is only implied by the verb.

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

create_categoryC

Create a channel category in a server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
positionNoPosition in channel list

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it only restates the mutation implied by the name. It says nothing about required permissions, whether the category is created at the end of the list by default, what happens on name collisions, or what is returned. For an unannotated write tool this is a real gap.

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

Conciseness4/5

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

A single, front-loaded sentence with zero padding — efficient and easy to scan. It is arguably too terse for a mutation tool, but there is no wasted language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and no permissions or failure-mode context, the definition leaves an agent short of what it needs to call this write tool confidently. The schema covers inputs, but the behavioral surface of a category-creating mutation is essentially undocumented.

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

Parameters3/5

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

Schema description coverage is 100%, and the four parameters (name, reason, guildId, position) are each documented with their purpose, including the DISCORD_GUILD_ID default and audit-log semantics. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create a channel category'), so an agent immediately knows the operation. However, it does no sibling differentiation despite a crowded namespace of channel/category creators (create_text_channel, create_voice_channel, create_forum_channel, edit_category, delete_category), and it doesn't clarify that a category is a container rather than a channel.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g. requires Manage Channels permission), and no pointer to alternatives such as edit_category or create_text_channel for placing channels inside a category. The agent must infer all routing 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.

create_emojiA

Upload a new custom emoji to the server from an image URL or base64 data URI (max 256KB)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEmoji name (alphanumeric and underscores)
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
rolesCsvNoComma-separated role IDs permitted to use emoji
attachmentUrlOrBase64YesDirect image URL or base64 data URI (e.g. data:image/png;base64,...)

TDQS

A3.7/5.0
Behavior3/5

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

No annotations, so the description carries full burden. It usefully discloses the 256KB size limit and accepted input formats, but omits whether this is a privileged mutation, what happens on duplicate names, and what the response contains.

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

Conciseness5/5

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

A single tight sentence with no filler; the operation, source, and size constraint are all front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with no annotations and no output schema, the description does not cover permission requirements, role-restriction behavior, or the guild-default behavior of guildId/reason audit logging. It is adequate, not complete.

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

Parameters3/5

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

Schema coverage is 100%, so all five parameters are already documented in the schema, including the URL/base64 format for attachmentUrlOrBase64. The description adds only the 256KB constraint and nothing on new/optional params like rolesCsv.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb (Upload/create) plus resource (custom emoji), and the word 'new' implicitly distinguishes it from edit_emoji and delete_emoji in the sibling set. Source formats and size cap are stated up front.

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

Usage Guidelines3/5

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

The description implies when to use it (creating a new emoji from an image), but never names alternatives like edit_emoji or list_emojis, nor does it state prerequisites such as needing emoji-management permissions. Usage is inferable but not guided.

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

create_forum_channelC

Create a new forum channel for community discussions and threads

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesForum channel name
nsfwNoMark as NSFW
topicNoGuidelines or topic for the forum
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
positionNoPosition index
slowmodeNoDefault slowmode per user (seconds)
categoryIdNoParent category ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the bare action: no permission requirements, no note that a name collision fails, no indication of what the channel's default state is. For a mutation tool with zero annotation coverage this is a real gap.

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

Conciseness4/5

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

A single, tight sentence with the action front-loaded. Nothing is wasted, though there is also very little substance to waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations and no output schema, the description should say more about effects, prerequisites (e.g., Manage Channels permission), and error behavior. What is present is correct but far from complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters (name, topic, nsfw, slowmode, position, categoryId, guildId, reason). The description adds no parameter-level detail, which is acceptable given the schema baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource ("Create a new forum channel") and scopes it to "community discussions and threads". It is clearly distinguishable from siblings like edit_forum_channel or create_forum_post, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. The agent is not told how this differs from create_text_channel/create_voice_channel/create_category, or when a forum channel is the right choice over a forum post. Usage must be inferred.

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

create_forum_postC

Create a new forum post (thread) with an initial message and optional tags

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPost title
messageYesContent of initial post message
channelIdYesForum channel ID
tagIdsCsvNoComma-separated list of tag IDs to apply

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but only implies the message is required. It omits permission requirements, whether the target channel must already be a forum channel, rate limits, and any side effects of post creation.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though it is short enough that it does not exploit the room to add needed behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is minimally adequate: parameters are fully covered by the schema, but auth expectations and behavioral consequences are left unstated, so an agent lacks guidance on prerequisites.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (title, message, channelId, tagIdsCsv) are already documented in the schema. The description adds only loose mapping ("initial message and optional tags"), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Create a new forum post (thread)") and clarifies it carries an initial message and optional tags. It is distinguishable from siblings like create_thread and create_forum_channel, though it does not explicitly name them.

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

Usage Guidelines2/5

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

No when-to-use, when-not, or alternative guidance is given. An agent cannot tell from the text whether to use this versus create_thread or create_forum_channel, nor what preconditions (e.g. channel must be a forum channel) apply.

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

create_inviteC

Create an invite link for a channel with custom expiration and usage limits

ParametersJSON Schema
NameRequiredDescriptionDefault
maxAgeNoDuration before expiry in seconds (0 = never, default: 86400 = 24h)
reasonNoAudit log reason
uniqueNoForce unique invite code creation
maxUsesNoMax number of uses (0 = unlimited)
channelIdYesChannel ID where invite points to
temporaryNoGrant temporary membership (kicked upon disconnect unless role assigned)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It hints at expiration and usage limits (which are really parameter semantics) but says nothing about required permissions (e.g. Manage Channels), whether the invite is bot- or user-authored, or what the operation returns. For an unannotated creation tool this is a notable gap.

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

Conciseness4/5

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

A single efficient sentence with the core action front-loaded. Nothing is wasted, though it is arguably too terse to carry the disclosure burden it must.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Parameters are fully covered by the schema, but with no annotations and no output schema the description should compensate by stating permission requirements and the nature of the returned invite code/URL. It omits these, so it is only minimally adequate for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100% and all six parameters are well documented in the schema itself. The description only echoes expiration and usage limits, adding no format or behavioral detail beyond what the schema already provides; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Create) and resource (invite link for a channel) and notes it supports expiration and usage limits. It is clear what the tool does, but it does not differentiate itself from invite-related siblings like generate_bot_invite_url, list_invites, or get_invite_details.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the other invite tools in the sibling list. No prerequisites or contextual conditions are given, leaving the agent to infer usage entirely from the name.

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

create_pollC

Create an official interactive Discord poll in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesThe poll question (up to 300 characters)
channelIdYesDiscord channel ID
answersCsvYesComma-separated list of answer options (2 to 10 options)
durationHoursNoPoll duration in hours: 1, 4, 8, 24, 72, 168 (default: 24)
allowMultiselectNoAllow users to select multiple answers

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it says nothing about required permissions (e.g., SEND_MESSAGES), which channel types accept polls, whether the poll can be edited after creation, or what happens when the duration expires. The only behavioral hint is 'official interactive', which distinguishes it from mock polls.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though the brevity is partly the source of the missing guidance rather than disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter mutation tool with no annotations and no output schema, the description covers the core action but omits the operational context an agent needs: required permissions, valid target channel types, and the relationship to the polling siblings. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the question length limit, answer count range, duration minimums/maximums, and multiselect default. The description adds no format or syntax detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create ... Discord poll') and clarifies it is the native interactive poll type rather than an emoji-reaction workaround. It does not distinguish itself from the sibling 'end_poll' (or 'get_poll_answer_voters'), so an agent must infer the lifecycle relationship.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as sending a message with reaction options or closing a poll with 'end_poll'. The agent gets only the bare action.

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

create_roleC

Create a new role on the server with custom properties

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRole name
colorNoHex color string (e.g. "#FF0000") or integer
hoistNoDisplay role separately in member list
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
mentionableNoAllow anyone to mention this role
permissionsRawNoPermission bitfield string
permissionsNamesNoCSV of permission names

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. For a mutation tool it omits permission requirements (e.g. Manage Roles), the position of the newly created role in the hierarchy, and what the operation returns, adding essentially nothing beyond 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.

Conciseness4/5

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

A single short, front-loaded sentence with no redundant clauses. It is efficient, though its brevity reflects under-specification rather than disciplined trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no annotations and no output schema, one generic sentence is inadequate. Critical context such as required bot permissions, how permissionsRaw/permissionsNames interact, and return behavior is absent.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the input schema and the baseline is 3. The phrase 'custom properties' gestures at optional fields but adds no meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new role on the server'), which is clear. However, 'with custom properties' is vague filler and the description does not differentiate this from siblings like edit_role or assign_role, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives. An agent is left to infer that this is the creation step versus edit_role for modification, with no explicit routing or prerequisites.

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

create_scheduled_eventC

Schedule a server event (Stage, Voice, or External location)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEvent name
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
locationNoExternal location name or URL (required for EXTERNAL)
channelIdNoVoice or Stage channel ID (required for STAGE_INSTANCE and VOICE)
entityTypeYesEvent type: STAGE_INSTANCE, VOICE, or EXTERNAL
descriptionNoEvent description
scheduledEndTimeNoISO-8601 end timestamp (required for external events)
scheduledStartTimeYesISO-8601 start timestamp (e.g. 2026-10-15T18:00:00Z)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden and discloses almost nothing beyond the entity-type list. It does not state that this is a mutating operation, what permissions are required, that the event is created immediately and visible to the server, or any rate-limit behavior.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler. It is efficiently written, though its brevity reflects the small amount of information conveyed rather than disciplined coverage of a complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations and no output schema, the description is thin: it omits the conditional field relationships and any behavioral context. The 100%-covered schema compensates for parameter gaps, making this minimally adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3; the schema already documents every parameter including the conditional requirements (channelId for STAGE/VOICE, location for EXTERNAL). The description's mention of Stage/Voice/External merely restates the entityType enum rather than adding format or constraint detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Schedule') and resource ('server event') and enumerates the three event types (Stage, Voice, External). It does not name or distinguish itself from the close siblings edit_scheduled_event, delete_scheduled_event, or list_scheduled_events, but the verb itself makes the create intent unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus the other scheduled-event tools, no prerequisites (e.g. needing a Stage/Voice channel first), and no mention of required permissions. The agent must infer everything about invocation 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.

create_serverA

Create a new Discord guild. Note: Discord REST API restricts bot accounts to only creating guilds when the bot is in fewer than 10 guilds.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the new server to create
iconUrlNoURL or base64 data URI of the guild icon image

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden, and it does disclose one important behavioral constraint (the 10-guild bot limit) that an agent could not infer from the schema. However, it omits required bot permissions, what happens on failure (error shape), whether the bot auto-joins the created guild, and what the response contains.

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

Conciseness5/5

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

Two tight sentences with zero filler: the purpose leads and the critical operational caveat follows. Nothing is redundant with the name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description still covers purpose plus the single biggest gotcha for this operation, which is strong for a 2-parameter creation tool. It is slightly short of complete because it never says what a successful call returns (the created guild object) or what permissions/errors to expect.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters (name, iconUrl), including the base64/data-URI detail for the icon, so the schema already does the heavy lifting. The description adds nothing about parameter format or constraints, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Create a new Discord guild'), which is unambiguous and easily separated from the many other create_* siblings that target channels, roles, emojis, threads, or invites. The clarifying note reinforces that guild == server, matching siblings like get_server_info and list_servers.

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

Usage Guidelines4/5

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

It gives a concrete precondition that governs when the call will succeed: bot accounts can only create guilds while in fewer than 10 guilds. That effectively states a when-not condition, but it does not mention permission requirements or any alternative approach (there is no sibling that creates a guild, so alternatives are moot).

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

create_stage_channelC

Create a new stage channel for audio events and presentations

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStage channel name
reasonNoAudit log reason
bitrateNoAudio bitrate in bits/s
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
categoryIdNoParent category ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden, and it does not say this is a mutating/creating operation requiring channel-management permissions, what the guildId default resolves to, or what evidence the caller gets back. For a creation tool with zero annotation coverage this is a meaningful gap.

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

Conciseness5/5

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

A single front-loaded sentence with no filler; the action and the resource it creates are stated immediately. Nothing is wasted, though brevity here reflects an absence of detail rather than tight editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutating tool with no annotations and no output schema, the description omits permission requirements, guild/category resolution behavior, and any sense of what is returned or what side effects occur. The rich schema covers inputs, but the behavioral side is entirely unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (name, reason, bitrate, guildId, categoryId) is already documented in the schema, meeting the baseline of 3. The description adds nothing about parameter usage beyond what the schema states, but no compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new stage channel') and adds the intended use case ('audio events and presentations'), which implicitly distinguishes it from create_voice_channel and create_text_channel. It does not explicitly name those siblings, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this over the other channel-creation siblings (create_voice_channel, create_text_channel, create_forum_channel, create_category), nor any prerequisite or ordering information (e.g. needing a category first). The intended-use clause is descriptive, not routing guidance.

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

create_stickerB

Upload a new custom sticker to the server (PNG or APNG, max 512KB, exactly 320x320 pixels)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSticker name (2-30 characters)
tagsYesAutocomplete/related emoji name for this sticker
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
descriptionNoSticker description
fileUrlOrBase64YesFile image URL or base64 data URI of the sticker image

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It usefully discloses hard constraints on the uploaded asset (PNG or APNG, max 512KB, exactly 320x320), which is real behavioral value, but it says nothing about required permissions, failure behavior, or reversibility for what is clearly 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.

Conciseness5/5

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

A single tight sentence that leads with the action and appends the constraints. Nothing is wasted and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the asset constraints adequately but omits permission requirements and any indication of what a successful or failed call returns. It is minimally viable but has visible gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all six parameters are already documented in the schema, establishing a baseline of 3. The description adds format/size constraints that the schema lacks, but nothing about required-vs-optional behavior or the audit 'reason' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Upload a new custom sticker'), which clearly separates it from siblings like list_stickers, get_sticker_details, and delete_sticker. It does not explicitly name those siblings, so it earns a 4 rather than a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The constraint clause (PNG/APNG, 512KB, 320x320) is a validation rule rather than usage guidance, so an agent gets no routing help.

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

create_text_channelC

Create a new text channel in a server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesChannel name
nsfwNoWhether channel is marked NSFW
topicNoChannel topic
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
positionNoChannel position in channel list
slowmodeNoSlowmode delay in seconds (0-21600)
categoryIdNoParent category ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations at all, the description carries the full behavioral burden for a mutating operation and discloses almost nothing: no permission requirements, no mention that this is irreversible, no note that guildId defaults to the DISCORD_GUILD_ID environment variable, and no description of what the created channel returns.

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

Conciseness4/5

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

A single short sentence with the action and resource front-loaded and zero filler. It is efficient, though arguably so terse that it omits useful framing rather than being an example of well-structured completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an eight-parameter mutating tool with no annotations and no output schema, the definition is under-specified: it does not cover permissions, defaults, failure modes, or the resulting channel object. The rich schema partly compensates on parameters, but the behavioral gap remains.

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

Parameters3/5

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

Schema description coverage is 100%, with all eight parameters individually documented (name, nsfw, topic, reason, guildId default, position, slowmode range, categoryId). The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new text channel') and the scope ('in a server'), and the word 'text' implicitly distinguishes it from create_voice_channel, create_stage_channel, and create_forum_channel. However, it never names those alternatives, so an agent must infer the distinction from the name alone.

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

Usage Guidelines2/5

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

No guidance about when to use this rather than create_voice_channel, create_stage_channel, create_forum_channel, or create_category, all of which are near neighbors in the sibling list. No prerequisites (e.g. required permissions such as Manage Channels) or post-creation steps are mentioned.

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

create_threadB

Start a new thread in a text channel or from a specific existing message

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThread name
reasonNoAudit log reason
channelIdYesChannel ID where thread will be created
messageIdNoMessage ID to attach thread to (creates a message thread)
autoArchiveDurationNoInactivity minutes before auto-archive: 60 (1h), 1440 (24h), 4320 (3d), 10080 (7d)1440

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about required permissions (e.g., thread-creation rights), whether the creator auto-joins the thread, or side effects. The default auto-archive behavior lives only in the schema, not the prose.

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

Conciseness4/5

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

A single, front-loaded sentence with no filler. It is efficient, though slightly terse given the tool's five parameters and mutation semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is the only place to convey behavioral context, and it omits permission requirements and post-creation effects. It is minimally adequate because the schema fully documents all parameters, but incomplete for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds only a mild hint by mapping messageId presence to 'message thread' creation, but adds no syntax or format detail beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start a new thread') and distinguishes the two creation modes: standalone channel thread vs. a thread attached to an existing message. That differentiation is useful, though it doesn't explicitly contrast with adjacent siblings like join_thread or modify_thread.

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

Usage Guidelines3/5

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

The phrase 'in a text channel or from a specific existing message' implies the applicable context, but there is no explicit when-to-use/when-not guidance or routing to alternatives such as create_forum_post for forum posts. Usage is inferable rather than stated.

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

create_voice_channelC

Create a new voice channel in a server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVoice channel name
reasonNoAudit log reason
bitrateNoAudio bitrate in bits/s (e.g. 64000)
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
userLimitNoMax user limit (0 = unlimited, max: 99)
categoryIdNoParent category ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It doesn't state the required MANAGE_CHANNELS permission, where the channel is positioned in the channel list, whether the operation is reversible, or anything about the created object's identifier — all material for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

A single, clean sentence with the action and resource front-loaded and no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no annotations and no output schema, the definition is too thin — it omits permission requirements, DEFAULT guild scoping behavior, and how the created channel is returned or identified.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter (name, reason, bitrate, guildId, userLimit, categoryId) is already documented in the schema. The description adds no syntax, defaults, or constraints beyond that, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create) and resource (voice channel) in a server, which cleanly separates it from sibling channel creators like create_text_channel, create_stage_channel, and create_forum_channel. It does not explicitly name those siblings, so it falls short of a 5.

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

Usage Guidelines2/5

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

No guidance on when to use this versus the other create_*_channel tools, no prerequisites, and no mention of required permissions. The agent must infer all selection logic from the resource type alone.

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

create_webhookC

Create a new webhook on a specific text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWebhook name
reasonNoAudit log reason
channelIdYesChannel ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It says nothing about required permissions (e.g. Manage Webhooks), that the operation mutates server state, whether the created webhook's token is returned, or any rate-limit behavior. 'Create' implies mutation but no consequences or authority requirements are disclosed.

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

Conciseness4/5

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

A single compact sentence with the key facts front-loaded and no wasted words. It is efficient, though its brevity borders on under-specification rather than ideal density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so return values need not be described, and all three parameters are documented in the schema. However, for an unannotated mutation tool, the missing permission/authority and lifecycle context leaves the definition only minimally adequate.

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

Parameters3/5

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

Schema description coverage is 100% (name, channelId, reason are all documented in the schema), so the baseline is 3. The description adds no syntax, format, or meaning beyond what the schema already provides — notably it never explains the 'reason' audit-log parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new webhook') and adds scope ('on a specific text channel'), which is more than a restatement of the name. It does not, however, distinguish itself from siblings like list_webhooks, delete_webhook, or send_webhook_message, which an agent may confuse when choosing among webhook operations.

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

Usage Guidelines2/5

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

No guidance on when to use this versus the other webhook tools, no note that the channel must be a text channel the bot can manage, and no mention of prerequisites. The agent must infer all selection context from the sibling names alone.

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

delete_automod_ruleB

Permanently delete an AutoModeration rule from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
ruleIdYesRule ID to delete
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and 'Permanently' usefully discloses that the operation is irreversible. However, it omits the permission scope required (e.g. Manage Server), the audit-log behavior tied to the reason parameter, and any warning that the rule cannot be recovered.

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

Conciseness4/5

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

A single short sentence that is front-loaded with the verb and resource and contains no filler. It is efficient, though arguably too terse for a destructive operation where a second sentence about irreversibility would earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-resource delete with full schema coverage and no output schema, the core information is present. The gap is behavioral: no annotation coverage means the description should have addressed permission requirements and destructive consequences, which it only partially touches via 'Permanently'.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (ruleId, reason, guildId) are already documented in the schema. The description adds no syntax, default, or format detail beyond it, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (AutoModeration rule) with an added qualifier (Permanently), so an agent can distinguish it from the sibling edit_automod_rule, create_automod_rule, and get_automod_rule. It does not name those siblings explicitly, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives or consequences. For a destructive operation this is a notable omission, leaving the agent to infer everything about when deletion is appropriate.

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

delete_categoryB

Delete a channel category (channels inside will become unparented)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
categoryIdYesCategory ID to delete

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses one important side effect — contained channels become unparented rather than deleted — but says nothing about irreversibility, required permissions, or whether the operation can be undone.

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

Conciseness5/5

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

A single sentence with the action front-loaded and the side effect in a compact parenthetical. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a small two-parameter delete tool with full schema coverage and no output schema, the description covers the essential operation and its key side effect. Only auth/irreversibility details are absent.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (categoryId, reason) are already documented in the schema. The description adds nothing about parameter formats or constraints, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a channel category'), which is unambiguous. It does not explicitly distinguish itself from siblings like edit_category or delete_channel, but the destructive scope is clear from the verb alone.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus edit_category or delete_channel, nor any prerequisites (e.g. permissions needed). The parenthetical warns of a side effect, which is useful context but not usage routing.

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

delete_channelC

Delete a channel from a server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
channelIdYesChannel ID to delete

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. It does not state that deletion is irreversible, what permissions or hierarchy position are required, or what happens to the channel's messages and threads, which are essential facts for a destructive operation.

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

Conciseness3/5

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

The single sentence is front-loaded and free of padding, but its brevity reflects under-specification rather than disciplined conciseness for a destructive tool with no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no annotations and no output schema, the description is too thin. It omits irreversibility, permission requirements, and side effects on channel content, leaving the agent without enough context to invoke it safely.

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

Parameters3/5

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

Schema description coverage is 100%, so channelId and reason (including its audit-log purpose) are already fully documented in the schema. The description adds nothing beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Delete) and resource (channel), clearly separate from sibling delete_channel_permission and delete_category. It does not, however, explicitly differentiate itself from those closely named siblings, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as edit_channel, delete_category, or delete_channel_permission, and no mention of prerequisites or exclusions. The agent must infer everything 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.

delete_channel_permissionC

Delete a permission overwrite for a role or member from a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
targetIdYesRole ID or User ID of overwrite to delete
channelIdYesChannel ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says a deletion occurs, but never states required bot permissions, whether the operation is irreversible, what happens to the channel's effective permissions afterward, or how it behaves when no overwrite exists for the target. For an unannotated mutation tool this is a substantial gap.

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

Conciseness4/5

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

A single front-loaded sentence with the verb first and zero padding. Efficient, though it is a bare minimum of text rather than a well-rounded definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A destructive three-parameter mutation with no annotations and no output schema needs more: auth requirements, reversibility, and the relationship to the upsert_* siblings are all absent. The description is not sufficient for an agent to call this confidently in context.

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

Parameters3/5

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

Schema description coverage is 100% (reason, targetId, channelId each documented), so the baseline is 3. The description's 'for a role or member' and 'from a channel' loosely mirror targetId and channelId but add no format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb (Delete) plus resource (a permission overwrite for a role or member on a channel), and the 'role or member' phrasing signals scope. It does not name the sibling it complements (upsert_role_channel_permissions / upsert_member_channel_permissions) or the list tool, so an agent gets the action but no explicit differentiation.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no reference to the sibling upsert_* tools that create the very overwrites this deletes. The agent must infer the workflow entirely from the name.

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

delete_direct_messageC

Delete a previously sent direct message to a user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesDiscord User ID
messageIdYesMessage ID to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Previously sent' hints that only the bot's own messages may be deletable, but there is no disclosure of irreversibility, required permissions, or failure modes for a destructive mutation.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. It is efficient, though it trades away completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no annotations and no output schema, the description is too thin. It should disclose irreversibility, permission requirements, and whether the DM must be bot-authored.

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

Parameters3/5

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

Schema description coverage is 100%, with userId ('Discord User ID') and messageId ('Message ID to delete') both documented. The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (direct message) with scope ('previously sent ... to a user'), which distinguishes it from the sibling delete_message that operates on channel messages. Clear enough for an agent to route between the two.

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

Usage Guidelines2/5

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

The description offers no when-to-use context, no exclusions, and no reference to alternative tools such as delete_message or bulk_delete_messages. Only the implied 'to a user' hints at a scope boundary.

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

delete_emojiC

Permanently delete a custom emoji from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
emojiIdYesEmoji ID to delete
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses only one trait, permanence, and omits required permissions, whether the emoji disappears from existing message reactions, and whether the operation is recoverable.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, and the most important word ('Permanently') appears early. It is efficient, though the same brevity leaves behavioral gaps that a slightly longer description could close.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an irreversible destructive operation with zero annotations and no output schema, the description should state permission requirements and side effects. Instead it offers one sentence, leaving the agent to infer everything beyond irreversibility.

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

Parameters3/5

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

Schema description coverage is 100%, with emojiId, guildId, and reason each documented in the schema itself, so the baseline of 3 applies. The description adds no format, default, or semantic detail beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Permanently delete') and resource ('a custom emoji on the server'), which cleanly separates it from sibling create_emoji and edit_emoji. It stops short of explicitly naming those siblings or the scope qualifier, so a 4 rather than a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., required permissions), and no routing to alternative tools such as edit_emoji when the goal is modification rather than removal. The phrase 'Permanently delete' hints the action is irreversible but does not frame it as a usage caution.

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

delete_inviteA

Revoke/delete an invite link so it can no longer be used

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
inviteCodeYesInvite code or full invite URL (e.g. "abcXYZ" or "https://discord.gg/abcXYZ")

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It conveys the destructive/irreversible nature ('can no longer be used') and the audit-log purpose of the reason param is visible in the schema, but it says nothing about required permissions, who may revoke, or permanence of the effect.

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

Conciseness5/5

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

A single front-loaded sentence with zero waste; the outcome is stated immediately after the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter delete operation with full schema coverage and no output schema, the description is largely sufficient. The only gap is the absence of annotation coverage for permissions/safety, which it does not compensate for.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (inviteCode with example format, reason as audit-log reason) are fully documented in the schema. The description adds no parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (revoke/delete) and resource (invite link) and adds the consequence ('so it can no longer be used'), which clearly distinguishes it from the create_invite, list_invites, and get_invite_details siblings.

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

Usage Guidelines2/5

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

The description implies the general use case of revoking an invite, but gives no explicit when-to-use guidance, no alternatives, and no exclusions or prerequisites. The agent must infer context entirely.

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

delete_messageC

Delete a specific message from a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
channelIdYesDiscord channel ID
messageIdYesMessage ID to delete

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says 'delete' but omits whether the deletion is permanent, what permissions are required, or what happens to the message. This is a significant gap for a destructive mutation.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no annotations and no output schema, the description is incomplete. It should at least state permanence, permission requirements, or interactions with bulk deletion.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents channelId, messageId, and the optional reason parameter. The description adds no parameter detail beyond what the schema provides; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource: 'Delete a specific message from a channel'. This distinguishes it from siblings like delete_direct_message and edit_message, though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance on when to use this vs alternatives such as bulk_delete_messages or delete_direct_message, nor any preconditions or warnings. The agent is left to infer usage 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.

delete_roleB

Permanently delete a role from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
roleIdYesRole ID to delete
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden. 'Permanently' is a genuine disclosure that the operation is irreversible, which is the highest-value behavioral fact here. It says nothing about required permissions, whether members holding the role lose it, or what happens to existing channel permission overwrites tied to the role.

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

Conciseness5/5

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

One sentence, front-loaded with the action and its key modifier. Nothing is wasted, no filler, no restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with zero annotation coverage and no output schema, the description is too thin. It omits permission requirements, cascading effects on members and channel overwrites, and any distinction from remove_role, leaving the agent under-informed before an irreversible call.

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

Parameters3/5

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

Schema description coverage is 100%, so roleId, reason, and guildId are all documented in the schema itself with useful descriptions (including the DISCORD_GUILD_ID default). The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('delete a role from the server'), which is unambiguous on its own. It does not, however, distinguish itself from its nearest sibling remove_role, which strips a role from a member rather than destroying the role object — a distinction an agent must infer.

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

Usage Guidelines2/5

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

There is no statement of when to use this versus remove_role or edit_role, and no prerequisites mentioned. The sibling list contains both delete_role and remove_role, so the absence of routing guidance is a real hazard.

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

delete_scheduled_eventA

Permanently delete a scheduled event

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesScheduled Event ID to delete
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. 'Permanently delete' discloses irreversibility, which is valuable. However, it omits critical operational details: whether this requires specific permissions, what happens to attendees/RSVPs, whether the event is recoverable, and what the response looks like. The single phrase 'permanently delete' is the only behavioral hint.

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

Conciseness5/5

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

A single, front-loaded sentence with zero wasted words. The critical information ('permanently delete') is stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and no output schema, the description is minimally adequate. It states the operation but lacks essential context about permissions, side effects on attendees, and irreversibility beyond the word 'permanently'. The agent has enough to call it but not enough to call it safely or understand the full impact.

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

Parameters3/5

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

Schema coverage is 100%, so the schema fully documents both parameters (eventId, guildId). The description adds no parameter information beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('delete') and resource ('scheduled event') with an explicit permanence qualifier. Clearly distinguishable from siblings like edit_scheduled_event or 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.

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like edit_scheduled_event (which could cancel) or how it differs from editing. The description provides no usage context, leaving the agent to infer everything from the name.

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

delete_stickerB

Permanently delete a custom sticker from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
stickerIdYesSticker ID to delete

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses that deletion is permanent/irreversible, but omits permission requirements, whether the sticker must be guild-owned, and error behavior for invalid IDs. Partial behavioral disclosure only.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler; the key irreversible nature of the operation is stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no annotations and no output schema, the description covers the action and its permanence but leaves gaps around permissions and preconditions. Adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, with stickerId, guildId (defaults to DISCORD_GUILD_ID), and reason (audit log) all documented in the schema. The description adds nothing beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('permanently delete a custom sticker'), which is clear and unambiguous. It does not explicitly differentiate from sibling tools like delete_emoji or create_sticker, but the resource is specific enough that an agent can distinguish it.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g. sticker must belong to the target guild), and no mention of required permissions. The description only states what the tool does, not when to reach for it.

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

delete_webhookC

Delete a webhook by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
webhookIdYesWebhook ID to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden for a destructive mutation. It does not state that deletion is permanent/irreversible, what permissions are required, or whether the operation succeeds on an already-deleted webhook. It only restates the deletion action.

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

Conciseness4/5

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

A single short, front-loaded sentence with no wasted words. It is efficient, though arguably too terse given the behavioral gaps it leaves uncovered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive mutation with no annotations and no output schema, and the description omits irreversibility, permissions, and error/return behavior. For a delete operation the description is significantly under-specified.

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

Parameters3/5

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

Schema description coverage is 100%, documenting both webhookId and the optional audit-log reason, so the schema does the heavy lifting. The description only implies webhookId via 'by ID' and adds nothing about the reason parameter, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Delete) and resource (webhook) plus the identifier used, so the agent knows exactly what operation is performed. It does not differentiate from siblings create_webhook, list_webhooks, or send_webhook_message, but the name/verb make the distinction obvious enough.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any prerequisites such as needing a valid webhookId or ownership/permission. The agent gets no when-to-use or when-not-to-use context.

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

disconnect_voice_memberC

Disconnect a member from their current voice channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesTarget User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a voice-state mutation but does not disclose permissions required, side effects, reversibility, or what happens if the user is not in a voice channel.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It immediately identifies the action and target resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is too thin. It omits prerequisites, alternatives, permission requirements, and behavioral details an agent needs to invoke it safely and correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so userId, guildId, and reason are already documented in the schema. The description does not add any parameter-specific meaning beyond what the structured fields provide, making 3 the appropriate baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: disconnect a member from their current voice channel. It is distinguishable from move_voice_member and modify_voice_state in intent, but it does not explicitly name alternatives or clarify sibling boundaries.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus move_voice_member, modify_voice_state, or kick_member. The description only says what the tool does, leaving all usage context implicit.

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

edit_automod_ruleB

Edit an existing AutoModeration rule (name or toggle enabled state)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
reasonNoAudit log reason
ruleIdYesRule ID to edit
enabledNoEnable or disable rule
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says 'Edit' (implying mutation) and mentions the two fields that can be changed, but does not disclose permission requirements, whether changes are reversible, audit-log implications (there is a 'reason' param), or what happens to other rule properties. This is a significant gap for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

A single, tight sentence with the parenthetical enumerating modifiable fields. Front-loaded verb-resource, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is too thin. An agent needs to know permission requirements, what happens to unspecified fields, and the audit-log (reason) semantics. Five parameters, 100% schema coverage helps, but the behavioral void is not filled.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds only marginal semantics by listing the two editable fields; it doesn't explain the 'reason' audit-log parameter or the 'guildId' default behavior beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Edit) and resource (AutoModeration rule), and clarifies the two editable dimensions (name, enabled state). It distinguishes from delete_automod_rule and create_automod_rule, though it doesn't mention get_automod_rule or list_automod_rules as related read tools.

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

Usage Guidelines3/5

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

Usage is implied – clearly for modifying an existing rule – but there are no explicit when-to-use vs. alternatives statements, no prerequisites (e.g., need manage-guild permissions), and no conditions for choosing this over delete-and-recreate.

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

edit_categoryC

Edit category name or position

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew category name
reasonNoAudit log reason
positionNoNew position index
categoryIdYesCategory ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: no permission requirements, whether the audit-log reason is required or optional, or what happens to channels inside the category when position changes. Only the bare mutation intent is conveyed.

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

Conciseness4/5

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

A single front-loaded sentence with zero filler. It is appropriately sized for the operation, though the brevity comes at the cost of useful detail rather than being tight but complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A four-parameter mutation tool with no annotations and no output schema needs more than one clause: it should state at minimum that categoryId is required, that name/position are optional edits, and what the reason field is for. The description omits all of this.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters including categoryId and reason. The description names two of them (name, position) but adds no format, constraint, or reconciliation semantics beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (edit) and resource (category) plus the two mutable fields, so it is clearly distinguishable from create_category and delete_category. It lacks any scope detail (e.g., server context or what a position change affects).

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as edit_channel for non-category channels. The agent must infer applicability entirely from the name and siblings.

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

edit_channelC

Edit properties of a text, voice, or stage channel

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew channel name
nsfwNoSet NSFW flag
topicNoNew channel topic (text channels)
reasonNoAudit log reason
bitrateNoNew bitrate (voice channels)
positionNoNew position index
slowmodeNoSlowmode delay in seconds
channelIdYesChannel ID to edit
userLimitNoNew user limit (voice channels)
categoryIdNoMove to category ID (empty string to unparent)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, yet it discloses nothing: not whether the edit is partial (omitted fields left unchanged), what permissions are required, whether changes are reversible, or how the audit-log 'reason' interacts with the operation. For a 10-parameter mutation tool this is a significant gap.

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

Conciseness4/5

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

A single efficient sentence with the resource front-loaded and no filler. It is appropriately sized, though at the cost of leaving out any behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 10-parameter mutation tool with no annotations and no output schema needs the description to explain permissions, partial-update semantics, and side effects; instead it offers one sentence. The schema alone cannot tell an agent whether unspecified fields are preserved or cleared.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The phrase 'text, voice, or stage channel' is the only added meaning, implicitly telling the agent which of the type-specific fields (topic vs. bitrate/userLimit) apply to which channel kind.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (edit) and resource (channel), and narrows the scope to text, voice, or stage channels. However, it never distinguishes itself from close siblings like edit_forum_channel, edit_category, or move_channel, which an agent could easily confuse it with given a 100+ tool list.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., Manage Channels permission), and no routing to alternatives such as move_channel for repositioning or edit_forum_channel for forum channels. The agent must infer all of this from the schema.

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

edit_direct_messageC

Edit a previously sent direct message to a user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesDiscord User ID
messageIdYesMessage ID to edit
newMessageYesNew content for the direct message

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the operation is an edit (a mutation) but doesn't disclose permissions required, whether edits are allowed on others' messages, if history is tracked, or what happens on failure. Significant behavioral gaps 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.

Conciseness5/5

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

A single, clear sentence with no wasted words. It is appropriately sized for the tool's simplicity and front-loads the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it's a mutation tool with no annotations and no output schema, the description is too sparse. It should explain permissions, return behavior, or error conditions to be truly complete for an agent.

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

Parameters3/5

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

Schema coverage is 100%, so all three parameters (userId, messageId, newMessage) are already documented in the schema. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Edit' and resource 'direct message' with a specific scope ('previously sent'). However, it does not distinguish from siblings like edit_message (likely for channel messages) or other DM tools like send_direct_message and delete_direct_message.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance. The phrase 'previously sent' implies the message must already exist, but there's no mention of alternatives like edit_message for server messages or restrictions on which messages can be edited.

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

edit_emojiC

Edit custom emoji name or restricted roles

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
reasonNoAudit log reason
emojiIdYesEmoji ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
rolesCsvNoComma-separated role IDs (empty string to allow all)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It signals mutation ('Edit') and names what can change, but omits whether this requires specific permissions, whether rolesCsv replaces or appends to existing restrictions, whether changes are reversible, and audit/rate-limit behavior.

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

Conciseness4/5

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

A single tight sentence that front-loads the action and enumerates the editable properties with zero padding. It is appropriately sized, though its brevity borders on under-specification given the untold behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does the minimum: it says what it edits but not how the operation behaves, what it returns, or what permissions it needs. The rich schema covers parameters, but behavioral completeness is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters are documented in the schema (including 'empty string to allow all' semantics for rolesCsv). The description adds no format or edge-case detail beyond mapping to two of the fields, so it sits at the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb (edit) plus resource (custom emoji) and specifies the mutable fields (name, restricted roles). This distinguishes it from the sibling create_emoji/delete_emoji/list_emojis, though it never names those siblings explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., the MANAGE_EMOJIS permission Discord requires), and no routing to alternatives such as delete_emoji or get_emoji_details. The agent must infer usage entirely.

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

edit_forum_channelC

Edit forum channel settings (name, topic, sort order, layout, slowmode)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
nsfwNoNSFW flag
topicNoNew topic / guidelines
reasonNoAudit log reason
positionNoPosition index
slowmodeNoDefault thread slowmode in seconds
channelIdYesForum channel ID
categoryIdNoCategory ID (empty string to unparent)
defaultSortNoDefault post sorting order
defaultLayoutNoDefault layout

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It is a mutation tool, yet it never states required permissions (e.g. MANAGE_CHANNELS), whether the edit is partial or full-replace, what happens to unspecified settings, or that the reason parameter feeds the audit log — all significant gaps 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.

Conciseness4/5

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

A single front-loaded sentence with a parenthetical field list and no wasted words. It is efficient, though the enumeration is redundant with the schema and the sentence is arguably too sparse for a 10-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no annotations and no output schema, the description omits permissions, partial-update semantics, the audit-log role of reason, and the empty-string convention for categoryId unparenting. It is far too thin to fully orient an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented, including enum values for defaultSort and defaultLayout and slowmode's 0-21600 range. The description merely echoes five of the ten fields without adding format, constraint, or interaction detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Edit) and resource (forum channel settings), and enumerates the editable fields, so the agent knows it targets forum-channel configuration. It does not differentiate from the closely related sibling edit_channel, which an agent could easily confuse with this one.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no distinction from edit_channel or create_forum_channel, and no prerequisite information. Nothing tells the agent under what circumstances this tool should be chosen over its siblings.

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

edit_messageB

Edit an existing message previously sent by the bot with optional automatic mention resolution

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesDiscord channel ID
messageIdYesMessage ID to edit
newMessageYesNew content for the message
resolveMentionsNoAutomatically convert #channel-name and @RoleName into clickable Discord mention pills

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the bot-authored constraint and that mention resolution is optional/automatic, which is meaningful behavior. But it omits what happens on failure (e.g., editing a non-bot message), required permissions, and whether the edit is idempotent.

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

Conciseness4/5

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

A single tight sentence with the core action and scope constraint front-loaded. No filler, though it is brief enough that some clarifying detail could have been added without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should compensate more. It covers the essential action and the mention-resolution option, but leaves error conditions, permission requirements, and result format unaddressed for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters are already documented, including resolveMentions. The description only restates the mention-resolution behavior at a high level and adds nothing about formats or edge cases beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (edit) and resource (message) plus an important scope constraint: 'previously sent by the bot'. This distinguishes it from editing arbitrary messages, though it does not name the closest sibling edit_direct_message to route the agent explicitly.

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

Usage Guidelines3/5

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

The phrase 'previously sent by the bot' implies a usage restriction (the bot can only edit its own messages), which is useful context. However, there is no explicit when-to-use vs. when-not guidance and no reference to edit_direct_message or send_message as alternatives.

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

edit_roleC

Edit an existing role settings and permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
colorNoNew hex color string (e.g. "#00FF00")
hoistNoDisplay role separately in sidebar
reasonNoAudit log reason
roleIdYesRole ID to edit
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
positionNoRole position index
mentionableNoAllow anyone to mention role
permissionsRawNoPermission bitfield string
permissionsNamesNoCSV of permission names

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It says only 'edit' without disclosing whether unspecified fields are preserved or cleared (partial vs. full update), what permissions are required, whether changes are reversible, or that the 'reason' field feeds an audit log. For a mutation tool this is a substantial gap.

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

Conciseness3/5

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

It is a single front-loaded sentence with no wasted words, but for a 10-parameter mutation tool it is under-specified rather than genuinely concise, and the grammar ('an existing role settings') is imprecise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and 10 parameters (only roleId required, implying a partial-update semantic that is never explained), the definition leaves key calling questions unanswered—most notably what happens to fields not passed and whether permissions are replaced or merged.

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

Parameters3/5

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

Schema coverage is 100%, so every parameter is self-documented (name, color, hoist, position, permissionsRaw, permissionsNames, audit reason, etc.). The description adds nothing beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Edit) and resource (an existing role's settings and permissions), which is enough to separate it from create_role, delete_role, and get_role_info by implication. However, it never explicitly names or contrasts those siblings, and the phrasing 'role settings' is slightly loose.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of when to prefer create_role versus edit_role, and no stated prerequisites (e.g., permission to manage roles or hierarchy constraints). The agent must infer all usage context.

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

edit_scheduled_eventB

Modify details of a scheduled event or change its status (start, complete, cancel)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name
reasonNoAudit log reason
statusNoChange status (ACTIVE to start, COMPLETED to end, CANCELED)
eventIdYesScheduled Event ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
locationNoNew external location
descriptionNoNew description
scheduledEndTimeNoNew ISO-8601 end timestamp
scheduledStartTimeNoNew ISO-8601 start timestamp

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses status-transition intent (start/complete/cancel) but says nothing about permissions required, whether omitted fields are left unchanged, whether changes are reversible, or that this is a mutation. For a 9-parameter mutation with zero annotation coverage this is a significant under-disclosure.

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

Conciseness4/5

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

A single tight sentence with the core action front-loaded and no wasted words. It is efficient, though it trades away richness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with no annotations and no output schema should tell the agent about partial-update semantics, required permissions, and status-transition effects. None of that is present, so an agent cannot confidently predict the consequences of a call from this definition alone.

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

Parameters3/5

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

Schema description coverage is 100%, including a fully documented status enum, so the schema already does the heavy lifting. The description's parenthetical (start, complete, cancel) merely restates what the enum descriptions provide and adds no new syntax or format guidance. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Modify) and resource (scheduled event) plus a secondary action (change its status), which is enough to separate it from create_scheduled_event, delete_scheduled_event, and list_scheduled_events. It stops short of explicitly naming those siblings, so it earns a 4 rather than a 5.

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

Usage Guidelines3/5

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

The wording implies usage (editing an existing event, changing status), but there is no explicit when-to-use, when-not-to-use, or named alternative. For example, it does not tell the agent when to edit vs. delete-and-recreate. Adequate but with clear gaps.

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

end_pollA

Immediately end and close an active poll so no further votes can be cast

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesDiscord channel ID
messageIdYesPoll message ID

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses that the action is immediate and terminal for voting ('no further votes can be cast'), but omits whether it is reversible, what happens to existing votes/results, and whether poll-owner permission is required.

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

Conciseness5/5

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

A single tight sentence that front-loads the action and its effect. Nothing redundant, nothing wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation with no annotations and no output schema, the description covers the core action but leaves gaps on permissions, reversibility, and what happens to existing poll results, which an agent would need to invoke it confidently.

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

Parameters3/5

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

Schema coverage is 100%, so channelId and messageId are already fully documented in the schema. The description adds no additional meaning about identifier formats or constraints, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (end/close) and resource (an active poll) with the observable consequence spelled out. It is clearly distinguishable from siblings like create_poll and get_poll_answer_voters without needing the schema.

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

Usage Guidelines3/5

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

The word 'active' implies the poll must currently be running, which is a mild precondition, but there is no explicit when-to-use guidance, no statement of what happens if the poll has already ended, and no mention of alternative tools.

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

find_channelC

Find a channel by exact or partial name in a server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesChannel name to search for
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies fuzzy/partial matching but does not disclose whether multiple matches are returned, what happens on ambiguity, or how the default guild fallback behaves.

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

Conciseness4/5

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

A single efficient sentence with the search scope front-loaded and zero filler. It is appropriately sized for a two-parameter lookup tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should carry more weight. It covers the core purpose but omits result shape (single vs. multiple matches) and ambiguity handling, leaving a search tool partially under-specified.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (name, guildId) are already documented, including the DISCORD_GUILD_ID default. The description's 'exact or partial' phrasing adds minor meaning about the name parameter's matching behavior, consistent with the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find), resource (channel), matching method (exact or partial name) and scope (in a server). It is distinguishable from siblings like get_channel_info or list_channels, though it does not explicitly name those alternatives.

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

Usage Guidelines2/5

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

No guidance on when to prefer this over list_channels or get_channel_info, no prerequisites or exclusions, and no mention that partial matching may return multiple results. The agent must infer usage entirely.

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

format_discord_mentionC

Generate proper Discord Markdown mentions and shortcuts for users, roles, channels, timestamps, custom emojis, and slash commands

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTarget ID (User ID, Role ID, Channel ID, Unix Timestamp, Emoji ID, or Command ID)
nameNoName of emoji or slash command (required for emoji/slash_command)
typeYesType of mention/shortcut to format
styleNoTimestamp style (t=short time, T=long time, d=short date, D=long date, f=short datetime, F=long datetime, R=relative time) OR special tab name
animatedNoWhether custom emoji is animated (default: false)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It never states that this is a pure, side-effect-free string formatter (no API calls, no state change), nor what the output looks like. It also omits the 'special_tab' type supported by the schema, so the behavioral surface described is incomplete.

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

Conciseness4/5

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

A single front-loaded sentence with no filler, and the supported target kinds are listed up front. It is efficient, though it could have used the remaining space to add routing or output-format value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should explain the return value (the generated markdown string) and clarify the inverse relationship with resolve_discord_mentions. It covers the input types adequately but leaves the output and routing unspecified.

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

Parameters3/5

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

Schema description coverage is 100%, and the enum values for 'type' and 'style' are already fully documented in the schema (including timestamp style meanings). The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Generate') and resource ('Discord Markdown mentions and shortcuts') and enumerates the supported target kinds. It is clear on its own, but it does not distinguish itself from the closely related sibling resolve_discord_mentions (the inverse operation) or get_discord_syntax_guide.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives. Given siblings like resolve_discord_mentions, get_discord_symbols, search_discord_symbols, and get_discord_syntax_guide, the agent gets no routing guidance at all, leaving the choice to inference from the name.

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

generate_bot_invite_urlB

Generate an official OAuth2 invite link to add a bot or application to a server with custom permissions

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoPre-select a specific server ID in the invite authorization flow
clientIdNoBot / Application client ID (defaults to this bot's ID)
scopesCsvNoComma-separated OAuth2 scopes (default: "bot,applications.commands")bot,applications.commands
permissionsCsvNoCSV of permission names (e.g. ViewChannel,SendMessages,ManageChannels)
permissionsRawNoRaw permissions bitfield string (e.g. "8" for Administrator)

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys that this produces a link (implying no side effects) and that permissions are customizable, but it omits whether generation itself requires elevated permissions, whether the link expires, and that the bot is only actually added after the user completes the OAuth2 flow.

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

Conciseness5/5

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

A single front-loaded sentence with the verb, resource, and scope stated immediately and zero filler. Nothing to trim and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter, no-annotation tool with no output schema, the description is thin: it never states what is returned (a URL string) or the operational caveats. The 100% schema coverage compensates on parameters, but behavioral context is left sparse.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains guildId, clientId, scopesCsv, permissionsCsv, and permissionsRaw in detail. The description adds the general 'custom permissions' framing but no additional per-parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Generate) and resource (OAuth2 invite link), plus the scope 'to add a bot or application to a server with custom permissions'. This is clear and distinguishable from server-invite siblings, but it never explicitly names the adjacent create_invite tool, so the differentiation is left implicit.

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

Usage Guidelines2/5

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

The description implies the use case (adding a bot/application) but never says when to use this versus create_invite, list_invites, or get_invite_details, and gives no prerequisites or exclusions. The agent must infer which invite tool applies.

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

get_audit_logsB

Fetch server audit log entries with optional filtering by user and limit

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of entries to fetch (1-100, default: 25)
userIdNoFilter logs by executor or target user ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It fails to disclose that audit logs typically require a privileged permission (View Audit Log), that results are paginated/ordered, or what happens when no filters are supplied. 'Fetch' implies read-only but nothing more is confirmed.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words; the resource is stated first and qualifiers follow. Efficient, though it is arguably under-specified rather than optimally scoped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read tool with no output schema and no annotations, the description covers the basics but omits meaningful context: permission requirements for audit logs, pagination behavior, and default ordering. Adequate but with identifiable gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters. The description mentions user and limit filtering but omits guildId entirely and adds no syntax or format detail beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear specific verb+resource: 'Fetch server audit log entries'. An agent immediately knows this retrieves audit log data. However, it does not distinguish itself from any sibling or clarify scope (which server, whose logs), leaving minor ambiguity.

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

Usage Guidelines3/5

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

The phrase 'with optional filtering by user and limit' implies the parameters are optional and what they filter, giving some contextual usage. But there is no explicit when-to-use guidance, no prerequisites, and no mention of the alternate tools one might reach for instead.

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

get_automod_ruleB

Get detailed configuration of a specific AutoModeration rule

ParametersJSON Schema
NameRequiredDescriptionDefault
ruleIdYesAutoMod Rule ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. 'Get' implies a read-only operation, but it omits that AutoMod config typically requires elevated permissions (Manage Server / View Audit Log), says nothing about error behavior for an unknown ruleId, and gives no hint about the shape of the returned 'detailed configuration'.

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

Conciseness5/5

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

A single, tightly scoped sentence with the verb and resource front-loaded and zero filler. Nothing is padded or repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one required ID parameter) and reads without side effects, so the description is nearly sufficient. But with no output schema, it should describe what 'detailed configuration' actually returns (triggers, actions, exemptions, enabled state) or note permission requirements; that gap keeps it from being complete.

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

Parameters3/5

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

Schema description coverage is 100%, so both ruleId and guildId (with its DISCORD_GUILD_ID default) are fully documented in the schema. The description adds no further parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('AutoModeration rule') with the scope qualifier 'specific', which distinguishes it from list_automod_rules. However, it never names the alternative sibling tools (list/create/edit/delete_automod_rule), so routing relies on the agent's own inference.

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

Usage Guidelines2/5

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

No when-to-use guidance or prerequisites are given. The description does not say to call list_automod_rules first to obtain a ruleId, nor when this is preferable to the list variant.

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

get_ban_infoC

Get detailed ban information for a specific banned user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesBanned User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup but says nothing about required permissions, behavior when the user is not banned (error vs empty result), or what 'detailed' information is returned — a real gap given there is no output schema.

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

Conciseness4/5

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

A single, front-loaded sentence with no filler or redundancy. It is appropriately sized, though that brevity is partly why other dimensions are thin.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is the only source for behavioral and return-value context — yet it never enumerates what ban details are returned or what happens on a non-banned user. For a lookup tool that leans entirely on prose, this is under-specified.

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

Parameters3/5

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

Schema description coverage is 100%, with both userId and guildId documented in the schema (including the DISCORD_GUILD_ID default for guildId). The description adds no syntax or format meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('ban information') scoped to 'a specific banned user', which is clearer than a bare name restatement. It does not, however, distinguish itself from the sibling list_bans or explain what 'detailed' encompasses.

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

Usage Guidelines2/5

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

There is no guidance on when to use this instead of list_bans (which appears to enumerate bans) or get_member_info/get_user_info. No prerequisites, permissions, or exclusions are stated.

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

get_bot_infoB

Get current bot application status, username, ping, server count, and uptime

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. Its phrasing 'Get current ... status' implies a read-only, side-effect-free, no-argument call, which is consistent behavior, but it never explicitly states read-only/non-destructive or whether it hits a live API with rate limits. It is adequate but leaves the safety profile to inference.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. The enumerated outputs earn their place by telling the agent what it will receive. Not a 5 only because it is quite terse and could route the agent better without added bulk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no annotations and no output schema, the description covers what the tool returns and implies a safe read, which is mostly sufficient. However, with no structured safety hints it could do more, and it lacks any guidance distinguishing it from sibling info-getters.

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

Parameters4/5

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

There are zero parameters, which earns the baseline of 4 under the rubric. The description neither needs nor provides parameter detail, and it correctly implies a self-contained call with no required input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource: 'Get current bot application status...'. It enumerates exactly what information the tool returns (status, username, ping, server count, uptime), which lets an agent distinguish it from siblings like get_user_info or get_server_info. It stops short of 5 because it does not explicitly name or differentiate from those nearest siblings, which also return identity/status data.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. The description lists outputs but never states the situation that should trigger this tool versus alternatives such as get_user_info or get_server_info.

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

get_channel_infoB

Get detailed information about a specific channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesChannel ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only communicates a read-like operation ('Get') and says nothing about permissions required, rate limits, return behavior, or any other operational trait.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with zero wasted words. It is appropriately sized for a simple one-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with 100% schema coverage and no annotations, the description is minimally viable but vague. It does not clarify what 'detailed information' includes, and since there is no output schema, an agent cannot know the return contents or scope.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter channelId is already documented as 'Channel ID'. The description adds no meaning beyond what the schema provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb (Get) and resource (detailed information about a specific channel), so the basic action is unambiguous. However, it does not distinguish this tool from siblings like get_forum_channel_info, get_user_info, or list_channels, which an agent might consider for channel-related lookups.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description implies it requires a channel ID but offers no context, prerequisites, or exclusions, leaving the agent to infer usage 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.

get_discord_symbolsA

Get curated aesthetic Discord symbols, dividers, channel prefixes, role badges, and server templates for building attractive Discord servers

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoSymbol category to retrieveall

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does convey that output is a curated set of symbols and templates. However, it omits basic behavioral facts such as whether the result is cached/static, whether it is paginated, rate limits, auth requirements, or the return shape, so it is only adequate for a read-style retrieval tool.

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

Conciseness5/5

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

It is a single front-loaded sentence with no filler; every noun (symbols, dividers, prefixes, badges, templates) maps to a category or use case, and nothing is repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with a fully described enum, the description is minimally sufficient, but with no annotations and no output schema it should at least say the result is a static curated list and how it differs from search_discord_symbols.

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

Parameters3/5

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

Schema coverage is 100% and the single enum parameter already fully documents the allowed categories, including 'all' as default. The description adds no parameter-level meaning beyond listing resource types, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and concrete resource types ('aesthetic Discord symbols, dividers, channel prefixes, role badges, and server templates'), and the stated purpose ('building attractive Discord servers') distinguishes it from the sibling search_discord_symbols, which is a search rather than a curated retrieval.

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

Usage Guidelines3/5

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

The purpose implies a design/decoration use case, but the description never states when to use this instead of search_discord_symbols, and no exclusions or prerequisites are given. Usage is only implicitly derivable from context.

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

get_discord_syntax_guideB

Get a comprehensive reference guide of all Discord Markdown shortcuts, techniques, mentions, timestamps, subtext, spoilers, and internal navigation links

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It is a zero-parameter, inherently read-only reference, so there is little risk to disclose, but it says nothing about the form of the returned content or its size/length despite being billed as 'comprehensive'.

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

Conciseness4/5

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

A single front-loaded sentence with no filler; the enumerated topics are the useful content. The list is long but each item adds scope information rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param, no-output-schema lookup tool the description is minimally adequate: it tells the agent what topics are covered but not how the guide is returned or how it relates to the other Discord formatting tools it sits beside. Nothing is misleading, but routing information is absent.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. There are no inputs whose meaning the description could or should clarify.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('reference guide of all Discord Markdown shortcuts, techniques, mentions, timestamps, subtext, spoilers, and internal navigation links'), enumerating the covered topics. It is clear what the tool does, but it doesn't distinguish itself from nearby siblings like get_discord_symbols or format_discord_mention, which could plausibly overlap.

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

Usage Guidelines2/5

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

The description gives no when-to-use context, no prerequisites, and no pointer to alternatives among the many Discord formatting/mention siblings (get_discord_symbols, format_discord_mention, resolve_discord_mentions). An agent must infer that this is the general reference and those are narrower tools.

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

get_emoji_detailsB

Get details about a specific custom emoji

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiIdYesEmoji ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It doesn't disclose whether this is a read-only operation, whether it requires elevated permissions, what the response contains, or any rate limits. It only says 'Get details', which is 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.

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the action and resource. 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and two parameters, the description is too sparse. It doesn't explain what 'details' are returned, whether authentication is needed, or how to handle the optional guildId. An agent would need to consult external documentation to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (emojiId and guildId). The description does not add any meaning beyond what the schema provides, such as format expectations or default behavior. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (details about a specific custom emoji), which is clear and distinguishable from siblings like list_emojis. It doesn't explicitly name an alternative, but the scope of a single emoji vs. a list is evident from the description.

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

Usage Guidelines3/5

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

The description implies usage by saying 'specific custom emoji', but it doesn't explicitly state when to use this tool versus list_emojis or get_sticker_details. No conditions, prerequisites, or exclusions are provided.

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

get_forum_channel_infoC

Get detailed forum info including active posts and available tags

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesForum channel ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It implies a read (a 'get'), but never states that it is read-only, whether it requires any permissions, how much data a 'detailed' response can contain, or whether 'active posts' is paginated or truncated.

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

Conciseness4/5

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

A single efficient sentence, front-loaded with the verb and resource. It is not padded, though it is arguably too terse for the ambiguity created by its siblings.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description conveys the general shape of the return ('active posts and available tags'). But without annotations it omits the safety/permission profile and any indication of response size or scoping, leaving it only minimally viable.

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

Parameters3/5

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

Schema description coverage is 100% for the single channelId parameter, so the schema already documents it fully. The description adds no format guidance (e.g. whether channelId must be a forum-channel ID specifically vs. any channel), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get detailed forum info') and even names the fields returned (active posts, available tags). However, it does not differentiate itself from the closely related siblings get_channel_info, list_forum_channels, list_forum_posts, or list_forum_tags, leaving the agent to guess which channel-info tool applies.

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

Usage Guidelines2/5

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

No when-to-use guidance, no statement of prerequisites, and no mention of alternatives. With four sibling tools covering forum posts, tags, and channel info, the absence of routing guidance is a real gap.

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

get_invite_detailsB

Get details about an invite code (channel, server, online member counts)

ParametersJSON Schema
NameRequiredDescriptionDefault
inviteCodeYesInvite code or full URL
withCountsNoInclude approximate online and total member counts

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that the tool returns channel, server, and member-count details, implying a read-only operation, but does not mention permissions, rate limits, error behavior, or whether the invite lookup is public.

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

Conciseness5/5

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

The definition is a single front-loaded sentence with no wasted words. The essential purpose and returned fields are stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup tool with no output schema and complete parameter schema coverage, the description gives enough context: it states what the tool does and what details it returns. It still lacks usage guidance and operational behavior details, but those gaps are modest given the tool's low complexity.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents both parameters fully. The description mentions online member counts, which loosely relates to the withCounts parameter, but adds no syntax, format, or additional semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get details about an invite code', and enumerates the kind of details returned (channel, server, online member counts). It is clearly distinguishable from create_invite, list_invites, and delete_invite, though it does not explicitly name those siblings as alternatives.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The usage is only implied by the tool name and generic purpose.

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

get_member_infoB

Get detailed information about a member in a server (roles, join date, voice state, permissions)

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesMember User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the returned fields, which is genuinely useful. However it omits auth/permission requirements, behavior when the member or guildId is invalid, and any rate-limit or caching notes, leaving meaningful behavioral gaps.

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

Conciseness4/5

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

A single front-loaded sentence with no wasted words; the parenthetical efficiently lists return fields. It is appropriately sized, though it stops short of the routing value a top-tier definition would add.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with full schema coverage, the description is minimally adequate: it names the resource and the returned fields. With no annotations and no output schema, it should ideally clarify scope versus get_user_info and any failure behavior, so it is only just complete.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are documented in the schema (including the DISCORD_GUILD_ID default), so the schema does the heavy lifting. The description adds no syntax or format detail beyond the schema, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('member in a server') and enumerates what is returned (roles, join date, voice state, permissions), which confirms server-scoped detail rather than global user data. It does not explicitly name a sibling like get_user_info or list_members to draw the boundary, so it falls short of 5.

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

Usage Guidelines3/5

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

The purpose implies usage (fetch details for one known member), but there is no explicit when-to-use, no prerequisites, and no disambiguation from near neighbors such as get_user_info or list_members. Guidance is only implied.

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

get_message_attachmentsA

Inspect file attachments on a specific message (file names, sizes, content types, URLs)

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesDiscord channel ID
messageIdYesDiscord message ID
attachmentIdNoSpecific attachment ID (omitted returns all)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. 'Inspect' communicates a read-only operation and it lists returned metadata, but it does not disclose permission requirements, rate limits, or whether missing attachments produce an error or empty result. Minimum viable but with clear gaps.

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

Conciseness5/5

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

Single sentence, front-loaded with the verb and resource, with a parenthetical list of returned fields. Every element earns its place and there is no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read operation with no annotations and no output schema, the description names the resource and lists key returned fields. It omits usage guidance and permission details, but those are not critical to correct invocation given the fully documented schema.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (channelId, messageId, attachmentId) are already documented in the schema. The description adds no syntax, format, or meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Inspect') and resource ('file attachments on a specific message'), and enumerates returned fields (file names, sizes, content types, URLs). It distinguishes itself from generic message readers like read_messages and list_pinned_messages.

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

Usage Guidelines3/5

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

The description implies usage by specifying 'on a specific message', but gives no explicit when-to-use/when-not guidance, prerequisites, or alternatives. No sibling directly duplicates this function, yet the agent receives no criteria for selecting this tool over related message-reading tools.

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

get_poll_answer_votersC

Fetch users who voted for a specific answer in a poll

ParametersJSON Schema
NameRequiredDescriptionDefault
answerIdYesNumeric answer option ID (typically 1, 2, 3...)
channelIdYesDiscord channel ID
messageIdYesPoll message ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Fetch' implies a read, but the description says nothing about required bot permissions, whether the poll must be active or ended, or pagination/limits on voter lists. For a tool with zero annotation coverage this is a meaningful gap.

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

Conciseness4/5

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

A single tight sentence with no filler, front-loading the verb and resource. It is appropriately sized, though it is terse enough that it omits information an agent might need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description is the sole source of behavioral context, and it only covers the purpose. Parameters are fully covered by the schema, but nothing tells the agent about return shape, permissions, or edge cases; adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (answerId, channelId, messageId) are already documented in the schema. The description adds no syntax or format detail beyond what the schema provides, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and a precise resource (users who voted for a specific answer in a poll), which is unambiguous. It does not explicitly differentiate itself from sibling poll tools like create_poll or end_poll, but the resource is distinct enough to identify on its own.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives. The only usage signal is implied by the tool name itself; an agent must infer that this applies only to existing polls.

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

get_prune_countA

Calculate the number of inactive members that would be pruned

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of inactivity (1-30, default: 7)
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implicitly conveys that this is a non-destructive calculation rather than the actual prune, which is useful behavioral context, but it omits explicit statements about permissions, whether bots are counted, or what the returned count represents.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundancy. Every word contributes to stating the operation and its output.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter query tool with no output schema, the description is adequate to convey the operation. However, with no annotations and no output schema, it should do more to clarify that this is read-only, how the count relates to prune_members, and any permission expectations.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both 'days' (with range and default) and 'guildId' (with its fallback). The description adds no parameter-level detail beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Calculate') and resource ('number of inactive members that would be pruned'), making the operation clear. It implicitly distinguishes itself from the actual pruning sibling by saying 'would be pruned,' but it never names prune_members or explicitly states this is a preview, so it falls short of full sibling differentiation.

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

Usage Guidelines3/5

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

Usage is only implied: the phrase 'would be pruned' suggests a preview or dry-run use case before calling prune_members, but the description never states when to use this tool instead of prune_members, nor 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.

get_role_infoC

Get detailed information about a specific role

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIdYesRole ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read but never states whether it requires permissions, how it behaves when roleId is invalid, or what 'detailed information' comprises.

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

Conciseness4/5

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

A single tight sentence with no waste, though its brevity comes at the cost of substance rather than being efficient prioritization.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a lookup tool with no output schema and no annotations, the description should say what detail is returned and any permission or scope caveats. 'Detailed information' leaves the agent guessing about the response.

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

Parameters3/5

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

Schema coverage is 100%, so roleId and the guildId default are fully documented in the schema. The description adds nothing beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (get + role), but 'detailed information' is vague about what is returned, and nothing distinguishes it from siblings like list_roles, get_member_info, or get_channel_info.

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

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no mention of alternatives such as list_roles when the agent wants many roles rather than one.

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

get_scheduled_event_usersC

Get users interested in or subscribed to a scheduled event

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax users to return (1-100, default: 50)
eventIdYesScheduled Event ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not disclose pagination behavior, authorization requirements, whether results include both 'interested' and 'subscribed' users in equal measure, or the shape of what is returned. Only the scope wording ('interested in or subscribed to') adds anything 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.

Conciseness4/5

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

A single, front-loaded sentence with no filler. It is efficient, though it is arguably too terse given what is left unexplained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema is fully documented, but with no annotations and no output schema, the return contents (what fields each user entry has, whether pagination continues) are left entirely unspecified. The description is minimally adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (limit, eventId, guildId) are already documented in the schema. The description adds no syntax or format detail beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (users of a scheduled event), and the qualifier 'interested in or subscribed to' narrows the scope. It does not explicitly differentiate from the sibling list_scheduled_events or list_members, but no sibling covers the same resource, so the purpose is unambiguous.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus alternatives (e.g., list_members, search_members, or list_scheduled_events). No prerequisites, no mention that eventId is required, and no conditions or exclusions are given.

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

get_server_infoB

Get detailed discord server information including members, channels, owner, boost level, and features

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. The verb 'Get' implies a read-only operation, but no auth requirements, rate limits, or edge cases (e.g., behavior when the guild is unknown) are disclosed. Notably, the schema states guildId defaults to DISCORD_GUILD_ID, yet the description omits this significant defaulting behavior.

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

Conciseness5/5

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

A single front-loaded sentence with zero filler. The enumerated content adds useful signal without excess verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, listing the returned fields (members, channels, owner, boost level, features) usefully describes the response shape. Combined with full schema coverage of the param, it is largely complete, though it could clarify the guildId default and read-only nature more explicitly.

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

Parameters3/5

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

Schema description coverage is 100%, so the single guildId parameter and its default are already documented in the schema. The description adds no additional parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource ('get... discord server information') and enumerates the returned content (members, channels, owner, boost level, features). It is specific enough to distinguish from siblings like get_server_widget or get_bot_info, though it doesn't explicitly name those alternatives.

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

Usage Guidelines2/5

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

The description says only what the tool returns, with no when-to-use guidance, prerequisites, or pointers to related tools such as list_servers or modify_server_settings. No exclusions or selection criteria are given.

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

get_server_vanity_urlA

Get the vanity invite URL for a server if enabled (requires Level 3 boost)

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral constraint: the vanity URL only exists if enabled and the server has Level 3 boost. Beyond that it says nothing about permissions required, error vs. null behavior when the condition fails, or the return shape.

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

Conciseness5/5

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

One compact sentence with the action first and the condition attached. Nothing is wasted and no restructuring would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description covers what is fetched and the enabling condition. It is adequate but leaves the failure mode (error vs. empty result when the vanity URL is not enabled) unstated, which is the main thing an agent would need before calling it.

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

Parameters3/5

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

Schema description coverage is 100% and the single guildId parameter is fully documented in the schema, including its fallback to DISCORD_GUILD_ID. The description adds no parameter-level meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('get the vanity invite URL for a server') and adds a scoping condition ('if enabled'). It is clearly distinguishable from the invite/emoji/member tools around it, though it does not explicitly contrast itself with the nearby invite tools (create_invite, get_invite_details).

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

Usage Guidelines3/5

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

The parenthetical '(requires Level 3 boost)' gives a precondition for when the vanity URL exists, which is real usage context. However, there is no explicit when-to-use guidance, no statement of what happens if the server lacks the boost or has no vanity URL enabled, and no routing to an alternative tool.

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

get_server_widgetC

Get server widget settings and embed URL

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It hints at the return payload ('settings and embed URL') but says nothing about required permissions, whether the widget must be enabled first, or what happens if the server has no widget configured.

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

Conciseness4/5

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

A single short sentence with the resource front-loaded and no filler. It is appropriately sized for a simple lookup, though it is too terse to inform much beyond the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should say more about the shape of the returned widget data, but it does at least name the two pieces of information returned. Adequate but with clear gaps for a settings-read tool.

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

Parameters3/5

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

Schema coverage is 100% and there is only one optional parameter (guildId) with its own default documented in the schema. The description adds no format or defaulting nuance beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and resource ('server widget settings and embed URL'), so the tool's purpose is unambiguous. It does not explicitly contrast itself with the sibling modify_server_widget, but the read verb makes the distinction largely self-evident.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus modify_server_widget or any other server-settings tool, and no prerequisites or context are given. The agent must infer usage 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.

get_sticker_detailsB

Get details about a specific custom sticker

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
stickerIdYesSticker ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read operation but does not disclose permissions, rate limits, whether global/default stickers are included, or how the guildId default is resolved, leaving meaningful behavioral traits unstated.

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

Conciseness5/5

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

A single front-loaded sentence with no filler or redundancy. It states the action and resource immediately, and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity two-parameter read tool this is minimally adequate, but with no output schema the description does not clarify what 'details' are returned or how the optional guildId default behaves. A brief note on scope (custom vs. global stickers) would close the remaining gap.

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

Parameters3/5

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

Schema coverage is 100% and both parameters are documented in the schema, so the baseline is 3. The description adds only the scoping word 'custom' and says nothing about stickerId or guildId usage beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('details about a specific custom sticker'), making the single-sticker retrieval clear. It does not name or contrast with the sibling list_stickers, so it falls short of full sibling differentiation.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus list_stickers or get_emoji_details, and no prerequisites or exclusions are mentioned. The intended use is only implied by the tool name and the word 'specific'.

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

get_user_id_by_nameB

Get a Discord user ID by username or nickname in a server for mention formatting (<@id>)

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
usernameYesUsername or nickname (e.g. "username" or "username#discriminator")

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It omits the behaviors that matter most for a name-based lookup: whether the lookup is exact or fuzzy, what happens with ambiguous or non-unique usernames/nicknames, and what occurs when no match is found. Username ambiguity is a real risk in Discord and goes unmentioned.

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

Conciseness5/5

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

A single, tightly written sentence that front-loads the operation and appends the purpose. Nothing is wasted and no reader has to hunt for the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should ideally state the return shape explicitly (it only implies an ID via '<@id>') and cover the not-found/ambiguous cases. It is adequate for the happy path but leaves behavioral edge cases for the agent to discover.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (username, guildId with its DISCORD_GUILD_ID default) are already documented in the schema. The description adds only the mention-formatting context, not format or matching semantics beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (get a Discord user ID) plus the input basis (username or nickname) and the downstream use case (mention formatting). It is clear what the tool does, though it does not differentiate itself from siblings like search_members or get_user_info that could also resolve names to IDs.

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

Usage Guidelines3/5

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

The phrase 'for mention formatting (<@id>)' implies the intended context, but there is no explicit when-to-use vs. when-not, and no guidance on choosing this over search_members, list_members, or get_user_info, all of which could plausibly resolve a user.

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

get_user_infoB

Get profile information about a Discord user by ID (avatar, bot status, creation date)

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesDiscord User ID

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Get' strongly implies a read-only operation and the fields returned are listed, but the description does not disclose permissions, error behavior, or whether server membership is required.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action, required input, and returned information without any filler. Every part of the sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with a fully documented single parameter and no output schema, the description is nearly complete: it says what the tool does, what ID is needed, and what information comes back. It could be stronger by noting how it differs from member/bot lookups.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'userId' parameter, so the schema already documents the input fully. The description adds only 'by ID' and returned fields, which does not add meaningful parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Get'), resource ('profile information about a Discord user'), and key fields returned (avatar, bot status, creation date). It is clear what the tool does, but it does not distinguish itself from similar siblings such as get_member_info or get_bot_info.

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

Usage Guidelines2/5

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

It states the tool requires a user ID, which implies it is for ID-based lookups, but it gives no explicit when-to-use guidance, no conditions, and no alternatives. With many sibling tools available, an agent gets no routing help.

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

join_threadC

Have the bot join a thread to receive notifications and messages

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThread Channel ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the beneficial effect (notifications and messages) but says nothing about permission requirements, whether joining an archived thread works, or whether the call is idempotent if the bot is already a member.

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

Conciseness4/5

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

A single front-loaded sentence with no filler. It is efficient, though it stops short of the extra detail that would make it fully informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter membership action with no annotations and no output schema, the description covers the basic purpose and effect but omits prerequisites and edge cases (permissions, archived threads, already-joined behavior). Adequate but with clear gaps.

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

Parameters3/5

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

Schema coverage is 100% with threadId documented as 'Thread Channel ID', so the structured data already explains the single parameter. The description adds no syntax or format detail beyond that, which makes 3 the appropriate baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (join) and resource (thread) and adds the outcome (receives notifications and messages). It is clearly distinguishable from the obvious sibling leave_thread, though it does not explicitly name alternatives like create_thread or modify_thread.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no alternatives named. The agent must infer that this is for joining an existing thread the bot is not yet a member of.

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

kick_memberA

Kick a member from the server. They can rejoin if an invite is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesUser ID to kick
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the key trait that the kick is not permanent ('can rejoin if an invite is available'), but omits required permissions, audit-log implications, rate limits, and whether the action is logged or notified. This is useful but incomplete.

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

Conciseness5/5

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

Two short sentences with zero waste. The core action is front-loaded, and the key behavioral qualifier follows immediately. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a moderation action with no annotations and no output schema. The description covers the action and its reversibility, but does not mention permissions needed or other side effects, which an agent might need for correct invocation. Adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented in the input schema. The description adds no additional meaning about parameters, making the baseline score of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Kick a member from the server') and adds that the member can rejoin, which behaviorally distinguishes it from ban_member. It does not name any sibling tool explicitly, so a 4 is appropriate.

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

Usage Guidelines3/5

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

The description implies usage context by noting the member can rejoin, suggesting it is for reversible removal. However, it does not explicitly state when to use this tool versus ban_member, timeout_member, or prune_members, leaving alternatives to inference.

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

leave_threadB

Have the bot leave a thread

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYesThread Channel ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden and falls short. It does not disclose whether leaving is reversible, whether the bot can rejoin, what happens to the thread afterward, or what permissions are required for a mutation-style operation.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler or redundancy. Nothing is wasted and the action leads the sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with a fully described schema and no output schema, the description is close to sufficient. But it omits preconditions and post-conditions (bot membership requirement, effect on thread membership) that matter for a mutation tool with zero annotation coverage.

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

Parameters3/5

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

Schema description coverage is 100%, and the single parameter (threadId) is documented in the schema as 'Thread Channel ID'. The description adds no format, type, or sourcing guidance beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource combination ('leave a thread') with an explicit actor ('the bot'), so the action is unambiguous. It does not, however, differentiate itself from adjacent siblings such as join_thread, modify_thread, or create_thread, leaving the agent to infer the distinction from names alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g. the bot must currently be a member of the thread), and no named alternatives. Usage is only implied by the tool name, which is the minimum possible context.

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

list_active_threadsB

List all active threads across the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states the tool lists active threads server-wide, but omits authorization needs, pagination behavior, whether inactive or archived threads are excluded, and what the response contains.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler or redundancy. It is appropriately sized for a simple list endpoint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional schema-documented parameter, the description communicates basic scope adequately. However, with no annotations and no output schema, it leaves gaps around pagination, authorization, and the exact shape of returned thread data.

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

Parameters3/5

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

Schema coverage is 100%, so the optional guildId parameter and its DISCORD_GUILD_ID default are already fully documented in the schema. The description adds no parameter syntax or default behavior beyond the phrase 'across the server', so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List all active threads across the server.' It is distinguishable by name from thread mutation siblings such as create_thread, modify_thread, join_thread, and leave_thread, but it does not explicitly contrast itself with other list-oriented tools or forum post listing.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, prerequisites, or alternatives. It does not tell the agent when to choose this over create_thread, join_thread, leave_thread, or forum thread listing tools.

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

list_automod_rulesB

List all AutoModeration rules configured on the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the entire behavioral burden. It discloses nothing about permissions needed, pagination/result limits, ordering, or whether rules include disabled ones — only that rules are 'configured on the server'.

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

Conciseness5/5

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

One sentence, front-loaded with the verb and resource, containing no filler or redundancy. Nothing could be trimmed without losing the scope qualifier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list with one optional, fully documented parameter and no output schema, the description is minimally adequate. It leaves open whether all rules (including disabled) are returned and whether results are paginated, which an agent may need to know.

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

Parameters3/5

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

There is a single optional guildId parameter with 100% schema description coverage (including the DISCORD_GUILD_ID default), so the schema already does the work. The description adds no syntax or defaulting detail, which makes the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb+resource ('List all AutoModeration rules') and scopes it to the server, so an agent can distinguish it from the create/edit/delete automod siblings. It never names get_automod_rule explicitly, so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

Usage is implied: 'list all ... configured on the server' tells the agent this is the enumeration path, while get_automod_rule presumably fetches a single rule. However, no explicit when-to-use, prerequisites, or named alternative is provided.

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

list_bansC

List banned users from the server with ban reasons

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-100, default: 50)
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does reveal that ban reasons are returned, which is useful context, but it says nothing about pagination despite a limit parameter, permission requirements, or whether the call is read-only/safe. For a zero-annotation tool this is a meaningful gap.

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

Conciseness4/5

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

A single efficient sentence with the key noun and the notable return detail front-loaded; nothing is wasted, though it is terse enough to feel under-filled.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple query tool with no annotations and no output schema, the description covers the core purpose and return content. It omits pagination/limit behavior and permission prerequisites, which an agent arguably needs before invoking a 100-item-capped listing call.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (limit, guildId) are fully documented with defaults and ranges, so the baseline of 3 applies. The description adds no semantics beyond the schema, such as ordering of results or what limit counts against.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (banned users) and adds the returned payload (ban reasons), so it is immediately distinguishable from ban_member, unban_member and get_ban_info. It stops short of explicitly naming those siblings as alternatives, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

No when-to-use guidance, no statement of when to prefer this over get_ban_info (single ban lookup) or list_members. The agent must infer that this is the bulk-listing counterpart to get_ban_info.

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

list_channel_permissionsC

List all permission overwrites for a channel broken down by role and member

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesChannel ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioural burden and does little with it. It does not confirm the operation is read-only, say whether it needs elevated permissions, mention pagination, or explain what a 'permission overwrite' resolves to; only the output grouping is hinted at.

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

Conciseness4/5

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

A single economical sentence that front-loads the verb and resource. It earns its place, though the trailing 'broken down by role and member' phrasing is slightly awkward shorthand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description at least sketches the return structure, which is the most valuable thing it does. It still omits permissions, error behaviour, and pagination, leaving the definition only minimally viable.

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

Parameters3/5

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

There is a single parameter (channelId) already fully documented in the schema, so the baseline of 3 applies. The description adds nothing about the parameter's format or what happens if an invalid ID is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('List all permission overwrites for a channel') and adds a useful scope qualifier ('broken down by role and member'). It implicitly separates the tool from mutation siblings like upsert_role_channel_permissions and delete_channel_permission, though it never names them.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no explicit routing to or away from the neighbouring upsert_/delete_ permission tools. An agent must infer that this is the read counterpart to those writers purely from the verb 'List'.

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

list_channelsC

List all channels in a server with types and IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It hints at the return shape ('types and IDs') but omits whether categories/threads are included, whether the caller needs permissions, or whether results are paginated — meaningful gaps for an unpaginated-sounding list tool.

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

Conciseness4/5

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

A single tight sentence with the resource front-loaded. It earns its space, though the trailing 'with types and IDs' could be marginally more informative about the actual return shape.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with one optional parameter and no output schema, the description is minimally adequate. It conveys the return fields at a high level but leaves scope questions (categories, threads, permissions) unanswered.

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

Parameters3/5

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

Schema coverage is 100% and the single guildId parameter is fully documented in the schema, including its fallback to DISCORD_GUILD_ID. The description adds no parameter detail beyond 'in a server', so the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('List all channels in a server') and states the returned fields (types and IDs). It does not explicitly differentiate from close siblings like list_channels_in_category or find_channel, but the scope is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as list_channels_in_category for scoped listings or get_channel_info for a single channel. The agent must infer usage entirely.

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

list_channels_in_categoryC

List all channels grouped under a specific category

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesCategory ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'List' implies a read operation, but nothing is said about permissions required, ordering, pagination, or whether it includes sub-channels or only top-level ones.

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

Conciseness4/5

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

A single efficient sentence with no padding, and the scoping constraint (per category) is front-loaded. Adequately sized for a simple one-parameter list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no output schema this is minimally adequate, but behavioral gaps like ordering and pagination remain, and no sibling differentiation is offered in a dense tool namespace.

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

Parameters3/5

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

Schema description coverage is 100% and only one parameter (categoryId) exists, so the schema does the documenting. The description's phrase 'a specific category' reinforces the parameter's role but adds no syntax or format detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (list) and resource (channels) scoped to a category, which is clear. It does not distinguish itself from siblings like list_channels or find_channel, so an agent must infer the difference from names alone.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance. The description does not mention list_channels (all channels) or find_channel as alternatives, even though those siblings overlap heavily.

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

list_emojisC

List all custom emojis uploaded to the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only operation, whether results are paginated, whether the default guild scope applies when guildId is omitted, or what the returned shape is.

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

Conciseness4/5

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

One short, front-loaded sentence with no filler. It is efficient, though it stops short of earning a 5 because it carries almost no information beyond the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It does not disclose return content (names/IDs/URLs) or the read-only nature, but nothing critical to invoking it is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the single optional guildId parameter is already documented, including its DISCORD_GUILD_ID default. The description adds no syntax or scoping detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: list custom emojis uploaded to the server. It is clearly distinguishable from siblings like create_emoji/delete_emoji/get_emoji_details, but it does not explicitly contrast itself with get_emoji_details or list_stickers.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no reference to alternative tools. The agent must infer from the name alone that this is the bulk-enumeration counterpart to get_emoji_details.

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

list_forum_channelsC

List all forum channels in the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full disclosure burden. It does not state whether the result is paginated, whether the bot needs a specific permission/intent, how archived or unavailable forum channels are treated, or what the response shape is; 'all' implies completeness but is unverified.

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

Conciseness4/5

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

A single short sentence with no filler and the resource front-loaded. It is appropriately terse, though it is under-specified rather than elegantly minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional param and no output schema, the description is minimally adequate. Missing are return-content expectations (fields per channel), ordering, and any pruning/pagination behavior an agent would want before calling it.

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

Parameters3/5

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

Schema description coverage is 100%, so the sole parameter (guildId, with its DISCORD_GUILD_ID default) is fully documented in schema. The description adds no syntax or defaulting detail beyond the generic phrase 'in the server', so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('forum channels') with server scope. It does not distinguish itself from siblings like list_channels, find_channel, or get_forum_channel_info, so an agent must infer the difference from names alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as list_channels (all channel types) or get_forum_channel_info (single channel detail). The description only asserts what it does, not when to pick it.

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

list_forum_postsC

List active posts in a forum channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesForum channel ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. It hints at a filter ('active posts') but says nothing about pagination, how many posts are returned, whether archived/locked posts are excluded, or required permissions for a read operation.

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

Conciseness4/5

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

One short sentence with zero wasted words and the core purpose front-loaded. It is efficient, though its brevity comes at the cost of the guidance and behavior detail noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool with no output schema, the description is minimally adequate. It omits pagination/result-shape information an agent would want when listing a potentially long collection, leaving a clear gap.

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

Parameters3/5

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

There is a single parameter with 100% schema description coverage, so the schema already documents channelId. The phrase 'in a forum channel' loosely reinforces that channelId must reference a forum channel, but adds no format or constraint detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), resource ('posts'), and scope ('active posts in a forum channel'), which is clear. It does not, however, distinguish itself from close siblings like list_active_threads or get_forum_channel_info, so an agent gets no explicit contrast.

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

Usage Guidelines2/5

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

No when-to-use guidance is given. The description never says when to prefer this over list_active_threads, list_forum_tags, or get_forum_channel_info, nor does it mention prerequisites such as needing the channel ID of a forum-type channel.

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

list_forum_tagsA

List all tags configured on a forum channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesForum channel ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only listing, but does not disclose permissions, pagination, return format, or any side-effect or auth requirements.

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

Conciseness5/5

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

A single, front-loaded sentence with no wasted words. It states the action and scope immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with no output schema and no annotations, the description is minimally adequate for selection. However, it omits behavioral details such as pagination or return shape that would help an agent invoke and interpret it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, and the single channelId parameter is fully documented in the schema. The description adds only the implicit context that tags belong to a forum channel, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List'), resource ('tags'), and scope ('configured on a forum channel'). This clearly distinguishes it from siblings like list_forum_channels and list_forum_posts without needing to name them.

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

Usage Guidelines3/5

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

The purpose implies when to use it, but there is no explicit when/when-not guidance or alternative named. For a simple listing tool, the implied context is adequate but not enriched.

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

list_invitesC

List all active invites for the server with statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and does not meet it. It never mentions that Discord typically requires MANAGE_GUILD to view invite lists, says nothing about pagination or ordering, and the phrase 'with statistics' vaguely gestures at return content without defining it.

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

Conciseness4/5

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

A single compact sentence with the resource and scope front-loaded. The trailing 'with statistics' is imprecise filler rather than earning its place, keeping it just below a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with full schema coverage and no output schema, the description is minimally adequate. However, it omits the permission context and leaves 'statistics' undefined, which matters for a tool whose whole value proposition is what it returns.

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

Parameters3/5

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

Schema description coverage is 100%, and the single guildId parameter is fully documented in the schema including its DISCORD_GUILD_ID default. The description adds nothing beyond that, so the baseline of 3 for high-coverage schemas is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('active invites for the server'), making it clearly distinct from the write-oriented siblings create_invite, delete_invite, and get_invite_details. It stops short of naming those siblings explicitly, so sibling differentiation is implied rather than stated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this versus get_invite_details or list_servers, no prerequisites, and no stated exclusions. The agent must infer that this is the bulk-listing counterpart to the single-invite lookup.

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

list_membersC

List members of the server with roles and join dates

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax members to fetch (1-100, default: 50)
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It reveals the return content but says nothing about pagination beyond the limit param, rate limits, or the privileged-intent/auth requirements typical of member listing. This is a significant gap for a tool with zero annotation coverage.

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

Conciseness4/5

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

A single front-loaded sentence with no waste. It is appropriately sized for the operation and leads with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read/list tool with a fully documented schema and no output schema, the description covers the essentials. But with no annotations and no sibling differentiation, it leaves gaps around pagination behavior and the distinction from search_members.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (limit, guildId) are already fully documented in the schema, and the description adds no further parameter meaning. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), resource (members of the server), and the returned fields (roles and join dates), so the purpose is clear. However, it does not distinguish itself from the close sibling search_members, which an agent would also consider for member lookup.

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

Usage Guidelines2/5

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

No when-to-use guidance, no conditions, and no mention of the obvious alternative search_members. The agent is left to infer the difference between listing vs. searching members entirely on its own.

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

list_pinned_messagesB

List all pinned messages in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYesDiscord channel ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: no read-only confirmation, no pagination/limit behavior, no permission requirements (e.g. View Channel), and no ordering (pinned order vs chronological). 'List' weakly implies a safe read but that is inference, not disclosure.

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

Conciseness5/5

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

One front-loaded sentence with zero filler; the scope constraint (in a channel) is stated immediately. It is appropriately sized for a single-parameter list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read tool with full schema coverage and no output schema, the description is minimally sufficient to call the tool. However, 'List all' leaves pagination and result shape unaddressed, and no annotations compensate for that gap.

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

Parameters3/5

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

Schema description coverage is 100% with a single 'channelId' parameter already documented as 'Discord channel ID', so the schema does the heavy lifting. The description adds no format, ID-source, or validation detail beyond it, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (pinned messages) scoped to a channel, so an agent knows exactly what it retrieves. It does not distinguish itself from nearby siblings such as read_messages or pin_message/unpin_message, which keeps it short of a 5.

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

Usage Guidelines2/5

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

The description only restates what the tool returns; it never says when to prefer it over read_messages or how it relates to pin_message/unpin_message. No prerequisites, no exclusions, no alternative routing.

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

list_rolesB

List all roles in a server with ID, color, position, and permission summaries

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. 'List all roles' implies a safe read and it discloses the fields returned, but it says nothing about permissions required, pagination, or rate limits for a server that may hold many roles.

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

Conciseness5/5

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

A single front-loaded sentence that conveys the operation and its output fields with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no output schema, naming the returned fields (ID, color, position, permission summaries) meaningfully compensates for the absent return schema. Only minor gaps remain, such as ordering and whether results are paginated.

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

Parameters3/5

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

Schema description coverage is 100%, so the single guildId parameter (with its DISCORD_GUILD_ID default) is fully documented in the schema. The description adds nothing beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (roles) and even enumerates the returned properties (ID, color, position, permission summaries). It is clearly distinguishable in intent from the singular get_role_info, though it never names that sibling explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not guidance. It does not tell the agent when to prefer this over get_role_info (single role) or how it relates to create_role/edit_role/delete_role, leaving the routing decision to inference.

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

list_scheduled_eventsC

List all scheduled and active events on the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full behavioral burden, and it does little beyond imply a read. It does not state that the call is non-mutating or read-only, does not mention pagination or result limits, does not describe required bot permissions or intents for viewing scheduled events, and does not say what happens if no events exist. 'Scheduled and active' is the one real scope detail, which is not enough for a tool with zero annotation coverage.

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

Conciseness4/5

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

One short sentence with the scope front-loaded and no wasted words. It is appropriately sized, though the phrase 'scheduled and active' could be tightened and carries mild ambiguity about whether other event states exist.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with a fully documented single parameter and no output schema, the description covers the minimum. It still leaves the agent guessing about returned fields, ordering, pagination behavior, and permissions, which matters given there is no output schema to fall back on.

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

Parameters3/5

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

The single parameter (guildId) has 100% schema description coverage including the DISCORD_GUILD_ID default, and the description adds nothing about it. Per the calibration rule, a fully documented schema sets the baseline at 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List') and resource ('scheduled and active events on the server'), so the core purpose is unambiguous. It does not, however, distinguish itself from the sibling tools create_scheduled_event, edit_scheduled_event, delete_scheduled_event, or get_scheduled_event_users, so an agent gets no help telling this read tool apart from its near neighbors.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusion of alternatives, and no pointer to get_scheduled_event_users for attendee details. An agent must infer usage entirely from the verb 'List'.

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

list_serversA

List all Discord servers that the current account is in, including server ID, name, member count, and owner status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It clearly frames this as a read operation and discloses the returned fields (ID, name, member count, owner status), which is useful context. It does not mention pagination behavior, server-count limits, or any auth/permission requirements, leaving meaningful gaps for an unannotated tool.

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

Conciseness5/5

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

A single sentence with zero waste; the scope and returned fields are front-loaded, so the agent gets the key facts immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so naming the returned fields (server ID, name, member count, owner status) is genuinely valuable and largely covers what the agent needs. Only pagination/scope limits are left unaddressed, which is a minor gap for a simple list tool.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. There is nothing parameter-related for the description to clarify, and it does not confuse the picture.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ('List') with a precise resource ('all Discord servers that the current account is in') and even enumerates the returned fields. It is clearly distinguishable from siblings like get_server_info (single server) or list_channels (channels within a server).

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

Usage Guidelines3/5

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

Usage is implied: an agent would call this to discover which servers the account belongs to. However, no explicit when-to-use guidance or alternative (e.g., get_server_info for a single server) is stated, and no prerequisites are named.

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

list_stickersB

List all custom stickers available on the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It implies a read-only enumeration and scopes results to the server, but says nothing about pagination, permissions, whether global/Nitro stickers are included, or rate limits. Minimal behavioral disclosure for a list tool.

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

Conciseness5/5

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

A single, front-loaded sentence with zero wasted words. The scope qualifier is placed where it matters and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list tool with no output schema, the description is adequate but thin. It omits return characteristics (pagination, sticker fields) and whether the listing spans global stickers, leaving meaningful gaps an agent would want covered.

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

Parameters3/5

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

Schema description coverage is 100%, so guildId and its default to DISCORD_GUILD_ID are already documented in the schema. The description adds no additional parameter meaning, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (custom stickers) with scope (available on the server), which is clear enough to act on. However, it does not distinguish this from siblings like get_sticker_details or list_emojis, so the agent gets no help differentiating.

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

Usage Guidelines2/5

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

No when-to-use guidance and no alternatives named. The agent is not told when to reach for list_stickers versus get_sticker_details, nor any prerequisite or context for the listing operation.

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

list_webhooksA

List all webhooks configured on a specific channel or across a whole server

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdNoServer ID to list all webhooks for (defaults to DISCORD_GUILD_ID)
channelIdNoChannel ID to list webhooks for

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full behavioral burden. It conveys the read-only scoping behavior (channel-scoped vs server-wide), which is useful, but omits pagination, return shape, and permission requirements for a tool with zero annotation coverage.

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

Conciseness5/5

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

A single well-formed sentence with the scope distinction front-loaded and zero filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter list tool with no output schema, the description is sufficient to call it correctly. Minor gap: it doesn't hint at the guildId default or what a webhook entry contains, but nothing essential is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both guildId (with its default) and channelId. The description only echoes the two scoping modes and adds no syntax or defaulting details beyond the schema, matching the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('List all webhooks') plus scope ('on a specific channel or across a whole server'), so the agent knows exactly what it returns. It does not explicitly name the sibling tools (create_webhook/delete_webhook/send_webhook_message) to differentiate, so it stops short of a 5.

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

Usage Guidelines3/5

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

The phrase 'on a specific channel or across a whole server' implies when you'd pick each mode, but there is no explicit when-to-use, when-not-to-use, or alternative guidance relative to the other webhook tools. Usage is implied rather than stated.

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

modify_forum_postC

Modify forum post properties (lock, archive, pin, tags)

ParametersJSON Schema
NameRequiredDescriptionDefault
lockedNoLock post
pinnedNoPin post to top of forum
postIdYesForum post thread ID
reasonNoAudit log reason
archivedNoArchive post
tagIdsCsvNoComma-separated tag IDs (empty string to clear)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full behavioral disclosure, but it does not mention permissions, side effects, reversibility, or the audit-log reason parameter. It identifies the operation as a modification, but provides no deeper behavioral context beyond the property names.

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

Conciseness5/5

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

The definition is a single front-loaded sentence with no filler. Every word contributes to explaining the tool’s action and the property categories it affects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits required parameters, audit-log context, permission requirements, and the distinction between clearing tags and omitting them, leaving important invocation details to the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter, including required postId and the tag-clearing behavior. The description names the main property groups (lock, archive, pin, tags) but adds no syntax or format details beyond what the schema provides. A baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: modify forum post properties. It enumerates the modifiable properties (lock, archive, pin, tags), which distinguishes it from create_forum_post and list_forum_posts. It does not explicitly differentiate from similarly named siblings such as modify_thread or pin_message, so it falls short of a 5.

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

Usage Guidelines2/5

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

The description states only what the tool does, with no guidance on when to use it versus alternatives. There is no mention of prerequisites, when not to use it, or which sibling to prefer for related operations.

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

modify_server_settingsC

Edit server settings including name, description, AFK channel/timeout, system channel, rules channel, and verification level

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew server name
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
afkTimeoutNoAFK timeout in seconds: 60, 300, 900, 1800, 3600
descriptionNoNew server description (for discoverable servers)
afkChannelIdNoAFK voice channel ID (empty string to unset)
rulesChannelIdNoRules channel ID
systemChannelIdNoSystem messages channel ID
verificationLevelNoServer verification level

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden but only restates the field list. It does not disclose the required permissions, whether the change is auditable (despite an audit-log reason param existing), whether omitted fields are left untouched, or whether values like verification level are reversible.

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

Conciseness4/5

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

A single front-loaded sentence that names the fields inline with no filler. The field enumeration is slightly redundant against the schema, which keeps it from being maximally efficient, but it is well-sized and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no annotations and no output schema, the description is too thin. It omits permissions, reversibility, partial-update semantics, and the meaning of the audit-log reason, all of which an agent needs before mutating server-wide settings.

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

Parameters3/5

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

Schema description coverage is 100% and the schema is actually richer than the description (afkTimeout enum values, empty-string-to-unset for afkChannelId, DISCORD_GUILD_ID default). The description adds no meaning beyond what the schema already documents, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Edit) and resource (server settings) and enumerates the exact mutable fields, so an agent knows precisely what this touches. It does not explicitly differentiate itself from the nearby sibling modify_server_widget, but the enumerated settings make the scope unambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this versus other modify/edit tools, no prerequisites (e.g. Manage Server permission), and no note on partial vs full updates. The agent is left to infer usage entirely.

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

modify_server_widgetC

Enable, disable, or configure the server widget channel

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesWhether the widget is enabled
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
channelIdNoChannel ID for widget invite

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and it falls short. It never states the required Discord permission (Manage Server), what disabling actually does to the widget/invite, or whether the call is idempotent.

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

Conciseness4/5

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

A single front-loaded sentence carrying the action set with zero padding. It is a sentence fragment with no trailing period and no elaboration, which is efficient but leaves no room for the context the tool needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a mutation of server-level config, the description should explain permissions, effects of disabling, and the relationship to get_server_widget. None of that is present, so an agent is under-equipped for a state-changing call.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema. The description's phrase 'server widget channel' loosely echoes channelId but adds no format, default, or precedence detail beyond what the schema says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb set (enable/disable/configure) against a specific resource (server widget channel), which is clearly distinct from the sibling get_server_widget. It stops short of naming that read sibling, so an agent must infer the pairing.

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

Usage Guidelines2/5

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

No when-to-use conditions, prerequisites, or exclusions are given. The presence of get_server_widget as a sibling makes the missing alternative guidance a real gap — nothing tells the agent to read first and write second.

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

modify_threadC

Update thread properties (archive/unarchive, lock/unlock, rename, slowmode)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew thread name
lockedNoLock thread (only moderators can speak)
reasonNoAudit log reason
archivedNoArchive (close) or unarchive thread
slowmodeNoSlowmode delay in seconds
threadIdYesThread Channel ID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral disclosure burden. It lists mutable properties but omits permission requirements, reversibility, audit-log implications, and whether the operations can be combined in a single call.

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

Conciseness5/5

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

The definition is a single front-loaded sentence with a compact parenthetical list of operations. There is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-property mutation tool with no annotations and no output schema, the description identifies the updateable fields but leaves prerequisites, side effects, and usage context undocumented. It is insufficiently complete for an agent to safely choose and invoke it without additional inference.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented in the schema. The description maps its examples to name, archived, locked, and slowmode, but adds no syntax or constraint beyond what the schema provides, and it does not mention threadId or reason.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Update thread properties') and enumerates the mutable properties via parenthetical examples. It is clear what the tool does, but it does not explicitly differentiate itself from sibling tools such as edit_channel, modify_forum_post, or create_thread.

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

Usage Guidelines2/5

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

The description states what can be updated but gives no when-to-use guidance, no prerequisites, and no exclusions. It never mentions alternatives like create_thread, join_thread, leave_thread, or edit_channel.

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

modify_voice_stateC

Server mute or deafen a member in voice channels across the server

ParametersJSON Schema
NameRequiredDescriptionDefault
muteNoServer mute microphone
deafenNoServer deafen audio
reasonNoAudit log reason
userIdYesTarget User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It doesn't state whether the action is reversible (unmute/undeafen path), what happens if both mute and deafen are set, or what permissions are required, leaving significant gaps.

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

Conciseness4/5

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

A single efficient sentence with the action and scope front-loaded and no wasted words. It is terse to the point of omitting useful behavior, but structurally sound.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is too thin. It omits reversibility, permission needs, and interaction between the mute/deafen flags, which an agent needs to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented in the schema, and the description adds no syntactic or semantic detail beyond it. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (server mute or deafen) and resource (a member in voice channels), which is clear and actionable. It does not explicitly distinguish itself from nearby siblings like move_voice_member or disconnect_voice_member, so it lands just short of the top score.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no conditions for choosing mute vs deafen, and no mention of alternatives such as move_voice_member or disconnect_voice_member. An agent must infer the context entirely.

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

move_channelC

Move a channel to another category and/or change its position index

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
positionNoTarget position index
channelIdYesChannel ID to move
categoryIdNoTarget category ID (empty string to unparent)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but says nothing about permission requirements, whether the move reorders other channels, or what happens when only one of categoryId/position is supplied. The 'and/or' phrasing hints at partial updates but leaves semantics implicit.

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

Conciseness4/5

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

A single tight sentence with the operative verb front-loaded and no wasted words. It is sized reasonably for a simple move operation, though it could absorb one clause of usage guidance without bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with zero annotations, no output schema, and multiple optional parameters, the description omits permissions, partial-update behavior, and side effects on sibling channels' positions. It is under-described relative to the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters including the empty-string-to-unparent convention. The description's 'and/or' adds only marginal meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Move) and resource (channel) plus the two effects it can have: category reassignment and position change. This distinguishes it from the adjacent edit_channel/edit_category tools, though it does not name them explicitly.

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

Usage Guidelines2/5

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

The description says what it does but never when to use it versus edit_channel, nor any prerequisite such as requiring Manage Channels permission. No exclusions or alternative routing are given.

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

move_voice_memberB

Move a member to another voice or stage channel (they must currently be connected to voice)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesTarget User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
channelIdYesTarget voice/stage channel ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states the prerequisite of current voice connection, but says nothing about permissions required, what happens to the member's audio/session during the move, or whether the action is logged. For a mutation tool with zero annotation coverage this is a substantial gap.

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

Conciseness5/5

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

A single, front-loaded sentence with the core action first and the prerequisite in parentheses. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the action and the key precondition but omits permission requirements, audit behavior, and failure modes. Adequate as a minimum viable definition but leaves important operational context unstated.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (userId, channelId, guildId default, reason) are already documented in the schema. The description adds no parameter-level details beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Move a member to another voice or stage channel') clearly. It does not explicitly differentiate itself from sibling tools like modify_voice_state or disconnect_voice_member, so it's clear but lacks the sibling-differentiation needed for a 5.

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

Usage Guidelines3/5

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

The prerequisite 'they must currently be connected to voice' implies when the tool applies, but there are no explicit exclusions or pointers to alternative tools (e.g., modify_voice_state for other state changes). Usage is implied rather than spelled out.

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

pin_messageC

Pin a message to the top of a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
channelIdYesDiscord channel ID
messageIdYesMessage ID to pin

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not disclose permission requirements, rate limits, side effects, what happens if the message is already pinned, or what the return value contains. For a mutation tool 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.

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. It is appropriately concise, though it is under-informative for a mutation tool with no annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and a mutation action, the description should provide more behavioral and usage context to be complete. It conveys the core action but omits permissions, edge cases, response behavior, and alternatives.

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

Parameters3/5

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

The input schema has 100% parameter description coverage, documenting channelId, messageId, and the optional reason for audit logs. The description does not add any parameter meaning beyond the schema. When schema coverage is high, a 3 is the appropriate baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Pin a message to the top of a channel.' This clearly identifies the action and object. It does not explicitly distinguish itself from siblings such as unpin_message or list_pinned_messages, so it stops short of a 5.

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

Usage Guidelines2/5

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. It does not mention unpin_message, list_pinned_messages, or conditions such as message already pinned, channel type, or required permissions. Usage is only implied by the word 'Pin.'

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

prune_membersC

Prune inactive members from the server who have no roles

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of inactivity (1-30, default: 7)
reasonNoAudit log reason
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only implies a bulk destructive operation. It does not disclose permissions required, whether the operation is reversible, what happens to pruned members, or rate limits. The mention of 'no roles' hints at a safety pre-check 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words. It is appropriately sized for the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a destructive bulk operation with no annotations or output schema and only a terse description, critical behavioral context is missing. An agent cannot determine required permissions, reversibility, or expected outcomes.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters are documented in the schema. The description adds no further meaning beyond implying a days threshold, which is already defined in the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb (prune) and resource (members) with a filter scope (inactive, no roles), which distinguishes it from siblings like kick_member or ban_member. However, it does not explicitly differentiate from get_prune_count, its closest sibling.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as get_prune_count or individual kicks. No prerequisites, exclusions, or context for appropriate usage are given.

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

read_direct_messagesC

Read direct message conversation history with a user

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoFetch messages after this message ID
countNoNumber of messages to retrieve (1-100, default: 50)
aroundNoFetch messages around this message ID
beforeNoFetch messages before this message ID
userIdYesDiscord User ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and discloses almost nothing: no ordering, pagination, or result-limit behavior despite five pagination parameters, and no note that the bot needs DM access/permission to the user. This is a significant gap for a multi-parameter read tool with zero annotation coverage.

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

Conciseness4/5

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

A single efficient sentence that is front-loaded with the core purpose and contains no filler. It is appropriately sized, though perhaps too sparse for a tool with this many parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and no output schema, one sentence leaves out permissions requirements, result ordering, and pagination semantics needed to invoke it correctly. The description is not complete enough given the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so all five parameters (userId, after, around, before, count) are already documented in the schema. The description adds no additional meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Read) and resource (direct message conversation history) and scopes it to a single user. It is clear and distinct from read_messages (channel-based), though it never explicitly names that sibling as the alternative.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as read_messages for channels or search tools. The agent must infer usage purely from the name and one sentence.

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

read_messagesB

Read message history from a channel with pagination support (before, after, around)

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoGet messages after this message ID
countNoNumber of messages to retrieve (1-100, default: 50)
aroundNoGet messages around this message ID
beforeNoGet messages before this message ID
channelIdYesDiscord channel ID

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral load. It discloses read-only behavior implicitly ("Read") and the pagination model, but says nothing about required permissions (Discord needs Read Message History), rate limits, default result size, or what the returned messages look like.

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

Conciseness4/5

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

A single sentence with no waste, and the pagination capability is front-loaded alongside the core purpose. Slightly terse given the tool's complexity, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter read tool with no annotations and no output schema, the description is minimal: it omits permission requirements and any sense of return shape. It is adequate to identify the tool but leaves gaps an agent would need filled.

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

Parameters3/5

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

Schema description coverage is 100%, so before/after/around/count/channelId are already fully documented in the schema. The description's parenthetical merely names three parameters without adding syntax, mutual-exclusivity rules, or precedence guidance. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Read message history from a channel") and scopes it to channels, which distinguishes it from read_direct_messages. It does not, however, explicitly differentiate itself from list_pinned_messages or any search-style sibling.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance and never names an alternative, despite siblings like read_direct_messages, list_pinned_messages, and get_message_attachments that an agent might confuse it with. Pagination guidance is present but that is parameter semantics, not usage routing.

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

remove_reactionC

Remove an emoji reaction from a message

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesEmoji character or custom emoji name/ID
channelIdYesDiscord channel ID
messageIdYesDiscord message ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It does not disclose whose reaction is removed (the bot's own reaction vs. one belonging to another user), whether the call is idempotent, whether it requires permissions, or what happens if the reaction does not exist — all critical 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.

Conciseness4/5

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

A single short sentence that is front-loaded with the action and resource; there is no wasted text. It is arguably too terse for a mutation tool, but structurally it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation tool with no annotations and no output schema, the description omits key context — notably whose reaction is targeted and how it differs from clear_reactions. The schema documents the parameters, but behavioral completeness is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, so channelId, messageId, and emoji are already documented in the schema, including the emoji format. The description adds no meaning beyond that, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Remove) and resource (an emoji reaction from a message), which is unambiguous. It does not distinguish itself from the closely related siblings add_reaction and clear_reactions, but the core purpose is clear.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus alternatives such as clear_reactions (which likely removes all reactions) or when the operation is appropriate. No preconditions or context are given, leaving the agent to infer usage.

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

remove_roleC

Remove a role from a user in the server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
roleIdYesRole ID to remove
userIdYesTarget User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it says nothing about the required permissions (typically Manage Roles), whether the action is reversible, or what happens on failure. 'Remove' implies mutation but no behavioral detail is disclosed.

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

Conciseness4/5

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

A single short sentence that is front-loaded with the verb and object, with no filler or repetition. It is efficient, though almost too terse to be maximally useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no annotations and no output schema, the description omits permission requirements, failure modes, and audit implications. The one-liner is insufficient context for an agent to call this safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all four parameters (userId, roleId, reason, guildId) are documented in the schema itself, so the baseline of 3 applies. The description adds no extra parameter meaning beyond what the schema already supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Remove) and resource (a role from a user in the server), which is enough to separate it from assign_role, delete_role, and edit_role in the sibling list. It stops short of explicitly naming those siblings or the scope limits (e.g., single user, single role).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus assign_role or delete_role, no prerequisites, and no conditions under which it should not be called. The agent must infer the use case entirely from the name and one-line description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_timeoutC

Remove an active timeout from a member

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesMember User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not state the required permission (e.g. Moderate Members), whether the action is audit-logged, what happens if the member has no active timeout, or whether the change is reversible — only that a timeout is removed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with no filler and the purpose front-loaded. It is efficient but so terse that it borders on under-specification rather than true conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter mutation tool with no annotations and no output schema, the schema covers the inputs well, but the description omits permission requirements, error/edge-case behavior (no active timeout), and confirmation of the effect, leaving meaningful gaps an agent would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with reason, userId, and guildId each documented, including the DISCORD_GUILD_ID default. The description adds nothing beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Remove an active timeout from a member') and is unambiguous on its own. It does not, however, name the inverse sibling 'timeout_member', so an agent must infer the pairing from naming alone rather than being told.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives or prerequisites. The only implicit signal is 'active timeout', which hints this is the inverse of timeout_member, but the reader must construct that relationship unaided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_discord_mentionsB

Automatically converts plain-text channel names (#general), role names (@Moderator), and usernames (@alice) in a message to valid clickable Discord mention syntax (<#id>, <@&id>, <@id>)

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMessage text containing plain-text mentions (e.g. "Check #rules-and-guidelines and ask @Moderator")
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the transformation semantics (name -> id-encoded mention) and implies a guild context is needed, but says nothing about unresolved names, permission requirements, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with inline examples that earn their place. No filler, though the parenthetical syntax mappings make it slightly dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter utility tool it covers the core contract, but it omits failure handling for unresolvable names and gives no signal distinguishing it from the near-identical format_discord_mention sibling, leaving a real selection gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, including guildId's env-var default. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (converts) and resource (plain-text mentions to clickable syntax) with concrete input/output examples (#general -> <#id>). However, it does not distinguish itself from the sibling format_discord_mention, which appears to serve a highly overlapping purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use context, no prerequisites, and never names an alternative. With siblings like format_discord_mention, get_discord_symbols, and get_discord_syntax_guide in the list, the agent gets no help choosing among them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_discord_symbolsB

Search for Discord symbols, aesthetic combos, and dividers locally and dynamically from online aesthetic symbol databases (emojicombos/emojidb)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword (e.g. "star", "divider", "cute", "cyber", "gaming", "line", "aesthetic")
fetchOnlineNoFetch live dynamic symbols from online database (default: true)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose a meaningful trait — that results come from a local cache plus live online sources (emojicombos/emojidb) — but says nothing about network failure, latency, rate limits, or whether online fetching can be slow/unavailable. Nothing is contradictory, just incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Every clause (symbols/aesthetic combos/dividers, local + online sources, named databases) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter search tool with full schema coverage this is nearly adequate, but with no output schema and no annotations it would benefit from describing what results look like and how it relates to get_discord_symbols. The overlap with that sibling is left unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the 'query' keyword and the 'fetchOnline' default are already fully documented in the schema. The description only adds the names of the source databases, which is marginal beyond the structured fields; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (Discord symbols, aesthetic combos, dividers), and names the source databases (emojicombos/emojidb). However, it never differentiates itself from the sibling get_discord_symbols, which an agent could easily confuse with a search tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no mention of when to prefer this over get_discord_symbols or vice versa. The only hint is the phrase 'locally and dynamically from online' databases, which is not framed as actionable routing advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_membersB

Search for members in a server by username or nickname prefix

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (1-100, default: 20)
queryYesQuery string to match names against
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It says nothing about result ordering, case sensitivity, whether nickname and username are both matched or OR'd, pagination behavior, or what happens when no prefix matches (empty result vs error).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with a clear verb-resource-scope structure and no wasted words. Nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and no behavior described beyond the matching rule. For a search tool among ~90 siblings, the agent needs to know ordering, case handling, and how it differs from list_members, none of which is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has its own description; the description adds nothing beyond what the schema says. Baseline 3 is appropriate when the schema does all parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (members) and constrains matching to username or nickname prefix. It does not reference the close sibling list_members, so the agent cannot tell from the description alone why search is preferred in a given situation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage (need prefix search rather than full listing), but no explicit when-to-use rule and no mention of list_members as the alternative. The agent must infer the choice from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_direct_messageC

Send a direct private message (DM) to a specific Discord user

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesTarget Discord User ID
messageYesDirect message text to send

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and discloses almost nothing. It does not mention that the send is irreversible (deletion requires a separate tool), that the recipient must have DMs open or share a server, or that rate limits/permission errors are likely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler and no redundancy. It is exactly as long as the information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with no annotations and no output schema, the definition is thin: no return/confirmation behavior, no failure conditions, and no routing against the closely related DM and message tools. An agent can call it correctly but cannot anticipate what happens on success or failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both required parameters (userId, message) are documented in the schema itself. The description adds no format, length, or content guidance beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Send a direct private message') and scopes it to 'a specific Discord user', which implicitly separates it from the channel-oriented send_message. It stops short of explicitly naming that sibling or the read/edit DM siblings, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given: nothing tells the agent to prefer this over send_message for channel posts, or over edit_direct_message / delete_direct_message for follow-up actions. The purpose implies the context, but no alternative or precondition is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_messageA

Send a message to a specific Discord channel with optional reply threading and automatic mention resolution

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage content (up to 2000 characters)
channelIdYesDiscord channel ID
resolveMentionsNoAutomatically convert #channel-name and @RoleName into clickable Discord mention pills
replyToMessageIdNoMessage ID to reply to

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It mentions reply threading and mention resolution, but omits permissions, rate limits, error behavior, and mutation side effects for sending a message.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that names the action, target, and optional features with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the main action and optional features for a simple send tool with fully documented parameters. However, without annotations or an output schema, operational details such as required bot permissions and failure behavior are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all four parameters are already documented in the schema. The description adds no syntax or format details beyond mentioning optional reply threading and automatic mention resolution.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Send), resource (message), and target (specific Discord channel), plus optional features. The phrase 'specific Discord channel' distinguishes it from send_direct_message and send_webhook_message without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance, and no alternatives such as edit_message or send_direct_message are named. The usage context is only implied by the tool name and channel target.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_webhook_messageC

Send a message via webhook URL with custom display name and avatar

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text to post
usernameNoOverride username for this message
avatarUrlNoOverride avatar URL for this message
webhookUrlYesDiscord Webhook URL

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not state that the webhook must already exist, whether the message is irreversible, rate-limit or error behavior, or what identity the message appears under when username/avatarUrl are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, naming the operation and its distinguishing capabilities. It is appropriately sized for a simple action tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation, no-output-schema tool with fully documented parameters, the description covers the core action but omits usage routing against siblings and any behavioral caveats. It is minimally adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters including the Discord webhook URL and the override fields. The description restates the override behavior at a high level but adds no format, validation, or default-value detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource combination (send a message) and the mechanism (via webhook URL with custom display name and avatar). It is clearly distinct from send_message and send_direct_message in mechanism, though it never names those siblings to make the distinction explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance beyond the mechanism itself. With siblings like send_message, send_direct_message, and create_webhook, an agent gets no help deciding when a webhook post is preferred over a normal channel message.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_member_nicknameB

Change a member nickname in the server (empty string resets to original username)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesMember User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
nicknameNoNew nickname (leave empty or null to reset)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose the useful reset semantic (empty string restores the original username), but it omits permission requirements, whether the bot can rename members other than itself, rate limits, and reversibility of the change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the core action and parenthetically states the important edge case. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the key edge case but leaves behavioral gaps (permissions, error conditions, audit-log implications of the reason param) that an agent would want before calling it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema. The description's only additive point is the reset behavior, which the schema's nickname description also covers, so it does not add meaning beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ("Change a member nickname") scoped to the server, which is unambiguous. It does not distinguish itself from any sibling, though no sibling directly competes for nickname modification, so this is a minor omission.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the reset edge case but gives no guidance on when to use this tool versus alternatives or any preconditions. There is no explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

setup_community_serverB

Create or configure a fully structured, aesthetic Discord server complete with categories, channels, roles, and permissions in one automated, human-paced workflow (protects against rate limits and warning flags)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName of the server (e.g. "✦ Quantum Nexus ✦")
guildIdNoExisting server ID to configure (recommended if server creation is temporarily limited by Discord)
descriptionNoServer description (optional)

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It usefully discloses pacing behavior ('human-paced workflow... protects against rate limits and warning flags'), which the agent cannot infer elsewhere. However, it omits permissions/privilege requirements, what happens on partial failure, and whether existing resources are overwritten when configuring via guildId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the operation stated first and the rate-limit caveat as a trailing parenthetical. Efficient, though the parenthetical is slightly tangential to selection and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex multi-resource macro tool with no output schema and no annotations, the description gives a decent scope picture but leaves return values, idempotency, and failure semantics unaddressed. Adequate but with clear gaps for a tool this broad.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents name, guildId, and description, and the baseline is 3. The description adds no syntax or format detail beyond the enum of artifacts it creates, so it does not exceed the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific compound verb+resource (create/configure a fully structured Discord server) and enumerates the artifacts it produces (categories, channels, roles, permissions). This clearly signals a one-shot macro operation distinct from granular siblings like create_server or create_text_channel, though it doesn't name those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not guidance. The agent cannot tell from the text whether to reach for this versus create_server followed by create_category/create_text_channel/create_role, nor when the guildId path applies. The phrase 'in one automated workflow' implies bulk setup but stops short of routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

timeout_memberB

Place a member in timeout (mute/communication disabled) for up to 28 days (2419200 seconds)

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesMember User ID
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)
durationSecondsYesDuration in seconds (1 to 2419200 = 28 days)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the meaningful effect (mute/communication disabled) and the 28-day ceiling. It omits permission requirements, what happens to an existing timeout, and reversibility (remove_timeout exists but is not mentioned).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the action and the key constraint, with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description covers the effect and duration cap but leaves permission prerequisites, conflict with existing timeouts, and the inverse remove_timeout operation unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented, including the 1–2419200 bounds on durationSeconds. The description's restatement of the 28-day limit adds no information beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Place in timeout') and resource ('member'), plus clarifies the effect as mute/communication disabled. It does not explicitly contrast itself with the sibling remove_timeout, so an agent must infer the inverse relationship from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance, no prerequisites such as required permissions or whether the target must be a non-admin. The agent only gets the implied intent from the tool name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unban_memberC

Remove a ban from a user, allowing them to rejoin

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesUser ID to unban
guildIdNoDiscord server ID (defaults to DISCORD_GUILD_ID)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says nothing about required permissions (e.g. Ban Members), what happens if the user is not currently banned, error behavior, or the audit-log side effect implied by the 'reason' parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the action and free of filler. It is appropriately sized for the tool, though its brevity is part of why behavior details are missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A state-mutating moderation tool with no annotations, no output schema, and no documented permission or error semantics. For an unban operation the agent needs to know the permission requirements and preconditions, and none are given.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters (userId, reason, guildId) are documented in the schema. The description adds no parameter meaning beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Remove a ban from a user') with the resulting effect ('allowing them to rejoin'). Clear enough to distinguish from ban_member, kick_member, and list_bans, though it never names those siblings to disambiguate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no alternatives named. The agent must infer the use case from the tool name alone; siblings like ban_member and remove_timeout offer no routing signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unpin_messageC

Unpin a message from a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
channelIdYesDiscord channel ID
messageIdYesMessage ID to unpin

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about required permissions (typically MANAGE_MESSAGES), whether the operation is idempotent, or what happens if the message is not pinned. For a mutation tool this is a meaningful gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence with the action and target front-loaded and zero padding. It is arguably too terse, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description omits permission requirements, failure modes, and any confirmation of effect. It is minimally adequate but leaves an agent guessing about behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so channelId, messageId, and reason are fully documented in the schema already. The description adds no additional parameter meaning, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Unpin) and resource (message) plus the scope (from a channel), so the action is unambiguous. It does not explicitly differentiate from sibling pin_message or list_pinned_messages, but the verb makes the operation obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives such as pin_message or list_pinned_messages, and no stated preconditions (e.g., that the message must currently be pinned). Usage is only implied by the name and verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upsert_member_channel_permissionsC

Create or update channel permission overwrite for an individual member

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
userIdYesMember User ID
denyRawNoDenied permissions raw bitfield string
allowRawNoAllowed permissions raw bitfield string
channelIdYesChannel ID
denyPermissionsNoCSV of denied permission names
allowPermissionsNoCSV of allowed permission names

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Create or update' implies mutation and idempotency, but it does not disclose permission requirements, whether it overwrites existing overwrites, the effect of omitted fields (e.g., clearing permissions), or the audit logging behavior (though the 'reason' parameter hints at it).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the action and resource. It wastes no words, though it could potentially include a second sentence for crucial context without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and 7 parameters, the description is incomplete. It omits required permissions, idempotency semantics, overwrite behavior, and interaction with role-based overwrites. An agent would need to infer these from the name, which is risky for a permission-changing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all 7 parameters are documented in the schema. The description adds no parameter details beyond what the schema provides (e.g., bitfield vs CSV format, required vs optional). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create or update'), resource ('channel permission overwrite'), and target ('for an individual member'). This distinguishes it from the sibling 'upsert_role_channel_permissions', though the distinction is implicit rather than explicit. It's clear but could more directly contrast with the role-based sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites (e.g., required permissions like 'Manage Roles'), and no explicit alternatives or exclusions. The agent must infer context from the name and sibling list. For a permission-mutating tool, this is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upsert_role_channel_permissionsC

Create or update channel permission overwrite for a role

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoAudit log reason
roleIdYesRole ID
denyRawNoDenied permissions raw bitfield string
allowRawNoAllowed permissions raw bitfield string
channelIdYesChannel ID
denyPermissionsNoCSV of denied permission names
allowPermissionsNoCSV of allowed permission names (e.g. ViewChannel,SendMessages)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses upsert semantics (create or update), which is useful, but says nothing about required permissions, how allow/deny interact, whether existing overwrites are replaced or merged, or audit-log behavior despite the reason parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is efficient, though extremely minimal and could afford one clause of guidance without becoming bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with seven parameters, no annotations, and no output schema, the description is too thin. It omits prerequisites, the effect on existing overwrites, and interaction between allow/deny inputs, leaving the agent under-informed about consequences.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters, including allowRaw/denyRaw and the CSV permission lists. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb pair (create or update) and a precise resource (channel permission overwrite for a role), which distinguishes it in kind from the member-scoped sibling upsert_member_channel_permissions. It stops short of naming that sibling explicitly, so it is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus delete_channel_permission, list_channel_permissions, or upsert_member_channel_permissions. The upsert wording implies create-or-update behavior but no conditions, prerequisites, or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 117 tool updatesv1.0.0
    • First observedadd_reaction
    • First observedassign_role
    • First observedban_member
    • First observedbulk_delete_messages
    • First observedclear_reactions
    • First observedcreate_automod_rule
    • First observedcreate_category
    • First observedcreate_emoji
    • First observedcreate_forum_channel
    • First observedcreate_forum_post
    • First observedcreate_invite
    • First observedcreate_poll
    • First observedcreate_role
    • First observedcreate_scheduled_event
    • First observedcreate_server
    • First observedcreate_stage_channel
    • First observedcreate_sticker
    • First observedcreate_text_channel
    • First observedcreate_thread
    • First observedcreate_voice_channel
    • First observedcreate_webhook
    • First observeddelete_automod_rule
    • First observeddelete_category
    • First observeddelete_channel
    • First observeddelete_channel_permission
    • First observeddelete_direct_message
    • First observeddelete_emoji
    • First observeddelete_invite
    • First observeddelete_message
    • First observeddelete_role
    • First observeddelete_scheduled_event
    • First observeddelete_sticker
    • First observeddelete_webhook
    • First observeddisconnect_voice_member
    • First observededit_automod_rule
    • First observededit_category
    • First observededit_channel
    • First observededit_direct_message
    • First observededit_emoji
    • First observededit_forum_channel
    • First observededit_message
    • First observededit_role
    • First observededit_scheduled_event
    • First observedend_poll
    • First observedfind_channel
    • First observedformat_discord_mention
    • First observedgenerate_bot_invite_url
    • First observedget_audit_logs
    • First observedget_automod_rule
    • First observedget_ban_info
    • First observedget_bot_info
    • First observedget_channel_info
    • First observedget_discord_symbols
    • First observedget_discord_syntax_guide
    • First observedget_emoji_details
    • First observedget_forum_channel_info
    • First observedget_invite_details
    • First observedget_member_info
    • First observedget_message_attachments
    • First observedget_poll_answer_voters
    • First observedget_prune_count
    • First observedget_role_info
    • First observedget_scheduled_event_users
    • First observedget_server_info
    • First observedget_server_vanity_url
    • First observedget_server_widget
    • First observedget_sticker_details
    • First observedget_user_id_by_name
    • First observedget_user_info
    • First observedjoin_thread
    • First observedkick_member
    • First observedleave_thread
    • First observedlist_active_threads
    • First observedlist_automod_rules
    • First observedlist_bans
    • First observedlist_channel_permissions
    • First observedlist_channels
    • First observedlist_channels_in_category
    • First observedlist_emojis
    • First observedlist_forum_channels
    • First observedlist_forum_posts
    • First observedlist_forum_tags
    • First observedlist_invites
    • First observedlist_members
    • First observedlist_pinned_messages
    • First observedlist_roles
    • First observedlist_scheduled_events
    • First observedlist_servers
    • First observedlist_stickers
    • First observedlist_webhooks
    • First observedmodify_forum_post
    • First observedmodify_server_settings
    • First observedmodify_server_widget
    • First observedmodify_thread
    • First observedmodify_voice_state
    • First observedmove_channel
    • First observedmove_voice_member
    • First observedpin_message
    • First observedprune_members
    • First observedread_direct_messages
    • First observedread_messages
    • First observedremove_reaction
    • First observedremove_role
    • First observedremove_timeout
    • First observedresolve_discord_mentions
    • First observedsearch_discord_symbols
    • First observedsearch_members
    • First observedsend_direct_message
    • First observedsend_message
    • First observedsend_webhook_message
    • First observedset_member_nickname
    • First observedsetup_community_server
    • First observedtimeout_member
    • First observedunban_member
    • First observedunpin_message
    • First observedupsert_member_channel_permissions
    • First observedupsert_role_channel_permissions

TDQS

C2.9/5.0

Scored across 117 tools

Disambiguation3/5

With 117 tools, several overlapping groups exist (e.g., member lookup via search_members, get_user_id_by_name, get_user_info, get_member_info; channel discovery via list_channels, find_channel, get_channel_info; mention formatting via format_discord_mention and resolve_discord_mentions). Detailed descriptions help clarify intent, but more than a couple of tools could be confused, fitting 'some overlap exists'.

Naming Consistency4/5

Nearly all tools follow a consistent snake_case verb_noun pattern, making names highly predictable. Minor deviations exist, such as edit_ vs modify_ for update operations and unique verbs like upsert and setup, but overall the convention is strongly maintained.

Tool Count1/5

117 tools vastly exceeds the practical range for an MCP server, creating an unwieldy surface that forces agents to sift through many near-duplicate operations. The rubric explicitly defines 50+ tools as an extreme mismatch.

Completeness4/5

The tool surface covers CRUD for most Discord entities (servers, channels, messages, roles, members, emojis, webhooks, invites, scheduled events, etc.) with strong breadth. A few gaps remain, such as no edit_sticker, no get_poll details, and no forum tag creation/deletion, but these are minor and can be worked around.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Comprehensive Discord MCP server with 66 tools that provides rich message context including emoji reactions, thread indicators, and attachment metadata inline. Enables AI assistants to interact with Discord servers for messaging, moderation, roles, channels, and more.
    194 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Comprehensive Discord selfbot MCP server with 80 tools for full user autonomy, including messaging, guild management, voice, interactions, and more.
    427 npm
    MIT