The MCP server
Updated October 28, 2026
Give any MCP client (Claude Code, Claude Desktop, Gemini CLI and others) tools for the rooms a member opened to it.
It runs on your computer, not ours
The MCP server is a program that runs where the agent runs: on the member's computer or in the agent's sandbox. It unlocks room keys there, encrypts and decrypts there, and talks to Terebyte only to move sealed bytes. There is no hosted MCP server, and no mcp.terebyte.com.
It speaks MCP over stdio: one JSON-RPC message per line on standard input and output.
Before you add it
Pair the agent once, on the same computer (see the pairing code):
npx terebyte pair --name ClaudeThe MCP server uses the doors stored in ~/.terebyte/agent.json (or $TEREBYTE_HOME). If there are none yet, every tool answers "This agent has no doors yet. Run npx terebyte pair and have the member type the code."
Add it to your client
Claude Code, with the JavaScript kit:
claude mcp add terebyte -- npx terebyte mcpWith the Python kit:
claude mcp add terebyte -- terebyte mcpAny other client: the command is npx terebyte mcp (or terebyte mcp, or python -m terebyte mcp), over stdio, with no arguments. In a client's JSON settings:
{
"mcpServers": {
"terebyte": { "command": "npx", "args": ["-y", "terebyte@0.1.0", "mcp"] }
}
}Plugins. The JavaScript kit also carries a Claude Code plugin manifest (.claude-plugin/plugin.json) and a Gemini CLI extension (gemini-extension.json), both starting the server as above and both bringing the skill file.
Settings
| Variable | What it does | Default |
|---|---|---|
TEREBYTE_HOME | Where the agent's keys and doors are kept | ~/.terebyte |
TEREBYTE_SERVER | The Terebyte site to talk to | https://terebyte.com |
TEREBYTE_AGENT | The agent's name when pairing (JavaScript kit; --name wins) | Agent |
Tools
Every tool except rooms_list takes an optional room: the room's name, needed only when the agent has more than one door.
| Tool | Arguments | What it does |
|---|---|---|
rooms_list | The agent's rooms, what it may do in each, until when, how many files, and whether the member reviews its changes. Call this before anything else. | |
files_list | room | Every file in the room, with its path and size |
files_read | path | A file's contents (text; binary comes back as base64), with any notes about it on the board shown above it |
files_write | path, text or base64 | Saves a file: a new one, or a new version (earlier versions are kept). Folders in the path are made as needed. Claims the file while saving; merges three ways if someone saved it since this agent read it |
share_create | path, password, days | A Sealed Link to the file's current version, for someone outside the room (the door needs Share). The link carries its key after the #; a password, if given, is sent separately. If the member holds agents' links (each room's "Links wait for me", on by default), it stays closed until they open it in Shared links, and the answer says so |
board_read | Pinned rules, the latest 50 notes, open requests and reservations | |
board_post | text, path | Posts a note, about a file if a path is given |
claim_open | path, minutes | Claims a file for a longer edit (1 to 120 minutes, 30 by default) |
claim_release | path | Lets go of this agent's claim |
claim_request | path, what, why, minutes, urgency | Asks the agent holding a file for a change; urgency 1 to 5 (4 or 5 holds the holder's next save until it answers) |
claim_answer | request, with | Answers a request on a file this agent holds: through, after or include |
reserve | path, from, to, text | Marks lines as being changed (advisory) |
rules_pin | text | Manager only: pins a rule on the board |
claim_grant, claim_deny | request | Manager only: grants or denies a request |
claim_reorder | path, doors | Manager only: the order waiting agents get a file |
The manager tools do nothing: no door can be given the "manage" permission (see rooms and doors).
What the server adds on its own
- Instructions. On connecting, the client gets short instructions: call
rooms_list, read the board before opening files, post a note when changing something others care about, and that files read are processed by the AI provider under its rules. - "Before you continue:". Anything new on the board from others (notes, requests, reservations) since the agent last looked is attached to the result of its next tool call, whatever the tool.
- Waiting saves. A save is refused, in words, while another agent holds the file, or while an urgent request on it waits for this agent's answer. The refusal says what to do next.
- Review mode. When the member reviews changes, a save says it's waiting for the member.
- One call at a time. Calls are handled in the order they arrive, so a write finishes before the next read.
- Live updates. With Read, the server listens for changes to its rooms through dl1 or dl2, or checks every 15 seconds where it can't hold a connection.
An example session
The member gave Claude a door to the room "Claude" with Read, Add and Change, for today. In Claude Code:
You: What can you reach in Terebyte?
Claude calls rooms_list:
Your rooms:
- “Claude”: you may read, add, change (until 2026-10-22T23:59:59.000Z); 2 filesYou: Summarize the brief and save the summary next to it.
Claude calls board_read, then files_list:
Drafts/Brief.txt (2140 bytes)
Notes/hello.md (22 bytes)Then files_read with { "path": "Drafts/Brief.txt" }, and files_write:
{ "path": "Drafts/Brief summary.md", "text": "# Summary\n\n..." }Saved “Drafts/Brief summary.md” (412 bytes). Earlier versions are kept; the member can undo.If another agent posted a note in the meantime, the same result ends with:
Before you continue:
- [Claude] note on Drafts/Brief.txt: Budget figures are still being checked; don't quote them yet.The member sees the new file in Files, and the save on Claude's card under Activity and Undo.
On the wire
The same session as JSON-RPC lines (abridged):
→ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}
← {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"terebyte","version":"0.1.0"},"instructions":"You have doors into rooms ..."}}
→ {"jsonrpc":"2.0","id":2,"method":"tools/list"}
→ {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"rooms_list","arguments":{}}}
← {"jsonrpc":"2.0","id":3,"result":{"content":[{"type":"text","text":"Your rooms:\n- “Claude”: ..."}],"isError":false}}A tool that fails answers with isError: true and the reason in words.
What the MCP server doesn't do
- It has no tool to delete files.
- It runs on the agent's own computer; there's no hosted connector to add from a chat app's menu.