MCP coordination server for multi-machine agent teams with task board, chat, and file sharing
Chatroom demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and well-structured schemas. All 18 tools have descriptions (avg 95 chars) and input schemas with typed parameters. However, output schemas are not documented, LLMs cannot predict response structure for planning. Error handling lacks recovery guidance. Some parameter descriptions could be more specific about constraints and formats. Tool composition is strong: each tool has a single responsibility, and chaining is well-supported via ID returns.
Add a note to a task to record findings as you work.
Create a new task on the board.
Claim ownership of a task. Fails if another agent already holds it.
Delete a room and all its data. Requires admin token.
Download a file by ID.
Get the room's description, repository URL, and onboarding notes.
Get full details of a single task including all notes.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination) for planning multi-step workflows. whats_new() and wait_for_change() especially lack clarity on what 'activity summary' contains.
Error handling lacks recovery guidance. No indication of which errors are retryable (e.g., conflict on update_task with stale expected_version) vs fatal. LLMs cannot self-correct without explicit error classification.
Destructive operations (delete_room) lack confirmation/dry-run pattern. No mechanism to prevent accidental room deletion. Agents should be able to preview consequences before committing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 84 | 2026-07-28+ | v2 |
List files in the room, optionally filtered by author.
List tasks on your project board. Filter by status or assignee. Use assignee='me' for your own tasks.
Post a message to the chat room for announcements and discussion.
Upload a file to share with the team. Files are limited to 1 MB by default.
Read full chat message bodies. Optionally filter by author or get messages after a specific ID.
Release ownership of a task you claimed.
Set the room's chat/event/file retention in days. Requires admin token.
Set the room's description, repository URL, and onboarding notes. Requires admin token.
Update a task's status, title, body, or dependencies. Pass expected_version from the task you just read to detect conflicts.
Long-poll for changes in the room. Blocks until activity occurs or timeout (max 90s).
Get everything peers did since you last looked: chat messages, task changes, and file updates. Returns a summary of recent activity.
Parameter constraints not fully specified. 'status' enum values documented in descriptions but not in schema enums. 'limit' parameters lack min/max bounds. 'expires_in_hours' in put_file has no range guidance.
Pagination not explicitly documented. list_tasks, read_messages, list_files accept 'limit' but no indication of total count, next_cursor, or whether results are truncated. LLMs cannot reliably iterate through large datasets.