obsidian-mcp

obsidian-mcp

2

Obsidian MCP is a tool designed to facilitate interaction with Obsidian vaults using the Model Context Protocol. It enables seamless integration allowing AI assistants to read, write, and manipulate Obsidian notes efficiently.

Obsidian MCP (Model Context Protocol)

Obsidian MCP is a tool that allows you to interact with your Obsidian vault using the Model Context Protocol. This enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.

Prerequisites

  • Node.js 18 or higher
  • Obsidian with Local REST API plugin installed and configured
  • API key generated from the Local REST API plugin

Setting MCP Server (e.g. Claude Desktop App)

  1. Clone this repository

  2. Install dependencies:

    npm install
    
  3. Build the project:

    npm run build
    
  4. Configure Claude Desktop App to use this MCP server:

    {
       "mcpServers": {
         "Obsidian": {
           "command": "node",
           "args": ["/Users/<Your Own Path>/obsisian-mcp/build/index.js"],
           "env": {
             "apiKey": "<Your API Token>",
             "port": "27123",
             "host": "127.0.0.1"
           }
         }
       }
     }
    

Development

Create .env and configure "apiKey", "port", and "host" as mentioned above.

Available Tools

The following tools are implemented:

  1. readNote - Read the contents of a specific note

    {
      "path": "path/to/note.md"
    }
    
  2. readActiveNote - Read the contents of the current active note

    {}
    
  3. listNotes - Recursively lists files and folders in the entire Vault or under a specified folder

    {
      "path": "optional/folder/path"
    }
    
  4. patchNote - Inserts content into an existing note relative to a heading, block reference, or frontmatter field

    {
      "path": "path/to/note.md",
      "operation": "append|prepend|replace",
      "targetType": "heading|block|frontmatter",
      "target": "target_identifier",
      "content": "content to insert"
    }
    
  5. searchWithJsonLogic - Search Obsidian notes using JsonLogic format queries

    {
      "query": {
        // JsonLogic query object
      }
    }