Skip to main content
Glama
iprashantraj

mcp-discord-bridge

by iprashantraj

Discord MCP Server

npm version npm downloads CI License: MIT

Control your Discord server using AI — 44 tools, no cloning required. Works with any MCP-compatible app: Claude Desktop, Cursor, Windsurf, Continue.dev, Zed, Claude Code, and more.

What is MCP? Model Context Protocol is an open standard that lets AI apps talk to external tools. This project is one of those tools — it gives any AI assistant the power to manage your Discord server.

Install in one line

npx -y mcp-discord-bridge

That's it — no clone, no npm install. Just add it to your AI app's MCP config (see Quick Start below).


Related MCP server: Cloud Discord

What Can It Do?

Once connected, your AI assistant can:

  • Channels — create, delete, rename, move channels and categories

  • Messages — read, send, edit, delete, search messages, send DMs, add/remove reactions

  • Forum Channels — list forums, create/read/reply/delete forum posts

  • Webhooks — create, send via, edit, and delete webhooks

  • Members — list members, view profiles, check roles

  • Roles — list, create, edit, delete, assign, and remove roles

  • Moderation — kick, ban, unban, timeout members, set nicknames

  • Threads — create, list, archive, unarchive, join, and delete threads

  • Server — list all servers the bot is in, view channel layouts

It also runs as a standalone Discord bot with /ping, /info, and /serverinfo slash commands.


Quick Start (3 minutes)

Step 1: Create a Discord Bot

  1. Go to the Discord Developer Portal

  2. Click New Application — give it a name

  3. Go to Bot tab — click Reset Token — copy and save the token somewhere safe

Step 2: Invite the Bot to Your Server

  1. In the Developer Portal, go to OAuth2 > URL Generator

  2. Check these scopes: bot, applications.commands

  3. Check these permissions: Send Messages, Read Message History, Manage Channels, Manage Roles, Manage Webhooks, Kick Members, Ban Members, Moderate Members, Manage Nicknames

  4. Open the generated URL — select your server — authorize

Step 3: Add to Your AI App

Add this to your app's MCP config — no cloning or installing needed:

{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "mcp-discord-bridge"],
      "env": {
        "DISCORD_TOKEN": "paste_your_bot_token_here"
      }
    }
  }
}

Where is the config file?

App

Config Location

Claude Desktop

Windows: %APPDATA%\Claude\claude_desktop_config.json · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Claude Code

~/.claude.json (or run /mcp in Claude Code)

Cursor

Settings > search "MCP" > Edit MCP Settings

Windsurf

~/.codeium/windsurf/mcp_settings.json

Continue.dev

~/.continue/config.json

Zed

~/.config/zed/settings.json

Step 4: Done!

Restart your AI app. You should now see Discord tools available. Try asking:

"List all channels in my Discord server"


All Available Tools (44)

Tool

What It Does

Server

list_guilds

List all servers the bot is in

list_channels

List all channels and categories

Channels

create_category

Create a new category

create_channel

Create a text or voice channel

delete_channel

Delete a channel or category

move_channel

Move a channel to a different category

rename_channel

Rename a channel or category

Messages

get_channel_messages

Fetch recent messages (up to 100)

send_message

Send a message to a channel

delete_message

Delete a message

edit_message

Edit a bot message

search_messages

Search messages by keyword

send_dm

Send a direct message to a user

add_reaction

Add an emoji reaction to a message

remove_reaction

Remove the bot's reaction from a message

add_multiple_reactions

Add multiple reactions at once

Forum Channels

list_forum_channels

List all forum channels in a server

create_forum_post

Create a new forum post

get_forum_post

Fetch a forum post and its messages

reply_to_forum_post

Reply to a forum post

delete_forum_post

Delete a forum post

Webhooks

create_webhook

Create a webhook for a channel

send_webhook_message

Send a message via webhook

edit_webhook

Edit a webhook

delete_webhook

Delete a webhook

Members

list_members

List server members with roles

get_member

Get detailed info about a member

Roles

list_roles

List all roles in a server

assign_role

Give a role to a member

remove_role

Take a role from a member

create_role

Create a new role with name, color, mentionable

edit_role

Edit a role's name or color

delete_role

Delete a role from the server

Moderation

kick_member

Kick a member from the server

ban_member

Ban a user (with optional message cleanup)

unban_member

Unban a previously banned user

timeout_member

Timeout (mute) a member for a duration

set_nickname

Set or reset a member's nickname

Threads

create_thread

Create a thread in a text channel

list_threads

List active and archived threads

archive_thread

Archive a thread (optionally lock it)

unarchive_thread

Unarchive a thread

join_thread

Make the bot join a thread

delete_thread

Delete a thread


Install from Source (for contributors)

If you want to modify the code or run the standalone bot:

git clone https://github.com/iprashantraj/mcp-discord-bridge.git
cd mcp-discord-bridge
npm install
cp .env.example .env   # fill in DISCORD_TOKEN, CLIENT_ID, GUILD_ID

Then use ts-node to run directly:

{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["ts-node", "/full/path/to/mcp-discord-bridge/mcp-server.ts"],
      "env": {
        "DISCORD_TOKEN": "paste_your_bot_token_here"
      }
    }
  }
}

Running as a Standalone Bot

If you just want the slash commands without MCP:

# Register commands (one time)
npm run deploy-commands

# Start the bot
npm run bot

Command

Description

/ping

Check bot latency

/info

Show bot uptime and stats

/serverinfo

Show server details


Docker Deployment

The image defaults to the MCP server (stdio). To run the standalone bot 24/7 instead, uncomment the command: ["node", "dist/index.js"] line in docker-compose.yml, then:

docker-compose up -d       # Start in background
docker-compose logs -f     # View logs

Architecture

An MCP client talks to mcp-server.ts over stdio (JSON-RPC). The server advertises tools (with read-only/destructive annotations), then dispatches each call through mcp-handlers.ts — a 44-tool registry that validates args, checks bot permissions, and enforces read-only mode. Handlers act through the shared client from discord-client.ts, which owns login and connection state. The standalone bot (index.ts) is a separate entrypoint that reuses the same client factory.

Editable source: assets/architecture.excalidraw — open it at excalidraw.com.


Development

npm run typecheck    # Type check
npm run lint         # Lint
npm run test         # Run tests (59 tests)
npm run format       # Format code

CI runs automatically on every push and PR via GitHub Actions.

Project Structure

mcp-discord-bridge/
├── discord-client.ts     # Shared Discord client setup
├── mcp-server.ts         # MCP server (tool schemas + wiring)
├── mcp-handlers.ts       # Tool handler logic (registry pattern)
├── index.ts              # Standalone bot (slash commands)
├── deploy-commands.ts    # One-time command registration
├── tests/                # Vitest test suite
├── .github/workflows/    # CI pipeline
└── Dockerfile            # Multi-stage Docker build

