About Rook
Rook MCP is an MCP server that saves text from AI chats into the inbox of Rook, a macOS notes app for code. Each AI client gets its own inbox, and Rook must be installed from userook.app before use. It is intended for macOS users who work with several MCP clients.
Key features
- 01Saves text through the append_to_inbox tool
- 02Writes content with an optional title
- 03Built-in rate limit and pause setting
- 04Writes succeed only with the binary bundled in Rook
- 05Standardized error codes for failed calls
Use cases
- 01Saving code snippets or notes from AI chats into Rook
- 02Quickly capturing ideas from Claude Code or Cursor
- 03Keeping separate inboxes for different AI clients
MCP support
The project is a stdio-based MCP server that exposes a single tool, append_to_inbox, which writes submitted content to a shared container that Rook reads.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMErook-mcp
A Model Context Protocol server that saves text into the Rook notes app on macOS. Speaks stdio JSON-RPC 2.0, exposes one tool: append_to_inbox.
When an MCP client (Claude Desktop, Cursor, Claude Code, Codex, Gemini CLI, etc.) calls append_to_inbox, this server writes a JSON line to a shared macOS app-group container. Rook drains that container and turns each line into a note in your inbox.
Install
rook-mcp is included inside Rook.app at Contents/Helpers/rook-mcp.app. Install Rook from userook.app, then point your MCP client at the bundled binary:
/Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rook": {
"command": "/Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp"
}
}
}
Cursor
~/.cursor/mcp.json:
{
"mcpServers": {
"rook": {
"command": "/Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp"
}
}
}
Claude Code
Install with user scope so the server is available from any directory:
claude mcp add rook -s user /Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp
Codex
codex mcp add rook -- /Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp
Or add it manually to ~/.codex/config.toml:
[mcp_servers.rook]
command = "/Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp"
Gemini CLI
~/.gemini/settings.json:
{
"mcpServers": {
"rook": {
"command": "/Applications/Rook.app/Contents/Helpers/rook-mcp.app/Contents/MacOS/rook-mcp"
}
}
}
Gemini CLI prompts for trust on first use of the server.
Tools
append_to_inbox
Saves text to the user's Rook notes app. The model should call this when the user asks to save, capture, remember, jot down, note, log, add, or stash something in Rook.
Input:
| Field | Type | Required | Notes |
|---|---|---|---|
content | string | yes | The text to save. Up to 100,000 characters. |
title | string | no | Short heading shown above the content. Up to 200 characters. |
Response: a confirmation like Saved to Rook inbox 2026-05-12 under "Test".
Errors:
| Code | Slug | Meaning |
|---|---|---|
| -32600 | invalid request | Missing or wrong jsonrpc version, or method called before initialize |
| -32001 | entitlement_unavailable | App-group container not reachable (unsigned build) |
| -32002 | rate_limited | More than 100 writes in the last 60 seconds |
| -32003 | paused | MCP is paused in Rook (Settings → MCP → Resume) |
| -32004 | input_invalid | Content or title failed validation, or params had wrong shape |
| -32005 | store_write_failed | File write to the inbox failed |
Building
Requires Swift 5.9+ and macOS 14+:
swift build -c release
The resulting binary returns entitlement_unavailable on every tool call because it lacks Rook's team-ID signature and app-group entitlement. Only the binary inside Rook.app/Contents/Helpers/ can deliver content to Rook.
Security
See SECURITY.md for the trust boundary, sanitizer, rate limit, pause flag, and vulnerability reporting policy.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.