Cross-platform shared memory MCP for multi-agent project coordination. One project, one memory, every platform. Project-local shared memory for multi-agent sequential workflows.
On Board has 16 well-named tools with consistent verb_noun patterns (memory_*, ticket_*, agent_*). All tools have descriptions (avg ~120 chars, within baseline 34-392 range). Input schemas are present and typed with enums for constrained fields (briefing_mode, memory_type, priority, status). However, output schemas are entirely undocumented, no tool declares what it returns, forcing LLMs to guess. Error handling is absent: no recovery guidance, no actionable error messages, no categorization of retryable vs fatal failures. Parameter descriptions are minimal (avg ~40 chars vs baseline 72 chars) and lack format/range constraints. Security: agent_name and agent_platform are required params on most tools, which is good for traceability, but no mention of permission gates, audit logging, or secret injection patterns. Composition is strong, tools chain well (e.g., ticket_create → ticket_claim → ticket_submit → ticket_review) and each has a single responsibility.
Mark an agent's work as complete. Transitions agent to completed status.
Send a heartbeat to mark agent as active. Prevents idle KIA (killed in action) detection.
List all agents with their current status, role, and activity.
Register an agent in the system. Called on first session to establish identity and role.
Initialize memory for an existing project with prior work history. Migrates existing memory if present.
Write a handoff memory entry when passing work to another agent. Includes full context for continuity.
Initialize memory for a new project. Creates .agent-mem directory and project metadata.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., ticket_id from ticket_create, agent_status from agent_list). Forces agents to guess response structure.
No error handling or recovery guidance. Tools provide no actionable error messages, no categorization of retryable vs fatal failures, and no suggestions for recovery (e.g., 'User not found. Try search_users() first'). Agents cannot self-correct.
Parameter descriptions lack format/range constraints. E.g., 'timeout_s' has no min/max bounds (clamped to 200s in code but not documented); 'priority' is 0-10 but not specified; 'limit' parameters have no defaults or caps. LLMs pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Compact briefing for agent session start. Returns recent memories, active agents, open tickets, and handoff context.
Search memory entries by type, agent, or text content. Returns matching entries with context.
Block until board changes (ticket created, status changed, assigned, or memory written). Returns immediately if changes already pending.
Write a memory entry to the shared board. Entries are stamped with agent_name and agent_platform for traceability.
Claim a ticket for work. Prevents concurrent work on the same ticket.
Create a new ticket for work assignment. Tickets track status, assignments, and reviews.
List tickets with optional filtering by status, assignee, or priority.
Review a submitted ticket. Can approve (close) or reject with feedback.
Submit a claimed ticket for review. Transitions ticket to submitted state.
List tools (ticket_list, agent_list, memory_search) lack pagination documentation. No mention of limit defaults, max results, or next_cursor/offset patterns. Large result sets could exhaust context windows.
No permission gates or audit logging documented. Tools accept agent_name as a parameter but do not declare what permissions are required (read:memory, write:ticket, etc.) or how calls are logged for compliance.