Read-Only Mode

This server can delete channels, ban members, and remove roles. If you only want the AI to read your server, set DISCORD_READONLY in the env block:

"env": {
  "DISCORD_TOKEN": "your_token",
  "DISCORD_READONLY": "true"
}

In read-only mode only the 10 read tools (list_*, get_*, search_messages) are advertised and callable; every write/destructive tool is refused.

All tools also carry MCP annotations (readOnlyHint / destructiveHint), so compatible clients can flag or confirm destructive actions before running them.

Security

  • Never commit your .env file — it's already in .gitignore

  • Treat your DISCORD_TOKEN like a password — if leaked, regenerate it immediately in the Developer Portal

  • The bot can only assign roles below its own role in the hierarchy (Discord enforces this)

  • Grant the bot only the permissions you need — if you won't use moderation, don't grant Ban/Kick

  • Because the AI can read channel messages and act on the server, treat untrusted message content as a prompt-injection risk; use read-only mode for safer deployments

  • See SECURITY.md for the full threat model and reporting policy


License

MIT — use it however you want.

Available Tools

44 tools
add_multiple_reactionsB

Add multiple emoji reactions to a message at once

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYes
emojisYesArray of emojis to react with

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, and the description omits behavioral traits like permission requirements, rate limits, or the effect on message reaction count. It only states the intended action without side-effect 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?

The description is a single, direct phrase with no redundant words. It earns its place by clearly stating the tool's function without unnecessary elaboration.

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 3 parameters, no output schema, and the complexity of batch reactions, the description lacks completeness. It does not explain return values, success indicators, or constraints, leaving significant gaps for correct tool invocation.

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

Parameters2/5

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

Schema description coverage is only 33% (only emojis have a description). The description adds no details about parameter format, constraints, or how multiple emojis should be provided, relying solely on parameter names.

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 uses the specific verb 'Add' and resource 'multiple emoji reactions to a message', clearly distinguishing from the sibling tool add_reaction by highlighting the batch nature 'at once'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus add_reaction (single reaction) or other alternatives. The agent must infer the batch use case without explicit context.

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

add_reactionC

Add an emoji reaction to a message

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYes
emojiYesEmoji to react with (unicode or custom format)

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description is the sole source of behavioral info, but it only states the basic action. Missing details like permissions needed, whether it overrides existing reactions, rate limits, or error conditions.

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

Conciseness3/5

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

Single sentence with no wasted words, but severely under-informative. Appropriate length for a simple action, but lacks necessary detail.

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

Completeness1/5

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

No output schema is provided and description gives no information about return values, side effects, or any behavioral context beyond the basic action.

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

Parameters1/5

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

Schema description coverage is only 33% (only 'emoji' has a description). The tool description does not add any further meaning to 'channel_id' or 'message_id' beyond the schema types.

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

Purpose5/5

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

The description clearly states the action ('Add') and the resource ('an emoji reaction to a message'), distinguishing it well from siblings like 'add_multiple_reactions' and 'remove_reaction'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'add_multiple_reactions' for multiple reactions, or whether it should be used before or after other actions).

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

archive_threadB

Archive a thread, optionally locking it

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes
lockedNoAlso lock the thread (default false)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations; description doesn't disclose effects of archiving (e.g., visibility, permissions, reversibility) or locking behavior beyond 'optionally locking it'.

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?

Extremely concise (6 words) and front-loaded with main action. No unnecessary 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?

Inadequate for a tool with no annotations, no output schema, and only 50% param coverage. Missing details on return value, side effects, and 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?

Adds meaning for 'locked' (repeat of schema description) but nothing for 'thread_id'. Schema coverage is 50%, description partially compensates.

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?

Clearly states verb 'archive' and resource 'thread', plus optional locking. Distinguishes from siblings like delete_thread and unarchive_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?

No guidance on when to use vs alternatives like delete_thread or when locking is appropriate. Lacks context for decision making.

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

assign_roleC

Assign a role to a guild member

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
role_idYes
reasonNoAudit log reason (optional)

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, and the description fails to disclose any behavioral traits such as permission requirements, whether existing roles are overwritten, side effects, or rate limits. This is a mutation tool with zero 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.

Conciseness3/5

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

The description is a single concise sentence with no unnecessary words, but it lacks essential details. It earns its place but is too brief to be fully useful.

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

Completeness1/5

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

For a mutation tool with 4 parameters, no output schema, and no annotations, the description is critically incomplete. It does not explain required parameters, success/error behavior, or return values.

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

Parameters2/5

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

Schema description coverage is only 25% (only 'reason' has a description). The description does not clarify the meaning or expected format of guild_id, user_id, or role_id, leaving the agent to rely solely on parameter names.

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 'Assign a role to a guild member' clearly specifies the verb (assign) and resource (role to guild member), distinguishing it from sibling tools like create_role, delete_role, edit_role, and remove_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?

No guidance on when to use this tool versus alternatives (e.g., when to assign vs create/edit/remove). No prerequisites, exclusions, or context provided.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
reasonNoAudit log reason (optional)
delete_message_daysNoDays of messages to delete (0–7, optional)

TDQS

C2.4/5.0
Behavior2/5

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

Without annotations, the description bears full responsibility for behavioral disclosure. It only states 'Ban a user from the server' without mentioning required permissions, audit logging, the permanence of the ban, or the effect of optional parameters like delete_message_days. This is insufficient for an agent to understand the implications.

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

Conciseness2/5

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

At one sentence, the description is too terse. It omits critical context and is not front-loaded with the most important usage details. Brevity here results in under-specification rather than conciseness.

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

Completeness1/5

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

Given the absence of an output schema and annotations, and the presence of 4 parameters including important optional ones, the description is severely lacking. It does not explain return values, permission requirements, or the consequences of the action (e.g., ban is permanent until unbanned). This is insufficient for an agent to reliably use the tool.

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

Parameters2/5

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

The description adds no information about parameters beyond the schema. Schema coverage is 50% (two parameters have descriptions), but guild_id and user_id lack descriptions. The tool description does not compensate for this gap, leaving ambiguity about how to specify the user and guild.

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

Purpose4/5

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

The description clearly states the action (ban) and target (user from server). However, it does not differentiate from sibling tools like kick_member or timeout_member, which also involve removing or restricting users.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as kick_member, timeout_member, or unban_member. The description lacks context about prerequisites or typical use cases.

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

create_categoryA

Create a new category in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
nameYesCategory name
positionNoPosition (0 = top)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided. Description is minimal and does not disclose behavioral traits such as required permissions, side effects, or what happens after creation (e.g., empty category).

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, clear sentence with no fluff. Efficient and 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?

Given the tool's simplicity and lack of output schema, the description covers the basic purpose but lacks usage guidance and behavioral details, making it 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 coverage is 67%, with descriptions for name and position. Description adds no extra meaning beyond 'in a Discord server'. Baseline score given schema coverage.

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

