AI & integrations

MCP server

Let your other AI tools see your notes. Nomima ships a built-in MCP server so apps like Claude Code, Claude Desktop and Cursor can search, read — and optionally write — your vault.

What is MCP?

The Model Context Protocol is an open standard that lets AI applications connect to data sources. Nomima speaks it natively: enable the server and any MCP-capable tool on your Mac can ask Nomima questions like “search the vault for X” or “list open tasks” — instead of you copy-pasting notes around.

Local only: the server listens on 127.0.0.1 — your own machine. It is never reachable from the network, every request needs a secret token, and write access is a separate opt-in switch.

Enabling it

  1. Open Settings → MCP Server.
  2. Toggle Enable Server. It starts at http://127.0.0.1:4123/mcp.
  3. Copy the bearer token shown (masked until you reveal it). Use Rotate Token any time to invalidate old credentials instantly.
  4. Optionally toggle Allow writes if you want external tools to be able to create and edit notes — leave it off for read-only access.
Settings · MCP Server
Enable Server
Let MCP-capable tools reach into your vault
Endpoint
http://127.0.0.1:4123/mcpCopy
Bearer token
nmk_••••••••••••••••••••8f3aCopyRotate
Allow writes
Off — connected tools have read-only access
Exposed tools
search_noteslist_notebooksget_notelist_tasksknowledge_graph+4
Request log
Claude Codesearch_notes18ms
Cursorlist_tasks6ms
Claude Codeget_note11ms
Enable the server, copy the token, and decide whether external tools may write — all from one panel.

Connecting a client

Point any MCP client at the URL with the token as a bearer credential. For Claude Code, for example:

claude mcp add --transport http nomima \
  http://127.0.0.1:4123/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

Or in a JSON-based client config:

{
  "url": "http://127.0.0.1:4123/mcp",
  "headers": { "Authorization": "Bearer YOUR_TOKEN" }
}

What clients can do

Read tools (always available while the server is on)

ToolWhat it returns
search_notesFull-text search across the vault
semantic_searchA backward-compat alias of search_notes — the same keyword (full-text) search, not vector/embedding search
list_notebooksAll notes with previews
get_noteA complete note’s content
get_note_blocksA note’s structured block tree (with block ids) — inspect before editing or deleting blocks
knowledge_graphEntities, relations and clusters
list_tasksOpen and dated checkboxes, chronologically
list_remindersTracked reminders with due times
get_editor_schemaNomima’s block catalogue, so clients write well-formed notes

Write tools (only when “Allow writes” is on)

ToolWhat it does
create_noteCreates a new notebook from a title and Markdown body
append_to_noteAppends Markdown to an existing note
add_blocksInserts structured Nomima blocks — checklists, callouts, columns, databases (typed columns whose cells become Smart Tags), terminals, embeds / video, code, reminders, Kanban/Gantt/widgets and more, with a layout guide for composing complex notebooks
rename_noteChanges an existing note’s title
update_blockReplaces a single block in place, by block id
replace_note_contentDiscards a note’s existing blocks and rewrites it from scratch
delete_blockPermanently removes a single block from a note
delete_notePermanently deletes a whole note and all its blocks — cannot be undone

Writes are powerful — connect only trusted clients: with “Allow writes” on, a connected tool can not only create and append, but also rename, overwrite (replace_note_content) and permanently delete notes and blocks. Those deletions can’t be undone, so leave writes off unless you trust the client, and watch the activity log below.

Discoverable schema: a connected tool can call get_editor_schema (or read the nomima://schema/editor resource) to fetch the exact shape of every block it can author — fields, examples, and how to nest them — so what it sends always renders correctly.

Watching the activity log

The MCP panel keeps a live log of every request: which client (Claude, Cursor, …), what it called, whether it succeeded, and how long it took — with request and response previews. If you ever wonder what an external tool just did to your vault, the answer is right there.

Things people do with it

The other direction: Nomima as an MCP client

Everything above is the inbound server — other tools reaching into your vault. Nomima also works the opposite way, as an MCP client: it can reach out to remote MCP servers and bridge their tools into Summon. Same protocol, opposite direction — they share the “MCP” name but point at each other, so it’s worth keeping them straight:

Inbound (the rest of this page)Outbound (this section)
DirectionYour editors → your vaultSummon → a remote server
Who hosts itNomima runs the server on 127.0.0.1Nomima connects to someone else’s server
Configured inSettings → MCP ServerSettings → Summon → Capabilities

Context7 — up-to-date library docs

Nomima ships one outbound server built in: Context7, a source of up-to-date library & framework documentation. It appears as the Summon capability “Look up library docs” under Settings → Summon → Capabilities, where you’ll find:

Once it’s on, ask Summon things like “what’s the current API for <library>?” and it can pull live documentation instead of leaning on the model’s training cut-off.

Settings · Summon · Capabilities
📚
Look up library docs
Context7 · up-to-date library & framework docs
API key — optional
ctx7sk-••••••••••••••••2b9d👁
Test connection ✓ Connected · 2 tools available
Context7 is the built-in outbound MCP server — toggle it on, optionally add a ctx7sk- key, and Test connection to verify the handshake.

Custom outbound servers

The client isn’t limited to Context7 — under the hood it can connect to any Streamable-HTTP MCP endpoint (an https://…/mcp URL, with an optional auth header), turning that server’s tools into things Summon can call. Built-in servers like Context7 can be disabled but not removed.

Treated as untrusted: whatever an outbound MCP tool returns is handled as untrusted web content — Summon never follows instructions hidden inside it, exactly as it treats any page it fetches from the web.