# TriliumNext (trilium-mcp)

Даёт агенту читать и писать в вашу базу TriliumNext через ETAPI. Пригодится, если ведёте заметки в Trilium и хотите складывать туда находки прямо из чата.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Автор: OVDEN13
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/OVDEN13/trilium-mcp
- Обновлён: 2026-06-20
- HTML: https://affpapa.org/nevibecode/mcp/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, переменные окружения надо прокинуть в контейнер — без них сервер не найдёт базу.

## Требования
- Нужно: Docker
- Переменные окружения: `TRILIUM_URL`, `TRILIUM_TOKEN`, `TRILIUM_HTTP_TIMEOUT_SECONDS`, `TRILIUM_MCP_LOG` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
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

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "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>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "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 CLI

**Командой платформы**
```bash
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
```
Вместо <…> подставьте свои значения

## Когда брать
- сложить ссылки и заметки в базу Trilium прямо из диалога с агентом
- собрать таблицу из заметок-строк с метками вместо колонок
- найти нужные записи по меткам, связям и регулярке в заголовке
- дописать строку в журнал решений, не трогая остальной текст
- перенести или продублировать заметку под другим родителем

## Примеры запросов агенту
- Создай заметку «Atomic Habits» внутри узла Books с метками status=read, rating=9, author=Clear
- Найди в поддереве Books все заметки с #status=read и #rating>=8
- Допиши в заметку журнала строку: решили выпустить v0.2 в понедельник

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
