Skip to main content
Glama
jar285

MCP-Discord

by jar285

MCP-Discord

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

  • Get server information

  • Read/delete channel messages

  • Send messages to specified channels

  • Retrieve forum channel lists

  • Create/delete/reply to forum posts

  • Create/delete text channels

  • Add/remove message reactions

  • Create/edit/delete/use webhooks

Related MCP server: MCP-Discord

Table of Contents

Prerequisites

  • Node.js (v16.0.0 or higher)

  • npm (v7.0.0 or higher)

  • A Discord bot with appropriate permissions

    • Bot token (obtainable from the Discord Developer Portal)

    • Message Content Intent enabled

    • Server Members Intent enabled

    • Presence Intent enabled

  • Permissions in your Discord server:

    • Send Messages

    • Create Public Threads

    • Send Messages in Threads

    • Manage Threads

    • Manage Channels

    • Add Reactions

Installation

Installing via Smithery

To install mcp-discord for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @barryyip0625/mcp-discord --client claude

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. You can provide it in two ways:

  1. Environment variables:

DISCORD_TOKEN=your_discord_bot_token
DEFAULT_SERVER_ID=your_default_server_id  # Optional
DEFAULT_CHANNEL_ID=your_default_channel_id  # Optional
  1. Using the --config parameter when launching:

node path/to/mcp-discord/build/index.js --config "{\"DISCORD_TOKEN\":\"your_discord_bot_token\"}"

Enhanced Startup Script

The project includes an enhanced startup script (start-discord.js) that provides better debugging and error handling:

  • Loads environment variables from the .env file

  • Sets default server and channel IDs if not provided

  • Redirects console.log to stderr to avoid JSON parsing issues in Claude Desktop

  • Tests the Discord connection directly before starting the MCP server

  • Provides detailed error information if anything goes wrong

To use this script:

node start-discord.js

Usage with Claude/Cursor

  • Claude

    {
        "mcpServers": {
            "discord": {
                "command": "node",
                "args": [
                    "path/to/mcp-discord/start-discord.js"
                ],
                "env": {
                    "DISCORD_TOKEN": "your_discord_bot_token",
                    "DEFAULT_SERVER_ID": "your_default_server_id",
                    "DEFAULT_CHANNEL_ID": "your_default_channel_id"
                }
            }
        }
    }
  • Cursor

    {
        "mcpServers": {
            "discord": {
                "command": "cmd",
                "args": [
                    "/c",
                    "node",
                    "path/to/mcp-discord/start-discord.js"
                ],
                "env": {
                    "DISCORD_TOKEN": "your_discord_bot_token",
                    "DEFAULT_SERVER_ID": "your_default_server_id",
                    "DEFAULT_CHANNEL_ID": "your_default_channel_id"
                }
             }
         }
    }

Tools Documentation

Basic Functions

  • discord_login: Login to Discord

  • discord_list_guilds: List all available Discord servers (guilds) with their channels

  • 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_delete_channel: Delete a channel

Forum Functions

  • discord_get_forum_channels: Get a list of forum channels

  • discord_create_forum_post: Create a forum post

  • discord_get_forum_post: Get a forum post

  • discord_reply_to_forum: Reply to a forum post

  • discord_delete_forum_post: Delete a forum post

Messages and Reactions

  • discord_read_messages: Read channel messages

  • 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

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

Development

# Development mode
npm run dev

License

MIT License

Available Tools

21 tools
discord_add_multiple_reactionsB

Adds multiple emoji reactions to a Discord message at once

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes
messageIdYes
emojisYes

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
channelIdYes
messageIdYes
emojiYes

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_create_forum_postB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
forumChannelIdYes
titleYes
contentYes
tagsNo

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 states the action but does not mention required permissions, authentication, potential side effects (e.g., making the post visible to members), or failure scenarios. 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, concise sentence that conveys the core purpose without superfluous words. It is well-structured and front-loaded with the key 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?

The tool has 4 parameters, no output schema, and no annotations, yet the description is only a short clause. It omits important contextual details such as return behavior, error conditions, and prerequisites, making it insufficient for a complete agent understanding.

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 4 parameters with 0% description coverage, and the description only adds 'optional tags', which confirms tags is optional but leaves forumChannelId, title, and content semantically unexplained. The description adds minimal value beyond the schema.

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

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 capability ('optional tags'). It distinguishes from sibling tools like discord_get_forum_post and discord_delete_forum_post by focusing on creation.

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

Usage Guidelines3/5

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

The description implies usage through the verb 'creates' but provides no explicit guidance on when to choose this over alternatives like discord_reply_to_forum, nor any exclusions or prerequisites. The intended context is inferable but not spelled out.

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

discord_create_text_channelB

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

