Rook MCP

Save anything while you code with AI, directly to Rook.

Rook supports the Model Context Protocol (MCP), the open protocol AI tools use to talk to programs and data sources. Connect any tool that supports local MCP servers, including OpenCode, Claude, Codex, Cursor and Gemini. Each tool saves to its own inbox in Rook.

Requires Rook 1.3.0 or later.Download·Source code

Configuration

1. Enable MCP in Rook

Install Rook in /Applications, then open Settings → MCP and select Enable.

2. Configure your MCP client

Select your client below and follow its configuration instructions.

3. Verify the connection

Start a new session in your configured client and send the following request.

Save "hello from my AI tool" to Rook

Verify that the saved text appears in the client's inbox in Rook. By default, saves from the same client are grouped into one note per day. To create a separate note for each save, change Save style in Settings → MCP. This setting applies to new saves only.

Separate inboxes for each connected MCP client.

How it works

The MCP client launches the helper bundled with Rook and communicates with it over standard input and output (stdio). The helper writes to a shared local inbox, which Rook reads to import saved content.

Rook MCP architectureAn AI tool talks to rook-mcp over stdio. rook-mcp runs sandboxed and appends to a shared inbox on disk. Rook reads from the inbox.AI toolclientClaude Code, Codex,Gemini, Cursor,Claude Desktopstdio(JSON-RPC)rook-mcpsandboxedappends toinboxwriteshared inboxon diskapp groupcontainerreadRooknotes app

The helper runs in the macOS app sandbox without network access. It exposes one tool for appending content to the inbox, with no operations to read, modify or delete existing notes. This allows AI tools to save content to Rook without access to your existing notes.

Common questions

Can I save multiple items or long content?

Yes. A client can save multiple items through consecutive append_to_inbox requests. Each request accepts one content value and an optional title.

For content over 100,000 characters, the helper instructs the client to split the text into consecutive requests, preserving each part verbatim and in order. The client performs the split; the helper does not split oversized requests automatically. Each request counts toward the rate limit and follows your Save style setting.

Does saved content support Markdown?

Rook renders saved Markdown as formatted notes, including headings, fenced code blocks, lists, task lists, links and text emphasis. Include a language identifier on fenced code blocks for syntax highlighting.

How do I disable or pause MCP?

In Settings → MCP, clear Enable to disable the integration. Select Pause new saves to suspend writes without removing the client configuration.

How do I remove the integration entirely?

Run the matching remove command for each client:

  • Claude Code: claude mcp remove rook
  • Codex: codex mcp remove rook
  • Gemini CLI: gemini mcp remove rook
  • Cursor: remove rookfrom the User MCP Servers list in Settings → Tools & MCPs
  • Claude Desktop: remove the rook block from Settings → Developer → Edit Config
Are there limits?

Each Rook MCP helper process accepts up to 100 save requests in a rolling 60-second window. Requests that fail validation or are paused also count toward this limit. Each request supports up to 100,000 characters of content.

Can a client save while Rook is not running?

Yes. The helper writes the content to disk. Rook imports it the next time it reads the inbox.

How do I inspect save activity?

Click the MCP indicator in Rook's toolbar to inspect recent inbox activity. Use the server logs below to diagnose requests rejected before they reach the inbox.

How do I inspect server logs?

Run the following command in Terminal to stream helper logs, then submit a save request from your MCP client.

/usr/bin/log stream --level info --predicate 'subsystem == "com.userook.rook.mcp"'

The helper also writes to stderr, which your AI client may capture.

Technical reference

append_to_inbox · parameters, responses and errors

rook-mcp implements MCP protocol 2024-11-05 over stdio. The server exposes one tool.

append_to_inbox

Appends text to the calling client's Rook inbox.

Parameters

NameTypeRequiredDescription
contentstringyesMarkdown content to save, up to 100,000 characters per request.
titlestringnoOptional heading. Titles longer than 200 characters are truncated after sanitization.

Returns

A tool result containing a text confirmation. Without a title: Saved to Rook inbox. With a title: Saved to Rook inbox under "my title".

Errors

The current helper uses -32005 for both oversized content and write failures. Inspect the error message to distinguish them.

CodeNameDescription
-32700parse errorThe request could not be decoded as a JSON-RPC request.
-32600invalid requestThe jsonrpc version is missing or invalid, or the method was called before initialization.
-32601method not found / tool not foundThe requested method or tool is not supported.
-32001entitlement_unavailableThe helper cannot access the shared app-group container.
-32002rate_limitedThe helper process has reached 100 save requests in a rolling 60-second window.
-32003pausedMCP is paused in Rook. Clear Pause new saves in Settings → MCP.
-32004input_invalidRequest parameters are invalid, or content or title is empty after sanitization.
-32005content_too_longContent exceeds 100,000 characters. Split it into consecutive requests without summarizing or omitting text.
-32005store_write_failedThe helper could not write the content to the inbox.
-32006disabledMCP is disabled. Select Enable in Settings → MCP.