Purpose5/5

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

Description clearly states the verb 'create', resource 'category', and location 'in a Discord server'. It distinguishes from sibling tools like create_channel.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like create_channel. Implicitly clear but lacks prerequisites or context.

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

create_channelA

Create a text or voice channel, optionally inside a category

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
nameYes
typeNotext
category_idNoParent category ID (optional)
topicNoChannel topic (text channels only, optional)

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 burden. It only states the basic action without disclosing behavioral traits such as permission requirements, uniqueness constraints on name, or whether creation is immediate. Lacks details on side effects or rate limits.

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

Conciseness5/5

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

The description is a single, efficient sentence with no redundancy. It is front-loaded and clearly communicates the core purpose without any 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?

Given the absence of output schema and annotations, the description is adequate for a simple creation tool but misses details like confirmation of success, uniqueness constraints, and explicit differentiation between text and voice channel options (e.g., topic only for text).

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 40% (only category_id and topic have descriptions). The description adds value by explaining that type can be 'text' or 'voice' and that category_id is optional. However, it does not clarify guild_id or name semantics, nor the fact that topic is only for text channels.

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

Purpose5/5

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

The description clearly states the action 'Create' and the resource 'channel', specifying text or voice types and optional category. It distinguishes from sibling tools like create_category (creates categories) and create_thread (creates threads).

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 for creating regular channels but does not explicitly state when to use versus alternatives like create_category or create_forum_post. No exclusions or context for when not to use this tool.

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

create_forum_postB

Create a new forum post with title and content

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYesForum channel ID
titleYesPost title
contentYesPost body content

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 must convey behavioral traits. It only states 'Create a new forum post', which implies mutation, but lacks details on permissions, side effects (e.g., automatic thread creation), or immediate visibility.

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 is front-loaded with the purpose, containing no unnecessary words. It is appropriately concise.

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?

The tool has no output schema, but the description does not hint at return values or side effects. Given the mutation nature, more behavioral context is needed.

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 description adds no additional meaning beyond what the schema provides (title, content).

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

Purpose5/5

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

The description clearly states the verb 'Create' and resource 'forum post', and specifies key parameters (title and content). It effectively distinguishes from sibling tools like delete_forum_post and get_forum_post.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as create_thread or reply_to_forum_post. The description does not include any context on exclusions or prerequisites.

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

create_roleB

Create a new role in the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
nameYesRole name
colorNoHex color (e.g. "#FF0000", optional)
mentionableNoWhether the role is mentionable (default false)
reasonNoAudit log reason (optional)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as required permissions, mutation effects, conflict handling, or return value. Minimal transparency.

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

Conciseness5/5

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

Single sentence, no extraneous words, directly to the point. Appropriate for a straightforward 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?

No output schema, and the description omits critical context like return value (e.g., the created role), side effects, or error conditions. Incomplete for a 5-parameter creation 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 80% (4 of 5 parameters have descriptions). The description adds no additional parameter meaning beyond the schema, warranting a baseline score of 3.

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

Purpose5/5

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

The description clearly states the verb 'Create' and the resource 'new role in the server', distinguishing it from sibling tools like edit_role, delete_role, and assign_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?

No guidance on when to use this tool versus alternatives (e.g., assigning an existing role). No prerequisites or conditions mentioned.

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

create_threadB

Create a new thread in a text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
nameYesThread name
message_idNoMessage ID to start thread from (optional)

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 burden. It does not disclose side effects (e.g., whether creation requires specific permissions, rate limits, or what happens if the thread already exists). The behavioral insight is minimal.

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

Conciseness5/5

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

The description is a single, clear sentence with no extraneous information. It is appropriately concise and front-loaded.

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

Completeness2/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, permissions, or when to use this tool over alternatives like create_forum_post. The agent lacks context for correct invocation.

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 covers 67% of parameters with descriptions. The description adds no extra meaning beyond the schema; it does not clarify the format or constraints of channel_id, name length, or how message_id modifies behavior. Baseline score of 3 is appropriate as the schema already provides some information.

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 explicitly states the action ('Create'), the resource ('a new thread'), and the location ('in a text channel'). This clearly distinguishes it from siblings like archive_thread, delete_thread, and join_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 provides no guidance on when to use this tool versus other thread-related tools (e.g., join_thread, archive_thread) or any prerequisites. The agent receives no context about channel permissions or thread limits.

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 webhook for a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
nameYesWebhook name

TDQS

C2.8/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. It indicates mutation but omits side effects, permissions required, rate limits, or what happens to existing webhooks. The behavior is under-disclosed.

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. Every word contributes to the core 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 no output schema, minimal schema descriptions, and no annotations, the description is too sparse. It fails to explain what a webhook is, what the response contains, or any additional context needed for proper use.

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

Parameters2/5

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

Schema coverage is only 50% (name described, channel_id not). The description adds no meaning beyond the schema—no clarification on channel_id format or name constraints. The agent gains no extra insight.

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

Purpose4/5

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

The description clearly states the action (Create) and resource (webhook for a channel), making the tool's purpose unambiguous. However, it does not differentiate from sibling tools like edit_webhook or send_webhook_message, missing an opportunity to clarify its specific 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?

No guidance is provided on when to create a webhook versus alternatives (e.g., creating a bot or using channel integrations). The description lacks context about prerequisites or typical use cases, leaving the agent to guess.

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 or category by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
reasonNoAudit log reason (optional)

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 burden. It only states 'delete' without disclosing permanence, cascading effects (e.g., deleting category deletes child channels), or audit log implications.

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

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices necessary detail. It earns its place by stating the core action, but more information is needed for a complete understanding.

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 no output schema and no annotations, the description should cover critical behavioral aspects. It fails to mention whether deletion is permanent, if confirmation is needed, or any side effects for channels with threads or members.

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

Parameters2/5

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

Schema coverage is 50%; the required channel_id parameter lacks a description in the schema, and the tool description does not clarify it beyond 'by ID'. The reason parameter already has schema description, so no added value.

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

Purpose5/5

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

The description clearly states the action (delete) and the resource (channel or category) with identification method (by ID). It effectively distinguishes from siblings like create_channel, rename_channel, and move_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?

No guidance on when to use this tool versus alternatives, such as archiving or locking. Missing prerequisites or conditions like required permissions or whether the user must own the channel.

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

delete_forum_postC

Delete a forum post

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesForum post (thread) ID

TDQS

C2.7/5.0
Behavior1/5

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

No annotations exist, and the description fails to disclose any behavioral traits (e.g., permission requirements, irreversibility, cascading effects). This is critical for a delete 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?

The description is a single concise sentence with no redundancy, but it sacrifices informativeness 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?

