AI-powered idea & task manager for developers. Brainstorm → structured tasks → AI agent execution. CodeMirror editor with slash commands, MCP Server, Claude/Gemini/Codex support. Local-first SQLite, cross-PC Git sync.
idea-manager has 7 tools with adequate naming and basic descriptions, but suffers from incomplete schemas, missing parameter documentation, and weak error handling. All tools are directly visible in src/lib/mcp/server.ts and use Zod for input validation. However, parameter descriptions are minimal or absent in 5 of 7 tools, output schemas are not formally documented, and error messages provide no recovery guidance. The server reads from a local SQLite database (via McpToolContext), so security risks around SQL injection and secret injection are mitigated by design, context does not expose credentials. Tool names follow verb_noun convention (list, get, update, report, export), which is solid. Descriptions are adequate but generic (10 - 50 chars for most), falling below the 50 - 200 char baseline for LLM-optimized tools.
Export project as TIMO-compatible JSON (project + sub-projects + tasks). Returns JSON text that can be piped to TIMO or saved to disk.
Get next submitted task with its prompt
Get project structure: sub-projects, tasks, and stats
Get prompt for a specific task
List all IM projects
Report task completion (sets status to done)
Update task status (idea, writing, submitted, testing, done, problem)
Output schemas not formally documented. Tools return unstructured text via { content: [{ type: 'text', text }] } with no documented field structure. LLMs cannot plan downstream calls or extract structured data reliably.
Parameter descriptions are minimal or missing. 'projectId' in get-project-context has description 'Project ID', which does not explain the format, how to obtain it, or what happens if invalid. Same for taskId in get-task-prompt and report-completion.
Error handling provides no recovery guidance. When a project or task is not found, tools return plain text 'Project not found.' or 'Task not found.' without suggesting alternative lookups (e.g., 'Try list-projects to find a valid ID').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool descriptions are generic and lack context for LLM selection. 'List all IM projects' (19 chars) does not explain when to call it vs. get-project-context, or what the output structure is. Baseline for A-tier tools is 50 - 200 chars.
No confirmation or dry-run pattern for destructive operations. update-status and report-completion modify task state without user confirmation. Agents making mistakes will silently corrupt task status.
update-status enum values are valid (idea, writing, submitted, testing, done, problem) but the description does not explain the lifecycle. What does 'problem' mean? When should an agent choose 'testing' vs. 'done'?
export-to-timo returns raw JSON as text. The description says 'Returns JSON text' but does not document the schema (format_version, source, exported_at, project, sub_projects, tasks structure). LLMs cannot validate the output or parse it reliably.