ovden13 avatar

TriliumNext (trilium-mcp)

ovden13/trilium-mcp

Connects Claude to a self-hosted TriliumNext knowledge base over ETAPI. You get sixteen tools covering the full lifecycle: create notes with labels in one shot, batch operations to avoid schema overhead, recursive subtree fetches, append-only content updates, and Trilium's native search syntax with regex, numeric comparisons, and relation traversal. The real win is using Trilium's collection views as structured databases. Create child notes under a parent, tag them with labels as columns, and query them like rows. An agent can maintain reading lists, decision logs, or any table-like data without leaving the note tree. Single Go binary, stdio transport, zero runtime dependencies.

GitHub stars
1
tools
16
auth
Secret needed
transport
STDIO
env vars
4
last updated
May 11, 2026

Tools

16 tools

Public tool metadata for what this MCP can expose to an agent.

create_noteCreate a note (optionally under a parent, with labels in one shot).

Create a note (optionally under a parent, with labels in one shot).

No parameter schema in public metadata yet.

batch_create_notesCreate many notes in one call — saves per-call schema overhead during restructuring.

Create many notes in one call — saves per-call schema overhead during restructuring.

No parameter schema in public metadata yet.

get_noteFetch note metadata; optionally include body content.

Fetch note metadata; optionally include body content.

No parameter schema in public metadata yet.

get_note_subtreeRecursively fetch a note + descendants up to N levels as a nested tree — replaces N+1 `get_note` calls.

Recursively fetch a note + descendants up to N levels as a nested tree — replaces N+1 `get_note` calls.

No parameter schema in public metadata yet.

update_notePartial update: include only the fields you want to change; omitted fields stay as-is.

Partial update: include only the fields you want to change; omitted fields stay as-is.

No parameter schema in public metadata yet.

append_contentAppend text to the body with a configurable separator.

Append text to the body with a configurable separator.

No parameter schema in public metadata yet.

delete_noteDelete a note and its subtree.

Delete a note and its subtree.

No parameter schema in public metadata yet.

batch_delete_notesDelete many notes; partial failures don't stop the rest.

Delete many notes; partial failures don't stop the rest.

No parameter schema in public metadata yet.

move_noteRe-parent a note in two ETAPI calls (vs the old read-recreate-delete dance).

Re-parent a note in two ETAPI calls (vs the old read-recreate-delete dance).

No parameter schema in public metadata yet.

clone_noteAdd the note under an additional parent — Trilium-native multi-parent links.

Add the note under an additional parent — Trilium-native multi-parent links.

No parameter schema in public metadata yet.

delete_branchRemove one parent-child link without deleting the note (un-clone).

Remove one parent-child link without deleting the note (un-clone).

No parameter schema in public metadata yet.

search_notesFull-power Trilium search (`#label`, `~relation`, `note.title %= "regex"`, ancestor scoping, etc.).

Full-power Trilium search (`#label`, `~relation`, `note.title %= "regex"`, ancestor scoping, etc.).

No parameter schema in public metadata yet.

add_labelAttach a label (`#key=value`) — acts as a "column" in collection views.

Attach a label (`#key=value`) — acts as a "column" in collection views.

No parameter schema in public metadata yet.

add_relationAttach a relation (`~name → noteId`) — like a foreign key between notes.

Attach a relation (`~name → noteId`) — like a foreign key between notes.

No parameter schema in public metadata yet.

remove_attributeRemove a label or relation by its attribute id.

Remove a label or relation by its attribute id.

No parameter schema in public metadata yet.

list_attributesList all labels and relations on a note.

List all labels and relations on a note.

No parameter schema in public metadata yet.

Sponsors

Configuration

TRILIUM_URL*

Base URL of the Trilium ETAPI. Comma-separated for failover: fast LAN first, public fallback (e.g. http://192.168.0.10:8092,https://memo.example.com).

TRILIUM_TOKEN*secret

ETAPI token created in Trilium under Options -> ETAPI

TRILIUM_HTTP_TIMEOUT_SECONDS

Per-request HTTP timeout in seconds (default 30)

TRILIUM_MCP_LOG

Tool-call log level on stderr: off / info (default) / debug

Readme

trilium-mcp

An MCP server that lets AI agents (Claude Desktop, Claude Code, any MCP-compatible client) read and write a self-hosted TriliumNext knowledge base over its ETAPI.

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

Why

TriliumNext is a strong personal KB: tree-of-notes with attributes (labels, relations) that double as table columns / board lanes / calendar events. This MCP exposes the right slice of ETAPI so an agent can:

  • 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.

It is intentionally minimal: ten tools, ~600 lines of Go, zero clever abstractions.

Tools


View the full README on GitHub

Details

Repository
github.com/ovden13/trilium-mcp
Category
Documents & Knowledge
Package
ghcr.io/ovden13/trilium-mcp:0.1.5
Transport
STDIO
Auth
Required
Registry
MCP registry, active

Related Documents & Knowledge MCP servers

View all
1adelaidasofia avatarFastMCP seed raise pipeline tracker — syncs from Obsidian CRM, generates meetingadelaidasofia/investor-relations-mcpFastMCP seed raise pipeline tracker — syncs from Obsidian CRM, generates meeting prep, tracks…0stars
2adelaidasofia avatarFastMCP server for bidirectional sync between personal and team Obsidian vaultsadelaidasofia/vault-sync-mcpFastMCP server for bidirectional sync between personal and team Obsidian vaults.0stars
3carrasquelalex1 avatarWebscrape Mcpcarrasquelalex1/webscrape-mcpFetch any URL and get clean Markdown. Web scraping for AI agents.0stars
4clichefactory avatarClicheFactory Document Intelligenceclichefactory/clichefactory-mcpExtract structured JSON from PDFs, images, DOCX, XLSX, CSV, EML attachments, and DSPy pipelines.0stars
5iterationlayer avatarIteration Layeriterationlayer/iterationlayerComposable APIs for document extraction, image transformation, and document & sheet generation.0stars
6quelvio avatarMcp Serverquelvio/quelvio-mcp-serverYour company's brain for AI agents. Cited, permission-aware knowledge across every system.0stars