TriliumNext (trilium-mcp) — MCP-сервер для Claude Code
Даёт агенту читать и писать в вашу базу TriliumNext через ETAPI. Пригодится, если ведёте заметки в Trilium и хотите складывать туда находки прямо из чата.
claude mcp add --env TRILIUM_URL=<TRILIUM_URL> --env TRILIUM_TOKEN=<TRILIUM_TOKEN> --env TRILIUM_HTTP_TIMEOUT_SECONDS=<TRILIUM_HTTP_TIMEOUT_SECONDS> --env TRILIUM_MCP_LOG=<TRILIUM_MCP_LOG> --transport stdio triliumnext-trilium-mcp -- docker run -i --rm -e TRILIUM_URL -e TRILIUM_TOKEN -e TRILIUM_HTTP_TIMEOUT_SECONDS -e TRILIUM_MCP_LOG ghcr.io/ovden13/trilium-mcp:0.1.5Что делает TriliumNext (trilium-mcp)
Сервер собран как один статичный бинарник на Go, внешних зависимостей при запуске нет. С клиентом он общается по stdio, а к Trilium ходит по HTTP или HTTPS. Внутри — набор инструментов для работы с заметками: создание по одной и пачкой, чтение метаданных и поддерева, частичное обновление, дописывание текста в конец, удаление, перенос к другому родителю, клонирование и отвязка ветки. Отдельно идут поиск по синтаксису Trilium и операции с атрибутами: метки, связи, их список и удаление.
Чтобы всё заработало, нужен запущенный TriliumNext и токен ETAPI — его выдают в настройках, показывают один раз. Адрес и токен передаются через TRILIUM_URL и TRILIUM_TOKEN, таймаут запроса задаёт TRILIUM_HTTP_TIMEOUT_SECONDS, подробность логов — TRILIUM_MCP_LOG. В TRILIUM_URL можно перечислить несколько адресов через запятую: сервер пробует их по порядку и переходит к следующему при сетевой ошибке, а вот ответ вроде 404 возвращается сразу, без повторов.
Логи пишутся в stderr, потому что stdout занят потоком JSON-RPC. Если запускаете через Docker, переменные окружения надо прокинуть в контейнер — без них сервер не найдёт базу.
Какие задачи решает
- сложить ссылки и заметки в базу Trilium прямо из диалога с агентом
- собрать таблицу из заметок-строк с метками вместо колонок
- найти нужные записи по меткам, связям и регулярке в заголовке
- дописать строку в журнал решений, не трогая остальной текст
- перенести или продублировать заметку под другим родителем
Примеры запросов агенту
- Создай заметку «Atomic Habits» внутри узла Books с метками status=read, rating=9, author=Clear
- Найди в поддереве Books все заметки с #status=read и #rating>=8
- Допиши в заметку журнала строку: решили выпустить v0.2 в понедельник
Как установить TriliumNext (trilium-mcp)
Командой платформы
claude mcp add --env TRILIUM_URL=<TRILIUM_URL> --env TRILIUM_TOKEN=<TRILIUM_TOKEN> --env TRILIUM_HTTP_TIMEOUT_SECONDS=<TRILIUM_HTTP_TIMEOUT_SECONDS> --env TRILIUM_MCP_LOG=<TRILIUM_MCP_LOG> --transport stdio triliumnext-trilium-mcp -- docker run -i --rm -e TRILIUM_URL -e TRILIUM_TOKEN -e TRILIUM_HTTP_TIMEOUT_SECONDS -e TRILIUM_MCP_LOG ghcr.io/ovden13/trilium-mcp:0.1.5Вместо <…> подставьте свои значения
Командой платформы
codex mcp add triliumnext-trilium-mcp --env TRILIUM_URL=<TRILIUM_URL> --env TRILIUM_TOKEN=<TRILIUM_TOKEN> --env TRILIUM_HTTP_TIMEOUT_SECONDS=<TRILIUM_HTTP_TIMEOUT_SECONDS> --env TRILIUM_MCP_LOG=<TRILIUM_MCP_LOG> -- docker run -i --rm -e TRILIUM_URL -e TRILIUM_TOKEN -e TRILIUM_HTTP_TIMEOUT_SECONDS -e TRILIUM_MCP_LOG ghcr.io/ovden13/trilium-mcp:0.1.5Вместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"triliumnext-trilium-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TRILIUM_URL",
"-e",
"TRILIUM_TOKEN",
"-e",
"TRILIUM_HTTP_TIMEOUT_SECONDS",
"-e",
"TRILIUM_MCP_LOG",
"ghcr.io/ovden13/trilium-mcp:0.1.5"
],
"env": {
"TRILIUM_URL": "<TRILIUM_URL>",
"TRILIUM_TOKEN": "<TRILIUM_TOKEN>",
"TRILIUM_HTTP_TIMEOUT_SECONDS": "<TRILIUM_HTTP_TIMEOUT_SECONDS>",
"TRILIUM_MCP_LOG": "<TRILIUM_MCP_LOG>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"triliumnext-trilium-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TRILIUM_URL",
"-e",
"TRILIUM_TOKEN",
"-e",
"TRILIUM_HTTP_TIMEOUT_SECONDS",
"-e",
"TRILIUM_MCP_LOG",
"ghcr.io/ovden13/trilium-mcp:0.1.5"
],
"env": {
"TRILIUM_URL": "<TRILIUM_URL>",
"TRILIUM_TOKEN": "<TRILIUM_TOKEN>",
"TRILIUM_HTTP_TIMEOUT_SECONDS": "<TRILIUM_HTTP_TIMEOUT_SECONDS>",
"TRILIUM_MCP_LOG": "<TRILIUM_MCP_LOG>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e TRILIUM_URL=<TRILIUM_URL> -e TRILIUM_TOKEN=<TRILIUM_TOKEN> -e TRILIUM_HTTP_TIMEOUT_SECONDS=<TRILIUM_HTTP_TIMEOUT_SECONDS> -e TRILIUM_MCP_LOG=<TRILIUM_MCP_LOG> triliumnext-trilium-mcp docker run -i --rm -e TRILIUM_URL -e TRILIUM_TOKEN -e TRILIUM_HTTP_TIMEOUT_SECONDS -e TRILIUM_MCP_LOG ghcr.io/ovden13/trilium-mcp:0.1.5Вместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о TriliumNext (trilium-mcp)
Как установить TriliumNext (trilium-mcp) в Claude Code?
Одной командой: `claude mcp add --env TRILIUM_URL=<TRILIUM_URL> --env TRILIUM_TOKEN=<TRILIUM_TOKEN> --env TRILIUM_HTTP_TIMEOUT_SECONDS=<TRILIUM_HTTP_TIMEOUT_SECONDS> --env TRILIUM_MCP_LOG=<TRILIUM_MCP_LOG> --transport stdio triliumnext-trilium-mcp -- docker run -i --rm -e TRILIUM_URL -e TRILIUM_TOKEN -e TRILIUM_HTTP_TIMEOUT_SECONDS -e TRILIUM_MCP_LOG ghcr.io/ovden13/trilium-mcp:0.1.5`. Подставьте свои значения вместо плейсхолдеров.
Что делает TriliumNext (trilium-mcp)?
Открывает агенту доступ к вашей базе TriliumNext через ETAPI: создание, чтение, обновление и удаление заметок, работа с поддеревьями, метками и связями, поиск.
Что нужно для работы сервера?
Запущенный экземпляр TriliumNext и токен ETAPI из его настроек. Адрес и токен задаются переменными TRILIUM_URL и TRILIUM_TOKEN.