mlorentedev/hive

mlorentedev/hive

от mlorentedev
Hive — MCP-сервер, который подключает AI-ассистента к Obsidian-хранилищу. Вместо загрузки всего контекста он запрашивает только нужное, экономя токены и сохраняя знания между сессиями. Полезен разр...

hive-vault

CI codecov PyPI Python 3.12+ Docs License: MIT

Your AI coding assistant forgets everything between sessions. Hive fixes that.

Hive is an MCP server that connects your AI assistant to an Obsidian vault. Instead of loading everything upfront, it queries only what's needed — on demand.

Metric Without Hive With Hive
Context loaded per session ~800 lines (static) ~50 lines (on demand)
Token cost for context 100% every session 6% average per query
Knowledge retained between sessions 0% 100% (in vault)

Measured on a real vault with 19 projects, 200+ files. See benchmarks.

Quick Start

Hive runs without a vault — vault tools return a friendly error until VAULT_PATH is set, so you can install first and configure later.

# Minimal — uses default vault path ~/Projects/knowledge
claude mcp add -s user hive -- uvx --upgrade hive-vault

# With a custom vault path
claude mcp add -s user hive -e VAULT_PATH=$HOME/path/to/vault -- uvx --upgrade hive-vault

# Gemini CLI
gemini mcp add -s user -e VAULT_PATH=$HOME/path/to/vault hive-vault uvx -- --upgrade hive-vault
Инструменты были проиндексированы:
capture_lesson

Capture lessons: встроенная / пакетная запись или поиск по ключевому слову. Встроенный режим (по умолчанию): укажите заголовок, контекст, проблему и решение. Пакетный режим: укажите текст для автоматического извлечения уроков через worker. Режим поиска: укажите find, чтобы показать наиболее релевантные существующие уроки, заголовки которых совпадают с ключевым словом.

Параметры
  • contextstring

    What you were doing (inline mode).

  • findstring

    Keyword to look up in existing lesson headings (lookup mode).

  • max_lessonsinteger

    Maximum lessons to extract / surface. Default 5.

  • min_confidencenumber

    Minimum confidence for batch extraction. Default 0.7.

  • problemstring

    What went wrong or what decision was needed (inline mode).

  • projectstringобязательный

    Project slug (directory under 10_projects/).

  • rank_bystring

    Lookup ranking — 'reinforcements' (default), 'confidence', or 'hybrid'. Ignored unless find is set.

  • solutionstring

    What fixed it or what was decided (inline mode).

  • tagsstring[]

    Optional tags (e.g. ["python", "testing"]).

  • textstring

    Raw text to extract lessons from (batch mode).

  • titlestring

    Short descriptive title (inline mode).

delegate_task

Переносит работу на более дешёвую модель или создаёт краткое содержание файлов хранилища. Когда указан проект, читает файл хранилища. Маленькие файлы (≤50 строк) возвращаются напрямую. Большие файлы автоматически передаются воркеру для суммаризации - возвращается к исходному содержимому, если воркеры недоступны.

Параметры
  • contextstring

    Optional system context for the model.

  • max_summary_linesinteger

    Target summary length for summarization.

  • max_tokensinteger

    Maximum tokens in the response.

  • modelstring

    Concrete model id. Empty uses the configured worker model. The 4.0.0 removal retired 'auto', 'ollama', 'openrouter-free' and 'openrouter'; passing one is rejected rather than ignored.

  • pathstring

    Relative path to a .md file. Overrides section.

  • projectstring

    Project slug for vault summarization mode.

  • promptstring

    The task description or code to process.

  • sectionstring

    Shortcut name for summarization. Ignored if path is set.

  • structuredboolean

    Return a JSON record instead of prose. Prose is the default so every existing caller's contract is unchanged; the dispatcher asks for JSON because it needs the status as a VALUE. Exception types do not survive the JSON-RPC boundary between the daemon and its clients, so "the pool refused" and "the worker answered badly" cannot be told apart by type on the far side — and a dispatcher that cannot tell them apart turns a rate limit into a silent retry against a different model.

  • timeout_snumber

    Per-dispatch deadline in seconds. 0 uses the ambient tool timeout. A value ABOVE the ambient one raises the ceiling rather than being clamped by it — a deadline a 60s default can silently cap is not a deadline (HIVE-384 AC3).

session_briefingтолько чтениеидемпотентный

