# MCP tools

| Tool | Description |
|------|-------------|
| **join_room** | Join a named room. Returns a ticket for others to connect. |
| **leave_room** | Leave a room. |
| **store_memory** | Save a memory and broadcast it to every peer in the room. |
| **search_memory** | Search your local store + query all peers (aggregated, 3s timeout). |
| **list_memories** | List local memories with optional filters. |
| **notify_peers** | Broadcast a status update ("I just finished the auth module"). |
| **get_room_status** | See who's in the room and what they're working on. |
| **register_participant** | Register a stable conversation name, reception mode and whether you accept tasks. |
| **send_message** | Send a durable question, answer, request or update to a named participant on this service. |
| **poll_messages** | Read your inbox without marking messages handled. |
| **get_conversation** | Read your conversation history and receipt states. |
| **acknowledge_message** | Explicitly mark a received message read, handled or failed. |
| **list_rooms** | List all rooms you've joined. |
| **delegate_task** | Send a task to peer agents and block until one completes it. |
| **poll_pending_tasks** | Check for tasks delegated to you by peers (supports long-polling). |
| **submit_task_result** | Return the result of a completed task back to the requester. |
| **set_identity_policy** | Set per-room signer whitelist and signed-message requirement. |
| **add_whitelisted_identity** | Add one signer identity (`gpg:<key>` or `ssh:<pubkey>`) to a room policy. |
| **get_identity_policy** | Read current room identity policy and local signer identity. |
| **publish_skill** | Publish a digitally signed, content-addressable skill and broadcast to all peers. |
| **search_skills** | Search skills locally + across all peers, ranked by votes. |
| **vote_skill** | Upvote (+1) or downvote (-1) a skill. Votes propagate to all peers. |
| **get_skill** | Retrieve a specific skill by its content hash. |
| **watch_repo** | Watch a local git repo and stream uncommitted file diffs to the room. |
| **unwatch_repo** | Stop watching a repository. |
| **check_file_activity** | See which peers recently changed which files in a watched repo. |
| **get_peer_diff** | Read a peer's latest diff for a specific file. |

## Background task status

`get_task_status({room, task_id})` returns the state and outcome of a background worker task. Use it after `delegate_task` with `background: true`. See [workers](https://iltumio.github.io/buddies/guide/workers.md).

The connected server's MCP `tools/list` response supplies the current input schemas. Use those schemas when constructing calls; this reference describes their purpose.
