Skip to main content
Glama

MCP-Discord

MCP Toplist Docker Hub

A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.

Overview

MCP-Discord provides the following Discord-related functionalities:

  • Login to Discord bot

  • List servers the bot is a member of

  • Get server information

  • List members and inspect member details

  • List, create, edit, delete, assign, and remove roles

  • Search messages in a server

  • Read, edit, and delete channel messages

  • Send messages to specified channels

  • Retrieve forum channel lists

  • Create, update, delete, and reply to forum posts

  • List forum threads and manage forum tags

  • Create, edit, and delete text, forum, voice channels, and categories

  • Set and remove channel permission overrides

  • Add/remove message reactions

  • Create/edit/delete/use webhooks

Related MCP server: MCP-Discord

Table of Contents

Prerequisites

Note:
According to Discord's security model, a bot can only access information from servers it has been explicitly added to.
If you want to use this MCP server to access a specific Discord server, you must add the bot to that server first.
Use the invite link below to add the bot to your target server.

Installation

Installing via NPM

You can use it with the following command:

npx mcp-discord --config ${DISCORD_TOKEN}

For more details, you can check out the NPM Package.

Installing via Smithery

To install mcp-discord automatically via Smithery

Installing via Docker

You can run mcp-discord using Docker. The Docker images are automatically built and published to Docker Hub.

Docker Hub Repository: barryy625/mcp-discord

Docker uses the streamable HTTP server by default via build/app.js.

# Pull the latest image
docker pull barryy625/mcp-discord:latest

# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest

# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Available Tags:

  • latest - Latest stable version from main branch

  • v1.3.8, etc. - Specific version releases

Manual Installation

# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord

# Install dependencies
npm install

# Compile TypeScript
npm run build

Configuration

A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.

Transport Methods

  1. stdio (Default)

    • Traditional stdio transport for basic usage

    • Suitable for simple integrations

  2. streamable HTTP

    • HTTP-based transport for more advanced scenarios

    • Supports stateless operation

    • Configurable port number

Configuration Options

You can provide configuration in two ways:

  1. Environment variables:

DISCORD_TOKEN=your_discord_bot_token
  1. Using command line arguments:

# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"

# For streamable HTTP transport
node build/app.js --transport http --port 3000 --config "your_discord_bot_token"

Usage with Claude/Cursor

1. Use Stdio Transport with Claude/Cursor

Use build/index.js when your MCP client expects a command-based stdio server.

Claude Desktop / Claude Code

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}

Cursor

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}

This is the recommended setup for local command-based MCP clients.

2. Self-Host the Streamable HTTP Server

Use build/app.js when you want to run mcp-discord as an HTTP MCP server.

Run with Node.js

DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000

On Windows PowerShell:

$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000

Run with Docker

docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Once started, the MCP HTTP endpoint is:

http://localhost:3000/mcp

3. Connect to a Hosted HTTP MCP Server

If you already host mcp-discord elsewhere, point your MCP client at the server's /mcp endpoint instead of launching build/app.js as a command.

Example endpoint:

https://your-server.example.com/mcp

Important notes:

  • build/app.js starts an HTTP server. It does not speak stdio.

  • build/index.js is the correct entrypoint for command-based stdio MCP clients.

  • For hosted HTTP usage, configure your MCP client to connect to the HTTP endpoint URL provided by your deployment.

  • The exact HTTP-client configuration format depends on the MCP client you use.

Tools Documentation

Basic Functions

  • discord_login: Login to Discord using the configured token

  • discord_list_servers: List all Discord servers the bot is a member of

  • discord_send: Send a message to a specified channel

  • discord_get_server_info: Get Discord server information

Channel Management

  • discord_create_text_channel: Create a text channel

  • discord_create_forum_channel: Create a forum channel

  • discord_create_voice_channel: Create a voice channel

  • discord_edit_channel: Edit a channel name, topic, parent category, or position

  • discord_delete_channel: Delete a channel

  • discord_create_category: Create a channel category

  • discord_edit_category: Edit a channel category

  • discord_delete_category: Delete a channel category

  • discord_set_channel_permissions: Set permission overrides for a role or user on a channel/category

  • discord_remove_channel_permissions: Remove permission overrides from a channel/category

Forum Functions

  • discord_get_forum_channels: Get a list of forum channels

  • discord_create_forum_post: Create a forum post (optionally pinned to the top of the channel)

  • discord_get_forum_post: Get a forum post

  • discord_list_forum_threads: List active and archived threads in a forum channel

  • discord_reply_to_forum: Reply to a forum post

  • discord_get_forum_tags: Get all available tags for a forum channel

  • discord_set_forum_tags: Replace the available tags for a forum channel

  • discord_update_forum_post: Update a forum post's title, tags, archived state, locked state, or pinned state

  • discord_delete_forum_post: Delete a forum post

Messages and Reactions

  • discord_search_messages: Search messages in a server

  • discord_read_messages: Read channel messages (supports before, after, around params — accepts snowflake IDs or ISO 8601 dates like "2025-03-01T00:00:00Z")

  • discord_edit_message: Edit a bot-authored message

  • discord_add_reaction: Add a reaction to a message

  • discord_add_multiple_reactions: Add multiple reactions to a message

  • discord_remove_reaction: Remove a reaction from a message

  • discord_delete_message: Delete a specific message from a channel

  • discord_pin_message: Pin a message to its channel (max 50 pins per channel)

  • discord_unpin_message: Remove a message from its channel's pinned messages

  • discord_list_pinned_messages: List a channel's pinned messages, newest pin first

Webhook Management

  • discord_create_webhook: Creates a new webhook for a Discord channel

  • discord_send_webhook_message: Sends a message to a Discord channel using a webhook

  • discord_edit_webhook: Edits an existing webhook for a Discord channel

  • discord_delete_webhook: Deletes an existing webhook for a Discord channel

Role Management

  • discord_list_roles: List all roles in a server

  • discord_create_role: Create a role with color, hoist, mentionable, and permission options

  • discord_edit_role: Edit an existing role

  • discord_delete_role: Delete a role

  • discord_assign_role: Assign a role to a member

  • discord_remove_role: Remove a role from a member

Member Management

  • discord_list_members: List members in a server with roles

  • discord_get_member: Get detailed information about a specific member

Development

# Development mode
npm run dev

License

MIT License

Available Tools

46 tools
discord_add_multiple_reactionsB

Adds multiple emoji reactions to a Discord message at once

ParametersJSON Schema
NameRequiredDescriptionDefault
emojisYes
channelIdYes
messageIdYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Adds multiple emoji reactions' without mentioning permissions, error handling, rate limits, or whether reactions are applied atomically. For a mutating operation, 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, focused sentence with no superfluous content. It front-loads the action and resource clearly, making it efficient and easy to parse.

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

Completeness2/5

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

With no output schema, no annotations, and no parameter explanations, the description is too minimal for an agent to fully understand the tool's behavior. It lacks details on invocation constraints, expected inputs, and potential failure modes, making it incomplete for a mutation 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 input schema has 0% coverage in the description, and the description does not explain the parameters channelId, messageId, or emojis. While the names are somewhat self-explanatory, the description fails to clarify the format of emojis (e.g., unicode, custom ID) or the relationship between channelId and messageId.

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's function: adding multiple emoji reactions to a Discord message at once. The verb 'Adds' and the resource 'Discord message' are specific, and 'multiple' and 'at once' distinguish it from the sibling discord_add_reaction.

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

Usage Guidelines3/5

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

The description implies the tool is for adding multiple reactions simultaneously, which is useful, but it does not explicitly compare with alternatives like discord_add_reaction or state when to prefer this tool. No exclusions or specific contexts are given, so usage guidance is only implied.

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

discord_add_reactionC

Adds an emoji reaction to a specific Discord message

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYes
channelIdYes
messageIdYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the action without disclosing behavioral details such as whether repeated reactions are idempotent, rate limits, or required permissions. This is a significant gap 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 clear sentence with no unnecessary words. It is perfectly concise and front-loads 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 the simplicity of the tool, the description covers the basic action but lacks any context about alternatives, prerequisites, or edge cases. The presence of sibling tools like remove_reaction and add_multiple_reactions makes the lack of usage guidance more impactful. Overall, it is minimally viable but incomplete.

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 0%, and the description does not explain the parameters beyond the action. It references 'emoji' but does not clarify the format (e.g., Unicode or custom emoji ID) or the roles of channelId and messageId, leaving the agent to infer from names.

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 ('Adds') and the specific resource ('emoji reaction to a specific Discord message'). It distinguishes from the sibling 'discord_add_multiple_reactions' by using singular 'an emoji reaction', though it does not explicitly name the alternative.

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

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 discord_add_multiple_reactions or discord_remove_reaction. It also does not mention prerequisites like requiring a prior login via discord_login.

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