ParametersJSON Schema
NameRequiredDescriptionDefault
guildIdYes
channelNameYes
topicNo

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 disclosing behavior. It states the action but omits permissions required, potential failures (e.g., duplicate channel names), rate limits, or what the response contains. 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, direct sentence with no waste. It is front-loaded with the primary action and resource, making it easy to scan.

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 creation tool with no annotations and no output schema, the description is insufficient. It does not explain what the tool returns, any required permissions, or error conditions. While the tool is simple, the absence of these details leaves the agent without critical operational 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 0% description coverage, and the description adds little beyond the schema. It mentions 'optional topic', but that is already evident from the 'required' array in the schema. No additional meaning is provided for guildId or channelName.

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 creates a new text channel in a Discord server, using a specific verb ('creates') and resource ('text channel'). It distinguishes itself from sibling tools like discord_create_category by specifying the 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, nor does it mention any exclusions or prerequisites. The description only states what the tool does, not when to choose it.

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
channelIdYes
nameYes
avatarNo
reasonNo

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_channelB

Deletes a Discord channel with an optional reason

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes
reasonNo

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
threadIdYes
reasonNo

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
channelIdYes
messageIdYes
reasonNo

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_webhookC

Deletes an existing webhook for a Discord channel

ParametersJSON Schema
NameRequiredDescriptionDefault
webhookIdYes
webhookTokenNo
reasonNo

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_webhookC

Edits an existing webhook for a Discord channel

ParametersJSON Schema
NameRequiredDescriptionDefault
webhookIdYes
webhookTokenNo
nameNo
avatarNo
channelIdNo
reasonNo

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_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_guildsB

Lists all Discord servers (guilds) the bot has access to

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden but offers minimal behavioral insight. It mentions 'the bot has access to' which hints at permission/scope constraints, but lacks details on rate limits, pagination, response format, or error conditions. For a read operation with zero annotation coverage, 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, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse quickly. No wasted words or unnecessary elaboration.

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 (0 parameters, no output schema, no annotations), the description is adequate but minimal. It covers the basic purpose but lacks behavioral context that would help an agent understand how to interpret results or handle edge cases. For a list operation, more detail on response structure would be beneficial.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description appropriately doesn't add parameter details beyond what's in the schema, maintaining alignment. Baseline for 0 parameters is 4.

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

Purpose4/5

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

The description clearly states the verb ('Lists') and resource ('Discord servers (guilds)'), specifying what the tool does. It distinguishes from siblings by focusing on guild listing rather than message/channel/webhook operations, though it doesn't explicitly contrast with 'discord_get_server_info' which might have overlapping scope.

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 like 'discord_get_server_info' or other guild-related operations. The description only states what it does without context about prerequisites, timing, or comparison to sibling tools.

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

discord_loginC

Logs in to Discord using the configured token

ParametersJSON Schema
NameRequiredDescriptionDefault
random_stringNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions authentication but doesn't describe what 'logging in' entails operationally: whether it establishes a session, what permissions are granted, if there are rate limits, error conditions, or what happens on success/failure. For an authentication tool with zero annotation coverage, 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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple authentication tool and front-loads the core functionality.

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

Completeness2/5

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

For an authentication tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what successful login enables, what the output looks like, error handling, or dependencies. Given the complexity of authentication and lack of structured documentation, more context is needed.

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 'configured token' but doesn't explain the 'random_string' parameter at all. The description doesn't clarify if 'random_string' relates to the token, is a session identifier, or serves another purpose. With 1 undocumented parameter, the description adds minimal value beyond the schema.

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

Purpose4/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 target resource ('to Discord'), specifying it uses 'the configured token'. It distinguishes from siblings by focusing on authentication rather than message/channel operations. However, it doesn't explicitly differentiate from potential alternative login methods.

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. The description doesn't mention prerequisites (e.g., needing a token configured first), when authentication is required, or what happens if already logged in. It simply states what the tool does without contextual usage information.

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 with a configurable limit

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes
limitNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the core action and a parameter, but doesn't mention ordering, return format, rate limits, or read-only status. For a read operation, it's likely safe, but the description doesn't explicitly confirm.

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 gets straight to the point. It's appropriately sized with no 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?

With no output schema or annotations, the description is the only source of context. It explains the core purpose, but lacks detail on return shape, ordering, and any limitations. For a 2-param tool this is insufficient guidance for an agent to confidently invoke the tool and interpret the result.

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 already defines limit with constraints and channelId as a string, but neither has descriptions (0% coverage). The description only references a 'configurable limit' without explaining it represents message count or that channelId identifies the target channel. It adds minimal value over 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 uses the specific verb 'Retrieves' with a clear resource 'Discord text channel', and the 'configurable limit' adds scope. It distinguishes from siblings like discord_send and discord_delete_message, and while a search tool exists, this explicitly indicates a simple retrieval without filtering.

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 reading messages from a channel, which is clear context. However, it doesn't explicitly mention alternatives or when to prefer this over discord_search_messages, so it falls short of the top tier.

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
channelIdYes
messageIdYes
emojiYes
userIdNo

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_reply_to_forumB

Adds a reply to an existing forum post or thread

ParametersJSON Schema
NameRequiredDescriptionDefault
threadIdYes
messageYes

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_sendC

