MCP Server for web analysis, social media analytics, and content suggestions. Part of a multi-agent system built with Claude and Model Context Protocol.
Scoring was not performed
42 of 44 tools have NO visible input schemas. Tool definitions sourced from permissions manifest lack JSONSchema registration.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 16 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 21 | - | v1 |
42 of 44 tools have descriptions under 50 characters (most single phrases like 'Retrieve stored memories'). Descriptions lack actionable context: what triggers the tool, when to use it vs similar tools, what it returns, and prerequisites.
No visible parameter descriptions for any tools except ping, server_stats, and check_endpoint. Parameters like 'url', 'email', 'file_path' lack constraint documentation (format, range, allowed values, required vs optional).
Destructive tools (delete_memory, delete_document, delete_email, delete_claude_code_workspace, run_claude_code) lack confirmation/dry-run patterns. No descriptions warn of irreversibility or guide recovery.
No visible error handling or recovery guidance in any tool description. Error responses cannot guide LLM recovery (retry vs ask user vs fatal).
Output schemas are not documented. LLMs cannot plan downstream tool calls or extract critical fields without knowing what each tool returns.
List/search tools (list_documents, search_emails, list_calendars, etc.) do not specify pagination support (limit, offset, next_cursor) or result limits in descriptions. Risk of context window exhaustion.
Tools that modify state (send_email, move_email, delete_memory, write_file, run_claude_code) do not explicitly state in descriptions that they are irreversible or have side effects. Descriptions must say WHAT is modified and WHETHER it can be undone.
Naming: Tools like analyze_website and suggest_content_topics are vague about what analysis/suggestions entail. 'analyze_website' does not convey whether it fetches content, extracts metadata, scores readability, or all of these.
Tools that accept identifiers (user_id, channel_id, email_address) do not specify which formats are accepted (display name vs ID vs email). E.g., send_email should clarify: 'recipient_email (string, email format required)' vs accepting 'contact_name'.