The description is minimally complete for a simple tool with one parameter, but it omits essential context for a mutation operation, such as permanence or permission needs, especially given sibling tools.

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 description adds no value beyond the schema's parameter description. A baseline score of 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 states 'Delete a forum post' with a clear verb and resource. However, given siblings like delete_thread and delete_message, it does not clarify the distinction, which is a minor gap.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as delete_thread or delete_message. No prerequisites or context provided.

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 message by channel and message ID

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must fully convey behavioral traits. It only states the action without mentioning irreversibility, permissions, or side effects (e.g., cannot delete pinned messages). This is insufficient 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.

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. However, it could be slightly expanded to include essential behavioral details 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 delete tool with no output schema, no annotations, and minimal parameter info, the description should at least mention permanence, permission requirements, and potential failures. It does not, leaving the agent underinformed.

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

Parameters2/5

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

The input schema has 0% description coverage for both parameters, and the description only repeats 'by channel and message ID' without explaining their formats, sources, or constraints. The description fails to compensate for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Delete', the resource 'message', and the required identifiers (channel and message ID). It effectively distinguishes this tool from sibling tools like edit_message or delete_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?

No guidance is provided on when to use this tool versus alternatives, such as delete_channel or delete_thread. The description lacks context on prerequisites or scenarios where this tool is appropriate.

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

delete_roleC

Delete a role from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
role_idYes
reasonNoAudit log reason (optional)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations are absent, so description bears full burden. It implies destructive action but does not disclose permanence, side effects (e.g., cascading on members/permissions), or restrictions (e.g., cannot delete system roles). No mention of authorization or rate limits.

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

Conciseness4/5

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

Single sentence is concise and front-loaded. However, it lacks additional structural elements like bullet points; the brevity sacrifices completeness.

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

Completeness2/5

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

Given the tool is destructive, has 3 parameters, and no output schema, the description is highly incomplete. It does not explain return values, side effects, or any contextual information beyond the basic action.

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

Parameters2/5

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

Schema coverage is only 33% (only reason has a description). Description does not add meaning to guild_id, role_id, or reason beyond the schema. For a tool with low coverage, description should compensate but fails to do so.

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

Purpose5/5

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

Description clearly states 'Delete a role from the server', specifying verb and resource. It distinguishes from sibling tools like create_role, edit_role, assign_role, etc.

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 remove_role or edit_role. No prerequisites or exclusions mentioned.

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

delete_threadC

Delete a thread

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only implies a destructive action but does not state whether deletion is permanent, if it requires special permissions, or what side effects occur (e.g., messages lost).

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

Conciseness3/5

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

The description is very concise (three words) but lacks structure. It states the purpose but provides no additional context or elaboration, earning its place minimally but not efficiently using the space.

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

Completeness2/5

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

Given the tool's destructive nature and lack of annotations or output schema, the description should explain return values, error conditions, or confirmation. It is incomplete for an agent to safely invoke this tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not elaborate on the 'thread_id' parameter. It adds no meaning beyond the schema's type and requirement, failing to compensate for the lack of 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?

The description clearly states the action ('Delete') and the resource ('a thread'), which unambiguously conveys the tool's purpose. It distinguishes from sibling tools like archive_thread or create_thread, though no further context is given.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as archive_thread. There is no mention of prerequisites, permissions, or the irreversibility of the action, leaving the agent without decision support.

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

delete_webhookC

Delete a webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
webhook_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. 'Delete a webhook' implies a permanent destructive action, but it doesn't mention any side effects, such as whether the webhook token becomes invalid or if there are prerequisites like channel ownership.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it is too minimal. It does not waste words, yet it sacrifices completeness for brevity, making it borderline under-specified.

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

Completeness1/5

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

Given the lack of annotations, no output schema, and 0% parameter description coverage, the description fails to provide essential context such as prerequisites, outcome, or how to use the parameters effectively. It is inadequate for an agent to reliably invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no additional meaning for the parameters 'channel_id' and 'webhook_id'. It doesn't explain how to obtain these IDs or validate their format, leaving the agent with the raw 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 'Delete a webhook' clearly states the action (delete) and resource (webhook). It is specific and distinguishes from sibling tools like edit_webhook and send_webhook_message, though it lacks additional context about which webhooks are affected.

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. For example, it doesn't clarify if webhook deletion requires special permissions or if it can be recreated, leaving the agent without decision context.

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

edit_messageB

Edit a bot message by channel and message ID

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYes
contentYesNew message content (max 2000 chars)

TDQS

B3/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It states 'edit' but does not disclose behavioral traits like permissions required, whether it only works on bot messages (implied but not explicit), or any side effects. This is insufficient for a mutation tool.

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

Conciseness5/5

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

The description is a single sentence with no superfluous words. It is concise and front-loaded 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?

Given the tool's simplicity, the description covers the essentials (edit a bot message by IDs). However, it lacks context about return values (no output schema) and assumes the agent knows this tool is for bot messages only. It is adequate but could be more complete.

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

Parameters1/5

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

The input schema has low description coverage (33%), with only 'content' having a description. The tool description adds no additional meaning beyond the schema, leaving 'channel_id' and 'message_id' without any context.

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

Purpose5/5

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

The description clearly states the action (edit), the resource (bot message), and the identifiers (channel and message ID). It is specific and distinguishes from sibling tools like delete_message or send_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 guidance is provided on when to use this tool versus alternatives, such as when to edit a user message vs a bot message. There is no mention of exclusions or prerequisites.

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's name or color

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
role_idYes
nameNoNew role name (optional)
colorNoNew hex color (optional)
reasonNoAudit log reason (optional)

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 bears full responsibility. It only mentions editing name/color but omits any behavioral traits like permissions required (e.g., 'Manage Roles'), impact on other role properties, revertibility, or audit log usage. The reason parameter from the schema 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.

Conciseness4/5

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

A single sentence with no wordiness. However, it lacks structural elements like bullet points or grouping that could improve scannability for multiple 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 mutation tool with 5 parameters, no output schema, and no annotations, the description is too brief. It does not explain what happens when the tool succeeds, side effects, or error conditions, leaving the agent underinformed.

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

Parameters2/5

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

The description adds no meaning beyond the schema's own descriptions for name and color. It fails to mention required parameters (guild_id, role_id) or the optional reason parameter, even though schema already documents them. Schema coverage is 60%, but the description does not compensate for the missing schema descriptions for guild_id and role_id.

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

Purpose5/5

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

The description clearly states 'Edit an existing role's name or color', specifying the verb (Edit) and resource (existing role) with exact fields that can be modified, effectively differentiating it from sibling tools like create_role, delete_role, or assign_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?

No guidance on when to use this tool versus alternatives such as assign_role or create_role. Lacks conditions, prerequisites, or exclusions despite having many closely related sibling tools.

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

edit_webhookC