discord_assign_roleC

Assigns a role to a member in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
roleIdYes
userIdYes
guildIdYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any side effects, required permissions, potential errors, or whether the role assignment replaces existing roles. The mutating nature is implied 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, clear, and concise sentence with no unnecessary words. It is efficiently structured and easy to parse.

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

Completeness2/5

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

Given the large set of sibling tools for role and member management, the description lacks context about how this tool fits into workflows, when to choose it over alternatives, or any related behavior. It is minimal and does not aid decision-making beyond the literal 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?

The schema properties have no descriptions, and schema coverage is 0%. The description does not elaborate on the meaning of guildId, userId, roleId, or reason, though the parameter names are somewhat self-explanatory.

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 that the tool assigns a role to a member in a Discord server, using the specific verb 'assigns' and identifying the resource (role) and recipient (member). It is distinct from sibling tools like discord_remove_role, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus sibling tools such as discord_remove_role, discord_create_role, or discord_list_roles. There is no mention of conditions or contexts that would favor this tool.

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

discord_create_categoryC

Creates a new category in a Discord server.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
reasonNo
guildIdYes
positionNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action 'creates' without mentioning permissions, reversibility, potential side effects, or return behavior. This is insufficient for a mutating 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 no redundant or filler words. It is extremely concise and easy to parse, making it efficient for an agent to read.

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 too minimal for a tool with four parameters and no output schema or annotations. It omits important context such as parameter meanings, expected behavior, and any constraints, making the tool difficult to use correctly without external knowledge.

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 schema has zero descriptions for its four parameters, and the tool description explains none of them. It does not compensate for the 0% schema coverage, leaving the semantics of 'reason' and 'position' ambiguous and failing to aid correct invocation.

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 'Creates a new category in a Discord server' clearly specifies the action (creates) and the target resource (category in Discord server). This distinguishes it from sibling tools like edit/delete category and create text channel.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites, exclusions, or related tools. The description simply states what the tool does, which implies usage but does not explicitly direct the agent.

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

discord_create_forum_channelA

Creates a new forum channel in a Discord server, optionally under a category

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
topicNoThe forum channel guidelines/description
guildIdYes
categoryIdNoThe ID of the parent category to create the channel under

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description must convey behavior on its own. It states that the tool 'creates' a resource (implying mutation) but does not mention permissions, rate limits, side effects, or potential errors. It is not misleading, but it 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 efficiently structured and directly states the tool's purpose without redundancy.

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

Completeness4/5

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

The description provides enough context for a basic call, including the optional category placement. However, it omits information about return values, error handling, or required permissions, which would be useful for a complete understanding. Given the simplicity of the operation, it remains sufficient for most use cases.

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 provides descriptions for only two of the four parameters (topic and categoryId); guildId and name have no descriptions. The tool description itself does not clarify any parameters. Since half the parameters are undocumented, the semantic coverage is incomplete.

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 ('creates') and the specific resource ('a new forum channel'), with an optional modifier ('optionally under a category'). It unambiguously distinguishes this tool from sibling channel-creation tools like create_text_channel and create_voice_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?

The description does not explicitly mention when to use this tool over alternatives, though the tool name and description make the primary use case obvious. It lacks guidance on conditions that would favor this tool versus others, such as creating a text or voice channel instead.

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

discord_create_forum_postB

Creates a new post in a Discord forum channel with optional tags

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleYes
pinnedNoPin the post to the top of the forum channel after creating it
contentYes
forumChannelIdYes

TDQS

B3.4/5.0
Behavior2/5

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

The description provides no information about side effects, required permissions, potential errors (e.g., invalid channel ID, existing post), or any other behavioral traits. With no annotations available, the description carries the full burden and 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, succinct sentence with no unnecessary words. It directly conveys the tool's function and the optional nature of tags, making it easy to parse.

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 action, the description is adequate on a basic level, but it omits important context such as the requirement that the channel must be a forum channel, the need for valid tags, and potential failure modes. Without annotations or an output schema, this missing context leaves the description incomplete for robust decision-making.

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 5 parameters, but only 'pinned' has a description. The description itself mentions 'optional tags', giving some context for that parameter, but it does not explain forumChannelId, title, or content. Schema coverage is low (20%), and the description does not compensate, leaving many parameters underspecified.

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 (creates), the resource (a new post in a Discord forum channel), and the optional tags feature. This distinguishes it from sibling tools like discord_update_forum_post or discord_reply_to_forum.

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 does not explicitly state when to use this tool versus alternatives such as discord_reply_to_forum or discord_update_forum_post. However, the verb 'creates' implies that it is for new posts, so the usage is inferable but not explicitly guided.

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

discord_create_roleB

Creates a new role in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorNoHex color string (e.g. '#FF0000') or color name
hoistNoWhether the role should be displayed separately in the sidebar
reasonNo
guildIdYes
mentionableNoWhether the role can be mentioned by anyone
permissionsNoArray of permission flag names (e.g. ['SendMessages', 'ViewChannel'])

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action 'Creates' without revealing side effects like required permissions, whether it overwrites an existing role with the same name, or any error handling. This is minimal and insufficient for a mutation 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, clear sentence with no redundant information. It is efficiently structured and immediately conveys the core action, achieving maximum 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 complexity of 7 parameters and no output schema, the one-line description is incomplete. It omits what the tool returns (e.g., the created role object), any permission requirements, and error scenarios. An agent would need to guess at these details, making the description insufficient for reliable 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?

The description adds no parameter information beyond what the input schema provides. While 4 of 7 parameters have descriptions in the schema, the required parameters 'name' and 'guildId' are undefined, and 'reason' is also missing. The tool description does not compensate for these 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 specific action ('Creates'), the resource ('role'), and the scope ('in a Discord server'). It distinguishes this from sibling tools like edit_role, delete_role, and assign_role, leaving no ambiguity about its purpose.

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 use when a new role is needed, but it does not explicitly state when to use this tool versus alternatives such as editing an existing role or assigning a role to a member. There is no mention of prerequisites or conditions for creation.

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

discord_create_text_channelA

Creates a new text channel in a Discord server with an optional topic and parent category

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNo
guildIdYes
categoryIdNoParent category ID to place the channel under
channelNameYes

TDQS

A3.5/5.0
Behavior3/5

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

The description covers the creation action and optional fields, but lacks details about required permissions, effects on existing channels, or behavior on failure. With no annotations, the description carries the full burden but falls short of full 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?

The description is a single, concise sentence with no redundant content. It efficiently communicates the core action and optional parameters.

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

Completeness3/5

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

With no output schema, the description need not explain return values, but it omits potential side effects, permission requirements, and error conditions. For a simple create operation, it is adequate but not fully complete.

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

Parameters3/5

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

Only categoryId has a schema description. The description mentions 'topic' and 'parent category' but does not clarify guildId or channelName (though channelName is inferable). Schema coverage is 25%, so the description adds some value but leaves 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 a specific verb ('creates'), resource ('text channel in a Discord server'), and includes optional parameters ('topic and parent category'). It distinguishes itself from sibling tools like create_voice_channel and create_forum_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 explicit guidance is given on when to use this tool versus alternatives such as create_voice_channel or create_category. The description only describes the action without contextual use cases.

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

discord_create_voice_channelB

Creates a new voice channel in a Discord server with an optional parent category

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
guildIdYes
userLimitNoMaximum number of users allowed (0 for unlimited)
categoryIdNoParent category ID to place the channel under
channelNameYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing side effects. It only states the creation action but does not mention required permissions (e.g., 'manage channels'), potential failures, or any other behavioral implications beyond the obvious creation.

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 efficiently conveys the tool's purpose and key optional aspect. No redundant information or filler is present.

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 is adequate for a simple creation tool but lacks context about expected input format, possible constraints (e.g., name length), and return/output information. However, since no output schema is required and the operation is straightforward, the missing context is minor.

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 schema covers 5 parameters, but only userLimit and categoryId have descriptions (40% coverage). The description does not compensate: it does not explain guildId, channelName, or reason. While some are self-evident from names, the lack of explicit semantic context for half the parameters leaves ambiguity.

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's verb ('Creates'), resource ('a new voice channel'), and scope ('in a Discord server'), with an optional parent category. It is easily distinguishable from sibling tools like discord_create_text_channel and discord_create_forum_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?

