105 lines
6.1 KiB
Markdown
105 lines
6.1 KiB
Markdown
# Obsidian MCP implementation ecosystem (2026)
|
||
|
||
Обзор активных реализаций Obsidian MCP серверов по состоянию на июнь 2026. Три архитектурных подхода, ~8 проектов с traction.
|
||
|
||
## Три архитектуры
|
||
|
||
| Подход | Примеры | Obsidian нужен? | Плюсы | Минусы |
|
||
|--------|---------|----------------|-------|--------|
|
||
| **Direct filesystem** | mcpvault, obsidian-mcp (Steven) | Нет | Простота, работает без Obsidian | Нет доступа к внутреннему API Obsidian |
|
||
| **Local REST API plugin** | mcp-obsidian (Markus), cyanheads | Да (должен быть открыт) | Obsidian опосредует операции | Нужен плагин + API key |
|
||
| **Native Obsidian plugin** | obsidian-mcp-plugin (aaronsb) | Да (должен быть открыт) | Полный API: граф, Dataview, Bases | Менее зрелый, только через BRAT |
|
||
|
||
## Детальный обзор
|
||
|
||
### 1. @bitbonsai/mcpvault (наш текущий) — filesystem
|
||
|
||
- **npm:** `@bitbonsai/mcpvault` (бывший `obsidian-mcp`, переименован март 2026 из-за trademark)
|
||
- **Версия:** 0.12.1 (июнь 2026)
|
||
- **Язык:** TypeScript
|
||
- **Транспорт:** stdio только
|
||
- **Инструменты:** 14: read_note, write_note, patch_note, list_directory, delete_note, search_notes, move_note, move_file, read_multiple_notes, update_frontmatter, get_notes_info, get_frontmatter, manage_tags, get_vault_stats, list_all_tags
|
||
- **Проблема:** exact string match в patch_note (`fullContent.split(oldString).length - 1`), без fuzzy, без trim, без нормализации whitespace
|
||
|
||
### 2. cyanheads/obsidian-mcp-server — REST API, самый популярный по загрузкам
|
||
|
||
- **npm:** `obsidian-mcp-server`
|
||
- **Версия:** 3.2.8 (май 2026)
|
||
- **★:** 603 | **dl/week:** ~9,776 (самые высокие)
|
||
- **Язык:** TypeScript, Bun/Node.js v24+
|
||
- **Транспорт:** stdio + Streamable HTTP (dual)
|
||
- **Инструменты:** 14
|
||
- **Требует:** Obsidian Local REST API plugin v4.0.0+
|
||
- **Ключевые фичи:**
|
||
- `obsidian_replace_in_note` — regex, whole-word, flexible whitespace, case-sensitivity, capture groups. **Решает проблему exact match**.
|
||
- `obsidian_patch_note` — surgical append/prepend/replace по heading/block/frontmatter
|
||
- Path policy (folder-scoped permissions через env vars: OBSIDIAN_READ_PATHS, OBSIDIAN_WRITE_PATHS)
|
||
- In-memory vault cache (configurable, default 10 min)
|
||
- JWT/OAuth аутентификация
|
||
- Structured logging с file rotation
|
||
- Zod schema validation
|
||
- Docker support (`ghcr.io/cyanheads/obsidian-mcp-server`)
|
||
- **Вердикт:** самый production-ready
|
||
|
||
### 3. MarkusPfundstein/mcp-obsidian — REST API, Python
|
||
|
||
- **npm:** `mcp-obsidian` (Python, через uvx)
|
||
- **★:** ~3,700 (самые звёзды)
|
||
- **Язык:** Python 100%
|
||
- **Транспорт:** stdio
|
||
- **Статус:** был 17 месяцев мёртв, вернулся 15 мая 2026. Но npm всё ещё v1.0.0.
|
||
- **Инструменты:** 7 (list_files, get_file_contents, search, patch_content, append_content, delete_file)
|
||
- **Известные баги:** patch_content timeout/validation (#9), UTF-8 failures (#25), Dataview dependency (#70), нет multi-vault (#63)
|
||
- **Вердикт:** watch — viable если выйдет новый npm release
|
||
|
||
### 4. aaronsb/obsidian-mcp-plugin (Semantic Notes Vault MCP) — native plugin
|
||
|
||
- **★:** 423
|
||
- **Версия:** 0.11.33 (13 релизов с 20 апреля, очень активен)
|
||
- **Язык:** TypeScript (плагин Obsidian)
|
||
- **Транспорт:** HTTP (порт 3001/3443)
|
||
- **Инструменты:** 8 категорий (vault, edit, view, graph, workflow, dataview, bases, system)
|
||
- **Ключевые фичи:**
|
||
- **Fuzzy text matching** для edits — прямо в описании
|
||
- Graph traversal (multi-hop, backlinks, forward-links, path finding)
|
||
- Dataview DQL execution
|
||
- Bases database operations
|
||
- Read-only mode
|
||
- mcpb one-click install для Claude Desktop
|
||
- **Минус:** Obsidian должен быть открыт. Установка через BRAT (не в community store).
|
||
- **Вердикт:** если нужен graph/Dataview/Bases — лучший выбор
|
||
|
||
### 5. Local REST API v4.0.0+ built-in MCP
|
||
|
||
- **Плагин:** `coddingtonbear/obsidian-local-rest-api` (★ 2.5k)
|
||
- **Версия:** v4.1.3 (июнь 2026)
|
||
- С апреля 2026: Local REST API сам стал MCP сервером на `/mcp/`
|
||
- **15 tools** (file CRUD, search, tagging, commands, open-in-ui)
|
||
- **Транспорт:** Streamable HTTP
|
||
- **Требует:** только установку плагина + API key (никаких дополнительных пакетов)
|
||
|
||
### 6. Minhao-Zhang/obsidian-mcp-server — WIP plugin
|
||
|
||
- **★:** 13
|
||
- **Версия:** v1.1.0 (апрель 2025 — заброшен)
|
||
- **Статус:** WIP. Автор: «я не знаю TypeScript». Не рекомендуется.
|
||
|
||
## Остальные
|
||
|
||
Всего ~79 Obsidian-связанных MCP серверов на PulseMCP, но ~8 имеют traction. Большинство — клоны/форки mcpvault или mcp-obsidian.
|
||
|
||
## Рекомендация от 2026-06-24
|
||
|
||
**Лучший апгрейд без смены архитектуры — cyanheads/obsidian-mcp-server.**
|
||
|
||
Почему:
|
||
1. Решает exact match проблему — `obsidian_replace_in_note` с regex и flexible whitespace
|
||
2. Самая высокая загрузка (9.7K dl/week) — стабильность доказана
|
||
3. Dual transport (можно через stdio как Hermes native MCP, можно HTTP)
|
||
4. Path policy — можно ограничить запись только определёнными папками
|
||
5. Docker support
|
||
|
||
Минус: требует Obsidian открытым (Local REST API плагин).
|
||
|
||
**Если не хочется ставить плагин:** остаться на mcpvault + Hermes `patch()` для сложных строк.
|