Lorah
Download

Quickstart/MCP setup

Connect Lorah to everything else.

Let Claude Desktop, Cursor or Claude Code read your approved memory, or let a specialist use an outside tool. Proposed memory waits in Review. What a tool returns lands in the chat.

ReferencePromacOS and Windows

MCP setup · a Quickstart reference

What MCP does here

MCP, the Model Context Protocol, is a standard way for AI tools to exchange context. In Lorah it runs in both directions, through one gate. Outside tools read your approved memory; a specialist can use an outside tool; what it proposes as memory waits for you.

Three tools, one memory. Claude Desktop, Cursor and Claude Code reading the same approved decision.

Lorah as a server

Settings, Advanced, MCP server. Everything a client needs is in this one panel. Copy the block exactly as the app shows it; the Copy button does that.

Settings
Workspace
Appearance
API keys
License & Billing
Budget
Automatic syncs
Routing
Notifications
Backup
Feedback
Labs
Advanced

MCP server

Lets an outside tool read this workspace's approved memory. Copy the block into the client's config and restart the client.

Workspace: SignalNest ▼Server on
Copy{ "mcpServers": { "lorah": { "command": "/Applications/Lorah.app/Contents/MacOS/Lorah", "args": ["…/app.asar.unpacked/out/kernel/mcp-main.js"], "env": { "ELECTRON_RUN_AS_NODE": "1", "BOND_KERNEL_DATA_ROOT": "<your Lorah data folder>", "BOND_MCP_WORKSPACE_ID": "<the workspace you picked>", "BOND_KERNEL_PACKAGED": "1" } } } }
Where the client reads itClaude Desktop, then restart it.macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json
No token in the blockA local command, the path to Lorah's entry point, and the workspace it may read. To disconnect a client, delete the block from its config. What it already read stays with that client, under its own data policy.
One workspace per blockPick another workspace above and copy again. Runs only on this computer, only while a client is talking to it. The block above is the macOS shape; on Windows the command points at Lorah.exe and the same four variables are filled in.
Readsapproved memory only
search_memoryget_recent_decisionsget_glossary
Writes, through Reviewan item, or a session summary; proposed, never entered
queue_for_reviewsubmit_summary

Needs Pro. On Free the server lists its tools but refuses to run them. What a client reads leaves Lorah; check that client's own data policy.

The server panel: the workspace it serves, the block filled in for your install, where the client reads it, and the five tools it exposes: three reads, and two writes that propose an item or a session summary.

A specialist as a client

The pencil beside the picker, the Engine tab, and Runs on set to an outside tool through MCP. Three connections; all three need Pro.

JackBusiness Strategist×
PersonaEngineMemoryMaterials
Runs on
A model providerAn outside tool, through MCP
Connectionpick one
CommandA local command-line tool that takes input on stdin. The Claude Code shape.command · arguments · persistent session · task timeout
MCP stdioA local MCP server over standard input and output. The usual one.command · arguments · environment variables
MCP SSEA remote MCP server over server-sent events. Only for servers you trust.server URL · tool name, optional · workspace context
npxThe executable that starts the MCP server.
-y my-mcp-server
LINEAR_API_KEY=••••••••Secrets the tool needs. Stored encrypted in your keychain and handed to the process when it runs. Never written into the prompt or the workspace context.
CancelSave

Jack, running on an outside tool. One choice of connection, and the fields for it. Persistent session keeps continuity across messages when the tool supports it; task timeout is how long Lorah waits before stopping a long call.

Command. A local tool.

Takes input on stdin and answers in the terminal. The Claude Code shape.

claude
-p
OnKeeps continuity across messages when the tool supports it.
120 sHow long Lorah waits before stopping a long call.

MCP stdio. A local server.

Over standard input and output. The usual one.

npx
-y my-mcp-server
LINEAR_API_KEY=••••••••Secrets the server needs. Kept in your keychain, never in the prompt.

MCP SSE. A remote server.

Over server-sent events. Only for servers you trust.

https://example.com/sse
optionalBlank lets the specialist pick the tool.
routing notes, never a key
Environment variables are for secrets: API keys, tokens, anything sensitive a tool needs. Stored encrypted in your keychain and handed to the process at dispatch, never written into the prompt or the workspace context.
Workspace context is for routing notes, injected into the tool-selection prompt so the tool chooses correctly: workspace IDs, team keys, default project names. Never a key.

Which one to use

Let Claude Desktop, Cursor or Claude Code read Lorah context
Settings, Advanced, MCP server
Connect a specialist to a local command-line tool
Specialist, Engine, Command
Connect a specialist to a local MCP server
Specialist, Engine, MCP stdio
Connect a specialist to a remote MCP server
Specialist, Engine, MCP SSE
Store API keys for an MCP tool
Environment variables
Add non-secret routing hints
Workspace context
Review proposed memory or a write-back
Review

Before a tool runs

Before a specialist uses an MCP tool, Lorah asks you. Command mode runs its command directly, without a question.

Jack wants to use Linear
create_issue · "Launch: add the tasting-notes line to the launch page"
Allow onceAlways allow create_issueDeny

Always allow remembers the answer for that one tool. A tool whose name looks destructive, like delete or reset, asks every time.

The question you get. Always allow remembers the answer for that tool. Destructive-sounding tools ask every time.

Proposed memory goes through Review

When a client proposes an item or a session summary, it waits in Review. What a tool returns to a specialist lands in the chat, marked as untrusted, and does not become memory on its own. Lorah does not see what an outside tool spends on its own provider.

From Cursor · proposed fact

The launch page ships with the line "roast timer now, tasting notes next month".

Submitted through queue_for_review, two minutes ago. Not in memory until you say so.
ApproveEditRejectDismiss

A proposal from an outside tool, in Review. Approve, reject or dismiss; it is not memory until you say so.

Troubleshooting

Three things that look broken and mostly aren't.

The client doesn't see Lorah
  • The block went into the wrong config file.
  • The client wasn't restarted.
  • The command path is wrong.
  • The workspace isn't active in Lorah.
A specialist can't connect
  • Try the command in a terminal first.
  • Check the arguments, and that the server is installed.
  • Environment variables set? Timeout long enough?
  • For SSE, is the URL reachable?
A write-back didn't become memory
  • Expected. Open Review; it is waiting for you.