Вызывайте в начале каждого нового сеанса для загрузки контекста проекта. Без проекта возвращает список доступных проектов с подсказкой по использованию: обнаруживаемость наравне с vault_health() и worker_status(). При наличии проекта собирает активные задачи, недавние уроки, активность git и состояние проекта в единый ответ (заменяет 3-4 ручных вызова).

Параметры
  • projectstring

    Project slug (directory under 10_projects/). Empty = list available projects so the caller can pick one. This is the only parameter — there is no days argument (the briefing window is fixed).

vault_askтолько чтениеидемпотентный

Задаёт вопрос на естественном языке; возвращает синтезированный ответ с цитированием источников (семантический поиск / RAG) или релевантные разделы хранилища, если модель синтеза не настроена. ОПЦИОНАЛЬНО: отключено по умолчанию. Требует дополнения [semantic] и сервера эмбеддингов (HIVE_EMBED_BASE_URL); пока это не настроено, возвращает краткое сообщение о том, как включить, и никогда не выдаёт ошибку. Установите HIVE_SYNTH_MODEL, чтобы включить LLM-синтез поверх поиска. Для поиска по ключевым словам или регулярным выражениям используйте vault_search.

Параметры
  • questionstring

    The natural-language question to answer. Use question, not query or prompt.

vault_commit

Вносит всё в хранилище и создаёт один коммит. Дополняет vault_write(commit=False) и vault_patch(commit=False): вызывающие стороны, которые отказываются от коммитов при каждой записи, группируют множество записей, а затем сбрасывают их одним вызовом vault_commit. Возвращает SHA нового коммита в случае успеха, уведомление о чистом дереве, когда нечего коммитить, или понятное человеку сообщение об ошибке.

Параметры
  • messagestring

    Commit message. Empty defaults to "vault: batch update". This is the only parameter — there is no project argument; the commit spans the whole vault working tree.

vault_delete

Удаляет один файл из хранилища (разрушительное; восстанавливается через git). Удаляет один файл и по умолчанию фиксирует удаление, чтобы оно оставалось восстанавливаемым из истории git (git revert / git show). Только файлы: каталоги отклоняются. Несуществующий путь вызывает ошибку, если не задан idempotency_key (тогда повторная попытка для уже удалённого файла — успешное бездействие).

Параметры
  • commitboolean

    Must be True (the default). Unlike vault_write, this tool has no deferred mode: it neither uses the commit queue (a delete and a recreate inside one tick would collapse to a single state) nor leaves the removal uncommitted, which is the indefinite deferral ADR-018 §4 removed. commit=False is rejected with an explanation rather than silently upgraded — see the ADR's 2026-08-09 amendment.

  • idempotency_keystring

    Optional at-most-once token. If set, a retry with the same key is a no-op after the first delete (ADR-013), which also makes deleting an already-removed file succeed. Empty (default) disables idempotency.

  • pathstringобязательный

    Relative path to the file within the project.

  • projectstringобязательный

    Project slug or '_meta' for cross-project content.

vault_healthтолько чтениеидемпотентный

Возвращает метрики здоровья хранилища, валидацию и необязательную аналитику использования. Всегда выводит блок идентификации ## server (version, python, vault path, backend presence, started_at) в начале. Без параметров возвращает сводку о здоровье для всех проектов. Когда указаны проверки, запускает обнаружение расхождений (frontmatter, stale, links). Когда include_usage равен True, добавляет аналитику использования инструментов. Когда include_runtime равен True, добавляет метаданные времени выполнения (uptime, tools, budget).

Параметры
  • checksstring[]

    Validation checks to run. Empty = health summary only. Options: frontmatter, stale, links.

  • include_runtimeboolean

    Append runtime metadata block. Default False.

  • include_usageboolean

    Append vault tool usage analytics. Default False.

  • max_issuesinteger

    Maximum validation issues to report. Default 50.

  • projectstring

    Project slug to validate. Empty = all projects.

  • usage_daysinteger

    Usage look-back window in days. Default 30.

vault_listтолько чтениеидемпотентный

Перечисляет проекты vault или файлы внутри проекта. При вызове без аргументов перечисляет все доступные проекты. При вызове с проектом перечисляет файлы в каталоге этого проекта.

