Local-First synchronization agent and MCP server for StrataNote
Critical gaps across all dimensions. Tool descriptions are minimal (10-50 chars, well below the 194-char baseline). Input schemas exist but lack parameter descriptions entirely, every parameter is undescribed, violating the core rule that 100% of A+ tool params have descriptions. No output schemas documented. No error handling guidance. Tools lack context about when to use them vs. alternatives. The server exposes sensitive config (STRATANOTE_API_TOKEN) as a tool parameter, violating secret-injection pattern. Naming is acceptable (verb_noun style) but descriptions do not explain WHAT the tool does, WHEN to use it, or what it returns.
Retrieve current sync settings.
Analyze and list differences between local vault and StrataNote server.
Execute a bidirectional synchronization now.
Update configuration settings (path, server url, api token, resolution strategy).
All tool parameters lack descriptions. LLMs cannot infer what STRATANOTE_SERVER_URL, LOCAL_VAULT_PATH, SYNC_MODE, or CONFLICT_RESOLUTION control without explicit text. Violates core rule: 100% of A+ tool params must have descriptions.
Tool descriptions are 10 - 50 characters (well below 194-char baseline). 'Analyze and list differences' and 'Execute a bidirectional synchronization now' lack context: What format are differences returned in? What happens on conflict? When should the agent call this vs. get_sync_status? Descriptions must answer WHAT, WHEN, and WHAT IT RETURNS.
No output schemas documented. LLMs cannot plan downstream calls or extract required data. What fields does get_sync_status return? Is it a list of diffs, a summary object, or a status string? Undocumented outputs force LLMs to guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
STRATANOTE_API_TOKEN exposed as a tool parameter. Credentials must never appear in tool parameters, agent traces log every parameter, leaking secrets into logs and prompt history. Use server-side secret injection via environment variables.
No error handling guidance. If trigger_sync fails due to network error, permission denied, or conflict, what should the LLM do? Retry? Ask the user? No recovery paths documented. Errors must categorize as retryable, user-fixable, or fatal.