Sends a message to a specified Discord text channel

ParametersJSON Schema
NameRequiredDescriptionDefault
channelIdYes
messageYes

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 only states the action without mentioning rate limits, message length restrictions, formatting support, or what happens on failure. This is insufficient for safe autonomous invocation.

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 is front-loaded and efficient, conveying the core action without any redundancy.

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

Completeness2/5

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

For a simple send tool without output schema or annotations, the description could still mention return values, side effects (e.g., message appears in channel), or expected errors. The current description is minimal and leaves gaps in 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 meaning beyond parameter names. 'channelId' and 'message' are not explained (e.g., format, allowed values, or usage context), leaving the agent with no additional understanding.

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 ('sends a message') and the target ('specified Discord text channel'), which is specific and distinguishes it from siblings like discord_send_webhook_message (webhook vs text channel) and discord_reply_to_forum (forum reply).

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 vs alternatives (e.g., webhooks, reactions), nor any prerequisites like bot permissions or channel ID format. The agent must infer usage from the name alone.

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

discord_send_webhook_messageB

Sends a message to a Discord channel using a webhook

ParametersJSON Schema
NameRequiredDescriptionDefault
webhookIdYes
webhookTokenYes
contentYes
usernameNo
avatarURLNo
threadIdNo

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.

testA

A simple test tool to verify the MCP server is working correctly

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states the tool is 'simple' and for verification, implying it's likely read-only and safe, but doesn't explicitly confirm this or disclose any behavioral traits like side effects, permissions needed, or response format. It adds minimal context beyond the basic purpose.

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 that directly states the tool's purpose without unnecessary words. It's front-loaded with the core function and appropriately sized for a simple verification tool. Every part of the sentence earns its place by clarifying intent.

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 low complexity (0 parameters, no output schema, no annotations), the description is complete enough for basic understanding but lacks details on what 'working correctly' means or what the verification entails. It covers the purpose adequately but could benefit from more behavioral context, especially with no annotations to provide safety information.

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

Parameters4/5

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

There are 0 parameters, and schema description coverage is 100%, so the description doesn't need to compensate for undocumented inputs. The baseline for 0 parameters is 4, as no parameter information is required. The description appropriately doesn't mention parameters, focusing on the tool's purpose instead.

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 tool's purpose: 'to verify the MCP server is working correctly' with the verb 'verify' and resource 'MCP server'. It distinguishes from sibling tools which are all Discord-specific operations, though it doesn't explicitly contrast with them. The purpose is specific and actionable.

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

Usage Guidelines3/5

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

The description implies usage context ('to verify the MCP server is working') but doesn't provide explicit guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, error conditions, or specific scenarios for invocation. The context is clear but lacks detailed when/when-not instructions.

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. 21 tool updates
    • First observeddiscord_add_multiple_reactions
    • First observeddiscord_add_reaction
    • First observeddiscord_create_forum_post
    • First observeddiscord_create_text_channel
    • First observeddiscord_create_webhook
    • First observeddiscord_delete_channel
    • First observeddiscord_delete_forum_post
    • First observeddiscord_delete_message
    • First observeddiscord_delete_webhook
    • First observeddiscord_edit_webhook
    • First observeddiscord_get_forum_channels
    • First observeddiscord_get_forum_post
    • First observeddiscord_get_server_info
    • First observeddiscord_list_guilds
    • First observeddiscord_login
    • First observeddiscord_read_messages
    • First observeddiscord_remove_reaction
    • First observeddiscord_reply_to_forum
    • First observeddiscord_send
    • First observeddiscord_send_webhook_message
    • First observedtest

TDQS

B3.2/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific Discord resources like channels, messages, reactions, webhooks, and forum posts. However, discord_send and discord_send_webhook_message could be slightly confusing as both send messages, though they use different mechanisms. The descriptions help clarify this distinction.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with a clear discord_ prefix and descriptive verb_noun structure (e.g., discord_create_text_channel, discord_delete_message). The only exception is 'test', which is a simple utility tool and doesn't disrupt the overall pattern.

Tool Count3/5

With 21 tools, the count is on the higher side for a Discord integration, bordering on heavy. While it covers many operations, some tools might be redundant or overly granular (e.g., separate add_reaction and add_multiple_reactions). A more streamlined set could improve usability without losing functionality.

Completeness4/5

The toolset provides comprehensive coverage for core Discord operations, including CRUD for channels, messages, webhooks, and forum posts, plus server info and login. Minor gaps exist, such as no tools for editing messages or managing roles, but agents can likely work around these for most common workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    C
    quality
    A
    maintenance
    A Discord Model Context Protocol server that enables AI assistants to interact with Discord, providing functionality for sending messages, managing channels, handling forum posts, and working with reactions.
    30
    46
    593
    105
    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
  • A
    license
    B
    quality
    D
    maintenance
    A Discord MCP server that enables AI assistants to interact with the Discord platform, providing features like message sending, channel management, forum operations, reactions, and webhook management.
    22
    593
    MIT