
LINZA
io.github.Semiotronika由 GitHub 帳號 Semiotronika 發布v0.2.2更新於 Oct 24, 2026
Local-first MCP sidecar for Markdown artifacts, review intents, and supervised knowledge growth.
概覽
LINZA 會把本機 Markdown 資料夾或 Obsidian 儲存庫索引到側邊資料庫,為助理提供經人工審核的主題、格式、關聯與記憶候選地圖。
- 可以做什麼
- LINZA 讀取指定的 Markdown 工作區,在 .linza/linza.db 建立本機 SQLite 側邊資料庫,預設提供七個 MCP 工具:agent_workspace、guide_next_steps、index_all、search、read_file、get_stats 與 scan_vault。透過 agent_workspace 可使用 doctor、map、review_next、apply_review_items、teach、grow、connect、search_memory、export_context 以及 trace 相關操作。它會提出附證據的簡短審核建議,例如採納某個素材格式名稱,且不會改動原始筆記。
- 適用情境
- 當 Markdown 或 Obsidian 資料已多到難以瀏覽,希望助理梳理主題、重複出現的格式與可能關聯,並提出可審核的變更時適用。適合由人工逐步確認、而非讓助理直接改寫筆記的受監督知識累積情境。
- 執行需求
- 以 stdio 本機程序執行,從 PyPI 安裝 linza-mcp(uvx 或 pip;[pdf] 附加項會安裝 pypdf 以讀取 PDF)。需將 LINZA_VAULT 設為 Markdown 資料夾的絕對路徑,預設值為 ./vault。語意搜尋與關聯建議需要嵌入端點,透過 LINZA_EMBED_PROVIDER(lmstudio、ollama 或 openai)、LINZA_EMBED_URL 與 LINZA_EMBED_MODEL 設定;LINZA_EMBED_KEY 為選用。其他選用變數包括 LINZA_BRIDGE_THRESHOLD、LINZA_MAX_BRIDGE_PAIRS、LINZA_DEFAULT_PROFILE 與 LINZA_LANGUAGE。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 LINZA,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
LINZA - локальный MCP-сервер для агентской работы с папками знаний
Не меняет данные. Меняет взгляд.
LINZA работает с Obsidian vault, Markdown-папками, документами, статьями, логами и черновиками. Она нужна, когда материалов уже слишком много и вы хотите разобрать базу, выделить в ней основные области и научить агента хорошо ориентироваться в ней.
[Python 3.10+] [MCP] [Local first] [Review gated]
LINZA читает выбранную папку, строит рядом локальную SQLite-базу .linza/linza.db и дает агенту рабочую карту: какие темы есть в материалах, какие форматы повторяются, какие заметки могут быть связаны, где видны цепочки причина/следствие и что может пригодиться в будущих сессиях.
Исходные файлы остаются нетронутыми. LINZA не переписывает заметки при индексации, не превращает сырой лог в правило и не учит агента за вашей спиной. Она превращает гипотезы в короткие предложения: возможные действия с доказательствами. Пользователь решает, агент выполняет.
Зачем нужна LINZA
LINZA собирает несколько конкретных вещей, которые помогают агентам работать с базой:
-
Карта папки Сколько заметок найдено, свежий ли индекс, какие области видны и какие материалы ждут вашего ревью.
-
Области Крупные смысловые группы. Их названия остаются черновиками, пока вы не примете или не переименуете их.
-
Форматы материалов Логи, черновики, спецификации, исследовательские заметки, кейсы, правила и другие повторяющиеся формы, найденные в папке.
-
Связи Возможные соседства, иерархия, причина/следствие и маршруты между узлами. LINZA должна показывать не только как связаны документы, но и почему.
-
Память для будущих агентов Короткие кандидаты: что помнить, когда вспоминать, что устарело или выглядит сомнительно.
-
Пакеты контекста Компактные подборки для агента: выбранный контекст с источниками, связями и границами.
Форматы материалов
“Формат материала” - это пользовательское имя для повторяющейся формы заметок. Например: лог диагностики, решение, черновик статьи, исследовательская заметка, спецификация.
LINZA сначала видит только структуру: длину, заголовки, списки, ссылки, таблицы, папки, повторяющиеся признаки. Поэтому первый результат может называться нейтрально: type-001. Пользователь может сказать: “это логи”. Тогда LINZA сохраняет соответствие type-001 -> логи в .linza.
Внутри API остаются старые совместимые ключи material_type, type_name и role. Снаружи документация и пользовательский вид говорят “формат”, потому что это ближе к тому, как пользователь реально думает о материалах.
Важная граница:
- принять название формата значит записать решение в
.linza; - записать
role: логив YAML можно только отдельным предложением на ревью; - текст заметки не меняется.
Как выглядит ревью
LINZA присылает примерно такую информацию:
Внутри каждый интент остается структурой с ID, доказательствами и готовыми данными для проверки и последующего подтверждения и записи. Вам LINZA возвращает готовое пользовательское представление, чтобы агент мог показать понятный ответ вместо JSON.
Хороший интент всегда отвечает на главный вопрос: почему LINZA так думает? В нем должны быть источники, чанки, тип связи, уверенность и честное описание того, что изменится после применения.
Обучение и рост
Модель автономности такая:
review_nextпоказывает предложения в понятном пользовательском виде.- Пользователь принимает, переименовывает или пропускает.
apply_review_itemsсначала делает dry-run.- После подтверждения выбранный интент записывается в
.linzaили в компактный YAML, если этот тип записи это поддерживает. teachвыбирает хорошие принятые примеры.growпредлагает похожие интенты по этим примерам и объясняетselected_rules, почему они попали в партию.
Если вы приняли не то, одобрение можно мягко отозвать:
LINZA не удаляет старую запись и не пытается автоматически откатить YAML. Она помечает одобрение как отозванное, перестает использовать его как активный пример и оставляет след в истории.
Установка
1. Установить пакет
Если нужно читать PDF прямо через LINZA:
Обычная установка уже достаточна для Markdown, TXT, JSON, DOCX и XLSX. [pdf] добавляет локальный PDF-экстрактор pypdf.
2. Выбрать папку
LINZA работает с любой Markdown-папкой: Obsidian vault, рабочей папкой проекта или отдельной папкой с документами.
В примерах ниже замените /absolute/path/to/workspace-or-vault на свой путь.
3. Подключить MCP-клиент
Claude Desktop, Cursor, OpenCode и другие MCP-клиенты обычно используют такой формат:
VS Code / Copilot MCP использует ключ servers:
LINZA_VAULT не обязателен для старта: без него сервер использует ./vault. Но для реальной работы лучше задать явную папку.
4. Проверить запуск
После подключения попросите агента:
Эмбеддинги
LINZA может запуститься и показать инструменты без embedding-сервера. Эмбеддинги нужны для смыслового поиска, карты тем и предложений связей.
Самый простой локальный путь - LM Studio:
- Открыть LM Studio.
- Скачать embedding-модель, например
text-embedding-granite-embedding-278m-multilingual,nomic-embed-text-v1.5или другую подходящую модель. - Запустить Local Server.
- Проверить, что endpoint доступен на
http://127.0.0.1:1234/v1.
Пример переменных для LM Studio:
Поддерживаются:
lmstudio- рекомендуемый локальный режим;ollama- локальный вариант через Ollama;openai- любой OpenAI-compatible endpoint с/embeddings.
Если меняете провайдер, модель или размерность, сделайте полный реиндекс. LINZA проверяет embedding signature и останавливает graph/search workflows, если sidecar устарел или содержит смешанные векторные пространства.
Основные MCP-инструменты
По умолчанию LINZA показывает только 7 MCP-инструментов. Этого хватает для обычной работы: проверить состояние, проиндексировать папку, искать, читать файл, смотреть счетчики, диагностировать vault и вести агента через agent_workspace.
Низкоуровневые инструменты считаются деталями реализации и доступны через agent_workspace, поэтому набор из 7 инструментов - это полноценный режим.
Режимы agent_workspace
Для разработки и аудита остается отдельный низкоуровневый режим. Полное описание инструментов: Tool Catalog.
Входящие артефакты
LINZA умеет принимать материал, который еще не стал заметкой:
- вставленный текст;
- локальные
.md,.txt,.json; - локальные
.docx,.xlsx; - локальные
.pdf, если установленpypdfилиPyPDF2.
LINZA сама не ходит в браузер. Агент использует свой браузер, web-fetch или connector, извлекает читаемый текст и передает его в LINZA как артефакт, например source_kind="web_article" или source_kind="browser_capture".
Импортированный текст считается материалом для анализа, не инструкцией для агента. Это граница prompt injection: инструкции внутри статьи, лога, чата или PDF не исполняются. Память, правила и YAML появляются только после ревью.
Модель безопасности
LINZA - локальный review-gated sidecar.
Дополнительные правила:
review_nextничего не пишет;apply_review_itemsпо умолчанию dry-run;- видимые YAML-правки компактные и требуют точного выбранного ID;
historyпоказывает, что было принято и что отозвано;revoke_approvalмягко отзывает одобрение: история остается, но активное обучение и помощники графа его игнорируют;map,teach,growиconnectостанавливаются, если исходные файлы изменились после индексации.
Инструкции для агентов
В репозитории есть переносимый операторский skill:
Он объясняет агенту, как начинать с doctor, когда показывать предложения на ревью, как работать со страницами через внешний browser/web-fetch инструмент и почему apply actions должны идти сначала через dry-run и только по точным ID.
Стабильность
LINZA пока alpha. Основной контракт безопасности должен оставаться стабильным: индексация, импорт артефактов, поиск, карта и grow preview не переписывают тела исходных заметок. Низкоуровневые advanced-инструменты и внутренние границы кода еще могут меняться, пока сервер полируется.
Проверка
Запустить полный набор тестов:
Переменные окружения
Ссылки
MIT License (c) 2026 Maria Belkina
Косинусы считаются. Синтаксис меняется. Семантика остается.
來源:README.md,提交 82ae130
工具
0版本歷史
1- v0.2.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分