Edit an existing webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
webhook_idYes
nameNoNew webhook name

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations and a terse description, behavioral effects like permission requirements, side effects (e.g., whether editing replaces or merges fields), or error states are undisclosed. This is insufficient for safe invocation.

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

Conciseness3/5

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

The description is extremely concise (one sentence) but may be too brief, sacrificing necessary details. It is not verbose, but it lacks structure or bullet points.

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

Completeness2/5

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

Given the tool's complexity (3 parameters, mutation without output schema or annotations), the description is inadequate. It does not explain return values, merge behavior, or validation rules.

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

Parameters2/5

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

Schema description coverage is only 33% (only 'name' has a description). The tool description adds no additional meaning beyond that, failing to compensate for the undocumented 'channel_id' and 'webhook_id' parameters.

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

Purpose4/5

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

The description 'Edit an existing webhook' clearly states the action and resource, differentiating it from siblings like create_webhook or delete_webhook. However, it does not explicitly contrast with these 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 is provided on when to use this tool versus alternatives or any prerequisites. The description only states the action, leaving the agent to infer usage context.

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

get_channel_messagesB

Fetch recent messages from a text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
limitNoNumber of messages to fetch (1–100, default 50)
beforeNoGet messages before this message ID (cursor)
afterNoGet messages after this message ID (cursor)

TDQS

B3.4/5.0
Behavior2/5

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

The description lacks behavioral details such as pagination behavior, rate limits, or ordering of results. With no annotations, the description carries the full burden but fails to disclose these aspects.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It is front-loaded and 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?

The description does not explain return format, ordering, or that messages are returned in chronological order. For a tool with no output schema, more context is needed for completeness.

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

Parameters3/5

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

Schema coverage is 75%, so the baseline is 3 even with no additional parameter info in the description. The description does not add meaning beyond what the schema already provides for the parameters.

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

Purpose5/5

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

The description clearly states the verb 'fetch' and the resource 'recent messages from a text channel'. It distinguishes this tool from siblings like 'search_messages' and other message-related 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?

No explicit usage guidelines are provided. The description implies the tool is for retrieving recent messages, but does not specify when to use it over alternatives like search_messages.

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

get_forum_postB

Fetch a forum post and its messages

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesForum post (thread) ID
limitNoNumber of messages to fetch (1–100, default 50)

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 alone must convey behavioral traits. It only states the action without disclosing whether it is read-only, destructive, or any side effects. The name implies read access but this is not explicit.

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 concise sentence with no filler. It front-loads the verb and resource, making it easy to parse. It could be slightly improved by adding optional context, but it is compact.

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 description covers the basic purpose but lacks details about the return format, whether messages are paginated, or any relationship between the post and its messages. Given no output schema, more context would be helpful, but the tool is simple.

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 already has descriptions for both parameters (thread_id and limit), with 100% coverage. The tool description adds no additional meaning beyond what the schema provides, 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?

The description clearly states the tool fetches a forum post and its messages. The verb 'fetch' combined with the resource 'forum post and its messages' is specific and distinguishable from sibling tools like create_forum_post or delete_forum_post.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_channel_messages or list_threads. No context about prerequisites, limitations, or exclusion cases is given.

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

get_memberB

Get detailed information about a specific guild member

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes

TDQS

B3.1/5.0
Behavior3/5

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

The description implies a read-only operation ('Get detailed information'), which is straightforward. However, with no annotations, it does not disclose any behavioral traits like authentication needs, rate limits, or whether the member must be in the guild. It is adequate but not detailed.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words. It is efficient and to 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?

Given the simplicity of the tool (2 parameters, no output schema), the description is minimally complete. It indicates what the tool does but does not explain the return format or any nuances. For a simple getter, this is adequate but could be improved.

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

Parameters2/5

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

The description does not explain the purpose or format of the parameters. It mentions 'guild member' but does not describe what 'guild_id' or 'user_id' represent or where to find them. With 0% schema coverage, the description fails to compensate.

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

Purpose4/5

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

The description clearly states 'Get detailed information about a specific guild member', which identifies the action and resource. It distinguishes from sibling tools like 'list_members' (which lists all) or modifying tools, but could be more explicit about what 'detailed information' includes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that this should be used when you need data for a single member, while 'list_members' is for all members.

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

join_threadC

Make the bot join a thread

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes

TDQS

C2.4/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 for behavioral disclosure. It only states the action, omitting consequences (e.g., whether the bot remains joined), required permissions, or side effects. This is insufficient.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but not adequately informative. While there is no wasted text, the brevity undercuts its usefulness.

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

Completeness2/5

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

Given the tool's simplicity (one parameter, no output schema), the description should at least clarify the parameter's purpose and expected input. It fails to do so, leaving the agent with minimal actionable information.

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

Parameters1/5

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

The input schema lists a 'thread_id' parameter with 0% description coverage, and the tool description does not mention it at all. The agent receives no explanation of what this parameter represents or how to format it.

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 'Make the bot join a thread' clearly conveys the verb (join) and resource (thread), but it lacks explicit differentiation from siblings like 'create_thread' or 'archive_thread'. However, the action is distinct 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?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for invoking it. The description simply states the action without usage context.

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

kick_memberC

Kick a member from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
reasonNoAudit log reason (optional)

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 must disclose behavioral traits like permission requirements or side effects. It only states 'Kick a member', missing details on audits, reversibility, or return values.

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

Conciseness3/5

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

The description is one sentence, very concise, but lacks structure or additional context. It is minimally sufficient.

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 and no output schema, the description fails to provide necessary context about effects, required permissions, or differences from similar operations (e.g., ban).

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

Parameters2/5

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

Schema description coverage is only 33% (reason param described). The tool description adds no extra meaning beyond the schema. The optional reason parameter is the only one with a description in the schema, leaving guild_id and user_id unexplained.

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

Purpose5/5

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

