Your coding agent knows your repo. It does not know your Mac. When it needs disk space it reaches for rm -rf. When you ask what is eating 80 GB it runs du and reads the output into the conversation, secrets included.
Room Service is an MCP server for Mac: built in, local, and off by default. Turn it on and your agent sees what Room Service sees, and acts only within the permissions you set.
What your agent can see and do
See what takes space, with risk labels. list_categories and get_category return the last scan with your excluded paths applied, each row marked safe, review, or risky.
Clean through the app, not the shell. clean_items runs scan paths through the Clean screen’s own selection rules. The default is Move to Trash, or Quarantine when you have it on. dry_run: true shows exactly what would go.
Find and stop dev servers and stuck builds. list_ports, list_watchers, and list_processes show what is running. stop_port, stop_watcher, and quit_process stop it the way the app’s Stop does.
Read projects and Git state. get_project gives storage breakdowns, health findings, and live Git state. git_sweep reports uncommitted and unpushed work, and only reports.
How it works
Turn it on. Open Settings > Agents and switch on “Allow agents to connect”. Until you do, nothing listens.
Add it to your agent. Settings > Agents writes the entry for Claude Code, Codex, or Cursor with one click. To add it by hand in Claude Code, run the command below. Any other agent can use
roomservice mcpas a stdio server.claude mcp add --scope user room-service -- roomservice mcpAllow the agent once. On its first tool call, Room Service shows the agent’s executable path and asks. Allowed agents sit in Settings > Agents, where you can remove one.
Ask your agent. “What is taking space on this Mac?” “Stop whatever is on port 3000.” “Dry-run a cleanup of Xcode build data.”
Safety: what it will and will not do
No network, and off until you turn it on. roomservice mcp relays between the agent and the app over an owner-only Unix socket at ~/.room-service-swift/mcp.sock. Every connection is checked against your user ID, and no TCP port is opened.
Per-group permissions. Each group of tools has its own switch; off means those tools leave the agent’s list. When you turn the server on:
Every read group is on, except Sensitive project details.
Reversible actions are on and run when the agent asks: move to Trash or Quarantine, quit an app, stop a port or watcher, shut down a simulator.
Permanent actions are off: permanent delete, force quit, Docker prune.
Permanent actions ask you every time, and so does SIGTERM. Even when turned on, each permanent action opens a panel in Room Service naming the agent and what will happen, and runs only after you click Allow. It floats above other apps without taking focus, and Return never confirms it, so typing in the agent’s terminal cannot answer it. The agent waits up to two minutes; Deny or no answer means nothing happens. quit_process quits an app normally right away; any other process, a build, a server, a database, gets SIGTERM only after you click Allow, because it cannot ask to save.
Agents are known by executable, not by name. Room Service remembers an allowed agent by the executable macOS reports, so another program cannot pass itself off as Claude Code by name. After a Deny, the same agent is refused for five minutes.
Everything an agent changes is in the Ops Feed. Every action, and every Allow or Deny, is recorded with the agent’s name. Actions run through the same code as the app’s own buttons, with the same checks and history.
Developer Vault is never exposed, and project secrets are hidden by default. Vault has no scope, no tool reads, lists, or unlocks its items, health_check leaves it out, and no setting can change this. get_project and health_check also leave out credential file names (.env, signing keys), secret matches, and private key paths, and say how many were hidden, until you turn that group on in Settings > Agents.
Git Sweep is read-only, and some things never happen. There is no tool to commit, push, stash, or discard anything. An agent’s own processes are never quit. macOS components, Room Service itself, and Apple’s startup items are never touched.
Free vs Pro
Reading is free, as in the app, except the Projects tools. Scans, simulators, recipe drafts, and every dry run are free too. Pro is needed for what needs Pro in the app: Projects, real cleanup, quitting processes, uninstalling apps, running recipes, and every permanent action. Without Pro those tools are not offered to agents.