The description does not provide explicit guidance on when to use this tool versus alternatives. It does not mention scenarios where voice channels are needed or contrast with other channel creation tools, leaving the agent to infer usage from the tool name alone.

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

discord_create_webhookC

Creates a new webhook for a Discord channel

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
avatarNo
reasonNo
channelIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It implies a mutating create operation but does not mention permissions, return values (e.g., webhook URL/ID), or whether the webhook is immediately usable.

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 filler and is front-loaded with the verb and object. However, it is slightly under-specified for the number of parameters, so it does not earn a perfect score.

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 4-parameter creation tool with no annotations and no output schema, this one-sentence description is inadequate. Missing return value details, parameter semantics, and usage context.

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 0%, and the description only adds that the target is a Discord channel, providing minimal clarification for channelId. The 'name', 'avatar', and 'reason' parameters remain semantically 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 identifies the action ('Creates') and the resource ('a new webhook for a Discord channel'), making it easy to distinguish from sibling tools that edit, delete, or send webhook 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 is provided on when to use this tool versus alternatives such as discord_edit_webhook or discord_send_webhook_message. It omits prerequisites like authentication or channel permissions.

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

discord_delete_categoryB

Deletes a Discord category by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
categoryIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It states the action and identifies the parameter, but it does not mention the irreversible nature of deletion, potential cascading effects on child channels, required permissions, or success/failure behavior. This is a significant gap 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that immediately conveys the core action and target. Every word is essential, and there is no redundancy or filler.

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

Completeness2/5

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

For a destructive tool with no output schema and minimal annotations, this description is inadequate. It does not explain the consequences of deleting a category, the purpose of the 'reason' field, or any error conditions. Users are left without crucial context for a high-impact operation.

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 0%, so the description must clarify parameters. It only implies the role of 'categoryId' by saying 'by ID' but completely ignores the optional 'reason' parameter, leaving its purpose and format ambiguous.

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 ('Deletes') and the specific resource ('Discord category') with an explicit identifier ('by ID'). It successfully distinguishes itself from sibling tools like discord_delete_channel, which target a different Discord entity.

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

Usage Guidelines2/5

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

No explicit guidance is given on when to use this tool versus alternatives such as discord_delete_channel. The description only implies that it is for deleting categories but does not mention exclusions, prerequisites, or scenarios where a different tool would be appropriate.

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

discord_delete_channelB

Deletes a Discord channel with an optional reason

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
channelIdYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but omits consequences such as irreversibility, permission requirements, impact on messages or child objects, and rate limits. For a destructive operation, this is a significant transparency gap.

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

Conciseness5/5

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

The description is a single concise sentence that directly states the action and the optional parameter. It is efficient and easily parsed, with no wasted words.

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

Completeness3/5

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

Given the tool's simplicity (two parameters, no output schema), the description is minimally adequate but not complete. It lacks any discussion of side effects, permissions, or error scenarios, which are important for a destructive operation. It does not explain the return value or success indicators, but no output schema exists to compensate.

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 0%, so the description must compensate. It mentions 'an optional reason' and implies channelId, but does not explain what each parameter is for (e.g., reason for audit logs) or expected formats. This adds minimal meaning beyond the 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 clearly states the action ('Deletes') and the resource ('a Discord channel'), which precisely distinguishes it from sibling tools like discord_delete_message and discord_delete_webhook. It also mentions the optional reason, adding a small scope detail.

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. It does not mention prerequisites, exclusions, or scenarios where other delete tools should be preferred. The bare description leaves the agent to infer usage solely from the tool name.

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

discord_delete_forum_postC

Deletes a forum post or thread with an optional reason

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
threadIdYes

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 the full burden of behavioral disclosure. It merely states the action and the optional reason, without mentioning permissions, irreversibility, side effects on replies, or error behavior. This adds little beyond the tool name.

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 that directly states the action and the optional parameter. Every word is essential, with no redundant information or 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 the destructive nature of deletion, the lack of annotations, and the absence of an output schema, the description should at least note irreversibility, required permissions, or what happens to related content. The current description is too sparse to fully inform an agent.

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 schema has 0% description coverage, so the description must compensate. It mentions the 'optional reason' but does not explain its purpose or usage. The threadId parameter is not described beyond being required, which is already evident from the schema. Minimal added meaning.

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

Purpose4/5

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

The description uses the specific verb 'Deletes' and identifies the resource as 'forum post or thread', clearly distinguishing it from sibling deletion tools like discord_delete_category, discord_delete_channel, and discord_delete_message. However, it does not explicitly differentiate from alternatives, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as discord_delete_message or discord_delete_channel. The description lacks any context about preferred scenarios, prerequisites, or exclusions.

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

discord_delete_messageB

Deletes a specific message from a Discord text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
channelIdYes
messageIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing behavior. It only states the action ('Deletes') without mentioning irreversibility, permissions, error handling, or side effects. The agent is not informed that deletion is permanent or what happens if the message does not exist.

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 with the verb and provides the essential information in a concise, well-structured format.

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 is simple, but the description lacks necessary context for an agent to make a fully informed choice. It does not address alternative delete tools, behavioral implications, or parameter usage, leaving gaps that a richer description should fill.

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, so the description must compensate. It implies the need for channelId and messageId via 'text channel' and 'specific message', but does not explicitly name them or explain the optional 'reason' parameter. This adds minimal meaning 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 states a specific verb ('Deletes') and resource ('a specific message from a Discord text channel'), clearly distinguishing it from sibling delete tools for categories, channels, and forum posts. The purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives, such as deleting an entire channel or a forum post. There is no mention of prerequisites, permissions, or exclusion conditions, leaving the agent to infer usage from context.

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

discord_delete_roleA

Deletes a role from a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
roleIdYes
guildIdYes

TDQS

A3.6/5.0
Behavior4/5

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

The description states the core destructive action ('Deletes a role'), which is transparent about the primary effect. However, it does not mention irreversibility, potential cascading effects like permission removals, or required permissions, but since no annotations are present, the description carries the full burden and is reasonably clear.

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 with no unnecessary words or filler. It directly states the action and target, which is optimal for a simple delete operation.

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 provides the essential 'what' but lacks contextual details such as required permissions, error conditions, or a distinction from removing a role from a member. For a simple deletion, it is adequate but not fully comprehensive.

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 no parameter descriptions, and the tool description does not explain the purpose of guildId, roleId, or reason. The description fails to compensate for the zero schema coverage, leaving parameter semantics entirely 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 specific action ('Deletes a role') and the resource ('Discord server'), making it unambiguous and distinct from sibling tools like discord_remove_role, which would refer to removing a role from a member.

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

Usage Guidelines3/5

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

The description implies when to use this tool (to permanently delete a role definition) but does not explicitly contrast it with alternatives such as discord_remove_role (removing a role from a member) or discord_edit_role. No explicit 'when not to use' guidance is provided.

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

discord_delete_webhookC

Deletes an existing webhook for a Discord channel

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
webhookIdYes
webhookTokenNo

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose any behavioral traits such as irreversibility, required permissions, or side effects. With no annotations provided, the description carries the full burden but fails to warn that deletion is permanent or that a webhook token may be required.

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

Conciseness5/5

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

The description is a single concise sentence with no superfluous words. It efficiently states the core action without waste, making it appropriately sized.

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 is destructive, has three parameters, zero schema descriptions, and no output schema or annotations. The description omits parameter purposes, irreversibility, authentication requirements, and any usage context, making it inadequate for a complete understanding.

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 adds no information about the parameters. It does not explain the purpose or format of webhookToken or reason, nor does it clarify which identifier is required. The description does not 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 tool's specific action: 'Deletes an existing webhook for a Discord channel.' It uses the verb 'deletes' with a specific resource, distinguishing it from siblings like discord_create_webhook and discord_edit_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?

The description provides no guidance on when to use this tool versus alternatives like discord_edit_webhook or discord_send_webhook_message. It only states the action without any context or exclusions, leaving the agent without direction.

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

