MCP server for TriliumNext Notes
MCP server for TriliumNext Notes. Exposed over MCP by the triliumnext notes' mcp server, that capability becomes something an assistant can invoke while it works, not something you go and do afterwards.
⚠️ DISCLAIMER: This is a prototype for https://github.com/TriliumNext/Notes/issues/705. Suggested only for developer use. Please backup your Trilium notes before using this tool. ⚠️
triliumnext-mcp on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
Everything the assistant can do here goes through one of these:
search_notes — Unified search with comprehensive filtering capabilities including keyword search, date ranges, field-specific searches, attribute searches, noteresolve_note_id — Find a note's ID by its title. Essential for getting a note's ID to use with other toolslist_children_notes — List the direct child notes of a parent note using a deterministic search query. Returns child summaries sorted by creation date and titleget_note — Retrieve a note and its content by ID. Can also be used with regex to extract specific patterns from the contentcreate_note — Create a new note. Supports 10 note types and allows creating attributes (labels and relations) in the same stepupdate_note — Updates a note's title or content. Requires a mode ('overwrite' or 'append') to specify the update type and an expectedHash to prevent conflictsmove_note — Move a note to a new parent folder. Use branchId only when the note has multiple parent branchespatch_note — Apply targeted batched edits using mode-based patches (css, xpath, line, fragment, literal, regex) with atomic validation. Literal patches can usedelete_note — Permanently delete a note (⚠️ cannot be undone)read_attributes — Read all attributes (labels and relations) for a given notemanage_attributes — Create, update, or delete attributes on a note. Supports batch creationYou will need 7 environment variables: TRILIUM_API_URL, TRILIUM_API_TOKEN, PERMISSIONS, MCP_TIMEOUT, MCP_TOOL_TIMEOUT, VERBOSE, YOUR_TRILIUM_API_TOKEN. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Plenty of planning and project tracking servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. TriliumNext Notes''s toolset — search_notes, resolve_note_id, list_children_notes and 8 more — is a fair guide to whether it matches your workflow. It is maintained by tan-yong-sheng; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| search_notes | Unified search with comprehensive filtering capabilities including keyword search, date ranges, field-specific searches, attribute searches, note properties, template-based searches, note type filtering, MIME type filter |
| resolve_note_id | Find a note's ID by its title. Essential for getting a note's ID to use with other tools. |
| list_children_notes | List the direct child notes of a parent note using a deterministic search query. Returns child summaries sorted by creation date and title. |
| get_note | Retrieve a note and its content by ID. Can also be used with regex to extract specific patterns from the content. |
| create_note | Create a new note. Supports 10 note types and allows creating attributes (labels and relations) in the same step. |
| update_note | Updates a note's title or content. Requires a mode ('overwrite' or 'append') to specify the update type and an expectedHash to prevent conflicts. |
| move_note | Move a note to a new parent folder. Use branchId only when the note has multiple parent branches. |
| patch_note | Apply targeted batched edits using mode-based patches (css, xpath, line, fragment, literal, regex) with atomic validation. Literal patches can use occurrence and optional context to target repeated text. |
| delete_note | Permanently delete a note (⚠️ cannot be undone). |
| read_attributes | Read all attributes (labels and relations) for a given note. |
| manage_attributes | Create, update, or delete attributes on a note. Supports batch creation. |
{
"mcpServers": {
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| TRILIUM_API_URL | Endpoint or connection string the server talks to. | Yes |
| TRILIUM_API_TOKEN | Credential the server authenticates with. | Yes |
| PERMISSIONS | Configuration value read at startup. | Optional |
| MCP_TIMEOUT | Configuration value read at startup. | Optional |
| MCP_TOOL_TIMEOUT | Configuration value read at startup. | Optional |
| VERBOSE | Configuration value read at startup. | Optional |
| YOUR_TRILIUM_API_TOKEN | Credential the server authenticates with. | Yes |
Your workspace, on speaking terms with AI — search, read and write Notion pages and databases.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Search and read your Drive — Docs, Sheets and files become context your assistant can actually use.
Your assistant inside the workspace — read channels, search history, post messages and tame the noise.
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Stop letting your assistant hallucinate n8n node parameters — this server hands it the real schemas, templates and validation.