Skip to content

The MCP server

obelisk-mcp is a thin wrapper over the same core as the CLI: one tool per verb, no logic of its own.

Tool What it does
obelisk_list Every comment on a note, plus the line-numbered body.
obelisk_comment Comment on one passage, anchored by a verbatim quote.
obelisk_reply Reply to a comment.
obelisk_resolve Resolve or reopen a comment.

The descriptions are the point. A refusal is the main channel through which the anchor contract gets taught, so the rules are stated up front and every refusal comes back as a tool error carrying the message that fixes the call.

Terminal window
npm run build # from the root of the repo
claude mcp add obelisk --scope user -- \
node "$PWD/dist/mcp.mjs" --vault /path/to/your/vault

$PWD fills in the repo’s half, so the vault is the only path you supply, and it has to be a real one.

Both paths have to be absolute. The server is spawned without a shell, so a ~ in a config file stays a literal tilde, and the process inherits the agent’s working directory rather than the vault’s.

It speaks MCP over stdio. The agent spawns a process when a session opens and kills it when the session ends, so obelisk-mcp is never run by hand: no port, no daemon.

One process per session is also what gives a session’s comments a single run chip in the sidebar. Rebuild while a session is open and it keeps the old process. Reconnect it from /mcp, or start a new session.

A vault path that does not exist makes node exit before it says anything, which reaches the agent as CONNECTION_CLOSED and names nothing. The path in claude mcp get obelisk is the first thing to check.

To test the server with no agent in the way:

Terminal window
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| node dist/mcp.mjs --vault /abs/path/to/vault

That prints the handshake and then the four tools. A server that fails this fails the same way for an agent, which is worth knowing before you go looking at the agent’s end of it.

Obelisk is MIT licensed. An obelus was the mark an editor drew in the margin of a manuscript to say: this passage is disputed.

Home