A Discord bot assistant with access to Discord tools and web search, built using Agno framework and MCP protocol
This MCP server has critical definition quality gaps. The source code shows tool registration via agno's tool classes (MCPTools and DuckDuckGoTools), but the actual tool definitions, input schemas, parameter descriptions, and output schemas, are NOT visible in the provided source. The main.py only imports and instantiates these tools without exposing their schema definitions. MCPTools wraps an external mcp-discord server (spawned as a subprocess), meaning the actual Discord tool definitions are in a separate Node.js module not provided for review. DuckDuckGoTools is imported from agno's built-in library, also not shown. Without access to the underlying schema definitions, we cannot verify naming, parameter constraints, descriptions, or output structures. Both tools are inferred rather than explicitly defined, which triggers the hard cap rule: per-tool scores cannot exceed 50 when tool definitions are not directly visible. Additionally, the server itself provides no custom tool definitions, it merely bridges to external tools. This is a wrapper/proxy architecture, not a tool provider, which limits its value as an MCP server for evaluation.
Web search tool using DuckDuckGo for searching and retrieving web results
MCP tools that provide access to Discord functionality including sending messages, deleting messages, reacting, managing forums/channels via the mcp-discord server
Tool definitions not visible in source code. MCPTools wraps external mcp-discord (Node.js subprocess); DuckDuckGoTools is imported from agno library. Input schemas, parameter types, parameter descriptions, and output structures cannot be verified.
No input schemas visible for either tool. Cannot assess parameter types, constraints, enums, or formats.
Tool descriptions in main.py are generic and under 50 characters. MCPTools: 'MCP tools that provide access to Discord functionality...' lacks specificity on which Discord operations (post? delete? react?). DuckDuckGoTools: 'Web search tool using DuckDuckGo for searching...' is circular and provides no guidance on when to use it vs other search tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 20 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 13 | - | v1 |
No output schemas documented. Cannot verify what fields the tools return, whether pagination is supported, or what IDs/references are available for downstream tool chaining.
No error handling guidance visible. If MCPTools fails to post a message or DuckDuckGoTools returns no results, it is unclear whether the error is retryable, user-fixable, or fatal, and what the agent should do next.
MCPTools spawns mcp-discord as a subprocess with DISCORD_TOKEN passed via environment variable. While this avoids leaking credentials into tool parameters, there is no verification that the token is not logged or echoed in error messages. No audit trail or permission gates visible for destructive Discord operations (delete, manage channels).
Wrapper architecture: this server does not define its own tools. It imports MCPTools and DuckDuckGoTools from external libraries (agno, duckduckgo-search). The actual tool implementations, schemas, parameter validation, error handling, are opaque. Evaluating this server is equivalent to evaluating those upstream libraries, not an independent MCP tool provider.