Параметры
  • pathstring

    Subdirectory within the project. Empty = project root. (Use path, not subpathsubpath is accepted as an alias.)

  • patternstring

    Glob pattern to filter files (e.g. 'adr-', '.md').

  • projectstring

    Project slug. Empty = list all projects.

  • subpathstring

    Alias of path (#151). Prefer path. Note: there is no scope parameter here — scope lives on vault_search.

vault_patch

Выполняет точный поиск и замену в файле хранилища с автоматическим git-коммитом. Поддерживает одиночную или множественную замену. Для одиночной замены укажите find и replace. Для множественной замены укажите patches — список словарей вида {"find": "...", "replace": "..."}, применяемых последовательно. Не смешивайте оба режима. Каждое значение find должно встречаться в файле ровно один раз (после применения предыдущих патчей из списка). Если хотя бы один патч не проходит проверку, изменения не записываются. Использует трёхпроходное каскадное сопоставление: точное → только тело → нормализованное по пробелам.

Параметры
  • commitboolean

    If True, commit synchronously before returning. Defaults to False, which queues the path for the reconciler. See vault_write docstring for the durability contract.

  • findstring

    Exact text to find (single mode). Empty = not set. (Use find/replace, NOT old_string/new_string — those are accepted as aliases.)

  • idempotency_keystring

    Optional at-most-once token. If set, a retry with the same key is a no-op after the first apply (ADR-013). Empty (default) disables idempotency.

  • new_stringstring

    Alias of replace (#151). Prefer replace.

  • old_stringstring

    Alias of find (#151). Prefer find.

  • patchesobject[]

    List of {"find", "replace"} dicts (multi mode).

  • pathstringобязательный

    Relative path to the file within the project.

  • projectstringобязательный

    Project slug or '_meta' for cross-project content.

  • replacestring

    Replacement text (single mode). Empty = not set.

vault_queryтолько чтениеидемпотентный

Читает содержимое из vault project — используйте вместо прямого доступа к файловой системе.

Параметры
  • identifierstring

    Alias of path (#151). Prefer path; for a section shortcut use section instead.

  • include_metadataboolean

    Prepend a structured metadata line from YAML frontmatter.

  • max_linesinteger

    Maximum lines to return. 0 = unlimited.

  • pathstring

    Relative path to a specific .md file within the project. Overrides section. (Use path for a file, not identifieridentifier is accepted as an alias.)

  • projectstringобязательный

    Project slug (directory under 10_projects/), or '_meta' for 00_meta/.

  • sectionstring

    Shortcut name (context, tasks, roadmap, lessons). Ignored if path is set.

vault_searchтолько чтениеидемпотентный

Выполняет поиск в хранилище: полнотекстовый, ранжированный или по недавним изменениям. Режим по умолчанию: плоский полнотекстовый поиск по всем файлам хранилища. Режим ранжирования (ranked=True): результаты отсортированы по релевантности. Режим недавних изменений (since_days>0): файлы, изменённые за последние N дней. Режим rank_by (rank_by != 'bm25'): только уроки, ранжированные по использованию.

Параметры
  • limitinteger

    Alias of max_results (#202). Prefer max_results. When both are given the tighter (smaller) cap wins; 0 = unset.

  • max_linesinteger

    Maximum output lines. Default 500.

  • max_resultsinteger

    Max result files. Default 10. Caps the file count in all modes (flat, ranked, recent); in flat/recent the cap is by path order (alphabetical) — use ranked=True for relevance order.

  • projectstring

    Filter to this project (recent mode only).

  • querystring

    Text to search for (case-insensitive).

  • rank_bystring

    Lesson ranking ('bm25' default keeps current behaviour; 'reinforcements', 'confidence', 'hybrid' filter to 90-lessons.md only and rank by usage signal).

  • rankedboolean

    Score results by relevance. Default False.

  • regexboolean

    Alias of use_regex (#151). Prefer use_regex. To narrow by location use scope / project, not path_filter / path_prefix.

  • scopestring

    Restrict search to a scope (e.g. 'work', 'projects'). Empty = all.

  • since_daysinteger

    Show recent changes (0 = disabled). Default 0.

  • status_filterstring

    Only files whose frontmatter status matches.

  • tag_filterstring

    Only files that have this frontmatter tag.

  • type_filterstring

    Only files whose frontmatter type matches.

  • use_regexboolean

    Treat query as regex. Default False. (Use use_regex, not regexregex is accepted as an alias.)

vault_write

Записывает в хранилище: дополняет, заменяет раздел или создаёт новый файл. Режимы: - append/replace: Обновляет раздел проекта. Требует указания раздела. - create: Создаёт новый файл с автоматически сгенерированным frontmatter. Требует указания пути; doc_type по умолчанию равен "note". Определяется автоматически, когда передан путь без раздела, поэтому операцию можно опустить.

Параметры
  • commitboolean

    If True, commit synchronously before returning — the escape hatch for a caller that needs the commit to exist by the time the call ends. Defaults to False, which queues the path for the reconciler to commit on its next tick (a few seconds). Durability contract: the file is persisted to disk regardless; only the commit is deferred, so a crash before the next flush loses the commit, not the content.

  • contentstringобязательный

    Markdown content to write (body only for create mode).

  • doc_typestring

    Document type for frontmatter (create mode). Optional; defaults to "note".

  • idempotency_keystring

    Optional at-most-once token. If set, a retry with the same key is a no-op (safe for transparent retries after a daemon restart cuts an in-flight write — ADR-013). Empty (default) disables idempotency.

  • operationstring

    'append', 'replace', or 'create'. Default 'append'. 'create' is inferred when path is set and section is empty.

  • pathstring

    Relative path for the file. Setting this with no section creates the file (create mode).

  • projectstringобязательный

    Project slug or '_meta' for cross-project content.

  • sectionstring

    Section shortcut (context, tasks, roadmap, lessons). For append/replace.

worker_statusтолько чтениеидемпотентный

Показывает состояние воркера: настройки, доступность, модель и использование. HIVE-384 переработал этот инструмент, и переработка — сама цель, а не побочный эффект. Старый вывод начинался с долларового бюджета и сообщал о двух провайдерах по настройкам: он говорил «Ollama: офлайн / OpenRouter: нет API-ключа» в течение неизвестного времени, пока каждый вызывающий считал воркера работающим. Такое отображение статуса, которое не различает «настроен» и «отвечает», — вот как мёртвый бэкенд остаётся незамеченным. Поэтому доступность проверяется напрямую, а не выводится косвенно, и сообщается отдельно от настроек. Долларовые цифры ушли: на плоской подписке они бы всегда показывали ноль, а индикатор, который всегда говорит одно и то же, выглядит как работающий индикатор.

Параметры
  • include_modelsboolean

    Probe the provider for its model list. Default True. Set False to report configuration without a network call.

Похожие MCP-сервера

MarkusPfundstein/mcp-obsidian

MarkusPfundstein/mcp-obsidian

MCP сервер для Obsidian через плагин Local REST API даёт инструменты для работы с хранилищем: чтение, поиск и изменение файлов. Идеально для интеграции заметок с AI-помощниками и автоматизации.

Python4390
smith-and-web/obsidian-mcp-server

smith-and-web/obsidian-mcp-server

MCP-сервер для интеграции AI-ассистентов с Obsidian: создавайте, читайте, редактируйте заметки, управляйте тегами и ищите по хранилищу через естественный язык. Полезен для автоматизации работы с за...

TypeScript18
bitbonsai/mcp-obsidian

bitbonsai/mcp-obsidian

MCPVault — AI-мост для Obsidian по стандарту MCP. Подключает Claude, ChatGPT и других ассистентов к вашим заметкам с безопасным доступом и защитой frontmatter. Без привязки к одному провайдеру.

TypeScript1656
louis030195/easy-obsidian-mcp

louis030195/easy-obsidian-mcp

MCP-сервер для подключения AI-ассистентов (Claude, ChatGPT) к Obsidian: поиск, чтение и анализ связей между заметками. Полезен для пользователей Obsidian, которые хотят задействовать ИИ для работы ...

TypeScript18
aliasunder/vault-cortex

aliasunder/vault-cortex

Сервер Vault Cortex предоставляет AI-ассистентам полнотекстовый поиск и структурированную память в Obsidian vault через Docker. 25 инструментов работают с заметками, ссылками и свойствами без плагинов.

TypeScript18
ClaudeCodeNavi/claudecodenavi-mcp

ClaudeCodeNavi/claudecodenavi-mcp

MCP-сервер ClaudeCodeNavi для Claude Code: публикуй статьи из CLI, ищи в базе знаний сообщества, создавай Q&A и сниппеты. Полезен разработчикам, которые хотят быстро делиться кодом и подключать зна...

JavaScript2
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин