Universal project management for AI coding agents — MCP server + CLI + git-native task board
Agendum has 15 well-named tools with comprehensive descriptions (avg 180 chars, within baseline 194). All tools have input schemas with types and descriptions. However, output schemas are entirely undocumented, LLMs cannot predict return structure. Error handling is minimal (generic 'Error: {e}' responses). No enums for constrained inputs (status, priority, type, action). Parameter descriptions lack format/range details. No pagination support despite tools returning lists. Missing tool annotations (readOnlyHint, destructiveHint). Composition is sound, tools chain logically, but output documentation is a critical gap for agent planning.
Add a new item to a project board. Supports type (dev/docs/ops/research/review/planning/personal/email), priority (critical/high/medium/low), tags, dependencies, acceptance criteria, key files, constraints, and notes. Use for ad-hoc tasks not from a plan file.
View the project board with optional filters. Filter by status (pending/in_progress/blocked/done), tag, or type. Returns a markdown table of all matching items. Use to survey the full backlog or check status of specific categories.
Rebuild the search index and clean up corrupted memory entries. Removes XML noise from decisions.md and patterns.md, then reindexes all markdown sources. Call if memory appears corrupted or search is stale.
Mark an item as done and record decisions and patterns learned. Accepts comma-separated decisions and patterns. Updates item status to 'done', records progress entry, and appends to global memory. Call after completing a work package.
Ingest a plan file (Markdown) into a project. Parses frontmatter and creates board items from ## Task sections. Supports bulk import of structured plans. Call after pm_project create to populate the board.
No output schemas documented. LLMs cannot predict return structure (fields, types, nesting). Tools return markdown strings; structure is opaque to agents planning downstream calls.
Constrained inputs lack enums. 'action' (pm_project), 'status' (pm_board), 'type' (pm_add), 'priority' (pm_add) accept free-form strings. LLMs hallucinate invalid values; no validation guidance in descriptions.
Error handling is generic ('Error: {e}'). No recovery guidance, no categorization (retryable vs fatal), no invalid-value echoing. Agents cannot self-correct.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Initialize the agendum board directory. Call once per repository or home directory to set up project tracking. Creates .agendum/ with projects, learnings, and memory subdirectories. Returns confirmation. Next step: create a project with pm_project.
Record a learning (insight, error, or pattern) for a project or globally. Accepts tags and optional topics. Creates a learning-*.md file in the project or global learnings directory. Use to capture cross-project insights.
Read memory scope (decisions, patterns, or project-specific). Returns formatted markdown. Use to review past decisions and patterns before starting work.
Append to a memory scope (decisions, patterns, or project-specific). Accepts markdown-formatted entries. Use to record insights outside of task completion.
Get the next recommended work item as a bounded, context-rich work package. Includes scope, entry/exit criteria, constraints, key files, dependency context, memory context, project rules, and suggested complexity. Call after pm_status to begin focused work.
Create, list, or get projects. Actions: 'create' (requires name), 'list' (shows all projects), 'get' (shows project details with spec/plan excerpts). Call after pm_init to set up a project, or anytime to inspect existing projects.
Get a status overview for one or all projects. Shows item counts by status, recent progress, recent decisions, and suggested next task. Call at the start of a session to understand current state, or after completing work to see what's next.
Mark an item as superseded by another. Updates status to 'cancelled', records the superseding item ID, and adds a progress entry. Use when a task is made obsolete by another.
Get full details of a single task item. Returns all metadata, notes, progress, decisions, and constraints. Use to inspect a specific task before or after work.
Update a task's metadata (status, priority, type, tags, notes, etc.). Accepts any subset of fields. Preserves existing values for unspecified fields. Use to adjust task properties mid-work.
No tool annotations. Destructive tools (pm_done, pm_task_update, pm_consolidate, pm_supersede) lack destructiveHint. Read-only tools lack readOnlyHint. Agents cannot distinguish safe from risky calls.
Parameter descriptions lack format/range details. 'max_context_chars' (pm_next) has no bounds. 'tags', 'depends_on', 'acceptance_criteria' (pm_add) lack format guidance. LLMs guess at valid input.