The description clearly states the action ('Kick') and the resource ('a member from the server'), distinguishing it from sibling tools like 'ban_member' or 'timeout_member'.

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 over alternatives (e.g., ban_member for permanent removal, timeout_member for temporary), or any prerequisites or exclusion criteria.

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 and categories in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYesThe Discord server (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 should compensate. It fails to disclose important behavioral traits like required permissions, rate limits, output format, or whether it returns only names or full objects. This is a minimal description for a list 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?

The description is a single sentence with zero wasted words. It is front-loaded and efficient, meeting the conciseness standard.

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 simple list tool with one parameter and no output schema, the description does not specify the return format (e.g., list of channel objects with IDs and names, pagination behavior). This lack of detail may confuse an agent needing to use subsequent tools on channels.

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, with the only parameter 'guild_id' already well-described. The tool description adds no additional semantic value beyond the schema, so baseline of 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 clearly states it lists 'all channels and categories in a Discord server', using a specific verb and resource. It effectively conveys the tool's scope but does not explicitly differentiate it from sibling tools like 'list_forum_channels', which is a subset.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'list_forum_channels' or 'search_messages'. The description lacks context for selection, making it harder for an agent to decide.

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 a server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes

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 must cover behavioral traits. It only states the action but omits details about permissions, rate limits, error handling, or side effects.

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

Conciseness4/5

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

The description is a single concise sentence with no redundancy. However, it could include more useful information 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?

The tool has no output schema and only one parameter, but the description does not specify what the response contains (e.g., list of channel names/IDs) or any edge cases.

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

Parameters1/5

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

Schema coverage is 0%, yet the description provides no explanation for the 'guild_id' parameter beyond its name. It adds no value beyond the input schema.

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

Purpose5/5

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

The description clearly states the verb 'list' and the resource 'forum channels', specifying the scope 'in a server'. It distinguishes itself from siblings like list_channels and other operations.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as list_channels. The description does not mention prerequisites or context where this tool is preferred.

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

list_guildsA

List all Discord servers the bot is in

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden. It mentions listing all servers but lacks details on permissions, rate limits, or output format. For a simple list tool, this is adequate but not expansive.

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 concise sentence that directly states the tool's purpose with no wasted words. It is front-loaded and efficient.

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

Completeness3/5

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

Given no output schema, the description should ideally describe the return format (e.g., list of guild objects). It only states 'list' but doesn't specify what data is returned, leaving some ambiguity.

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?

No parameters exist, and schema coverage is 100%. The description adds no parameter info, which is acceptable since there are none. Baseline 4 for zero parameters.

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

Purpose5/5

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

The description clearly states the tool lists all Discord servers the bot is in, with a specific verb ('List') and resource ('Discord servers'). It distinguishes from sibling tools that focus on channels, members, roles, etc.

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?

The usage is clear because the tool is the only one for listing guilds among siblings. However, no explicit when-not-to-use or alternatives are provided, though not needed due to uniqueness.

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

list_membersB

List members in a Discord server (up to 1000)

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
limitNoMax members to return (1–1000, default 100)

TDQS

B3.3/5.0
Behavior2/5

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

The description mentions a limit of 1000 members, which is a behavioral trait, but it does not disclose other crucial behaviors such as whether it is read-only, requires permissions, how pagination works, or what happens if the server has more than 1000 members. Since no annotations are provided, the description carries the full burden, and it 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, concise sentence that immediately conveys the action and key constraint. No unnecessary words or repetition.

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?

Without output schema or annotations, the description leaves gaps: no mention of return format, error handling, permissions, or pagination beyond the limit. For a list tool with two parameters, it is minimally adequate but not fully informative.

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 schema description coverage is 50% (only 'limit' has a description). The description adds context that the tool lists 'up to 1000' members, which aligns with the limit parameter. However, it does not explain 'guild_id' beyond being a server identifier. Baseline is 3 given coverage, and the description provides moderate compensation.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'members', and the context 'in a Discord server' with a constraint 'up to 1000'. It distinguishes well from sibling tools like get_member (single member) and ban_member (different action).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., get_member for individual lookup, search_messages for messages). It does not mention when not to use it or any prerequisites.

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 Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes

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 bears the full burden. It only states the action without disclosing required permissions, whether the bot needs 'manage roles' or 'view server', or if any destructive side effects could occur.

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

Conciseness4/5

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

The description is a single sentence with no excess words. It is front-loaded and efficient, though it could benefit from slightly more detail for completeness.

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 one parameter and no output schema, the description adequately conveys the core action. However, it lacks information about permissions, potential errors, or the structure of the returned role list, leaving the agent partially uninformed.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It implies that 'guild_id' identifies the server, but does not explain how to obtain it or its format. This adds modest value beyond the schema's bare type string.

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

Purpose5/5

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

The description clearly states 'List all roles in a Discord server', specifying the verb 'List', resource 'roles', and scope 'in a Discord server'. It distinguishes itself from sibling tools like 'assign_role' and 'create_role' which are mutations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'assign_role' or 'edit_role'. It lacks explicit context on when to call it or when not to.

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

list_threadsC

List active and archived threads in a channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes

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 bears the full burden of behavioral disclosure. It only says 'list', which implies a read operation, but it does not disclose any additional traits such as whether the operation is safe, idempotent, or has rate limits. It lacks details about the returned data or potential side effects.

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

Conciseness4/5

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

The description is a single sentence, which is concise and front-loaded with the key action. However, it is slightly too brief given the lack of annotations and output schema, missing some contextual details that could be added without losing 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?

The tool has one parameter and no output schema, and the description does not explain what the return data contains (e.g., thread IDs, metadata, ordering). It also omits any mention of pagination or filtering options, making it incomplete for an agent to correctly interpret the results.

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

Parameters2/5

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

There is only one parameter, channel_id, and the description does not add any meaning beyond the schema field name. The schema description coverage is 0%, so the description should compensate by explaining the format or required source of the channel_id, but it simply says 'a channel' without elaboration.

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

Purpose5/5

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

The description clearly states the tool lists threads (both active and archived) within a channel, which is a specific verb+resource combination. This distinguishes it from siblings like archive_thread, unarchive_thread, create_thread, and delete_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?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention that it is for obtaining thread IDs before archiving/unarchiving or that it lists all threads without filtering by user or date.

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

move_channelB

Move a channel into a different category

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
category_idNoTarget category ID — omit or leave empty to remove from category

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states 'Move a channel into a different category', failing to mention that omitting category_id removes the channel from a category (though this is noted in the parameter description), and does not cover permissions, side effects, or return values.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. However, it could be slightly more informative by including the removal option, but overall it is concise.

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 mutation tool with two parameters and no output schema, the description conveys the primary action but misses important behavioral details like the removal capability and permission requirements. It is minimally adequate.

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

Parameters2/5

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

Schema description coverage is 50% (only category_id has a description), and the tool description does not add any parameter information. It fails to describe channel_id or clarify how parameters relate to the action, leaving the agent with incomplete guidance.

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 uses a specific verb ('Move') and resource ('channel into a different category'), clearly distinguishing it from other channel operations like create, delete, or rename.

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 states when to use the tool (to move a channel to a different category) but does not mention when not to use it or provide alternatives, nor does it indicate necessary permissions or prerequisites.

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

remove_reactionB

Remove the bot's emoji reaction from a message

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
message_idYes
emojiYesEmoji to remove

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 must carry the full burden. It clarifies that only the bot's own reactions are removed, which is a key behavioral trait. However, it does not disclose error handling (e.g., if no reaction exists) or permission requirements.

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

Conciseness5/5

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

A single sentence that conveys the essential purpose with no wasted words. The structure is efficient and 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?

Given the tool has 3 required parameters, no output schema, and no annotations, the description is minimal but covers the core functionality. It lacks context on edge cases, permissions, and result expectations, which is a gap for completeness.

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

