MCP server for managing multiple project states in Claude Code. Track dashboards, tasks, logs, and pipelines across repos. Free & open source.
Server has 6 tools with basic descriptions and input schemas. Naming follows verb_noun convention (setup_project, get_dashboard, get_project_status, get_pipeline, append_log, update_task). However, descriptions are inconsistent in depth, some are detailed (setup_project: 60 chars), others minimal (get_project_status: 50 chars). Parameter descriptions exist but lack constraints (e.g., 'status' in update_task accepts 'done', 'active', 'blocked', 'remove' but no enum is declared). Output schemas are not documented, callers cannot predict response structure. Error handling is minimal; no recovery guidance or actionable error messages visible. Security: PROJECTS_ROOT is environment-injected (good), but no permission gates or audit logging. Composition is reasonable, each tool has one responsibility, but tools lack pagination/limits for potentially large results (get_dashboard, get_pipeline).
Append a dated entry to a project's LOG.md (newest first).
Get the current business state as a structured snapshot. Scans all project STATUS.md files and returns a machine-readable summary of health, progress, and blockers for every project. Also includes pipeline stage counts and last session date.
Get the full ideation pipeline — all ideas and their stages.
Get STATUS.md and TASKS.md for a specific project.
Create a new project with the standard tracking file structure. Scaffolds STATUS.md, TASKS.md, LOG.md, MEMORY.md, and PLAN.md in a new project directory under projects/.
Update a task's status in a project's TASKS.md.
Output schemas not documented. Callers cannot predict response structure or plan downstream tool calls. get_dashboard, get_pipeline, get_project_status return free-text strings; no field definitions provided.
Parameter constraints not declared as enums. update_task 'status' accepts 'done', 'active', 'blocked', 'remove' but is a free-form string, LLMs may hallucinate invalid values like 'pending' or 'completed'.
No pagination or result limits. get_dashboard and get_pipeline scan all projects/ideas without limit, large workspaces could return thousands of lines, exhausting context window.
Error handling lacks recovery guidance. _valid_project() raises ValueError with available projects listed (good), but other tools (append_log, update_task) have no visible error handling or actionable messages.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
No audit logging or permission gates. Tools modify state (setup_project, append_log, update_task) without logging who called them or verifying authorization.