discord_edit_categoryB

Edits an existing Discord category (name and position).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
reasonNo
positionNo
categoryIdYes

TDQS

B3.3/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 says 'edits' without detailing required permissions, side effects, error behavior, or what happens if the category does not exist. 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 filler. Every word adds value, front-loading the action and resource immediately.

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 4 parameters, no annotations, and no output schema, yet the description is minimal. It lacks details about optionality, update semantics, return values, and failure modes, making it incomplete for reliable 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?

The description only mentions 'name and position', leaving 'categoryId' and 'reason' unexplained. Given the schema has 0% coverage, the description fails to clarify the purpose of 'reason' or the semantics of 'position'. It partially compensates but not adequately.

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 'Edits' with a clear resource 'Discord category' and specifies the editable fields 'name and position'. This clearly distinguishes it from sibling tools like create_category and delete_category.

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 the tool is for modifying existing categories but does not explicitly state when to use it versus create/delete or mention any prerequisites. It provides minimal guidance but is not misleading.

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

discord_edit_channelA

Edits a Discord channel's name, topic, parent category, or position

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew name for the channel
topicNoNew topic for the channel
reasonNoReason for editing (shown in audit log)
parentIdNoThe ID of a category to move the channel under
positionNoNew position of the channel in the list
channelIdYesThe ID of the channel to edit

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing side effects. It only states the action 'edits' without mentioning potential consequences like permission requirements, channel reordering effects, or failure modes when the channel does not exist.

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 conveys the tool's purpose without redundancy or 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?

The description covers the core purpose and all parameters are explained in the schema. However, it does not mention return behavior or error handling, which would be useful for a mutation tool, especially since no annotations provide such context.

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

Parameters3/5

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

The schema has 100% coverage with descriptions for all six parameters. The description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'Edits' and the specific resource 'Discord channel', listing the four editable attributes (name, topic, parent category, position). This distinguishes it from sibling tools like create or delete channel operations.

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 modifying existing channels but does not explicitly state when to prefer this tool over alternatives like discord_edit_category or discord_edit_message. No annotations provide additional context.

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

discord_edit_messageA

Edits a message previously sent by the bot. Only messages authored by the bot can be edited.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe new content for the message
channelIdYesThe ID of the channel containing the message
messageIdYesThe ID of the message to edit

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses a key behavioral limitation (only bot-authored messages can be edited), which is directly relevant to the caller. However, it does not mention other behaviors such as error handling, rate limits, or idempotency. Since no annotations are provided, the description carries the full burden and provides partial but meaningful transparency.

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

Conciseness5/5

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

The description is a single, concise sentence with no redundant information. It is well-structured and front-loaded with the action verb, making it easy to parse.

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

Completeness5/5

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

For a simple edit operation with no output schema and no annotations, the description and parameter schema are sufficient. The critical constraint (bot-authored only) is stated, and all required parameters are documented. No additional context is necessary.

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 provides 100% coverage with clear descriptions for all three parameters (content, channelId, messageId). The tool description adds no additional parameter context, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool edits a previously sent bot-authored message, using a specific verb and resource. It differentiates from sibling tools like discord_delete_message, discord_send, and discord_pin_message by focusing on editing and the bot-authorship constraint.

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 description provides a clear usage constraint: only messages authored by the bot can be edited. This implicitly guides when to use this tool (for bot messages) versus alternatives, though it does not explicitly name other tools. The restriction is sufficient for most cases.

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

discord_edit_roleB

Edits an existing role in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
colorNoHex color string (e.g. '#FF0000') or color name
hoistNo
reasonNo
roleIdYes
guildIdYes
positionNoNew position in the role hierarchy
mentionableNo
permissionsNoArray of permission flag names

TDQS

B3.1/5.0
Behavior2/5

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

The description does not disclose side effects, such as whether the role is partially updated, whether it fails if the role does not exist, or if it requires specific permissions. No annotations are provided to supplement this.

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 without unnecessary verbosity.

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 editing a role (9 parameters, no output schema), the description is minimal. It does not explain return values, error conditions, or how to identify the role beyond the roleId parameter, leaving significant gaps for an agent.

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 3 of 9 parameters (color, position, permissions) have descriptions in the schema. The tool description itself adds no parameter semantics, and the remaining parameters (name, hoist, reason, roleId, guildId, mentionable) rely solely on self-explanatory 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 clearly states the action (edits) and the resource (existing role in a Discord server), distinguishing it from sibling tools like discord_create_role and discord_delete_role.

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

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 discord_create_role or discord_assign_role. It does not mention prerequisites like needing the role ID or permissions.

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

discord_edit_webhookC

Edits an existing webhook for a Discord channel

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
avatarNo
reasonNo
channelIdNo
webhookIdYes
webhookTokenNo

TDQS

C2.5/5.0
Behavior1/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 but does not. It merely states 'Edits an existing webhook' with no mention of side effects, required permissions, reversibility, or what happens to the webhook configuration. This is a significant transparency gap for a mutation tool.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is concise and grammatically clear, but the lack of any additional structure (e.g., parameter hints) makes it less helpful than its brevity might suggest.

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 tool with six parameters, no annotations, and no output schema, the description provides almost no context. It does not explain return values, error conditions, or parameter relationships, making it inadequate for an agent to invoke the tool correctly in diverse contexts.

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 mention any of the six parameters (name, avatar, reason, channelId, webhookToken). The agent receives no semantic context for the parameters beyond their names, which is insufficient for correct invocation.

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 'Edits' and clearly identifies the resource as 'an existing webhook for a Discord channel.' This distinguishes it from sibling tools like discord_create_webhook and discord_delete_webhook, making the purpose unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as discord_create_webhook or discord_send_webhook_message. It does not mention prerequisites, typical use cases, or exclude scenarios, leaving the agent without decision support.

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

discord_get_forum_channelsA

Lists all forum channels in a specified Discord server (guild)

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It accurately conveys the read-only nature ('Lists') and the scope, but it does not disclose return format, authentication requirements, or potential errors. The description is adequate but lacks extra 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no fluff. It immediately states the action and object, making it efficient and easy to parse.

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

Completeness3/5

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

The tool is simple with one parameter, and the description covers purpose and scope well. However, with no output schema or annotations, it does not describe return values or any prerequisites (e.g., login), leaving a small but notable gap.

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

Parameters4/5

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

The input schema has 0% description coverage, but the description compensates by clarifying that 'guildId' refers to 'a specified Discord server (guild)'. This adds meaning beyond the parameter name and helps agents understand the expected value, though it doesn't specify format or how to obtain the 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 states a specific action ('Lists') on a clear resource ('forum channels') with a defined scope ('in a specified Discord server (guild)'). This clearly distinguishes it from sibling tools like discord_get_forum_post (which retrieves a single post) and discord_list_servers (which lists servers, not channels).

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 description provides clear context for when to use the tool: whenever all forum channels in a guild are needed. However, it does not explicitly mention exclusions or alternatives (e.g., use discord_get_forum_post for a specific post), but the context is unambiguous enough for an agent to select appropriately.

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

discord_get_forum_postB

Retrieves details about a forum post including its messages

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYes

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 carries full burden. It only states the purpose and does not disclose any behavioral traits such as permissions, side effects, error handling, or return format specifics.

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 conveying the tool's function.

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

Completeness3/5

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

