Skip to main content
Glama
creschendo

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.