A planning and execution agent for task automation using MCP clients to integrate with external services like Gmail, Google Calendar, Notion, Slack, Outlook, WhatsApp, and Exa
This MCP server has severe definition quality gaps. While tool names follow verb conventions (add, get_config, get_greeting, reference_tool_output, access_resource), the schemas and descriptions are minimal or absent. Most critically: (1) Parameters lack detailed descriptions explaining constraints, formats, or expected values, only bare type information is visible. (2) No output schemas are documented, leaving LLMs unable to plan downstream tool calls or extract structured data. (3) Descriptions are brief but present, however they lack context on WHEN to use each tool or what prerequisites exist. (4) The 'reference_tool_output' and 'access_resource' tools appear to blend concerns, the former is an introspection/memory mechanism while the latter accesses MCP resources, but neither has clear guidance on inter-tool dependencies. (5) Error handling and recovery paths are not visible in the tool definitions. Per-tool analysis reveals average naming (get_*, add) but critically underdeveloped schemas and descriptions that do not meet production baselines.
Access a resource from the MCP server
Add two numbers
Static configuration data
Get a personalized greeting
Reference the output of a previously called tool
No output schemas documented. LLMs cannot infer what fields each tool returns, blocking downstream tool chaining and forcing discovery overhead.
Parameter descriptions are missing or minimal. 'tool_id' (in reference_tool_output) lacks explanation of valid format, source, or how to obtain it. 'uri' and 'client' (in access_resource) lack guidance on valid URI schemes or client resolution.
Tool descriptions are generic or incomplete. 'get_config' returns 'Static configuration data', what config? What fields? When should an LLM call this vs another tool? 'get_greeting' similarly lacks context on when this discovery tool should be invoked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 47 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
'reference_tool_output' and 'access_resource' appear to conflate memory/introspection concerns with external resource access. 'reference_tool_output' supports extracting data from prior tool calls via JSON path, this should be explicitly documented as a memory/reflection capability, not presented ambiguously alongside resource access.
No error handling or recovery guidance visible. How should an LLM respond if 'reference_tool_output' cannot find the tool_id? If 'access_resource' fails because the client is not registered? No actionable error responses documented.
Parameter 'extract_path' (in reference_tool_output) is optional but its behavior when omitted is not explained. Does it return the entire result? The first element? Unclear semantics invite misuse.