The tool is simple (one param, no output schema), and the description gives a high-level return overview ('details... including its messages'). However, it lacks parameter mapping and any mention of response structure or error conditions, leaving notable gaps.

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 mention the threadId parameter at all. It fails to add any meaning beyond the bare schema field name 'threadId'.

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 uses specific verb 'retrieves' and resource 'forum post', and clarifies it includes messages. This clearly distinguishes it from sibling tools like discord_get_forum_channels (which lists channels) and discord_read_messages (which reads general 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. It doesn't mention scenarios, exclusions, or alternatives, so the agent receives no contextual decision support.

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

discord_get_forum_tagsA

Gets all available tags for a Discord forum channel, including tag IDs, names, and emoji

ParametersJSON Schema
NameRequiredDescriptionDefault
forumChannelIdYesThe ID of the forum channel to get tags from

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. The verb 'Gets' clearly implies a read-only operation with no side effects, though it does not explicitly state that no mutations occur or mention permissions.

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

Conciseness5/5

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

One concise sentence with no extraneous information. Efficiently communicates the tool's purpose and return value.

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

Completeness4/5

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

Despite lacking an output schema, the description explicitly lists what is returned (tag IDs, names, emoji). Covers the essential context for the tool's use, though it does not mention potential errors or permission requirements.

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 covers 100% of parameters with a clear description. The description does not add additional meaning beyond the schema, which is appropriate since the schema already explains the parameter.

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

Purpose5/5

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

States a specific verb 'Gets' and resource 'all available tags for a Discord forum channel', including tag IDs, names, and emoji. Clearly distinguishes from sibling tools like discord_set_forum_tags (writes tags) and discord_get_forum_channels (lists channels).

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 makes the tool's purpose clear but does not explicitly state when to use it over alternatives or provide exclusions. No guidance on when to prefer this tool over discord_get_forum_channels or discord_set_forum_tags.

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

discord_get_memberB

Gets detailed information about a specific member in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYes
guildIdYes

TDQS

B3/5.0
Behavior3/5

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

The verb 'Gets' clearly implies a read-only operation, providing basic transparency. However, with no annotations and no mention of failure modes or response shape, the description carries the full burden and reveals only minimal behavioral detail.

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

Conciseness5/5

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

The description is a single, clear sentence with no redundancy or irrelevant information. It is efficiently structured and easy to parse.

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

Completeness2/5

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

Given there is no output schema and no annotations, the description is too sparse to be fully self-contained. It lacks parameter explanations and any guidance on when to use this tool, making it insufficient for an agent to invoke confidently with correct and complete context.

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 no descriptions for guildId or userId, and the description does not explain the parameters. It refers to 'a specific member in a Discord server,' but does not explicitly map guildId to the server and userId to the member, leaving inference to the reader.

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

Purpose4/5

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

The description uses the clear verb 'Gets' and identifies the resource as 'detailed information about a specific member in a Discord server.' It stands apart from sibling tools like discord_list_members and discord_get_server_info, though 'detailed information' is somewhat vague.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool over alternatives such as discord_list_members. The description does not indicate conditions for selecting this member-specific lookup.

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

discord_get_reaction_usersA

Lists the users who reacted with a specific emoji to a Discord message. Uses REST fetch and does not require Gateway intents. Returns up to 100 users per call.

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYesUnicode emoji name (e.g. '🟢') or custom emoji name.
limitNo
channelIdYes
messageIdYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the transport (REST fetch), the lack of Gateway intents, and the 100-user cap per call, but omits permission requirements and error behavior.

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

Conciseness5/5

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

Two concise sentences with no redundant information; the main purpose is front-loaded.

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

Completeness4/5

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

For a simple read operation, the description covers the core behavior, return cap, and transport. Lacks explicit pagination/error details but is adequate given the tool's simplicity.

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 25% (only emoji has a description). The description adds minimal parameter insight—emoji and limit are implicitly described, but channelId and messageId are not elaborated, and the limit's pagination behavior is only hinted at.

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 the action ('Lists') and the target ('users who reacted with a specific emoji to a Discord message'). This distinguishes it from sibling tools like discord_add_reaction or discord_read_messages.

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

Usage Guidelines3/5

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

Provides some technical context (REST fetch, no Gateway intents) and return limit, but does not explicitly state when to prefer this over alternatives or mention pagination strategy beyond 'per call'.

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

discord_get_server_infoB

Retrieves detailed information about a Discord server including channels and member count

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdYes

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 only states 'retrieves detailed information' without revealing the response format, error behavior, or permission requirements. The verb 'retrieves' implies read-only, but no further behavioral context is added.

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 that immediately states the tool's action, with no filler or repetition. Every word contributes to the purpose.

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 mentions two output elements (channels, member count) but calls the result 'detailed information' without further structure. There is no output schema, so the agent cannot anticipate the full return value, and prerequisites such as bot membership are not mentioned. For a simple one-parameter read, this is adequate but has clear gaps.

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 schema has zero description for `guildId`, and the tool description does not explain that this ID is the Discord server ID or how to find it. With 0% schema coverage, the description fails to compensate, leaving the sole parameter ambiguous for an agent.

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 'retrieves' and identifies the resource as a 'Discord server', with concrete examples ('channels and member count'). This clearly differentiates it from siblings like discord_list_servers, which lists servers, and discord_get_forum_channels, which targets a specific channel type.

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 about when to use this tool versus alternatives. It does not mention discord_list_servers for discovering server IDs, nor does it note any prerequisites or exclusion criteria, leaving the agent without decision support.

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

discord_list_forum_threadsA

Lists all threads (posts) in a Discord forum channel, including both active and archived threads

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of archived threads to fetch (default: 100, max: 100)
forumChannelIdYesThe ID of the forum channel to list threads from
includeArchivedNoWhether to include archived threads (default: true)

TDQS

A3.7/5.0
Behavior2/5

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

The description claims to list 'all threads' but the schema's `limit` parameter defaults to 100 and maxes at 100 for archived threads, so it may not truly list all if there are more than 100 archived threads. This limitation is not disclosed in the description, making it potentially misleading.

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 that starts with the verb 'Lists' and succinctly states the tool's purpose. It is appropriately concise with no extraneous information.

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 there is no output schema, the description does not need to detail return values, but it omits the limit behavior on archived threads, which is a key operational detail. The description is otherwise complete for a tool of this simplicity, but the limit omission is a gap.

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

Parameters3/5

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

The schema already provides full descriptions for all three parameters (forumChannelId, limit, includeArchived), so the description adds little beyond reinforcing that both active and archived threads are included. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Lists' and identifies the resource as 'threads (posts) in a Discord forum channel', clearly distinguishing from sibling tools like discord_get_forum_channels or discord_create_forum_post. It also notes inclusion of both active and archived threads, which adds specificity.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool – whenever a client needs to enumerate forum threads. It doesn't explicitly name alternatives, but the function is self-evident from the name and description. No misleading guidance.

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

discord_list_membersB

Lists members in a Discord server with their roles

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoUser ID to paginate after
limitNoMaximum number of members to return (default 100, max 1000)
guildIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It notes only that members are listed and does not disclose pagination behavior, rate-limit implications, member-intent requirements, or that results may be incomplete without specific permissions.

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

Conciseness5/5

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

One clear, compact sentence with no redundancy or extraneous information.

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 is enough for basic invocation but lacks context about return shape, pagination loop, or permissions. Since no output schema exists, the description could have explained what the result contains beyond 'members with roles'.

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 provides descriptions for after and limit; guildId has no description but the main description clarifies it is the Discord server. The description adds little beyond the schema, so a middle score 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?

Description states a specific action (lists members), resource (Discord server), and includes roles in output. It is distinct from sibling tools like discord_get_member and discord_list_roles.

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

Usage Guidelines1/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 instead of alternatives such as discord_get_member for single members or discord_list_roles for roles, nor any context about pagination or large servers.

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

discord_list_pinned_messagesA

Lists the pinned messages of a channel, newest pin first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of pinned messages to return (1-50, default 50)
channelIdYesThe ID of the channel to list pinned messages from

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It implies a read-only operation through the word 'Lists', but does not explicitly state side effects, error behavior, or ordering details beyond 'newest pin first'.

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 concise sentence with no redundant words. All information is front-loaded and purpose-driven.

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

Completeness4/5

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

For a simple read operation with well-described parameters, the description is sufficiently complete. It does not specify the return format or structure, but that is likely inferred from the sibling message-list tools. No output schema exists, so some ambiguity remains.

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

Parameters3/5

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

Both parameters have schema descriptions that fully explain their meaning and constraints (channelId required, limit with range and default). The description adds no additional semantic value beyond restating 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 the verb 'Lists' and the resource 'pinned messages of a channel', distinguishing it from general message-reading tools like discord_read_messages or discord_search_messages.

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

Usage Guidelines4/5

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

The description makes its purpose obvious without explicit when-to-use guidance. It implies this is the dedicated tool for retrieving pinned messages, but does not explicitly contrast it with alternatives or mention prerequisites like permissions.

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

discord_list_rolesA

Lists all roles in a Discord server with their properties

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdYes

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden of disclosing behavior. The word 'lists' indicates a read-only operation with no side effects, and 'with their properties' hints at the output structure. It lacks details on errors or permissions, but these are not critical for a basic listing 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, concise sentence with no redundant words. It is well-structured and front-loaded with the main action and resource.

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

Completeness3/5

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

There is no output schema, and the description only vaguely states 'with their properties' without specifying what those properties are or the format of the response. While an agent familiar with Discord might infer the standard role fields, the description leaves room for ambiguity and is not fully complete for a tool with no output schema.

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 one parameter, guildId, with no description. The tool description does not explain what guildId is, though it is reasonably inferable from the context of 'Discord server'. Since schema coverage is 0% and the description fails to clarify the parameter, it does not compensate for the missing schema details.

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 (list) and the resource (roles in a Discord server) with their properties. It is distinct from sibling tools like create_role, edit_role, or assign_role, so an agent can easily identify when to use it.

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 description implies usage for viewing server roles, and it is obviously a read-only operation. However, it does not explicitly contrast with alternative tools or state conditions for use, though the simple nature makes such guidance less necessary.

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

discord_list_serversA

Lists all Discord servers the bot is a member of

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations to signal side effects, the description itself conveys that this is a read-only listing operation scoped to the bot's memberships. It does not mention return format or potential edge cases, but the behavior is straightforward.

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 sentence with no unnecessary words. It fully names the action and scope without redundancy.

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

Completeness5/5

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

For a simple no-parameter listing tool, the description is sufficient for an agent to understand what will happen. It clearly states the scope (servers the bot belongs to) and that it returns all of them, so no further context is needed.

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

Parameters4/5

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

The tool has zero parameters, so the description need not describe any inputs. The 0-params baseline applies, and no further parameter-level clarification is necessary.

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 ('Lists') and the resource ('all Discord servers the bot is a member of'), which is distinct from sibling tools like get_server_info that target a specific server.

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

Usage Guidelines3/5

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

The description makes the tool's scope clear but does not explicitly say when to use it versus alternatives. Given there is no direct sibling for listing all servers, the intended use is largely inferable, but explicit guidance is missing.

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

discord_loginB

Logs in to Discord using the configured token

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as side effects, session persistence, idempotency, or error behavior. It merely states 'logs in' without explaining what that entails.

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 redundant words. It conveys the essential action and resource efficiently.

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 is login-related and has no output schema, so the description should explain what success/failure looks like and whether the login persists. It does neither, leaving the agent with ambiguity about the tool's full behavior.

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 0%, so the description must compensate. It references 'the configured token' but does not clarify the role of the optional 'token' parameter—whether it overrides a default, is required for login, or has any constraints.

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 ('Logs in') and resource ('Discord'), and specifies it uses a token. This distinguishes it from the sibling tools, which perform content creation, editing, or messaging 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 is provided on when to use this tool versus alternatives, or that it likely must precede other Discord operations. The description does not mention any exclusions or preconditions.

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

discord_pin_messageB

Pins a message to its channel. A channel can hold at most 50 pinned messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional reason for audit logs
channelIdYesThe ID of the channel containing the message
messageIdYesThe ID of the message to pin

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations available, the description must carry the full behavioral transparency burden. It does disclose the 50-pin limit, which is useful, but it does not mention potential failure conditions (e.g., exceeding the limit, missing permissions) or any side effects beyond the pinning action itself.

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

Conciseness5/5

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

The description is a single, tightly worded sentence. The primary action is front-loaded, and there is no superfluous information. It achieves high clarity with minimal length.

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

Completeness4/5

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

For a simple tool with no output schema, the description covers the essential behavior and mentions the key constraint. It lacks only a note about permissions or error scenarios, but these are not critical for basic understanding or invocation. Overall, it is sufficiently complete for this complexity level.

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 already provides clear descriptions for both channelId and messageId, and the tool description adds no further semantic detail about these parameters. Since schema coverage is 100%, the baseline score of 3 is appropriate; no extra value is contributed.

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 primary action ('Pins a message to its channel') with a specific verb and resource. It is immediately obvious what the tool does, and it is distinct from sibling actions like unpinning or listing pinned messages.

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

Usage Guidelines2/5

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

No explicit guidance is provided about when to use this tool versus alternatives such as discord_unpin_message or discord_list_pinned_messages. The mention of the 50-pin limit is a constraint, not usage direction, so the description lacks the 'when to use vs alternatives' clarity.

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

discord_read_messagesA

Retrieves messages from a Discord text channel. Supports date-based filtering via before/after/around params (accepts snowflake IDs or ISO 8601 dates).

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoSnowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages after this point.
limitNo
aroundNoSnowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages around this point.
beforeNoSnowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages before this point.
channelIdYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full transparency burden. It states that the tool 'retrieves' messages (implying read-only), but it does not mention side effects, required permissions, rate limits, pagination behavior, or whether the operation is idempotent. This is insufficient for a tool that could have security or API-cost implications.

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 two concise sentences. The primary action is front-loaded ('Retrieves messages...'), followed immediately by the key filtering feature. No redundant or filler content is present.

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 core function and filtering capabilities, but it does not describe the output format (no output schema exists) or specify ordering, attachment handling, or pagination beyond the limit parameter. This leaves some context gaps for an agent planning a call, though the essential operation is clear.

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?

Three of five parameters (after, around, before) have detailed descriptions in the schema, and the tool description reinforces their meaning. However, limit and channelId lack descriptions, leaving some ambiguity for agents. The 60% schema coverage is moderate, and the descriptions provided are clear, but the missing ones reduce completeness.

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's purpose: 'Retrieves messages from a Discord text channel.' This is a specific verb and resource, and it distinguishes the tool from siblings like discord_search_messages, which presumably performs keyword searches rather than plain retrieval.

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

Usage Guidelines3/5

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

The description mentions date-based filtering via before/after/around parameters, but it does not explicitly contrast this with sibling tools such as discord_search_messages or discord_list_pinned_messages. The intended use case is implied (fetching message history) but not explicitly stated.

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

discord_remove_channel_permissionsA

Removes all permission overrides for a role or user on a channel or category

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
roleIdYesRole or user ID to remove overrides for
channelIdYesChannel or category ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full transparency burden. It states the core behavior clearly but does not mention side effects such as reverting to inherited/default permissions, required permissions, or irreversibility.

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 with no redundant information, fluff, or unnecessary detail.

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

Completeness4/5

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

For a simple mutation tool with no output schema, the description provides sufficient context about what action is performed. It could be slightly more complete by mentioning the effect on inherited permissions, but the core context is covered.

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

Parameters3/5

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

Schema coverage is 67%, above the 50% threshold, so baseline is 3. The description does not add any parameter meaning beyond the existing schema descriptions for channelId and roleId, and reason remains 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 uses a specific verb 'Removes' and clearly identifies the resource and scope: all permission overrides for a role or user on a channel or category. It is easily distinguishable from the sibling tool discord_set_channel_permissions.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when all overrides need to be removed) but does not explicitly contrast it with alternatives like discord_set_channel_permissions or provide guidance on when not to use it.

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

