MCP Server for Discord Record Search. Provides tools for LLMs (Claude) to search and analyze Discord message history.
Server has 19 tools with basic descriptions and partial schemas. Most tools lack input parameter schemas entirely (tools 3, 5-19 have no visible schema definitions in the provided code). Descriptions are present but generic (10-150 chars, below the 194-char baseline). Tool naming follows verb_noun convention (search_, list_, get_) which is good. However, critical gaps: no output schemas documented, no error handling guidance, no parameter validation rules, and many tools missing input schema visibility. The code snippet is truncated, so full schema assessment is limited. Based on visible definitions, this is a fair-to-poor implementation.
Message counts by day of week (Sun-Sat).
Stats and date range for a channel.
Surrounding messages for a given message ID.
Total message/channel/server counts and date span.
Dominant distribution, heatmap, timeline, or year drift.
Messages with most extreme scores for a specific emotion.
Overall emotional fingerprint (8 Plutchik emotions + style).
16 of 19 tools have no visible input schema definitions. Tools 3-19 lack parameter type/description documentation in provided code.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing return structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Message counts broken down by hour of day (0-23).
Message counts per time period (day/week/month).
Find most positive or most negative messages.
Sentiment timeline, day-of-week breakdown, or distribution.
Rank servers, channels, or DMs by average sentiment.
Most active channels or servers by message count.
List all servers with message counts.
List DM and group DM conversations.
List channels in a specific server.
Search Discord messages using full-text search. Args: query: Search terms. Supports FTS5 syntax: "exact phrase", term1 AND term2, NOT term. server_name: Optional server name to filter by (fuzzy/partial match). channel_name: Optional channel name to filter by (fuzzy/partial match). date_from: Optional start date in YYYY-MM-DD format. date_to: Optional end date in YYYY-MM-DD format. limit: Max results to return (default 10, capped at 50).
Find messages mentioning a specific person by name or alias.
Find messages related to a concept or idea using semantic similarity. Unlike search_messages (which requires exact keyword matches), this finds messages that are conceptually related even without the specific words. Requires embeddings to be generated first via the Settings page. Args: concept: A concept, idea, or description to search for. server_name: Optional server name to filter by (fuzzy/partial match). limit: Max results to return (default 10).
Descriptions for 16 tools are under 50 characters (e.g., 'List all servers with message counts'). Below 194-char baseline, insufficient for LLM tool selection.
No error handling guidance. Tools do not document what happens on invalid input, missing resources, or API failures. LLMs cannot self-correct.
No pagination or result limits documented. search_messages caps at 50, but other list/get tools lack limit parameters and may return unbounded results.