Skip to main content
Glama
bbdaniels

obsidian-mcp

by bbdaniels
README.md
# Obsidian MCP

An [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) server that gives Claude Code read/write access to your Obsidian vault.

**[Documentation](https://www.benjaminbdaniels.com/obsidian-mcp/)** | **[PyPI](https://pypi.org/project/obsidian-mcp/)** | **[GitHub](https://github.com/bbdaniels/obsidian-mcp)**

## Quick Start with Claude Code

The fastest way to get up and running:

```bash
claude mcp add obsidian -- uvx obsidian-mcp
```

Then restart Claude Code and tell it:

> "Configure obsidian vault at /path/to/your/vault"

That's it -- Claude can now read, write, and search your Obsidian notes.

## Features

- **Read & write notes** - Create, edit, and append to markdown files
- **Search** - Full-text search across your vault
- **Daily notes** - Read or append to daily notes with configurable date format
- **Browse** - List files and folders in your vault
- **Secure** - Only accesses your configured vault directory

## Installation

### Via uvx (recommended -- no install needed)

If you set up via the Quick Start above, you don't need to install anything. `uvx` runs the package directly from PyPI in an isolated environment each time.

### Via pipx (persistent install)

```bash
pipx install obsidian-mcp
```

Then configure Claude Code:

```bash
claude mcp add obsidian -- obsidian-mcp
```

### Via pip

```bash
pip install obsidian-mcp
```

Then configure Claude Code:

```bash
claude mcp add obsidian -- python3 -m obsidian_mcp.server
```

### From source

```bash
git clone https://github.com/bbdaniels/obsidian-mcp.git
cd obsidian-mcp
pip install -e .
```

Then configure Claude Code:

```bash
claude mcp add obsidian -- obsidian-mcp
```

## First-Time Setup

Once configured, tell Claude:

> "Configure obsidian vault at /path/to/your/vault"

Claude will run `obsidian_configure` to set up the vault path. Your configuration is stored at `~/.config/obsidian-mcp/config.json`.

## Available Tools

| Tool | Description |
|------|-------------|
| `obsidian_configure` | Set vault path and daily notes settings |
| `obsidian_status` | Show current configuration and vault stats |
| `obsidian_read` | Read a note's contents |
| `obsidian_write` | Create or overwrite a note |
| `obsidian_append` | Append to a note (optionally under a heading) |
| `obsidian_search` | Search notes by content |
| `obsidian_list` | Browse vault structure |
| `obsidian_daily` | Read/append to daily notes |

## Built-in Prompts

The server includes MCP prompts that provide structured workflows for common note-taking patterns. These show up as invocable prompts in Claude Code.

| Prompt | Description |
|--------|-------------|
| `session-start` | Review daily notes and project context before starting work |
| `session-end` | Document accomplishments, decisions, and open questions at end of session |
| `project-checkin` | Review and update a specific project's documentation |

Each prompt accepts an optional `project` argument to focus on a specific project folder.

## Automatic Instructions

When this server is connected, Claude automatically receives guidance about when and how to use the Obsidian tools -- no `CLAUDE.md` configuration needed. The built-in instructions tell Claude to:

- Check for project context at the start of sessions
- Document decisions as they're made (not just at the end)
- Update daily notes with session summaries
- Search for existing notes before creating new ones

## Example Usage

Once configured, you can ask Claude things like:

- "Search my notes for authentication patterns"
- "Read my project architecture note"
- "Append today's session summary to my daily note"
- "Create a new note at Projects/my-project/decisions.md"
- "List all notes in my Work folder"

## Configuration

Config is stored at `~/.config/obsidian-mcp/config.json`:

```json
{
  "vault_path": "/path/to/your/vault",
  "daily_notes_folder": "Daily Notes",
  "daily_notes_format": "%Y-%m-%d"
}
```

### Options

| Option | Default | Description |
|--------|---------|-------------|
| `vault_path` | (required) | Absolute path to your Obsidian vault |
| `daily_notes_folder` | `Daily Notes` | Folder for daily notes |
| `daily_notes_format` | `%Y-%m-%d` | Date format for daily note filenames |

## Customizing Claude Instructions (Optional)

The server includes built-in instructions that guide Claude's note-taking behavior automatically. For additional customization, you can add to `~/.claude/CLAUDE.md`:

```markdown
## Obsidian Note-Taking

### Project Notes
- Vault uses project folders (e.g., MyProject/) with notes like Technical Notes.md, Overview.md
- Always update BOTH daily notes AND project-specific notes
- Include commit hashes and file references in technical notes
```

## License

MIT

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: append vs write, daily for daily notes, list for browsing, read for viewing, search for finding, configure/status for setup. No overlapping functionality.

Naming Consistency5/5

All tools follow the 'obsidian_<verb>' pattern in snake_case, creating a predictable and uniform naming scheme. Even 'daily' fits as a verb-like noun.

Tool Count5/5

With 8 tools, the set covers all essential note-taking operations (CRUD, search, daily notes, configuration) without excess or deficiency.

Completeness4/5

The tool set covers create, read, update (append), search, list, and configuration. However, it lacks a delete or trash operation, which is a minor gap for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues