Tan Yong Sheng/triliumnext-mcp
Built by Metorial, the integration platform for agentic AI.
Tan Yong Sheng/triliumnext-mcp
Server Summary
Create notes
Update notes
Delete notes
Search notes
Manage notes programmatically
⚠️ 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. ⚠️
A model context protocol server for TriliumNext Notes. This server provides tools to interact with your Trilium Notes instance through MCP.
Make sure to set up your environment variables first:
TRILIUM_API_URL
(default: http://localhost:8080/etapi)TRILIUM_API_TOKEN
(required, get this from your Trilium Notes settings)PERMISSIONS
(optional, default='READ;WRITE', where READ let this MCP has permissions to perform search_notes
and get_note
operation and WRITE let this MCP has permissions to perform create_note
, update_note
and delete_note
operations)VERBOSE
(optional, default='false', where if true it will print out some logging response and pass the logs into LLM (such as API call) which is useful for developers to debug this MCP)Add the server config to your Claude Desktop configuration file:
Add the following configuration to the mcpServers
object in your Claude configuration file:
"triliumnext-mcp": {
"command": "cmd",
"args": [
"/k",
"npx",
"-y",
"triliumnext-mcp"
],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "",
"PERMISSIONS": "READ;WRITE"
}
}
"triliumnext-mcp": {
"command": "npx",
"args": [
"-y",
"triliumnext-mcp"
],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "",
"PERMISSIONS": "READ;WRITE"
}
}
cd /path/to/triliumnext-mcp
npm run build
"triliumnext-mcp": {
"command": "node",
"args": [
"/path/to/triliumnext-mcp/build/index.js"
],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "",
"PERMISSIONS": "READ;WRITE",
"VERBOSE": "true"
}
}
Location of the configuration file:
%APPDATA%/Claude/claude_desktop_config.json
~/Library/Application Support/Claude/claude_desktop_config.json
Feedback: Please report issues and test results at GitHub Issues
The server provides the following tools for note management:
search_notes
- Unified search with comprehensive filtering capabilities
searchCriteria
parameter for complete boolean logic expressivenesstext
(keyword search), searchCriteria
(unified array structure), limit
parents.noteId
for direct children, ancestors.noteId
for all descendantsresolve_note_id
- Find note ID by name/title for LLM-friendly workflows
maxResults
parameter (default: 3, range: 1-10)search_notes
- Advanced search with unified filtering capabilities including hierarchy navigation
searchCriteria
parameter handles labels, relations, properties, and hierarchyparents.noteId
for direct children, ancestors.noteId
for all descendantsget_note
- Retrieve a note content by IDcreate_note
- Create a new note (supports various types: text, code, file, image, etc.)update_note
- Replace entire note content (⚠️ creates backup by default)append_note
- Add content while preserving existing content (📝 optimized for logs/journals)delete_note
- Permanently delete a note (⚠️ cannot be undone)📖 Detailed Usage: See Content Modification Guide for revision control strategy and best practices.
search_notes
with unified searchCriteriasearch_notes
with date propertiessearch_notes
with cross-type criteriasearch_notes
with boolean logicsearch_notes
with ancestors.noteId
hierarchy propertysearch_notes
with ancestors.noteId
for complete inventorysearch_notes
with parents.noteId
hierarchy propertysearch_notes
with parents.noteId
hierarchy propertysearch_notes
with ancestors.noteId
hierarchy propertysearch_notes
with unified searchCriteria
for cross-type OR logicappend_note
)update_note
)📖 More Examples: See User Query Examples for comprehensive usage scenarios.
If you want to contribute or modify the server:
# Clone the repository
git clone https://github.com/tan-yong-sheng/triliumnext-mcp.git
# Install dependencies
npm install
# Build the server
npm run build
# For development with auto-rebuild
npm run watch
Contributions are welcome! If you are looking to improve the server, especially the search functionality, please familiarize yourself with the following resources:
search_notes
parameters are translated into Trilium search strings. This is crucial for understanding and extending the current implementation.Please feel free to open an issue or submit a pull request.