Trilium MCP Server

Single static Go binary. No runtime dependencies. Talks to your local Trilium over HTTP(S) and to the client over stdio.

Remote serverstreamable-httpGo

What is the Trilium MCP Server?

Single static Go binary. No runtime dependencies. Talks to your local Trilium over HTTP(S) and to the client over stdio.

What the server does

  • Capture stuff into your notes (reading lists, decisions, research dumps)
  • Maintain structured "tables" by creating notes-as-rows under a parent and tagging them with labels-as-columns
  • Search your existing KB and feed snippets back into a conversation

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
create_noteCreate a note (optionally under a parent, with labels in one shot).
batch_create_notesCreate many notes in one call — saves per-call schema overhead during restructuring.
get_noteFetch note metadata; optionally include body content.
get_note_subtreeRecursively fetch a note + descendants up to N levels as a nested tree — replaces N+1 get_note calls.
update_notePartial update: include only the fields you want to change; omitted fields stay as-is.
append_contentAppend text to the body with a configurable separator.
delete_noteDelete a note and its subtree.
batch_delete_notesDelete many notes; partial failures don't stop the rest.
move_noteRe-parent a note in two ETAPI calls (vs the old read-recreate-delete dance).
clone_noteAdd the note under an additional parent — Trilium-native multi-parent links.
delete_branchRemove one parent-child link without deleting the note (un-clone).
search_notesFull-power Trilium search (label, ~relation, note.title %= "regex", ancestor scoping, etc.).
add_labelAttach a label (key=value) — acts as a "column" in collection views.
add_relationAttach a relation (~name → noteId) — like a foreign key between notes.
remove_attributeRemove a label or relation by its attribute id.
list_attributesList all labels and relations on a note.

How to install the Trilium MCP Server

{
  "mcpServers": {
    "trilium": {
      "command": "/absolute/path/to/trilium-mcp",
      "env": {
        "TRILIUM_URL": "http://localhost:8092",
        "TRILIUM_TOKEN": "YOUR_TRILIUM_TOKEN"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
TRILIUM_URLDeclared in the maintainer’s client configuration.Yes
TRILIUM_TOKENDeclared in the maintainer’s client configuration.Yes

Example prompts to try

  • “Use Trilium MCP to create note.”
  • “Use Trilium MCP to batch create notes.”
  • “Use Trilium MCP to get note.”

Frequently asked questions

Single static Go binary. No runtime dependencies. Talks to your local Trilium over HTTP(S) and to the client over stdio. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.