Self-hosted memory for LLMs in TriliumNext, structured by the server and editable by you.
Connect Runs on your machine
claude mcp add brainllm -e TRILIUM_BASE_URL=<TRILIUM_BASE_URL> -e TRILIUM_ETAPI_TOKEN=<TRILIUM_ETAPI_TOKEN> -e TRILIUM_PASSWORD=<TRILIUM_PASSWORD> -e BRAINLLM_MODE=<BRAINLLM_MODE> -e BRAINLLM_TZ=<BRAINLLM_TZ> -e BRAINLLM_OWNER_PASSWORD=<BRAINLLM_OWNER_PASSWORD> -e BRAINLLM_OAUTH_SECRET=<BRAINLLM_OAUTH_SECRET> -e BRAINLLM_PUBLIC_URL=<BRAINLLM_PUBLIC_URL> -e BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP=<BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP> -e BRAINLLM_TRUST_PROXY=<BRAINLLM_TRUST_PROXY> -- npx -y [email protected]
{
"mcpServers": {
"brainllm": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"TRILIUM_BASE_URL": "<TRILIUM_BASE_URL>",
"TRILIUM_ETAPI_TOKEN": "<TRILIUM_ETAPI_TOKEN>",
"TRILIUM_PASSWORD": "<TRILIUM_PASSWORD>",
"BRAINLLM_MODE": "<BRAINLLM_MODE>",
"BRAINLLM_TZ": "<BRAINLLM_TZ>",
"BRAINLLM_OWNER_PASSWORD": "<BRAINLLM_OWNER_PASSWORD>",
"BRAINLLM_OAUTH_SECRET": "<BRAINLLM_OAUTH_SECRET>",
"BRAINLLM_PUBLIC_URL": "<BRAINLLM_PUBLIC_URL>",
"BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP": "<BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP>",
"BRAINLLM_TRUST_PROXY": "<BRAINLLM_TRUST_PROXY>"
}
}
}
}
{
"mcpServers": {
"brainllm": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"TRILIUM_BASE_URL": "<TRILIUM_BASE_URL>",
"TRILIUM_ETAPI_TOKEN": "<TRILIUM_ETAPI_TOKEN>",
"TRILIUM_PASSWORD": "<TRILIUM_PASSWORD>",
"BRAINLLM_MODE": "<BRAINLLM_MODE>",
"BRAINLLM_TZ": "<BRAINLLM_TZ>",
"BRAINLLM_OWNER_PASSWORD": "<BRAINLLM_OWNER_PASSWORD>",
"BRAINLLM_OAUTH_SECRET": "<BRAINLLM_OAUTH_SECRET>",
"BRAINLLM_PUBLIC_URL": "<BRAINLLM_PUBLIC_URL>",
"BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP": "<BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP>",
"BRAINLLM_TRUST_PROXY": "<BRAINLLM_TRUST_PROXY>"
}
}
}
}
{
"servers": {
"brainllm": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"TRILIUM_BASE_URL": "<TRILIUM_BASE_URL>",
"TRILIUM_ETAPI_TOKEN": "<TRILIUM_ETAPI_TOKEN>",
"TRILIUM_PASSWORD": "<TRILIUM_PASSWORD>",
"BRAINLLM_MODE": "<BRAINLLM_MODE>",
"BRAINLLM_TZ": "<BRAINLLM_TZ>",
"BRAINLLM_OWNER_PASSWORD": "<BRAINLLM_OWNER_PASSWORD>",
"BRAINLLM_OAUTH_SECRET": "<BRAINLLM_OAUTH_SECRET>",
"BRAINLLM_PUBLIC_URL": "<BRAINLLM_PUBLIC_URL>",
"BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP": "<BRAINLLM_ALLOW_UNAUTHENTICATED_HTTP>",
"BRAINLLM_TRUST_PROXY": "<BRAINLLM_TRUST_PROXY>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
TRILIUM_BASE_URLRequired | Base URL of the TriliumNext instance, e.g. http://localhost:8080 |
TRILIUM_ETAPI_TOKENOptional, secret | ETAPI token. Required unless TRILIUM_PASSWORD is set. Create one in Trilium under Options → ETAPI. |
TRILIUM_PASSWORDOptional, secret | Alternative to TRILIUM_ETAPI_TOKEN — BrainLLM mints a token on first start and caches it beside brainllm.json. |
BRAINLLM_MODEOptional | core (default) exposes the 45 brain-aware tools; full additionally exposes the 33 raw ETAPI tools. |
BRAINLLM_TZOptional | IANA timezone used to stamp dated notes, e.g. Africa/Johannesburg. Defaults to the host timezone. |
BRAINLLM_OWNER_PASSWORDOptional, secret | Enables the OAuth 2.1 / CIMD endpoints required by claude.ai and other hosted Claude surfaces. This is the password entered on the consent screen when authorizing a client. |
BRAINLLM_OAUTH_SECRETOptional, secret | Optional 32+ character deployment secret for signing OAuth tokens; rotate it to invalidate old tokens. |
BRAINLLM_PUBLIC_URLOptional | Override for the public origin when a proxy rewrites Host. Must exactly match the URL entered in the client. |
BRAINLLM_ALLOW_UNAUTHENTICATED_HTTPOptional | Explicit trusted-network-only escape hatch for HTTP mode. Never enable on a public interface. |
BRAINLLM_TRUST_PROXYOptional | Trust forwarded host/protocol headers for OAuth discovery only when a trusted reverse proxy sets them. |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 9 Nov 2026 |
| Last updated | 9 Nov 2026 |
| Registry name | io.github.miisodev/brainllm |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
