Skip to main content
Glama
ObsidianMCP
by rcgeorge

ObsidianMCP

An MCP (Model Context Protocol) server that connects Claude to your Obsidian vault via the Obsidian Local REST API plugin.

Prerequisites

  1. Obsidian with the Local REST API community plugin installed and enabled

  2. An API key from the plugin settings (Settings → Local REST API → API Key)

  3. Node.js 18+

Related MCP server: obsidian-mcp-server

Setup

npm install
npm run build

Configuration

Set the following environment variables:

Variable

Required

Default

Description

OBSIDIAN_API_KEY

Yes

—

API key from the Local REST API plugin

OBSIDIAN_HOST

No

127.0.0.1

Host where Obsidian is running

OBSIDIAN_PORT

No

27124

Port for the REST API

OBSIDIAN_PROTOCOL

No

https

http or https

OBSIDIAN_VERIFY_SSL

No

true

Set to false for self-signed certs

OBSIDIAN_SMART_ENV_PATH

No

—

Path to .smart-env/ folder for semantic search (requires Smart Connections plugin)

Usage with Claude Code

Add to your Claude Code MCP settings (~/.claude/settings.json):

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/path/to/ObsidianMCP/dist/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-here",
        "OBSIDIAN_VERIFY_SSL": "false",
        "OBSIDIAN_SMART_ENV_PATH": "/path/to/your/vault/.smart-env"
      }
    }
  }
}

Usage with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/path/to/ObsidianMCP/dist/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-here",
        "OBSIDIAN_VERIFY_SSL": "false",
        "OBSIDIAN_SMART_ENV_PATH": "/path/to/your/vault/.smart-env"
      }
    }
  }
}

Available Tools

File Operations

  • list_vault_files — List files/folders in the vault

  • read_note — Read a note's content

  • create_note — Create or overwrite a note

  • append_to_note — Append content to a note

  • patch_note — Insert/replace content under a specific heading

  • delete_note — Delete a note

  • open_note — Open a note in the Obsidian UI

  • upload_attachment — Upload an image/PDF/audio/video file to the vault, then embed with ![[filename]]

Active Note

  • get_active_note — Read the currently open note

  • update_active_note — Overwrite the currently open note

  • append_to_active_note — Append content to the currently open note

  • patch_active_note — Insert/replace content under a heading in the active note

  • delete_active_note — Delete the currently open note

  • search_vault — Full-text fuzzy search across the vault

  • search_dataview — Run a Dataview DQL query (requires Dataview plugin)

  • search_jsonlogic — Run a JsonLogic structured query

Periodic Notes

  • get_periodic_note — Read a daily/weekly/monthly/quarterly/yearly note

  • create_periodic_note — Create or overwrite a periodic note

  • append_to_periodic_note — Append to a periodic note

Commands

  • list_commands — List available Obsidian commands

  • execute_command — Execute an Obsidian command by ID

Semantic Search (Smart Connections)

  • semantic_search — AI-powered semantic search across the vault (finds conceptually related content)

  • find_related_notes — Find notes semantically related to a given note

  • smart_connections_status — Index stats: sources, blocks, model, dimensions

Requires the Smart Connections plugin and OBSIDIAN_SMART_ENV_PATH env var. The first semantic_search call downloads the embedding model (~30MB, cached afterwards).

Server

  • get_server_status — Check REST API status and version info

Available Tools

22 tools
append_to_active_noteC

Append content to the currently active/open note in Obsidian.

Inputs: content (required).

append_to_noteB

Append content to the end of an existing note. Use ![[filename.png]] to embed attachments.

Inputs: path (required), content (required).

append_to_periodic_noteB

