Model Context Protocol (MCP) server for Discord integration, allowing Claude and other MCP clients to interact with Discord
22 tools with consistent naming (verb_noun pattern) and basic schemas present. However, parameter descriptions are minimal or absent across most tools, most lack detail on format, constraints, or usage context. Tool descriptions are present but generic (avg ~50 chars, well below the 194-char baseline). No output schemas documented. Missing error handling guidance, no idempotency hints, and no permission/scope declarations. discord_login exposes token as a parameter (security risk). Schemas lack constraints (enums, min/max) that would guide LLM input. No pagination support documented despite tools returning lists.
Adds multiple emoji reactions to a Discord message at once
Adds an emoji reaction to a specific Discord message
Creates a new category in a Discord server.
Creates a new post in a Discord forum channel with optional tags
Creates a new text channel in a Discord server with an optional topic
Creates a new webhook for a Discord channel
discord_login exposes token as a tool parameter. Credentials must never appear in tool parameters, use server-side secret injection via environment variables. Agent traces log all parameters, leaking secrets into logs and prompt history.
Parameter descriptions are missing or minimal across all 22 tools. Most parameters (guildId, channelId, threadId, etc.) lack format guidance, constraints, or usage context. LLMs cannot infer whether to pass IDs, names, or other identifiers without explicit descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Deletes a Discord category by ID.
Deletes a Discord channel with an optional reason
Deletes a forum post or thread with an optional reason
Deletes a specific message from a Discord text channel
Deletes an existing webhook for a Discord channel
Edits an existing Discord category (name and position).
Edits an existing webhook for a Discord channel
Lists all forum channels in a specified Discord server (guild)
Retrieves details about a forum post including its messages
Retrieves detailed information about a Discord server including channels and member count
Logs in to Discord using the configured token
Retrieves messages from a Discord text channel with a configurable limit
Removes a specific emoji reaction from a Discord message
Adds a reply to an existing forum post or thread
Sends a message to one or more Discord text channels by name in a server
Sends a message to a Discord channel using a webhook
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., created channel ID, forum post ID) without knowing the response structure. This forces agents to guess or make extra discovery calls.
No error handling guidance. Tools lack recovery hints (e.g., 'Channel not found. Try discord_get_server_info() to list available channels'). Agents receive raw errors with no actionable next steps, causing plan failures.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Agents cannot distinguish safe reads from destructive writes without parsing descriptions. 5 destructive tools (delete_*) lack explicit destructiveHint markers.