MCP server for Obsidian — semantic knowledge graph with auto-classification, DAG hierarchy, and cross-domain bridge detection
Project description
NOUZ — Семантический движок знаний для Obsidian
Структура появляется из содержания.
Зачем нужен Nouz
Когда база знаний растёт — размещение документов по папкам перестаёт работать. Агент видит файлы, но не понимает, как связаны ваши идеи и документы.
NOUZ даёт агенту семантические координаты. Каждая заметка получает знак домена, уровень в иерархии и связи с другими заметками. Домен присваивается именно из содержания файла, или же вами вручную, если вы хотите строгую иерархию.
Что делает
Ядра — домены, которые вы задаёте сами. Примеры: Технология / Наука / Гуманитарные, или Системное мышление / Данные / Код. Сервер превращает описания в векторы-эталоны и проецирует заметки на эти оси.
Знак (sign) — координата заметки в пространстве доменов. Квант про нейросети лежит в модуле системного мышления, но по тексту тянет к вычислениям → знак составится из двух ядер.
DAG вместо дерева — направленный ациклический граф. У заметки может быть несколько родителей, несколько типов связей.
Три режима работы:
| Режим | Граф | Семантика | Иерархия |
|---|---|---|---|
| LUCA | ✅ | ❌ | Свободная |
| PRIZMA | ✅ | Ядра, мосты, drift | Свободная |
| SLOI | ✅ | ✅ | Строгая 5-уровневая |
Как это работает
- Вы описываете домены в
config.yaml— чем каждый занимается, на каком языке говорит. - Сервер превращает описания в векторы-эталоны (локально, через LM Studio или Ollama).
- Каждая новая заметка проецируется на эти оси. Знак определяется содержанием, или вами.
- Модули автоматически получают
core_mix— агрегированный состав ядер от всех своих квантов. Еслиsignмодуля расходится сcore_mix— сервер сообщает оcore_drift.
Три типа мостов находят связи между заметками из разных доменов: семантические (тексты близки), теговые (концепты пересекаются), аналогические (похожая роль в графе).
Вдохновлено исследованием рекурсивной самоорганизации — статья на Zenodo.
Быстрый старт
pip install nouz-mcp
OBSIDIAN_ROOT=/path/to/vault nouz-mcp
Без config.yaml сервер стартует в режиме LUCA — граф без семантики, работает сразу.
Или из исходников:
git clone https://github.com/KVANTRA-dev/NOUZ-MCP
cd NOUZ-MCP
pip install -r requirements.txt
OBSIDIAN_ROOT=./vault python server.py
Подключение к Claude Desktop, Cursor, Opencode или любому MCP-клиенту:
{
"mcpServers": {
"nouz": {
"command": "nouz-mcp",
"env": {
"OBSIDIAN_ROOT": "/path/to/vault",
"MODE": "prizma",
"EMBED_API_URL": "http://127.0.0.1:1234/v1"
}
}
}
}
Инструменты MCP
| Инструмент | Зачем |
|---|---|
suggest_metadata |
Знак, уровень, мосты, drift-предупреждения |
write_file |
Записать заметку с YAML-разметкой |
read_file |
Прочитать заметку + метаданные |
calibrate_cores |
Обновить векторы-эталоны ядер |
recalc_signs |
Пересчитать знаки всех заметок |
recalc_core_mix |
Пересчитать агрегацию снизу вверх |
index_all |
Переиндексировать всю базу |
format_entity_compact |
Формула (дети)[знак]{родители} |
embed |
Получить вектор для текста |
list_files |
Список с фильтрами по уровню, знаку |
get_children / get_parents |
Траверс графа |
suggest_parents |
Найти родителей для сироты |
Конфигурация
Минимальный config.yaml:
mode: prizma
etalons:
- sign: T
name: Технология
text: "программирование архитектура инфраструктура машинное обучение нейросети алгоритмы"
- sign: S
name: Наука
text: "физика математика космология научная методология данные эксперимент"
- sign: H
name: Гуманитарные
text: "философия психология история литература этика когнитивные науки"
thresholds:
confident_spread: 60.0
semantic_bridge_threshold: 0.55
После настройки запустите calibrate_cores — сервер создаст эталонные векторы.
| Переменная | По умолчанию | Описание |
|---|---|---|
OBSIDIAN_ROOT |
./obsidian |
Путь к хранилищу |
MODE |
luca |
luca, prizma или sloi |
EMBED_PROVIDER |
openai |
openai, lmstudio, ollama, gigachat |
EMBED_API_URL |
http://127.0.0.1:1234/v1 |
Эндпоинт для эмбеддингов |
EMBED_API_KEY |
(пусто) | API-ключ, если нужен |
EMBED_MODEL |
(пусто) | Имя модели |
Приватность
| Компонент | Локально? |
|---|---|
| Эмбеддинги (LM Studio / Ollama) | ✅ Да |
| Ваши заметки | ✅ Да |
| Сервер NOUZ | ✅ Да |
| Контекст AI-агента (Claude, ChatGPT) | ❌ Уходит в облако |
Всё критичное остаётся на вашей машине.
Разработка
git clone https://github.com/KVANTRA-dev/NOUZ-MCP
cd NOUZ-MCP
pip install -e .
python -m pytest test_server.py
Ссылки
- 🌐 kvantra.tech
- 📦 PyPI
- 🗂️ Glama Registry
- 💬 Telegram
- 🐙 GitHub
- 📄 Статья "Рекурсивная самоорганизация как универсальный принцип"
MIT License © 2026 KVANTRA
Косинусы считаются. Синтаксис меняется. Семантика остаётся.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nouz_mcp-2.3.0.tar.gz.
File metadata
- Download URL: nouz_mcp-2.3.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f4799556565ca80ba2196ca88bf02748e52d3587076b1378533994fb30b625e
|
|
| MD5 |
9634e02bd2042fe4dd3be7d42fd3a217
|
|
| BLAKE2b-256 |
9c9003ec69874bb65125375d1e57e358869c0956a6193b41ce0325a05bc3211e
|
File details
Details for the file nouz_mcp-2.3.0-py3-none-any.whl.
File metadata
- Download URL: nouz_mcp-2.3.0-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf1ddea451274959401bcd900dceec342f1b854f8b28378bc5df08348c919c44
|
|
| MD5 |
b95c8536c7b2b525058dfbcd3aeecf2e
|
|
| BLAKE2b-256 |
66606fc1029d8b2323128176d81b5d83cf363a2d2038c44f649ec73e838d5c9a
|