Append content to a periodic note (e.g. add an entry to today's daily note).

Inputs: period (required), content (required).

create_noteB

Create a new note or overwrite an existing one in the vault. Embed attachments using ![[filename.png]] syntax.

Inputs: path (required), content (required).

create_periodic_noteB

Create or overwrite a periodic note (daily, weekly, monthly, quarterly, or yearly).

Inputs: period (required), content (required).

delete_active_noteA

Delete the currently active/open note in Obsidian.

Inputs: no named parameters.

delete_noteC

Delete a note from the vault.

Inputs: path (required).

execute_commandA

Execute an Obsidian command by its ID. Use list_commands to find available command IDs.

Inputs: commandId (required).

get_active_noteA

Read the content of the currently active/open note in Obsidian.

Inputs: no named parameters.

get_periodic_noteB

Get the content of a periodic note (daily, weekly, monthly, quarterly, or yearly).

Inputs: period (required).

get_server_statusA

Check the status of the Obsidian Local REST API server and get version info.

Inputs: no named parameters.

list_commandsB

List all available Obsidian commands that can be executed.

Inputs: no named parameters.

list_vault_filesA

List files and directories in the Obsidian vault. Provide a folder path to list its contents, or omit to list the root.

Inputs: path.

open_noteC

Open a note in the Obsidian UI.

Inputs: path (required).

patch_active_noteC

Insert or replace content relative to a heading in the currently active note.

Inputs: content (required), heading, insertPosition, headingBoundary.

patch_noteB

Insert or replace content relative to a heading in a note. Useful for updating specific sections.

Inputs: path (required), content (required), heading, insertPosition, +1 more.

read_noteB

Read the markdown content of a note in the vault.

Inputs: path (required).

search_dataviewB

Run a Dataview DQL query against the vault. Requires the Dataview plugin to be installed in Obsidian. Example: 'TABLE file.mtime AS "Modified" FROM "Notes" SORT file.mtime DESC'

Inputs: dql (required).

search_jsonlogicB

Run a JsonLogic query against the vault for structured/programmatic searches. Useful for filtering notes by metadata fields.

Inputs: query (required).

search_vaultB

Search for notes in the vault using full-text fuzzy search. Returns matching filenames and context.

Inputs: query (required), limit.

update_active_noteB

Overwrite the content of the currently active/open note in Obsidian.

Inputs: content (required).

upload_attachmentA

Upload an attachment (image, PDF, audio, video) to the vault from a local file path. After uploading, embed it in a note using ![[filename]] syntax.

Inputs: localPath (required), vaultPath (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 22 tools

    Disambiguation3/5

    The tool set includes many similarly purposed tools, such as append_to_note vs. append_to_active_note and patch_note vs. patch_active_note, which could confuse an agent about which to use. However, the distinction between note-specific operations and active-note operations is clearly described, mitigating some ambiguity.

    Naming Consistency4/5

    Most tools follow a consistent verb_noun pattern (e.g., get_active_note, append_to_note). A few tools like execute_command and search_dataview deviate slightly, but overall the naming is predictable and readable.

    Tool Count3/5

    With 22 tools, the set is on the heavy side for an Obsidian MCP server. While many tools are justified, the presence of both generic and active-note variants for note operations inflates the count unnecessarily.

    Completeness4/5

    The tool set covers a wide range of operations including note creation, reading, updating, deletion, search, and periodic notes, which is fairly complete for Obsidian workflows. However, some operations like moving or renaming notes are missing, which could cause workarounds.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables LLMs to interact with Obsidian vaults via the Local REST API plugin for comprehensive note management, file operations, and vault navigation. It supports creating and editing notes, executing Obsidian commands, and performing advanced searches using Dataview queries.
      38 npm
      52
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables Claude Desktop to interact with an Obsidian vault through the Local REST API, allowing file listing, reading, searching, creating, and updating markdown notes.
      7,721 npm
      Apache 2.0
    • F
      license
      A
      quality
      D
      maintenance
      Enables Claude to create, read, update, and search notes in a local Obsidian vault, with automatic YAML frontmatter and folder management.
      7
      1
      -
    • A
      license
      A
      quality
      B
      maintenance
      Enables Claude clients to interact with an Obsidian vault as a knowledge graph, supporting full-text search, backlink traversal, neighborhood exploration, and note creation/append.
      41
      86 npm
      16
      MIT