MCP server for managing Discord servers — 30+ actions across messages, channels, roles, members, moderation, threads, webhooks, invites and the audit log
Discord-mcp defines 8 tools with explicit schemas and descriptions. Naming follows verb_noun convention (list, create, edit, delete, send, read). Descriptions are present but brief (avg 45 chars, below 194-char baseline). All tools have input schemas with types and descriptions. However, output schemas are not documented, LLMs cannot predict return structure. Parameter descriptions lack format constraints (e.g., 'limit: number' should specify 'max 100'). No error handling guidance. No tool annotations (readOnlyHint, destructiveHint). Risk classification exists in metadata but not exposed to LLM. Missing idempotency and retry guidance for write operations.
Create a new channel
Delete a channel
Edit a channel's settings
List all channels in a server
Read recent messages from a channel
Send a message to a channel
Get detailed information about a Discord server
List all Discord servers the bot is in
Output schemas not documented. LLMs cannot predict return structure (e.g., server/info returns {id, name, description, memberCount, ...} but this is invisible to the agent). Forces agents to guess field names for downstream operations.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk metadata exists in code but is not exposed to LLM. Agents cannot distinguish safe reads from destructive writes without reading descriptions.
Parameter descriptions lack format constraints. 'limit: number' should specify 'max 100'. 'slowmode: number' should specify 'range 0-21600 seconds'. Unbounded numbers invite invalid LLM inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No error handling guidance. Tools throw generic errors ('Guild not found', 'Discord bot is not ready') without recovery hints. LLMs cannot self-correct or know whether to retry.
Destructive operations (channels/delete, messages/send) lack confirmation or dry-run support. Agents can delete channels or send messages without a safety gate.