Skip to main content
Glama
Semiotronika

NOUZ MCP Server

by Semiotronika

NOUZ — Servidor MCP semántico para su base de conocimientos

Funciona con Obsidian, Logseq y cualquier directorio de archivos Markdown.

La estructura surge del contenido.

Herramientas semánticas para bases de conocimientos, memoria de proyectos y agentes de IA.

MIT License Python 3.10+ MCP PyPI

🇬🇧 Versión en inglés


Por qué usar Nouz

Las carpetas muestran dónde se encuentra un archivo. Pero no explican al agente cómo se relacionan los documentos, las ideas y los materiales dentro de la base.

NOUZ proporciona coordenadas semánticas al agente. Cada nota recibe un signo de dominio, un nivel en la jerarquía y conexiones con otras notas. El dominio se asigna precisamente a partir del contenido del archivo, o manualmente si desea una jerarquía estricta.


Related MCP server: Semantic Mesh Memory (SEM) MCP Server

Qué hace

NOUZ actúa como una capa intermedia entre su base de notas y el agente de IA. Ayuda a convertir archivos Markdown dispersos en un grafo con el que se puede trabajar a través de MCP:

  1. Clasificación automática (Semántica) Usted define "Núcleos" — los dominios básicos de su base (por ejemplo: Systems Analysis, Data & Science, Engineering). Cuando añade una nueva nota, NOUZ lee su texto, compara vectores y sugiere un signo de dominio o una combinación de dominios.

  2. Búsqueda de conexiones entre notas El servidor construye un grafo dirigido (DAG) y sugiere conexiones que se pueden verificar antes de guardar:

    • Puentes semánticos: dos notas de diferentes dominios apuntan a la misma idea.

    • Puentes de etiquetas: las notas tienen conceptos ocultos comunes a nivel de etiquetas.

  3. **Seguimiento de la evolución de la base (Deriva) NOUZ agrega datos de abajo hacia arriba. Si un módulo comenzó como un dominio, pero las nuevas notas lo llevan gradualmente a otro, el servidor mostrará la divergencia (core_drift).

Dependiendo de sus tareas, NOUZ funciona en tres modos: desde un grafo simple (LUCA) hasta una jerarquía estricta de 5 niveles (SLOI).


Cómo funciona

  1. Usted describe los dominios en config.yaml — qué área cubre cada dominio y bajo qué características del texto reconocerlo.

  2. El servidor convierte las descripciones en vectores de referencia (localmente, a través de LM Studio u Ollama).

  3. Cada nota nueva se proyecta sobre estos ejes. El signo se determina por el contenido, o por usted.

  4. L4 recibe un perfil de dominio de la clasificación del texto, y L3/L2 recopilan core_mix de los nodos hijos. Si el sign del módulo diverge del core_mix, el servidor informa sobre core_drift.

Dos tipos de puentes encuentran conexiones entre notas de diferentes dominios: semánticos (los textos son cercanos) y de etiquetas (los conceptos se cruzan).


Inicio rápido

pip install nouz-mcp
OBSIDIAN_ROOT=/path/to/vault nouz-mcp

Sin config.yaml, el servidor inicia en modo LUCA — un grafo sin semántica, funciona de inmediato.

Para activar el modo semántico, cree una configuración local a partir de la plantilla:

cp config.template.yaml config.yaml

En Windows PowerShell:

Copy-Item config.template.yaml config.yaml

O desde el código fuente:

git clone https://github.com/Semiotronika/NOUZ-MCP
cd NOUZ-MCP
pip install -r requirements.txt
cp config.template.yaml config.yaml
OBSIDIAN_ROOT=./vault python server.py

Conexión a Claude Desktop, Cursor, Opencode o cualquier cliente MCP:

{
  "mcpServers": {
    "nouz": {
      "command": "nouz-mcp",
      "env": {
        "OBSIDIAN_ROOT": "/path/to/vault",
        "NOUZ_CONFIG": "/absolute/path/to/config.yaml",
        "EMBED_API_URL": "http://127.0.0.1:1234/v1"
      }
    }
  }
}

Herramientas MCP

Herramienta

Propósito

suggest_metadata

Signo, nivel, puentes, advertencias de drift

write_file

Escribir una nota con marcado YAML

update_metadata

Actualizar solo el YAML, sin cambiar el texto de la nota

read_file

Leer nota + metadatos

calibrate_cores

Actualizar vectores de referencia de los núcleos

recalc_signs

Recalcular los signos de todas las notas

recalc_core_mix

Recalcular la agregación de abajo hacia arriba

index_all

Reindexar toda la base

embed

Obtener vector para un texto

list_files

Lista con filtros por nivel, signo

get_children

Navegar hacia abajo en el grafo

get_parents

Navegar hacia arriba en el grafo

suggest_parents

Encontrar padres para un huérfano

add_entity

Crear entidad en un paso (auto sign, tags, parents)

process_orphans

Autocompletar archivos sin marcado


Configuración

config.yaml mínimo:

mode: prizma

