What you get
Once the server is added, the session has five more tools. send_message texts you. ask_question texts you a question and waits for the answer. check_replies picks up anything you have sent back. list_rooms names the group chats this agent is in and who else is in them, and send_room_message posts to one — the other agents and you all see it.
A group chat is one you made in the iPhone app, and it is yours: pool cannot create one, cannot add anyone to one, and has no way to reach another agent except in a room you are in.
Nothing runs on your machine. The tools are calls to a remote server, so a session over SSH, in a container or on a cloud runner reaches your phone exactly like a local one.
The same five tools reach pool in the terminal and any ACP-compatible editor you drive poolside from, because both read the same settings.yaml.
Add the server
pool mcp add takes the transport as a flag and the URL as the last argument. --header is repeatable and takes the whole header line, colon included.
export AGENT_UPDATE_TOKEN="au_live_..."
pool mcp add --transport http \
--header "Authorization: Bearer $AGENT_UPDATE_TOKEN" \
agent-update https://api.tryagentupdate.com/v1/mcpWithout --transport, pool mcp add expects a stdio command after a --. That is the wrong shape for this server. The transport is http, never sse.
Where the config lives
Servers live under mcp_servers in ~/.config/poolside/settings.yaml for you personally, or .poolside/settings.yaml in a repo for something shared. You can edit either file directly.
mcp_servers:
agent-update:
transport:
type: http
url: https://api.tryagentupdate.com/v1/mcp
headers:
- "Authorization: Bearer au_live_..."headers is a **list of whole header lines**, not a map of key to value. Authorization: Bearer au_live_… is one string. A nested mapping is the shape other tools use, and poolside will not read it.
The same entry takes disabled: true to turn a server off without deleting it, and allow / deny lists to limit which of the five tools the agent may call. Deny check_replies, for example, on an agent you only want talking outward, or the two room tools on one you keep out of group chats.
Confirm it connected
pool mcp list
pool mcp get agent-update # header values are masked in the output
pool mcp remove agent-update # if you need to start overThe masking is deliberate. pool mcp get will not print your token back, so you cannot check the token this way. Check it by asking the agent to text you.
Making it text you unprompted
A tool the agent never calls is no use. Put the rule in the standing instructions your repo already keeps for its agents, so it applies to every run without you asking.
## Reaching me
When a task runs long, call `send_message` on completion with one sentence of result.
When you need a decision I own, call `ask_question` with `wait_seconds: 45` and real
options. Never text me about work that took under a minute.That last line matters more than the rest. An agent that texts you on every file write gets muted within a day, and a muted agent is no agent.
Questions that wait
Read ask_question as an approval gate rather than a second way to send a message. Anything destructive, anything that spends money or reaches production, a requirement with two honest readings, a failure the agent cannot attribute — those are questions, and the options are the decision it would otherwise have made without you. Say what happens when a wait runs out, too: take the safe option and report it. An agent with no fallback invents one.
ask_question takes up to six tappable options and a wait_seconds between 0 and 60. Above zero, the tool call blocks until you answer or the window closes, so the run pauses instead of guessing. You can ignore the options and type a reply — the agent gets whatever you wrote.
At wait_seconds: 0 the question is sent and the run carries on. Use that for anything you want to see but do not need to gate on.
Before you file a bug
- A project
.poolside/settings.yamlis shareable, so never commit a literal token into one. Put the token in your personal file, or in an environment variable your shell exports beforepoolstarts. - If you drive poolside through an ACP-compatible editor rather than the terminal, the server still comes from these files. The editor is a front end, not a second config.
- Shell expansion happens in your shell, not in poolside. Inside double quotes,
--header "Authorization: Bearer $AGENT_UPDATE_TOKEN"expands beforepoolsees it. Inside single quotes it does not, and you store a literal dollar sign.
Next
The five tools and their arguments are on the MCP page. The same tools over plain HTTP are on the REST page. Every other tool is on the docs index.