obsidianMCP
by creschendo
README.md
# Obsidian MCP Server
An [MCP](https://modelcontextprotocol.io) server that gives Claude access to your Obsidian vault — read, search, and write notes directly from a conversation.
## Prerequisites
- [Node.js](https://nodejs.org) v20 or later
- [Claude Desktop](https://claude.ai/download)
## Installation
```bash
git clone <repo-url>
cd obsidianMCP
npm install
npm run build
```
## Claude Desktop configuration
Add the server to your `claude_desktop_config.json`:
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/obsidianMCP/dist/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/vault"
}
}
}
}
```
Restart Claude Desktop after saving the file.
## Available tools
| Tool | Description |
|---|---|
| `list_notes` | List all `.md` files in the vault. Pass an optional `directory` to scope the listing to a subdirectory. |
| `read_note` | Return the full content of a note by its vault-relative path (e.g. `folder/note.md`). |
| `search_notes` | Case-insensitive full-text search. Returns the matching file path and a snippet (matched line ± 1 line of context) for each hit. |
| `create_note` | Create a new note. Fails if the file already exists. Intermediate directories are created automatically. |
| `update_note` | Overwrite an existing note with new content. Fails if the file does not exist. |
## Security note
Keep `OBSIDIAN_VAULT_PATH` in the `env` block of your Claude Desktop config — never hard-code it in the source or commit it to version control. Add a `.env` file to `.gitignore` if you use one locally for development.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues