A monorepo package for MCP tools with dynamic loading capabilities - featuring Evolution API v2 WhatsApp integration
Scoring was not performed
Multi-tenant context exposed as parameter: Tools 1-7 require 'ctx' object or direct 'user_id'/'workspace_id' parameters. Credentials and context should be injected server-side, not passed as parameters. This violates the secret-injection pattern and pollutes the tool interface.
No output schema documentation: None of the 11 tools document what fields they return. LLMs cannot plan downstream calls or extract required data (e.g., tool_id, workspace_id, space_id needed for chaining) without explicit field documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 32 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Missing parameter descriptions on hub management tools (1-7): The 'config' parameter in add_tool and update_tool_config is documented only as 'Configuration dictionary for the tool' or 'New configuration dictionary'. No details on valid keys, format, constraints, or validation rules. LLMs cannot construct valid config objects without examples or schema.
Generic tool descriptions: Hub management tools (1-7) have single-line descriptions lacking context about when/why to use each tool. 'List all tools in your workspace' and 'List all tools available in the repository' differ only by one word, but the LLM must infer the distinction from names alone. Add dependency hints and selection guidance.
Google Chat tools expose 'service' parameter: Tools 8-11 require a 'service' object (Google Chat service instance) as input. This is an implementation detail that breaks encapsulation. The MCP server should authenticate with Google internally and not expose service objects to clients.
No error handling documentation: None of the tools describe what errors they can raise, what they mean, or how to recover. 'Invalid tool_name', 'Workspace not found', 'Unauthorized', LLMs have no guidance on retry, fallback, or failure modes.
No pagination documentation on list tools: 'get_available_tools' and 'list_my_tools' likely return lists, but no page/limit parameters are visible. If results can exceed 20-50 items, LLMs will request unbounded results and exhaust context windows. Implement and document pagination.
Chat tools missing natural identifier support: 'list_spaces' and 'search_messages' require 'user_google_email' (good), but 'send_message' and 'get_messages' require 'space_id' (opaque ID). Google Chat spaces are addressed by human-readable names in UI, consider accepting 'space_name' as well and resolving internally.