discord_remove_reactionB

Removes a specific emoji reaction from a Discord message

ParametersJSON Schema
NameRequiredDescriptionDefault
emojiYes
userIdNo
channelIdYes
messageIdYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the core action without explaining important behaviors such as whether it can remove reactions from other users, what happens if the reaction does not exist, or whether special permissions are required. The optional 'userId' parameter's role in removing others' reactions is not 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, clear sentence with no wasted words. It is front-loaded with the verb 'Removes' and immediately specifies the resource. It is appropriately concise for a simple operation.

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 no annotations, yet the description provides no additional context about return values, error handling, permissions, or edge cases. The optional 'userId' parameter is left unexplained, making the description incomplete for a tool with four parameters and zero schema documentation.

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 schema has 0% description coverage, and the description itself provides no parameter explanations. It does not clarify the meaning of 'channelId', 'messageId', 'emoji', or especially the optional 'userId'. The description adds no value beyond the parameter names, leaving all four parameters semantically 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 ('Removes') and the resource ('a specific emoji reaction from a Discord message'). It distinguishes itself from sibling tools like discord_add_reaction and discord_delete_message by specifying the precise operation of removing a single reaction.

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

Usage Guidelines3/5

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

The description implies when to use this tool (when a specific emoji reaction needs to be removed), but it does not provide explicit alternatives or exclusions. There is no mention of when not to use it, such as when removing all reactions or when needing to delete the entire message, which would be handled by sibling tools.

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

discord_remove_roleA

