A Model Context Protocol (MCP) server for interacting with TriliumNext via its ETAPI. Enables LLMs to create, read, update, and organize notes, including embedding images and files directly into note content.
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
When Vitest UI server is listening, arbitrary file can be read and executed
@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse
file-type affected by infinite loop in ASF parser on malformed input with zero-size sub-header
file-type: ZIP Decompression Bomb DoS via [Content_Types].xml entry
process.env. You'll be asked to provide them before it can run.LOG_FORMAT— text \ json text text is <ISO-ts> LEVEL event k=v k=v lines. json is one JSON object per line.LOG_LEVEL— silent triliumnext-mcp --token "$TRILIUM_TOKEN"TRILIUM_ALLOW_PRIVATE_URLS— export =falseTRILIUM_CORS_ORIGINSTRILIUM_GATEWAY_AUTH— export =bearerTRILIUM_GATEWAY_TOKENS— export =tok1,tok2TRILIUM_HTTP_PORT— export =3000TRILIUM_JWT_AUDIENCETRILIUM_JWT_ISSUERTRILIUM_JWT_JWKS_URLTRILIUM_JWT_PRINCIPAL_CLAIMTRILIUM_JWT_SECRETSTRILIUM_MAX_POST_BYTES— export =500mb # SSE POST body cap; see "Request body size limits"TRILIUM_METRICS— In Kubernetes, the equivalent is two env vars (=true and TRILIUM_METRICS_AUTH) on the Deployment plus a ServiceMonitor with bearerTokenSecret pointing at the token Secret.TRILIUM_METRICS_AUTH— Selected with --metrics-auth <mode> or . Default is gateway.TRILIUM_METRICS_INCLUDE_PRINCIPAL— Env: =true. When on, a new series appears:TRILIUM_METRICS_TOKENS— - =${PROMETHEUS_SCRAPE_TOKEN}TRILIUM_MULTI_TENANT— export =trueTRILIUM_PUBLIC_URL— export =https://trilium.example.com # optional; web URL for note links (defaults to TRILIUM_URL without /etapi)TRILIUM_RATE_LIMIT_BURST— Env: TRILIUM_RATE_LIMIT_RPS, . /health is never rate-limited (cheap liveness). /metrics is rate-limited like everything else.TRILIUM_RATE_LIMIT_RPS— Env: , TRILIUM_RATE_LIMIT_BURST. /health is never rate-limited (cheap liveness). /metrics is rate-limited like everything else.TRILIUM_TOKEN— e =<your_etapi_token> \TRILIUM_TRANSPORT— export =stdioTRILIUM_URL— e =<your_trilium_url_e.g._https://trilium.example.com/etapi>TRILIUM_URL_ALLOWLIST— export =notes.example.com,trilium.internal[](https://m8ven.ai/mcp/perfectra1n-triliumnext-mcp-1ub6b2)