This MCP server exposes 8 tools with fundamental quality gaps across naming, descriptions, and schemas. Most tool names lack clear action verbs (e.g., 'sinain_memory_query', 'sinain_context', 'sinain_memory_episodes' use underscore-prefixed naming convention rather than idiomatic verb_noun patterns). Descriptions vary from minimal to moderate length but lack actionable guidance on WHEN to use each tool vs alternatives. Input schemas are present but sparse, most parameters lack detailed format constraints, ranges, or enum values. Error handling and recovery guidance are absent from all tool definitions. The tools appear to be wrapper interfaces to a proprietary knowledge graph backend ('sinain') rather than direct API mappings, which creates abstraction and discoverability challenges. No output schemas are documented in the provided code.
Run a read-only shell command to orient on the machine.
Find files matching a glob pattern.
Search file contents for a pattern under a path.
Read a UTF-8 text file by absolute path.
Get the user's current situation: digest + screen OCR/vision, audio, app history.
Recall past observed activity as dated episodes (conversations, meetings, work sessions). Use for 'what happened earlier / summarize that meeting' — set include_text for raw excerpts.
Query the user's knowledge graph (facts/entities).
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract required fields (e.g., file_id, episode_id) from responses.
Tool names lack consistent action verbs. 'sinain_context', 'sinain_memory_query', 'sinain_memory_episodes' use passive/noun-centric naming instead of verb_noun (e.g., get_context, search_memory_query, list_episodes). LLMs struggle to infer intent from non-verb prefixes.
Descriptions under 50 characters (rule: 10 - 1024, baseline 194 median): sinain_context (48), sinain_memory_store (51), read_file (55), bash (50), grep (60), glob (43). These are too short to guide LLM selection vs similar tools. Example: 'sinain_context' does not explain when to call it vs sinain_memory_episodes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Save a fact/note to the user's long-term memory.
Parameter descriptions are minimal or absent. Example: sinain_memory_query 'limit' has description 'Maximum number of results' (27 chars, baseline 72 median). No enum values, ranges, or format constraints. LLMs cannot determine valid inputs.
No error handling or recovery guidance in any tool description. Example: read_file does not explain what happens if the file is binary, too large, or outside allowed directories. bash does not document which commands are blocked or how to recover from 'command not found'.
Security risks: bash tool marked read-only but does not describe sandboxing, input validation, or timeout behavior. No explanation of which commands are allowed. LLMs could be tricked into running destructive commands.
sinain_context description is vague: 'Get the user's current situation: digest + screen OCR/vision, audio, app history.' Does not explain output structure, when to use vs memory_query, or what 'digest' means.
grep and glob tools are Unix-idiomatic names that may confuse LLMs unfamiliar with shell terminology. Descriptions do not explain glob syntax, regex vs literal matching, or recursion behavior.