Removes a role from a member in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
roleIdYes
userIdYes
guildIdYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden but only states the core action. It does not disclose potential side effects, permission requirements, or behavior on failure (e.g., role not found), leaving some ambiguity.

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 redundant information, making it optimally 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 simplicity of the operation, the description is minimal but omits any context about prerequisites (e.g., role existing, member being in server), success/failure outcomes, or permission requirements. The lack of annotations and parameter details makes this incomplete for an agent to fully understand the tool's behavior.

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 schema has no parameter descriptions (0% coverage), and the tool description does not explain any of the parameters. While guildId, userId, and roleId are self-explanatory, the purpose of 'reason' (likely an audit log note) is not clarified, so the description fails to compensate for the missing schema details.

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 ('Removes a role from a member') and the resource (Discord server), and it is easily distinguishable from sibling tools like discord_assign_role which performs the opposite operation.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when a role needs to be removed) but does not explicitly contrast it with alternatives such as discord_assign_role or provide conditions for when not to use it.

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

discord_reply_to_forumB

Adds a reply to an existing forum post or thread

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
threadIdYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states 'Adds a reply' which indicates a mutation, but it does not clarify authentication requirements, side effects, return values, or behavior for invalid thread IDs. The brief description leaves ambiguity about whether this posts a new message in the thread or uses Discord's reply feature.

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, front-loaded with the verb and object, with no redundant information.

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 (2 params, no output schema), the description is minimal but lacks essential context such as prerequisites (login, valid thread), return value, and any behavioral nuances. It is not complete enough for an agent to confidently invoke without additional context.

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 0% and the description does not mention the 'message' or 'threadId' parameters. The parameter names are somewhat self-explanatory, but the description adds no explicit meaning beyond what the schema provides. It fails the requirement to compensate for low 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 uses a specific verb 'Adds' and resource 'reply to an existing forum post or thread', clearly distinguishing it from sibling tools like create_forum_post (creates new) and send (sends to a channel). It unambiguously states the action and target.

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, no prerequisites or exclusions. The description implies usage for replying to existing threads but does not mention alternatives or when not to use.

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

discord_search_messagesC

Searches for messages in a Discord server

ParametersJSON Schema
NameRequiredDescriptionDefault
hasNoFilter messages that contain specific content types (e.g., link, embed, file, poll, image, video, sound, sticker, snapshot)
limitNoMaximum number of messages to return (default 25, max 100)
maxIdNoFilter messages with IDs less than this value (messages before this ID)
minIdNoFilter messages with IDs greater than this value (messages after this ID)
offsetNoNumber of messages to skip (for pagination)
pinnedNoFilter messages based on whether they are pinned
sortByNoSort results by 'timestamp' or 'relevance'
contentNoSearch for messages containing specific text
guildIdYesThe ID of the Discord server (guild) to search within
authorIdNoFilter messages by a specific user ID
mentionsNoFilter messages that mention a specific user ID
channelIdNoFilter messages within a specific channel ID
sortOrderNoSort order: 'desc' for descending or 'asc' for ascending
authorTypeNoFilter messages by author type (user, bot, webhook)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of explaining behavior. It only says 'Searches for messages' and does not disclose what is returned, whether pagination or filtering is supported, or that this is a read-only 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 unnecessary words or repetition. It is efficiently structured, though it is quite terse and lacks supporting detail.

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 — 14 parameters, multiple filters, sorting options, and a large set of sibling tools — the description is too sparse to provide adequate context. It does not explain that the tool supports message-content search, author filtering, pagination, or how it relates to simple message-reading 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?

All parameters have descriptions in the input schema, so the baseline is 3. The tool description itself does not add any extra semantic clarity beyond the schema, but the schema already provides adequate explanations for each parameter.

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

Purpose4/5

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

The description clearly states the action ('Searches') and the resource ('messages in a Discord server'), making the basic purpose obvious. It does not explicitly distinguish itself from sibling tools like discord_read_messages, but the term 'search' implies filtering rather than simply reading recent 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?

The description provides no guidance on when to use this tool versus alternatives such as discord_read_messages or discord_list_pinned_messages. It does not mention filters, use cases, or conditions that would make this tool the preferred choice.

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

discord_sendA

Sends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes
channelIdYes
replyToMessageIdNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the action and the reply option, but does not mention potential side effects like permissions failures, rate limits, or whether the message appears as the bot. For a simple send, this is acceptable but not highly transparent.

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 two sentences long and directly to the point. Every clause adds useful information—the primary action and the optional reply capability—with no unnecessary fluff.

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

Completeness4/5

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

Given the tool's simplicity, the description is sufficiently complete. It covers the main action, the target channel, and the reply feature. It does not specify return format or error behavior, but those are not critical for a send operation in this context.

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

Parameters4/5

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

The schema defines three parameters with no descriptions. The tool description clarifies channelId as a 'specified Discord text channel' and replyToMessageId as 'reply to another message by providing its message ID'. The 'message' parameter is self-explanatory. Coverage is good but not exhaustive.

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's function: sending a message to a Discord text channel. It distinguishes itself from siblings like discord_send_webhook_message (which sends via webhook) and discord_edit_message (which modifies existing messages).

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 description implies when to use it (for sending a message to a channel) and mentions the optional reply feature. It does not explicitly contrast with alternatives, but the sibling names make the primary use case obvious.

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

discord_send_webhook_messageB

Sends a message to a Discord channel using a webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
threadIdNo
usernameNo
avatarURLNo
webhookIdYes
webhookTokenYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It states the primary effect (sending a message) but gives no additional context about side effects, required permissions, error behavior, or irreversibility, which are relevant for a create-type action.

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 tool's purpose. Every word contributes, and it is not bloated or repetitive.

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 six parameters and no output schema or annotations, this description is too thin. It omits guidance on optional parameters, return behavior, failure cases, and validation, which are necessary for an agent to use the tool confidently in varied 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 0% schema description coverage, the description must compensate, but it only weakly maps 'message' to content and 'webhook' to webhookId/webhookToken. It provides no explanation for threadId, username, or avatarURL, leaving their purpose unclear.

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 starts with a specific verb 'Sends' and clearly identifies the resource as 'a message to a Discord channel'. The qualifier 'using a webhook' differentiates it from sibling tools like discord_send, which likely sends via a bot session, and discord_send_voice, which handles voice.

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

Usage Guidelines3/5

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

Usage is implied by 'using a webhook', suggesting it should be used when webhook credentials are available. However, it does not explicitly state when to prefer this over alternatives such as discord_send, nor does it mention prerequisites or exclusions.

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

discord_set_channel_permissionsA

Sets permission overrides for a role or user on a channel or category

ParametersJSON Schema
NameRequiredDescriptionDefault
denyNoPermission flags to deny (e.g. ['ViewChannel', 'SendMessages'])
allowNoPermission flags to allow (e.g. ['ViewChannel', 'SendMessages'])
reasonNo
roleIdYesRole or user ID to set permissions for
channelIdYesChannel or category ID

TDQS

A4/5.0
Behavior3/5

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

The description states the basic action but does not disclose side effects, such as whether existing overrides are replaced or merged, or whether specific permissions are required to perform the operation. No annotations are provided to supplement this information.

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 without unnecessary detail. It is well-structured and easy to parse.

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

Completeness4/5

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

The description provides sufficient context for the tool's main function and mentions both channel and category targets. It does not cover potential interactions between allow and deny arrays, but overall it is adequate given the simple scope and lack of output schema.

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?

Four of five parameters have clear descriptions (channelId, roleId, allow, deny) that go beyond the schema's type information. The 'reason' parameter lacks any description, leaving a small gap in completeness.

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 (sets), the object (permission overrides), and the target (role/user on channel/category). It effectively distinguishes itself from other channel-related tools like edit_channel or remove_channel_permissions.

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 when setting permissions but does not explicitly mention when to use this tool over alternatives such as remove_channel_permissions. No guidance is given regarding conditions or prerequisites.

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

discord_set_forum_tagsA

Sets the available tags for a Discord forum channel. Replaces all existing tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsYesArray of tag objects to set on the forum channel
forumChannelIdYesThe ID of the forum channel to set tags on

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the key behavioral aspect that this operation replaces all existing tags, which is destructive/overwriting. However, it does not mention permissions, side effects (e.g., removal of tags from posts), or error conditions, so it falls slightly short of full 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?