etalons:
  - sign: S
    name: Systems Analysis
    text: >
      Methodology for analysing complex objects: feedback loops,
      emergent properties, self-regulation, bifurcation points.
      Cybernetics, synergetics, dissipative structures, catastrophe
      theory, autopoiesis — tools for understanding how the whole
      exceeds the sum of its parts. Not data and not code — a way
      of thinking about how parts form a whole and why systems
      behave non-linearly.
  - sign: D
    name: Data & Science
    text: >
      Physics and cosmology: from subatomic particles to the large-scale
      structure of the Universe. Lagrangians, curvature tensors, scattering
      cross-sections, quarks, bosons, fermions, plasma, vacuum fluctuations,
      cosmic microwave background, cosmological constant, decoherence.
      Pure science about the nature of matter, energy and spacetime.
  - sign: E
    name: Engineering
    text: >
      Software engineering, machine learning and infrastructure: writing
      and debugging code, deployment, containerisation, neural networks,
      inference, tokenisation, data serialisation, microservices, CI/CD,
      automated testing, refactoring, Git, Docker, Kubernetes, APIs.
      The practical discipline of building computational systems from
      architecture to production.

thresholds:
  sign_spread: 0.05
  confident_spread: 60.0
  pattern_second_sign_threshold: 30.0
  semantic_bridge_threshold: 0.55
  parent_link_threshold: 0.55

artifact_signs:
  - sign: n
    name: Note
    text: Short note, observation, fragment.
  - sign: c
    name: Concept
    text: Definition, concept, entity description.
  - sign: r
    name: Reference
    text: External source, documentation, link, citation.
  - sign: l
    name: Log
    text: Session log, chronology, dialogue record.
  - sign: u
    name: Update
    text: Update, release note, changelog entry.
  - sign: h
    name: Hypothesis
    text: Hypothesis, assumption, speculative idea.
  - sign: s
    name: Specification
    text: Technical specification, instruction, requirements.

Después de configurar, ejecute calibrate_cores — el servidor creará vectores de referencia. Verifique los cosenos por pares: el centrado en la media entre diferentes dominios debe ser notablemente más bajo que el crudo. Si todos los pares son aproximadamente iguales, refuerce las diferencias en los textos.

etalons son los dominios semánticos que se comparan mediante embeddings. artifact_signs es el tipo de material para artefactos L5: nota, concepto, enlace, registro, actualización, hipótesis o especificación. Es una etiqueta heurística, no un estándar separado para embeddings. En el esquema público, los dominios generalmente se denotan con letras mayúsculas (S/D/E), y los tipos de material con minúsculas (n/c/r/l/u/h/s); se pueden reemplazar en la configuración si los signos son cortos y no entran en conflicto con los dominios. Si es necesario, se pueden agregar keywords para cualquier tipo: entonces el servidor usará sus palabras para la heurística en lugar del conjunto RU/EN incorporado.

Ejemplo real de cálculo

Aquí están los resultados reales para los estándares S/D/E con el modelo text-embedding-granite-embedding-278m-multilingual:

=== Pairwise Cosine (raw) ===
S↔D: 0.5894    S↔E: 0.5862    D↔E: 0.6022

=== Pairwise Cosine (mean-centered) ===
S↔D: -0.5059   S↔E: -0.5117   D↔E: -0.4822

Los valores negativos centrados en la media son un buen resultado aquí: después de restar el vector promedio, los dominios divergen bien. Autoclasificación: S→99.4%, D→97.5%, E→96.9%.

Variable

Por defecto

Descripción

OBSIDIAN_ROOT

./obsidian

Ruta al almacén

NOUZ_CONFIG

(vacío)

Ruta absoluta a config.yaml; si no se establece, el servidor busca la configuración en el directorio actual

NOUZ_DATABASE_NAME

obsidian_kb.db

Nombre del archivo de caché SQLite dentro de OBSIDIAN_ROOT; útil para comprobaciones aisladas, por ejemplo obsidian_kb.public.db

NOUZ_DATABASE_PATH

(vacío)

Ruta completa al caché SQLite; tiene prioridad sobre NOUZ_DATABASE_NAME

EMBED_PROVIDER

openai

openai, lmstudio, ollama

EMBED_API_URL

http://127.0.0.1:1234/v1

Endpoint para embeddings

EMBED_API_KEY

(vacío)

Clave API, si es necesaria

EMBED_MODEL

(vacío)

Nombre del modelo


Privacidad

Componente

¿Local?

Embeddings (LM Studio / Ollama)

✅ Sí

Sus notas

✅ Sí

Servidor NOUZ

✅ Sí

Contexto del agente de IA (Claude, ChatGPT)

❌ Va a la nube

Todo lo crítico permanece en su máquina.


Desarrollo

git clone https://github.com/Semiotronika/NOUZ-MCP
cd NOUZ-MCP
pip install -e .
python test_server.py

Enlaces

MIT License © 2026 Semiotronika

Los cosenos se calculan. La sintaxis cambia. La semántica permanece.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
4dResponse time
2dRelease cycle
25Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.

  • Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.

  • MCP server for URL shortening and management

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Semiotronika/NOUZ-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server