# Obsidian MCP server

> Read, search and edit notes in an Obsidian vault through the Local REST API plugin.

- Listing: https://mcp.tc/i/obsidian
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: API key
- Category: [Productivity & Projects](https://mcp.tc/c/productivity)
- Vendor: Markus Pfundstein
- Repository: <https://github.com/MarkusPfundstein/mcp-obsidian>
- Package: pypi `mcp-obsidian`

## About

Connects an assistant to an Obsidian vault through the Obsidian Local REST API community plugin. It can list files and folders, read note contents, search across the vault, append or patch content in notes, and delete files.

Runs locally over stdio with uvx mcp-obsidian and needs Python 3.11 or newer. The Local REST API plugin must be installed and enabled in Obsidian, and the server needs the plugin's API key in OBSIDIAN\_API\_KEY. Host and port are optional and default to 127.0.0.1 and 27124.

## What it can do

- List files and directories in the vault
- Read the contents of a note
- Search for text across all vault files
- Append content to new or existing notes
- Insert content relative to a heading, block or frontmatter field
- Delete files or directories from the vault

## Example prompts

- "Get the contents of my last architecture call note and summarize it"
- "Search my vault for notes that mention Azure CosmosDB"
- "Summarize the last meeting notes into a new note called summary meeting.md"
- "Append a to-do list to my project plan note"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio obsidian --env "OBSIDIAN_API_KEY=<YOUR_OBSIDIAN_API_KEY>" -- uvx mcp-obsidian
```

2. Start Claude Code and type `/mcp`. **obsidian** should show as connected.

Add `--scope user` to make it available in every project. Replace the placeholders with your own values.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>"
      }
    }
  }
}
```

2. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=obsidian&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJtY3Atb2JzaWRpYW4iXSwiZW52Ijp7Ik9CU0lESUFOX0FQSV9LRVkiOiI8WU9VUl9PQlNJRElBTl9BUElfS0VZPiJ9fQ%3D%3D>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>"
      }
    }
  }
}
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the secret the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "obsidian": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${input:obsidian-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "obsidian-api-key",
      "description": "OBSIDIAN_API_KEY",
      "password": true
    }
  ]
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add obsidian --env "OBSIDIAN_API_KEY=<YOUR_OBSIDIAN_API_KEY>" -- uvx mcp-obsidian
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.obsidian]
command = "uvx"
args = ["mcp-obsidian"]
env = { OBSIDIAN_API_KEY = "<YOUR_OBSIDIAN_API_KEY>" }
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### Gemini CLI

```bash
gemini mcp add -e "OBSIDIAN_API_KEY=<YOUR_OBSIDIAN_API_KEY>" obsidian uvx mcp-obsidian
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer. Replace the placeholders with your own values.

## Details

- Server version: 0.2.3
- Last checked: 2026-10-03
- Listed: 2026-10-03
- Updated: 2026-10-03

---
Source: https://mcp.tc/i/obsidian (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