The description is two concise sentences, directly stating the action and the replacement behavior. There is no redundant or extraneous information, making it highly efficient for an agent to parse.

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

Completeness4/5

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

The description provides the essential purpose and behavior (full replacement) for a simple set operation. It does not mention return values or error conditions, but these are not critical for this tool's use. The absence of an output schema and the simplicity of the action make the description adequately complete.

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

Parameters3/5

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

The schema descriptions cover 100% of parameters and their nested fields, so the baseline is 3. The tool description does not add extra meaning to the parameters beyond what the schema already states—it only reiterates the purpose without clarifying parameter details or edge cases.

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's function: 'Sets the available tags for a Discord forum channel.' It specifies the resource (forum channel tags) and the action (set), and the additional note 'Replaces all existing tags' distinguishes it from retrieval or incremental update 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?

The description implies when to use this tool (when you need to replace the entire tag set) but does not explicitly compare it to alternatives like discord_get_forum_tags or discord_update_forum_post. The 'Replaces all existing tags' note is helpful, but there is no direct guidance on choosing this over other tag-related tools.

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

discord_unpin_messageA

Removes a message from its channel's pinned messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional reason for audit logs
channelIdYesThe ID of the channel containing the message
messageIdYesThe ID of the message to unpin

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of explaining behavior. It accurately states the primary effect (removing from pinned messages), but does not disclose potential side effects, permission requirements, or behavior when the message is not pinned.

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 one concise sentence that directly communicates the tool's function without unnecessary words or repetition.

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

Completeness4/5

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

For a simple unpin operation with a fully described parameter schema and no output schema, the description is sufficiently complete. It lacks only minor contextual details such as return behavior or error cases, which are not critical for basic 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 schema provides descriptions for all three parameters (channelId, messageId, reason), giving 100% coverage. The description adds no extra semantic detail beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Removes') and a specific object ('a message from its channel's pinned messages'), clearly distinguishing this tool from siblings like discord_pin_message, discord_list_pinned_messages, and discord_delete_message.

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

Usage Guidelines3/5

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

The description implies the use case—unpinning a previously pinned message—but does not explicitly state when to prefer this over alternatives or mention any contrast with related tools such as discord_pin_message or discord_delete_message.

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

discord_update_forum_postB

Updates a forum post's title, applied tags, archived status, locked status, or pinned status. Tags can be specified by name or ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew title for the forum post
tagsNoTags to apply (by name or ID). Replaces all existing tags.
lockedNoWhether to lock or unlock the post
pinnedNoWhether to pin or unpin the post at the top of its forum channel
archivedNoWhether to archive or unarchive the post
threadIdYesThe ID of the forum post/thread to update

TDQS

B3.4/5.0
Behavior2/5

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

There are no annotations, and the description does not disclose behavioral details such as whether tag replacement is idempotent, how locking/archiving interacts, or any side effects on the post. The schema notes that tags replace all existing tags, but the main description itself lacks such 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?

The description is a single, concise sentence that starts with the action verb 'Updates' and immediately lists the relevant fields. There is no redundant wording or extraneous information.

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

Completeness4/5

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

The description combined with the fully documented schema provides enough context for a straightforward update operation. It lacks only guidance on expected outcomes or errors, but these are not critical for invoking the tool with the provided parameters.

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

Parameters3/5

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

Schema parameter descriptions cover 100% of the parameters, so the baseline is 3. The main description adds no additional semantic detail beyond what the schema already provides; for example, 'Tags can be specified by name or ID' is already present in the schema description.

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 updates a forum post's title, tags, archived status, locked status, or pinned status. The verb 'Updates' and the specific resource and properties make the purpose unambiguous, and it differentiates from siblings like discord_set_forum_tags which only handles tags.

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 does not provide explicit guidance on when to use this tool versus alternatives such as discord_set_forum_tags or discord_delete_forum_post. There is no mention of conditions or scenarios that would favor this tool over siblings, leaving the user to infer usage from the property list.

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. 28 tool updatesv1.5.0
    • Addeddiscord_assign_role
    • Addeddiscord_create_forum_channel
    • Changeddiscord_create_forum_post1 field changed
      • addedInput schema / properties / pinned
        Added value: +{
        +  "description": "Pin the post to the top of the forum channel after creating it",
        +  "type": "boolean"
        +}
    • Addeddiscord_create_role
    • Changeddiscord_create_text_channel1 field changed
      • addedInput schema / properties / categoryId
        Added value: +{
        +  "description": "Parent category ID to place the channel under",
        +  "type": "string"
        +}
    • Addeddiscord_create_voice_channel
    • Addeddiscord_delete_role
    • Addeddiscord_edit_channel
    • Addeddiscord_edit_message
    • Addeddiscord_edit_role
    • Addeddiscord_get_forum_tags
    • Addeddiscord_get_member
    • Addeddiscord_get_reaction_users
    • Addeddiscord_list_forum_threads
    • Addeddiscord_list_members
    • Addeddiscord_list_pinned_messages
    • Addeddiscord_list_roles
    • Addeddiscord_list_servers
    • Addeddiscord_pin_message
    • Changeddiscord_read_messages3 fields changed
      • addedInput schema / properties / after
        Added value: +{
        +  "description": "Snowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages after this point.",
        +  "type": "string"
        +}
      • addedInput schema / properties / around
        Added value: +{
        +  "description": "Snowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages around this point.",
        +  "type": "string"
        +}
      • addedInput schema / properties / before
        Added value: +{
        +  "description": "Snowflake ID or ISO 8601 date (e.g. '2025-03-01T00:00:00Z'). Get messages before this point.",
        +  "type": "string"
        +}
    • Addeddiscord_remove_channel_permissions
    • Addeddiscord_remove_role
    • Addeddiscord_search_messages
    • Changeddiscord_send1 field changed
      • addedInput schema / properties / replyToMessageId
        Added value: +{
        +  "type": "string"
        +}
    • Addeddiscord_set_channel_permissions
    • Addeddiscord_set_forum_tags
    • Addeddiscord_unpin_message
    • Addeddiscord_update_forum_post
  2. 22 tool updatesv1.0.0
    • First observeddiscord_add_multiple_reactions
    • First observeddiscord_add_reaction
    • First observeddiscord_create_category
    • First observeddiscord_create_forum_post
    • First observeddiscord_create_text_channel
    • First observeddiscord_create_webhook
    • First observeddiscord_delete_category
    • First observeddiscord_delete_channel
    • First observeddiscord_delete_forum_post
    • First observeddiscord_delete_message
    • First observeddiscord_delete_webhook
    • First observeddiscord_edit_category
    • First observeddiscord_edit_webhook
    • First observeddiscord_get_forum_channels
    • First observeddiscord_get_forum_post
    • First observeddiscord_get_server_info
    • First observeddiscord_login
    • First observeddiscord_read_messages
    • First observeddiscord_remove_reaction
    • First observeddiscord_reply_to_forum
    • First observeddiscord_send
    • First observeddiscord_send_webhook_message

TDQS

C2.9/5.0

Scored across 46 tools

Disambiguation3/5

Multiple tools have overlapping purposes, such as 'discord_read_messages' vs 'discord_search_messages' and 'discord_reply_to_forum' vs 'discord_create_forum_post', which could confuse agents. The distinction between 'get', 'list', and 'read' is not always clear.

Naming Consistency4/5

All tools follow a consistent 'discord_verb_object' pattern, making the naming predictable. However, there is some verb variation (get, list, read, search) that slightly reduces strict consistency, but overall it is well-structured.

Tool Count1/5

With 46 tools, this far exceeds the recommended 3-15 scope for a well-designed MCP server. The high number of tools likely overwhelms agents and increases selection complexity, making it inappropriate for most use cases.

Completeness2/5

Despite the large number of tools, there are notable gaps such as missing getters for channels, webhooks, and roles (e.g., 'get_channel', 'list_webhooks'). Core operations like updating a message or deleting a webhook are present, but the surface is uneven and overfocused on creation/deletion.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Discord MCP server that enables AI assistants to interact with Discord platforms, providing functionalities like sending messages, managing channels, creating forum posts, and handling webhooks.
    21
    400
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A Discord Model Context Protocol server that enables AI assistants to interact with Discord by sending messages, managing channels, handling forum posts, managing webhooks, and processing reactions.
    22
    82
    5
    MIT