Parameters2/5

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

Schema description coverage is only 33% (only 'emoji' has a description). The tool description does not add any additional parameter-level information beyond what the schema provides, leaving channel_id and message_id undocumented.

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

Purpose5/5

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

The description clearly states the action (remove), the actor (bot's), the object (emoji reaction), and the target (message). It is specific and distinguishes from sibling tools like add_reaction.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as when removing reactions from other users or handling non-bot reactions. There is no mention of prerequisites or exclusions.

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 guild member

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
role_idYes
reasonNoAudit log reason (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose behavioral traits such as required permissions, side effects, or reversibility of the action.

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

Conciseness4/5

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

The description is a single short sentence with no unnecessary words, making it efficient and front-loaded.

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 no annotations, no output schema, and limited schema descriptions, the description fails to provide sufficient context about success/failure, side effects, or required permissions for a 4-parameter tool.

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

Parameters2/5

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

Schema coverage is 25% (only 'reason' has a description). The tool description adds no parameter semantics beyond what the schema provides, leaving three parameters (guild_id, user_id, role_id) unexplained.

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 'Remove a role from a guild member' uses a specific verb (remove) and resource (role from guild member), clearly distinguishing it from sibling tools like assign_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?

No guidance on when to use this tool versus alternatives (e.g., when to remove vs. assign a role), 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.

rename_channelC

Rename a channel or category

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
nameYes
reasonNoAudit log reason (optional)

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 for behavioral disclosure. It only states the action without mentioning side effects (e.g., message link invalidation), authorization requirements, or whether the operation is reversible. The description is too sparse to be transparent.

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

Conciseness3/5

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

The description is a single sentence, which is concise but may be underspecified. It could include essential details without becoming verbose. Not overly long, but not as helpful as it could be.

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

Completeness2/5

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

Given the tool has 3 parameters and no output schema, the description omits critical context: what happens after a rename (e.g., return value), error conditions (e.g., name taken), or impact on threads/permissions. Incomplete for safe invocation.

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

Parameters2/5

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

Schema description coverage is only 33% (only 'reason' has a description). The tool description adds no parameter context—e.g., format of channel_id, constraints on name (length, characters). Fails to compensate for the schema gaps.

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

Purpose5/5

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

The description clearly states the verb 'rename' and the resource 'channel or category', making the tool's purpose immediately obvious. It distinguishes from sibling tools like create_channel or delete_channel by specifying the rename action.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives (e.g., creating a new channel vs renaming). Missing context like prerequisites (e.g., permissions needed) or when renaming a category might affect children.

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

reply_to_forum_postA

Reply to an existing forum post

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYesForum post (thread) ID
contentYesReply content (max 2000 chars)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, and the description fails to disclose behavioral traits such as modification side effects, permission requirements, or whether the reply bumps the thread.

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 key information, no unnecessary 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?

Adequate for a simple tool but lacks explanation of return values or usage context; could be improved with more details given the presence of many sibling tools.

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 already describes both parameters; the description adds no extra meaning beyond the schema's documentation.

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

Purpose5/5

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

The description clearly states the action (Reply) and the resource (existing forum post), distinguishing it from siblings like create_forum_post and delete_forum_post.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives; the purpose is implied but no differentiation from similar sibling tools is provided.

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

search_messagesB

Search messages in a channel by keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
queryYesSearch keyword
limitNoMax results to return (1–100, default 50)

TDQS

B3/5.0
Behavior1/5

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

No annotations provided; description fails to disclose any behavioral traits such as return format, pagination, rate limits, or limitations beyond keyword search.

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 with no fluff, front-loaded with key action and scope.

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?

Simple tool with 3 params, no output schema; description omits essential context like what fields are returned or how matching works, leaving agent underinformed.

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 has 2 out of 3 parameters described (query and limit), but description adds no extra semantic context for any parameters beyond the schema.

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

Purpose5/5

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

Clearly states verb (search), resource (messages), and criterion (by keyword). Distinguishes from siblings like get_channel_messages.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_channel_messages or other search mechanisms.

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

send_dmC

Send a direct message to a user

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYes
contentYesMessage content (max 2000 chars)

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It fails to mention idempotency, permissions needed, rate limits, or side effects. The only behavioral hint is the 'max 2000 chars' note in the schema for the content parameter, but the description itself adds nothing.

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

Conciseness5/5

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

The description is a single sentence, front-loading the core purpose. Every word is necessary; there is no fluff.

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

Completeness1/5

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

Given no output schema, no annotations, and a brief description, the tool is poorly documented. It fails to explain success/failure, differentiate from 'send_message', or cover usage contexts.

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

Parameters2/5

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

With 50% schema description coverage (only 'content' has a description), the overall description does not elaborate on parameters. The 'user_id' parameter lacks any explanation, and the description provides no additional meaning 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 clearly states the action ('Send a direct message') and the target ('to a user'). However, it does not explicitly differentiate from sibling tools like 'send_message' or 'send_webhook_message', leaving ambiguity about when a 'direct message' is used.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., 'send_message' for channels). The description lacks any context about prerequisites or exclusions.

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

send_messageC

Send a message to a Discord text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
contentYesThe message text to send (max 2000 chars)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as permission requirements, rate limits, or error handling. It only states the basic action.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, but it is too minimal. It lacks structure and could include more detail while remaining concise.

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

Completeness2/5

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

Given the number of related sibling tools and the absence of an output schema, the description is incomplete. It does not specify return values, prerequisites, or how this tool differs from similar ones.

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

Parameters2/5

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

Schema description coverage is 50% (only content has a description). The tool description does not add any meaning beyond the schema, such as explaining how to obtain channel_id.

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 the specific action (send) and resource (message to a Discord text channel). However, it does not differentiate from sibling tools like send_dm or send_webhook_message, which have similar purposes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like send_dm or reply_to_forum_post. The agent is left to infer context from the name.

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

send_webhook_messageC

Send a message via a webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
channel_idYes
webhook_idYes
contentYesMessage content (max 2000 chars)
usernameNoOverride the webhook display name (optional)

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 must disclose behavioral traits. It only says 'Send a message', which implies mutation but does not discuss error handling, authentication, rate limits, or idempotency.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks necessary details for a tool with multiple parameters. It earns its place but could be expanded slightly without losing 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?

Given the tool has 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return behavior, error scenarios, or prerequisites like having a valid webhook.

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

Parameters2/5

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

Schema coverage is 50% (2 of 4 parameters have descriptions). The description adds no extra meaning; it does not explain channel_id or webhook_id. It relies solely on the schema, which is insufficient for understanding required inputs.

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

Purpose4/5

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

The description clearly states the verb 'Send' and resource 'message via a webhook', which distinguishes it from sending regular messages. However, it does not further differentiate from sibling tools like send_dm or create_webhook.

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. For example, there is no mention that webhook messages are for external integrations or that send_message is for direct channel messages.

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

set_nicknameC

Set or reset a member's nickname

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
nicknameNoNew nickname (empty or null to reset)
reasonNoAudit log reason (optional)

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full behavioral weight. It only states the action but omits necessary details like permission requirements, reversibility, rate limits, or side effects. For a mutation tool, this is insufficient.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no extraneous words. It is highly concise for 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?

Given the lack of output schema and annotations, the description is far from complete. It does not explain return values, error states, or edge cases like resetting the nickname. The tool's behavior is underspecified.

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

Parameters2/5

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

Schema description coverage is 50% (nickname and reason have descriptions, guild_id and user_id do not). The description adds no parameter-level explanation beyond what the schema already provides. It fails to compensate for the missing field 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?

The description clearly states the action (set or reset) and the target (member's nickname). It distinguishes this tool from siblings like assign_role or kick_member. However, 'set or reset' is slightly redundant.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as how to update other member attributes or when to avoid using it. The description lacks context for appropriate use.

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

timeout_memberB

Timeout (mute) a member for a specified duration

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
duration_minutesNoTimeout duration in minutes (default 5)
reasonNoAudit log reason (optional)

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It does not disclose side effects (e.g., automatic unmuting after duration), required permissions (e.g., moderate_members), or whether the action is reversible. This is a significant gap for a moderation tool.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It could benefit from bullet points or separate sections for parameters, permissions, and effects. However, it is not 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?

Given the complexity of a member timeout action (with no annotations or output schema), the description is insufficient. It does not explain the timeout mechanism, duration format, or potential outcomes. The agent would need to infer crucial details.

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 50% (duration_minutes and reason have descriptions). The description does not add any parameter information beyond what the schema provides. For the undocumented guild_id and user_id, the tool name and context imply their meaning, but the description could clarify. Baseline 3 is appropriate given partial schema coverage.

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

Purpose5/5

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

The description clearly states the verb 'timeout' (or mute) and the resource 'member', distinguishing it from sibling actions like ban_member (permanent ban) or kick_member (immediate removal). The purpose is immediately understandable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., ban, kick, role restrictions). No mention of prerequisites like permissions or guild membership. The description leaves the agent to infer context.

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

unarchive_threadC

Unarchive a thread

ParametersJSON Schema
NameRequiredDescriptionDefault
thread_idYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states the action without revealing side effects, state changes, or any necessary conditions (e.g., thread must be archived).

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

Conciseness3/5

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

The description is extremely concise (two words), but it sacrifices completeness. While it is front-loaded and not verbose, it omits necessary details for effective tool use.

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

Completeness2/5

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

Given the simplicity of the tool (one parameter, no output schema), the description still lacks essential context such as prerequisites, behavior, or expected results. It is not sufficiently complete for an agent to use correctly.

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

Parameters1/5

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

The input schema has a single required 'thread_id' parameter with no additional description. The tool description does not explain what the parameter is or how to obtain it, providing no value beyond the schema.

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

Purpose5/5

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

The description 'Unarchive a thread' is a specific verb+resource pair that clearly indicates the tool reverses an archiving action. It distinguishes itself from the sibling 'archive_thread' 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?

No guidance is provided on when to use this tool versus alternatives such as 'archive_thread'. The description does not mention any context, prerequisites, or exclusions.

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

unban_memberC

Unban a user from the server

ParametersJSON Schema
NameRequiredDescriptionDefault
guild_idYes
user_idYes
reasonNoAudit log reason (optional)

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided; description only states the basic action. Does not disclose side effects, permissions, or audit log behavior (despite a '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.

Conciseness2/5

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

Single sentence is short but underspecified, lacking necessary details. Not balanced—too brief for effective use.

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 no annotations, no output schema, and low parameter coverage, the description fails to provide sufficient context. Does not explain return values or behavior on success/failure.

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

Parameters2/5

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

Only 33% of parameters have schema descriptions; the description adds no additional meaning to 'guild_id' or 'user_id'. The 'reason' parameter is partially described in schema, but description offers no extra context.

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?

Description uses specific verb 'Unban' and resource 'user', clearly indicating the action. It distinguishes from siblings like 'ban_member' by name but does not explicitly differentiate.

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

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 'ban_member' or 'kick_member'. Lacks context for prerequisites or conditions.

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. 44 tool updates
    • First observedadd_multiple_reactions
    • First observedadd_reaction
    • First observedarchive_thread
    • First observedassign_role
    • First observedban_member
    • First observedcreate_category
    • First observedcreate_channel
    • First observedcreate_forum_post
    • First observedcreate_role
    • First observedcreate_thread
    • First observedcreate_webhook
    • First observeddelete_channel
    • First observeddelete_forum_post
    • First observeddelete_message
    • First observeddelete_role
    • First observeddelete_thread
    • First observeddelete_webhook
    • First observededit_message
    • First observededit_role
    • First observededit_webhook
    • First observedget_channel_messages
    • First observedget_forum_post
    • First observedget_member
    • First observedjoin_thread
    • First observedkick_member
    • First observedlist_channels
    • First observedlist_forum_channels
    • First observedlist_guilds
    • First observedlist_members
    • First observedlist_roles
    • First observedlist_threads
    • First observedmove_channel
    • First observedremove_reaction
    • First observedremove_role
    • First observedrename_channel
    • First observedreply_to_forum_post
    • First observedsearch_messages
    • First observedsend_dm
    • First observedsend_message
    • First observedsend_webhook_message
    • First observedset_nickname
    • First observedtimeout_member
    • First observedunarchive_thread
    • First observedunban_member

TDQS

B3/5.0

Scored across 44 tools

Disambiguation4/5

Most tools have clearly distinct purposes due to descriptive names like create_channel vs create_category. Potential confusion exists between create_forum_post and reply_to_forum_post, and between add_reaction and add_multiple_reactions, but descriptions mitigate this.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., assign_role, ban_member, create_category). No mixing of styles, and the use of get vs list and singular vs plural is uniform.

Tool Count2/5

At 44 tools, the server is overloaded. While a Discord bridge can justify many actions, this number exceeds the recommended 3-15 range, making the set feel bloated and potentially confusing for agents.

Completeness3/5

The tool set covers common Discord operations (channels, roles, members, messages, threads) but lacks voice operations, invite management, emoji management (beyond reactions), and advanced message features like pinning or editing other users' messages.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI agents full admin control over Discord servers with 59 tools for messaging, moderation, roles, channels, forums, reactions, files, and more, deployed on Cloudflare Workers.
    4
    MIT
  • 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.
    88 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Discord MCP server SDK that connects AI assistants like Claude and ChatGPT to Discord, providing over 100 tools for natural language control of Discord servers, including channel, message, member, and role management.
    89 npm
    MIT