Discord MCP server for integrating Discord with Claude
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. send-message and read-messages both lack descriptions for the 'message' parameter (send-message) and missing output schema documentation. Parameter descriptions are present but minimal (10-30 chars). No error handling guidance, no idempotency hints, and no output schema documentation. Naming is clear (verb_noun pattern), but composition could be improved, read-messages returns raw JSON without pagination support despite accepting a limit parameter.
Read recent messages from a Discord channel
Send a message to a Discord channel
Missing parameter description for 'message' in send-message tool. LLMs cannot infer what format or constraints apply to message content (length limits, markdown support, etc.).
No output schema documentation. Both tools return text responses, but LLMs need to know the exact structure of returned data (fields, types, format) to plan downstream operations.
read-messages lacks pagination guidance. Tool accepts limit parameter but returns all results as unstructured JSON. No next_cursor, total_count, or guidance on handling large result sets.
No error recovery guidance. Error messages exist in code (e.g., 'Server not found', 'Channel not found') but tool descriptions do not explain what the LLM should do if a call fails or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
send-message is not idempotent and lacks confirmation pattern. Sending a message is destructive (creates a record in Discord). No dry-run, no idempotency key support, no confirmation step to prevent accidental duplicate sends.