# Nouz

Connects Obsidian or Logseq Markdown vaults to AI assistants, building acyclic graphs and mapping semantic bridges across notes.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 24
- Author: Semiotronika
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Semiotronika/NOUZ-MCP
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/mcp/nouz

## What it does

Nouz links a folder of Markdown notes with an AI assistant. The server structures files into a directed acyclic graph (DAG) and calculates domain marks based on reference vectors. As notes evolve, the server flags conceptual drift in its local SQLite index when content wanders away from its assigned domain.

Setup depth depends on the chosen mode. Starting without `config.yaml` runs the basic LUCA graph immediately. Activating the PRIZMA or 5-level SLOI hierarchies requires configuring domain baselines and connecting a local embedding provider such as Ollama or LM Studio. Semantic bridges link notes across domains by matching text chunks with high similarity.

Running semantic tools requires Python 3.10+ and an active `EMBED_API_URL`. Without an embedding model, advanced classification stays disabled.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `OBSIDIAN_ROOT`, `NOUZ_CONFIG`, `NOUZ_DATABASE_NAME`, `NOUZ_DATABASE_PATH`, `EMBED_ENABLED`, `EMBED_PROVIDER`, `EMBED_MODEL`, `EMBED_API_URL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> --transport stdio nouz -- uvx nouz-mcp
```
Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add nouz --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> -- uvx nouz-mcp
```
Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "nouz": {
            "command": "uvx",
            "args": [
                "nouz-mcp"
            ],
            "env": {
                "OBSIDIAN_ROOT": "<OBSIDIAN_ROOT>",
                "NOUZ_CONFIG": "<NOUZ_CONFIG>",
                "NOUZ_DATABASE_NAME": "<NOUZ_DATABASE_NAME>",
                "NOUZ_DATABASE_PATH": "<NOUZ_DATABASE_PATH>",
                "EMBED_ENABLED": "<EMBED_ENABLED>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "nouz": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "nouz-mcp"
            ],
            "env": {
                "OBSIDIAN_ROOT": "<OBSIDIAN_ROOT>",
                "NOUZ_CONFIG": "<NOUZ_CONFIG>",
                "NOUZ_DATABASE_NAME": "<NOUZ_DATABASE_NAME>",
                "NOUZ_DATABASE_PATH": "<NOUZ_DATABASE_PATH>",
                "EMBED_ENABLED": "<EMBED_ENABLED>"
            }
        }
    }
}
```
Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e OBSIDIAN_ROOT=<OBSIDIAN_ROOT> -e NOUZ_CONFIG=<NOUZ_CONFIG> -e NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> -e NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> -e EMBED_ENABLED=<EMBED_ENABLED> nouz uvx nouz-mcp
```
Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>

## When to use it
- organize unstructured Markdown files into a directed acyclic graph
- classify incoming notes by matching text against domain vectors
- locate conceptual bridges between notes belonging to separate domains
- detect subject drift inside evolving documents using stored domain profiles

## Example prompts
- Run `process_orphans` on the vault to categorize unlinked files and suggest parents.
- Use `suggest_metadata` on this draft to find domain signs and cross-topic bridges.
- Recompute domain profiles across parent notes using `recalc_core_mix`.

## Similar
- [Reactive Resume](https://affpapa.org/en/nevibecode/mcp/reactive-resume.md) — MCP server · ★ 44874
- [screenpipe](https://affpapa.org/en/nevibecode/mcp/screenpipe.md) — MCP server · ★ 22053
- [Inbox Zero](https://affpapa.org/en/nevibecode/mcp/inbox-zero.md) — MCP server · ★ 12791
- [kaneo](https://affpapa.org/en/nevibecode/mcp/kaneo.md) — MCP server · ★ 9602
- [Mindwtr](https://affpapa.org/en/nevibecode/mcp/mindwtr.md) — MCP server · ★ 2318
- [Azure DevOps (ADO)](https://affpapa.org/en/nevibecode/mcp/azure-devops-ado.md) — MCP server · ★ 2067

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
