Caller-owned Discord operations for AI agents, with 209 typed tools, safety controls, and verifiable guild builds.
Discord MCP presents a dispatcher pattern with 6 tools of highly variable quality. Three dispatcher tools (mcp_tools_search, mcp_tools_read, mcp_tools_write, mcp_tools_destructive) have strong naming and good descriptions but invisible input schemas (inferred from JSON samples only). The build_discord_server tool is mentioned but has no visible schema or detailed parameters. The components_v2_preview tool has a minimal schema. Tool descriptions are informative but several lack actionable parameter guidance. Critically, actual Discord operation tool schemas are not visible in the provided code, only dispatcher interfaces are shown. This makes it impossible to assess the quality of the underlying tool catalog. The server appears designed as a catalog/dispatcher rather than direct tool implementation, which creates a scoring problem: we cannot verify the schemas, parameters, and error handling of the actual Discord tools being dispatched.
Progressive tool for architecting Discord servers with comprehensive builder patterns and safety controls.
**Purpose**: Render a Components V2 layout as ASCII so the agent can sanity-check structure without sending. Pairs with `components_v2_validate` for offline iteration. **Returns**: `{ascii}` - multi-line string visualizing the layout.
Invoke one destructive tool returned by mcp_tools_search. Use the exact returned input schema, including __confirm:true when intended. The selected tool still requires MCP_DRY_RUN=false and passes every authorization and safety gate.
Invoke one read-only Discord tool returned by mcp_tools_search. The server rejects write or destructive tools on this dispatcher and still applies authorization, validation, resilience, and telemetry middleware.
Search the Discord tool catalog available to this caller. In this Discord integration, an unqualified request to build, design, or create a gaming or community server means a Discord guild, not a VPS or game-hosting machine, unless the user explicitly says otherwise; search with the user's request before asking which server type they mean. A single result includes its contract. For multiple compact results, search the selected exact tool name before dispatching. Set detail:"full" only when several full contracts are necessary. Omit both query and category to list categories. Search results never expand MCP_CATEGORIES permissions.
build_discord_server has no visible schema, parameter definitions, or detailed description in provided code. Only a tool name and risk level are shown.
Dispatcher tools (mcp_tools_read, mcp_tools_write, mcp_tools_destructive) accept generic 'args' object without explicit schema constraints. The 'tool' parameter requires exact tool names from search, but there is no JSON Schema validation visible for the args object structure.
Actual Discord operation tool schemas are not visible in provided source code. Only dispatcher interfaces are shown. Cannot verify if underlying tools have documented return types, error guidance, or output structure.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2025-06-18+ | v2 |
Invoke one non-destructive write tool returned by mcp_tools_search. The server rejects read-only and destructive tools on this dispatcher and still applies all normal middleware.
components_v2_preview returns a minimal 'ascii' field with no documented structure for multi-line output. No guidance on formatting, limits, or error cases.
Parameter descriptions for mcp_tools_search 'detail' enum lack guidance on when to use 'compact' vs 'full'. The description mentions 'exact tool-name search includes that tool's contract in either mode' but does not explain the token cost tradeoff or selection strategy for LLMs.
mcp_tools_destructive description says 'The selected tool still requires MCP_DRY_RUN=false', this indicates a state-dependent behavior or configuration requirement not visible in the input schema. If dry-run control is critical, it should be a parameter, not an environment variable.