Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

LINZA

by Semiotronikaversion 0.2.2i★ –iRuns on your computer
Registry nameio.github.Semiotronika/LINZA-MCP

Install

Overview

Description from the maker (original English)

Local-first MCP sidecar for Markdown artifacts, review intents, and supervised knowledge growth.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Docs, sheets & office work
  • You need to fill in: LINZA_EMBED_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: LINZA_VAULT, LINZA_EMBED_PROVIDER, LINZA_EMBED_URL, LINZA_EMBED_MODEL, LINZA_EMBED_KEY, LINZA_BRIDGE_THRESHOLD, LINZA_MAX_BRIDGE_PAIRS, LINZA_DEFAULT_PROFILE, LINZA_LANGUAGE

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "linza": {
      "command": "uvx",
      "args": [
        "linza-mcp"
      ],
      "env": {
        "LINZA_VAULT": "your-value",
        "LINZA_EMBED_PROVIDER": "your-value",
        "LINZA_EMBED_URL": "your-value",
        "LINZA_EMBED_MODEL": "your-value",
        "LINZA_EMBED_KEY": "your-value",
        "LINZA_BRIDGE_THRESHOLD": "your-value",
        "LINZA_MAX_BRIDGE_PAIRS": "your-value",
        "LINZA_DEFAULT_PROFILE": "your-value",
        "LINZA_LANGUAGE": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add linza --env LINZA_VAULT=your-value --env LINZA_EMBED_PROVIDER=your-value --env LINZA_EMBED_URL=your-value --env LINZA_EMBED_MODEL=your-value --env LINZA_EMBED_KEY=your-value --env LINZA_BRIDGE_THRESHOLD=your-value --env LINZA_MAX_BRIDGE_PAIRS=your-value --env LINZA_DEFAULT_PROFILE=your-value --env LINZA_LANGUAGE=your-value -- uvx linza-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "linza": {
      "command": "uvx",
      "args": [
        "linza-mcp"
      ],
      "env": {
        "LINZA_VAULT": "your-value",
        "LINZA_EMBED_PROVIDER": "your-value",
        "LINZA_EMBED_URL": "your-value",
        "LINZA_EMBED_MODEL": "your-value",
        "LINZA_EMBED_KEY": "your-value",
        "LINZA_BRIDGE_THRESHOLD": "your-value",
        "LINZA_MAX_BRIDGE_PAIRS": "your-value",
        "LINZA_DEFAULT_PROFILE": "your-value",
        "LINZA_LANGUAGE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "linza": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "linza-mcp"
      ],
      "env": {
        "LINZA_VAULT": "your-value",
        "LINZA_EMBED_PROVIDER": "your-value",
        "LINZA_EMBED_URL": "your-value",
        "LINZA_EMBED_MODEL": "your-value",
        "LINZA_EMBED_KEY": "your-value",
        "LINZA_BRIDGE_THRESHOLD": "your-value",
        "LINZA_MAX_BRIDGE_PAIRS": "your-value",
        "LINZA_DEFAULT_PROFILE": "your-value",
        "LINZA_LANGUAGE": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • LINZA_VAULT env
    Absolute path to the Markdown workspace or vault LINZA may index. Defaults to ./vault.
  • LINZA_EMBED_PROVIDER env
    Embedding provider. Allowed values: lmstudio, openai, ollama. Default: lmstudio.
  • LINZA_EMBED_URL env
    Embedding API base URL when LINZA_EMBED_PROVIDER is lmstudio, openai, or ollama.
  • LINZA_EMBED_MODEL env
    Embedding model name.
  • LINZA_EMBED_KEY secret env
    Optional embedding API key.
  • LINZA_BRIDGE_THRESHOLD env
    Semantic bridge threshold as a floating-point string. Default: 0.55.
  • LINZA_MAX_BRIDGE_PAIRS env
    Maximum note pairs for semantic bridge rebuilds. Default: 1000000. Use 0 to disable the guard.
  • LINZA_DEFAULT_PROFILE env
    Default search profile name. Defaults to general.
  • LINZA_LANGUAGE env
    User-facing guide language. Allowed values: auto, en, ru. Default: auto.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Semiotronika, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Docs, sheets & office worki

  • More stars than 0% of the other 3575 servers in this category
  • Published to the registry more recently than 11% of the other 3575 servers in this category
  • Basic checks equal to or better than 100% of the other 3575 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is LINZA safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: LINZA_EMBED_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.2) reached the registry 5 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Agent-Native Calendar

Agent-Native Google Calendar - manage events, sync, and public booking

by BuilderIOGrowing★ 7.6KUpdated 2 months ago

Runs in the cloud

Excel MCP Server

Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.

by haris-musaWidely used↓ 49.6K/wk★ 4.3KUpdated 7 days ago

Runs on your computer

MCP Server for Excel

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

by sbroenneGrowing↓ 4.3K/wk★ 847Updated 5 days ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

LINZA - локальный MCP-сервер для агентской работы с папками знаний

*Не меняет данные. Меняет взгляд.*

LINZA работает с Obsidian vault, Markdown-папками, документами, статьями, логами и черновиками. Она нужна, когда материалов уже слишком много и вы хотите разобрать базу, выделить в ней основные области и научить агента хорошо ориентироваться в ней.

English version

LINZA читает выбранную папку, строит рядом локальную SQLite-базу .linza/linza.db и дает агенту рабочую карту: какие темы есть в материалах, какие форматы повторяются, какие заметки могут быть связаны, где видны цепочки причина/следствие и что может пригодиться в будущих сессиях.

Исходные файлы остаются нетронутыми. LINZA не переписывает заметки при индексации, не превращает сырой лог в правило и не учит агента за вашей спиной. Она превращает гипотезы в короткие предложения: возможные действия с доказательствами. Пользователь решает, агент выполняет.

doctor -> index -> map -> review intents -> teach -> grow preview -> explicit apply

Зачем нужна LINZA

LINZA собирает несколько конкретных вещей, которые помогают агентам работать с базой:

  1. Карта папки Сколько заметок найдено, свежий ли индекс, какие области видны и какие материалы ждут вашего ревью.
  1. Области Крупные смысловые группы. Их названия остаются черновиками, пока вы не примете или не переименуете их.
  1. Форматы материалов Логи, черновики, спецификации, исследовательские заметки, кейсы, правила и другие повторяющиеся формы, найденные в папке.
  1. Связи Возможные соседства, иерархия, причина/следствие и маршруты между узлами. LINZA должна показывать не только как связаны документы, но и почему.
  1. Память для будущих агентов Короткие кандидаты: что помнить, когда вспоминать, что устарело или выглядит сомнительно.
  1. Пакеты контекста Компактные подборки для агента: выбранный контекст с источниками, связями и границами.

Форматы материалов

“Формат материала” - это пользовательское имя для повторяющейся формы заметок. Например: лог диагностики, решение, черновик статьи, исследовательская заметка, спецификация.

LINZA сначала видит только структуру: длину, заголовки, списки, ссылки, таблицы, папки, повторяющиеся признаки. Поэтому первый результат может называться нейтрально: type-001. Пользователь может сказать: “это логи”. Тогда LINZA сохраняет соответствие type-001 -> логи в .linza.

Внутри API остаются старые совместимые ключи material_type, type_name и role. Снаружи документация и пользовательский вид говорят “формат”, потому что это ближе к тому, как пользователь реально думает о материалах.

Важная граница:

  • принять название формата значит записать решение в .linza;
  • записать role: логи в YAML можно только отдельным предложением на ревью;
  • текст заметки не меняется.

Как выглядит ревью

LINZA присылает примерно такую информацию:

LINZA готова

Материал:

  • 42 заметки проиндексированы
  • 3 входящих артефакта ждут ревью
  • служебная база: .linza/linza.db

Следующий шаг:

  1. Посмотреть найденные области
  2. Принять, переименовать или пропустить 3-5 предложений
  3. Ничего не будет записано без dry-run/apply

Предложение: Принять формат материала "логи диагностики" по 8 примерам Почему: похожая структура, повторяющиеся заголовки, близкие чанки Что изменится: название формата сохранится в .linza; Markdown-заметки не меняются

Внутри каждый интент остается структурой с ID, доказательствами и готовыми данными для проверки и последующего подтверждения и записи. Вам LINZA возвращает готовое пользовательское представление, чтобы агент мог показать понятный ответ вместо JSON.

Хороший интент всегда отвечает на главный вопрос: почему LINZA так думает? В нем должны быть источники, чанки, тип связи, уверенность и честное описание того, что изменится после применения.


Обучение и рост

Модель автономности такая:

  1. review_next показывает предложения в понятном пользовательском виде.
  2. Пользователь принимает, переименовывает или пропускает.
  3. apply_review_items сначала делает dry-run.
  4. После подтверждения выбранный интент записывается в .linza или в компактный YAML, если этот тип записи это поддерживает.
  5. teach выбирает хорошие принятые примеры.
  6. grow предлагает похожие интенты по этим примерам и объясняет selected_rules, почему они попали в партию.

Если вы приняли не то, одобрение можно мягко отозвать:

agent_workspace(action="history")

agent_workspace(action="revoke_approval", approval_id=17, dry_run=false)

LINZA не удаляет старую запись и не пытается автоматически откатить YAML. Она помечает одобрение как отозванное, перестает использовать его как активный пример и оставляет след в истории.


Установка

1. Установить пакет
python -m pip install linza-mcp

Если нужно читать PDF прямо через LINZA:

python -m pip install "linza-mcp[pdf]"

Обычная установка уже достаточна для 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-клиенты обычно используют такой формат:

{

"mcpServers": { "linza": { "command": "linza-mcp", "env": { "LINZA_VAULT": "/absolute/path/to/workspace-or-vault" } } } }

VS Code / Copilot MCP использует ключ servers:

{

"servers": { "linza": { "type": "stdio", "command": "linza-mcp", "env": { "LINZA_VAULT": "/absolute/path/to/workspace-or-vault" } } } }

LINZA_VAULT не обязателен для старта: без него сервер использует ./vault. Но для реальной работы лучше задать явную папку.

4. Проверить запуск
linza-mcp --version

После подключения попросите агента:

Проверь LINZA через agent_workspace(action="doctor").

Проиндексируй папку и покажи первые 3-5 предложений.


Эмбеддинги

LINZA может запуститься и показать инструменты без embedding-сервера. Эмбеддинги нужны для смыслового поиска, карты тем и предложений связей.

Самый простой локальный путь - LM Studio:

  1. Открыть LM Studio.
  2. Скачать embedding-модель, например text-embedding-granite-embedding-278m-multilingual, nomic-embed-text-v1.5 или другую подходящую модель.
  3. Запустить Local Server.
  4. Проверить, что endpoint доступен на http://127.0.0.1:1234/v1.

Пример переменных для LM Studio:

$env:LINZA_EMBED_PROVIDER="lmstudio"

$env:LINZA_EMBED_URL="http://127.0.0.1:1234/v1" $env:LINZA_EMBED_MODEL="your-embedding-model-name"

Поддерживаются:

  • lmstudio - рекомендуемый локальный режим;
  • ollama - локальный вариант через Ollama;
  • openai - любой OpenAI-compatible endpoint с /embeddings.

Если меняете провайдер, модель или размерность, сделайте полный реиндекс. LINZA проверяет embedding signature и останавливает graph/search workflows, если sidecar устарел или содержит смешанные векторные пространства.


Основные MCP-инструменты

По умолчанию LINZA показывает только 7 MCP-инструментов. Этого хватает для обычной работы: проверить состояние, проиндексировать папку, искать, читать файл, смотреть счетчики, диагностировать vault и вести агента через agent_workspace.

ИнструментЗачем
agent_workspaceЕдиный вход для диагностики, карты, импорта, ревью, обучения, роста, связей, памяти и экспорта контекста
guide_next_stepsПоказать следующий безопасный шаг простым языком
index_allПроиндексировать Markdown-папку в .linza/linza.db
searchСемантический и лексический поиск
read_fileПрочитать точный Markdown-файл
get_statsБыстрые счетчики служебной базы
scan_vaultДиагностика папки без записи

Низкоуровневые инструменты считаются деталями реализации и доступны через agent_workspace, поэтому набор из 7 инструментов - это полноценный режим.

Режимы agent_workspace
ActionРежим
doctorПроверить готовность LINZA и показать, чего не хватает
mapСобрать карту рабочей папки без записи
teachВыбрать сильные принятые примеры для обучения
growПоказать или применить рост по принятым примерам; по умолчанию dry-run
review_nextПоказать следующие предложения на ревью; интенты базы имеют ID rq-*, интенты артефактов и рабочей папки - aw-*
apply_review_itemsПоказать или применить точные выбранные ID; по умолчанию dry-run
historyПоказать принятые и отозванные одобрения
revoke_approvalМягко отозвать одобрение, не удаляя историю
ingest_artifactsСохранить вставленный или извлеченный материал в sidecar
analyze_inboxНайти события, кандидаты памяти и фрагменты знания в артефактах
connectОбъяснить возможную связь между двумя заметками или узлами
search_memoryИскать по подтвержденной памяти и контексту артефактов
export_contextСобрать компактный пакет контекста для другого агента
record_traceСохранить структурированные следы работы агента, не raw chain-of-thought
analyze_traceРазобрать сохраненный trace для ревью
review_calibrПроверить уроки калибровки, полученные из traces

Для разработки и аудита остается отдельный низкоуровневый режим. Полное описание инструментов: 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.

ДействиеКуда пишетМеняет текст заметок?
Индексация, анализ, поиск.linza/linza.dbНет
Сырые артефакты.linza/linza.dbНет
Название формата материала.linza/linza.dbНет
domains или role в YAMLТолько компактный YAML после ревьюНет
Иерархия, причинные связи, память, уроки калибровки.linza/linza.dbНет
Отчеты.linza/reportsНет
Пакеты контекста.linza/context-packsНет
write_fileMarkdown-файл только при явном запросеМожет создать/заменить файл, dry-run по умолчанию

Дополнительные правила:

  • review_next ничего не пишет;
  • apply_review_items по умолчанию dry-run;
  • видимые YAML-правки компактные и требуют точного выбранного ID;
  • history показывает, что было принято и что отозвано;
  • revoke_approval мягко отзывает одобрение: история остается, но активное обучение и помощники графа его игнорируют;
  • map, teach, grow и connect останавливаются, если исходные файлы изменились после индексации.

Инструкции для агентов

В репозитории есть переносимый операторский skill:

agent-pack/skills/linza-operator/SKILL.md

agent-pack/skills/linza-operator/references/workflows.md agent-pack/skills/linza-operator/references/sa

Only the beginning is shown; read the rest in the repo

Ask PopNx