Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Lightning-fast MCP server for Trilium Notes — returns LLM-friendly markdown instead of raw HTML, so AI can read and write your notes naturally. Search, create, update, and organize your notes with AI.

README.md

trilium-bolt

Lightning-fast MCP server for Trilium Notes — returns LLM-friendly markdown instead of raw HTML, so AI can read and write your notes naturally. Search, create, update, and organize your notes with AI. Connect Claude to your personal knowledge base with minimal setup.

Quick Start

1. Get your Trilium token

In Trilium: Options → ETAPI → Create new ETAPI token

2. Configure Claude Code to use the MCP server

Add to your ~/.claude.json:

{
  "mcpServers": {
    "trilium": {
      "command": "npx",
      "args": ["-y", "trilium-bolt"],
      "env": {
        "TRILIUM_TOKEN": "your-token-here"
      }
    }
  }
}

Not using Claude Code? See setup instructions for Cursor, Windsurf, VS Code, Cline, and other MCP clients Running Trilium in Docker? See the Docker Setup Guide

3. Use it

You: Search my notes for "project ideas"
You: Create a new note called "Meeting Notes" under my Work folder
You: What's in my daily journal from last week?

That's it!

Why Lightweight?

Unlike traditional servers, trilium-bolt uses stdio transport - meaning:

  • On-demand execution - Only runs when Claude needs it, not a 24/7 daemon
  • Zero network ports - No HTTP server, no port conflicts, no firewall rules
  • Minimal memory - ~20-30MB when active, 0MB when idle
  • No background processes - Spawned by Claude, terminates when done
  • Instant startup - No container spin-up, just a Node.js process

How it works

┌──────────────┐     stdin/stdout      ┌─────────────┐     ETAPI      ┌─────────────┐
│  MCP Client  │ ◄──────────────────► │ trilium-bolt │ ◄────────────► │  Trilium    │
│ (Claude Code,│                       └─────────────┘                └─────────────┘
│  Cursor, etc)│                        Runs on-demand                 Your notes
└──────────────┘                        No daemon                      Local app

This is the simplest possible architecture - just a CLI that your MCP client invokes when you ask about your notes.

Markdown support

Trilium stores notes as HTML internally, but LLMs work much better with markdown. trilium-bolt handles the conversion transparently:

  • Reading notes — HTML content is automatically converted to markdown before returning to the AI
  • Creating/updating notes — Content is accepted as markdown by default and converted to HTML before saving to Trilium
  • HTML pass-through — Set contentFormat: "html" on create/update calls if you need to send raw HTML

No configuration needed — markdown is the default for both input and output.

Tools

| Tool | Description | |------|-------------| | search_notes | Full-text and attribute search | | get_note | Retrieve note content (as markdown) and metadata | | get_note_tree | Get children/hierarchy of a note | | create_note | Create a new note — accepts markdown (default) or HTML | | update_note | Update note title, content (markdown or HTML), or attributes | | delete_note | Delete a note | | delete_attribute | Delete an attribute (label or relation) from a note by name | | create_backup | Create a backup of the Trilium database | | create_revision | Create a revision snapshot of a note's current content |

Configuration

| Variable | Required | Default | Description | |----------|----------|---------|-------------| | TRILIUM_TOKEN | Yes | - | Your ETAPI token | | TRILIUM_URL | No | http://localhost:37840 | Trilium server URL |

Examples

Search notes: `` Search my Trilium notes for anything about "machine learning" Find all my notes tagged with "recipe" Show me notes that are tagged both "recipe" and "vegetarian" Find all notes where the priority label is set to "high" and status is "active" Find all notes whose titles start with "Meeting" ``

Create a note: `` Create a note titled "Book Notes: Atomic Habits" with a summary of the key points Create a note called "Pasta Carbonara" tagged with "recipe" and "italian" ``

Create/update notes with attributes: `` Create a note "Sprint Planning" with labels priority=high and status=active Add a "completed" tag to my "Q4 Report" note Update the priority label on my "Bug Fix" note to "low" ``

Delete attributes: `` Remove the "deprecated" tag from my "Old API" note Delete the priority label from my "Task List" note ``

Backups and revisions: `` Create a backup of my Trilium database called "before-cleanup" Save a revision of my "Project Plan" note before I make changes ``

Explore hierarchy: `` Show me the structure of my "Projects" folder ``

Building from source

git clone https://github.com/mursilsayed/trilium-bolt.git
cd trilium-bolt
npm install
npm run build

To use your local build instead of the published package, point your MCP client to the built output:

{
  "mcpServers": {
    "trilium": {
      "command": "node",
      "args": ["/absolute/path/to/trilium-bolt/dist/index.js"],
      "env": {
        "TRILIUM_TOKEN": "your-token-here"
      }
    }
  }
}

For development, use npm run dev to rebuild on file changes.

Publishing to npm

npm run build
npm publish

To publish a pre-release or dry-run first:

npm publish --dry-run

Requirements

  • Node.js 18+
  • Trilium Notes running with ETAPI enabled

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Search servers.