Nix
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NixCreate a new note titled 'Meeting notes' with today's action items."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Nix
MCP server that exposes an Obsidian vault to development agents (Cursor, Claude Code, Copilot). Hybrid search, read and write to notes — with local and free embeddings and vector database. Reasoning stays on the client; Nix only delivers tools.
Transport: MCP stdio. With no subcommand, nix starts the server.
Why use it
The editor's agent finds ideas, not just words: semantic + lexical search across the vault.
Creates and updates notes in Obsidian format, without leaving Cursor.
Everything runs on your machine. No vault snippet goes to an embedding API.
You control when the index changes: no background watcher.
Requirements
Python 3.11+ on the
PATHAn Obsidian vault (
.mdnotes)~2.3 GB free on first sync (download of the
BAAI/bge-m3model)
Installation
There are two paths. Both create .venv, install the package, and trigger nix init (asks for the vault path, or accepts --vault).
In your project (user)
Download the latest release (
nix-x.y.z.zip).Extract it at the root of the workspace and rename the folder to
nix(the zip comes asnix-1.0.0/).Run the installer inside that folder:
cd nix
setup.bat
:: ou, se já souber o vault:
setup.bat --vault "C:/Users/voce/Vault"cd nix
chmod +x setup.sh
./setup.sh
# ou: ./setup.sh --vault "$HOME/Vault"On Windows use forward slashes / in the vault path (C:/Users/you/Vault). A backslash breaks the TOML.
Then register the server in the editor — see MCP client registration.
From the repository (developer)
Clone the repository and run the same installer at the root:
setup.bat
:: ou: setup.bat --vault "C:/Users/voce/Vault"chmod +x setup.sh
./setup.sh
# ou: ./setup.sh --vault "$HOME/Vault"Manual installation (equivalent to the installer, with development dependencies):
python -m venv .venv
# Windows (Git Bash): source .venv/Scripts/activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements-dev.txt
pip install -e .
python -m nix init # ou: python -m nix init --vault "C:/Users/voce/Vault"nix and python -m nix are equivalent after activating the venv. Cursor does not inherit the terminal's PATH — in MCP always use the Python from .venv.
MCP client registration
The client starts the process. The IDE does not inherit the terminal's PATH: the nix command from the venv is not found and the connection closes ('nix' is not recognized).
Point to the virtual environment's Python. Reload the MCP servers after saving.
Cursor — .cursor/mcp.json in the workspace:
{
"mcpServers": {
"nix": {
"command": "${workspaceFolder}/nix/.venv/Scripts/python.exe",
"args": ["-m", "nix"]
}
}
}Adjust command as needed:
Where Nix is located | Windows | Linux / macOS |
|
|
|
The workspace is the Nix repo |
|
|
The same pattern (path/to/python + ["-m", "nix"]) applies to Claude Code and Copilot. stdout is the MCP protocol: logs only in ~/.nix/logs/nix.log.
Getting started
After init (the installer already triggers this):
# Windows
.venv\Scripts\python.exe -m nix doctor
.venv\Scripts\python.exe -m nix sync
.venv\Scripts\python.exe -m nix status
# Linux / macOS
.venv/bin/python -m nix doctor
.venv/bin/python -m nix sync
.venv/bin/python -m nix statusThe first sync (or any operation that embeds) downloads the BAAI/bge-m3 model (~2.3 GB) from Hugging Face. On subsequent runs, only what changed is reprocessed.
New notes without a folder in the path go to vault.default_new_note_folder (default Inbox).
Indexing
This is the central rule:
Changes made outside Nix (Obsidian, editor) are not indexed on their own. Changes made by the MCP tools update the index in the same operation.
After editing in Obsidian, run nix sync or ask the agent for sync_index. If vectorization of a write fails, the file remains in the vault (source of truth) and a nix sync fixes the index.
CLI
Command | Function |
| Starts the MCP stdio server |
| Creates the configuration and stores the vault path |
| Syncs the index (never automatic) |
| Notes, chunks, last sync and lag |
| Environment, config and index diagnostics |
MCP tools
Twelve tools, defined in src/nix/core/tools/registry.py. Notes also appear as the nix://note/{+rel_path} resource.
Tool | Usage |
| Hybrid search (semantic + lexical), with folder, tag and date filters |
| Reads the entire note |
| Lists indexed notes (folder, tag) |
| Navigates wikilinks ( |
| Creates a note and indexes it immediately (write-through) |
| Appends content and reindexes |
|
|
| Removes note and index; requires |
| Manual sync ( |
| Counts, last sync and lag |
| Orphans, duplicates, link suggestions or summary |
| Stores a lasting fact in |
Configuration
File (first found): $NIX_CONFIG → ./nix.toml → ~/.nix/config.toml. NIX_SECTION__FIELD variables override the file (e.g.: NIX_VAULT__PATH).
Useful points of the TOML generated by init:
Key | Default | Function |
| — | Obsidian root folder |
|
| Ignored folders |
|
| Destination for notes without a folder in the path |
|
| Destination for the |
|
| SQLite + Chroma (outside the vault) |
|
| Logs; queries only enter if |
Documentation
PRD.md — product, requirements and business rules
ARCHITECTURE.md — components, indexing, retrieval and MCP stdio
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/paulocesaaars/nix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server