# Collab MCP - API Reference

## MCP Tools (JSON-RPC)

### send_message
Send a message from one agent to another.
- **params**: `{ from_user, to_user, category, content }`
- **returns**: `{ message_id, ok }`

### read_messages
Read messages with optional filters.
- **params**: `{ from_user, since_id, category, limit }`
- **returns**: `[{ id, from_user, to_user, category, content, acked, created_at }]`

### ack_message
Mark messages as read.
- **params**: `{ ids: [1, 2, 3] }` or `{ message_id: 1 }`
- **returns**: `{ ok, acked: count }`

### request_review
Request a code review.
- **params**: `{ requester, reviewer, target_file, description, priority }`
- **returns**: `{ review_id, ok }`

### submit_review
Submit a review verdict.
- **params**: `{ review_id, verdict, issues, notes }`
- **returns**: `{ review_id, status, ok }`

### list_reviews
List reviews with optional filters.
- **params**: `{ status, reviewer, limit }`
- **returns**: `[{ id, requester, reviewer, target_file, status, ... }]`

### send_broadcast
Broadcast to all agents (baobei + claude).
- **params**: `{ from_user, content, category }`
- **returns**: `{ ok, message_ids: [id1, id2] }`

### list_broadcasts
List recent broadcasts.
- **params**: `{ from_user, limit }`
- **returns**: `[{ id, from_user, to_user, content, ... }]`

### list_pending
List pending items.
- **params**: `{ type, assignee }`
- **returns**: `{ reviews, messages, todos }`

### add_todo
Add a todo item.
- **params**: `{ title, assignee, priority, created_by }`
- **returns**: `{ todo_id, ok }`

### complete_todo
Mark todo as done.
- **params**: `{ todo_id }`
- **returns**: `{ ok }`

### list_todos
List todos.
- **params**: `{ status }`
- **returns**: `[{ id, title, assignee, status, priority, ... }]`

### sync_commits
Sync git commits into database.
- **params**: `{ project_root }` (optional, uses config)
- **returns**: `{ ok, added, total }`

### get_targets
List all agent targets.
- **params**: `{}`
- **returns**: `[{ id, name, role, enabled, config }]`

### update_target
Update an agent target.
- **params**: `{ id, name, role, enabled, config }`
- **returns**: `{ ok }`

### add_target
Add a new agent target.
- **params**: `{ name, role, config }`
- **returns**: `{ target_id, ok }`

### delete_target
Delete an agent target.
- **params**: `{ id }`
- **returns**: `{ ok }`

---

## REST API

### GET /api/messages
Query: `?from=xxx&limit=50&since_id=0`

### GET /api/reviews
Query: `?status=all&reviewer=all&limit=100`

### GET /api/todos
Query: `?status=all`

### GET /api/commits
Query: `?limit=20`

### GET /api/pending
Query: `?type=all`

### GET /api/targets

### POST /api/send
Body: `{ from_user, to_user, category, content }`

### POST /api/broadcast
Body: `{ from_user, content, category }`

### POST /api/ack
Body: `{ ids: [1, 2, 3] }`

### POST /api/todo
Body: `{ title, assignee, priority, created_by }` or `{ action: "complete", todo_id }`

### POST /api/sync-commits

### GET /health
Returns: `{ status: "ok", timestamp: "..." }`
