Obsidian

Integrates with
Obsidian

MCP Obsidian

A server implementation of the Model Context Protocol (MCP) for integrating with Obsidian. This allows AI assistants to read, create, and manipulate notes in your Obsidian vault.

Features

  • Read the active file in Obsidian
  • Delete the active file
  • Insert content at specific positions (headings, block references, frontmatter)
  • Append content to files
  • Open specific files
  • List files in your vault
  • Search through your notes

Prerequisites

  • Bun runtime
  • Obsidian desktop application
  • An MCP-compatible AI assistant

Add to cursor

Place your secret in .env file

Choose command MCP and then enter this command

bun __REPO_PATH__/src/index.ts

Installation

  1. Clone this repository:

    git clone https://github.com/gregkonush/mcp-obsidian.git
    cd mcp-obsidian
    
  2. Install dependencies:

    bun install
    
  3. Copy the example environment file and configure it:

    cp .env.example .env
    

Configuration

Edit the .env file with your specific configurations:

OBSIDIAN_BASE_URL=http://localhost:27123
OBSIDIAN_TOKEN=your_token_here
DEBUG=false

Usage

Start the MCP server:

bun run src/index.ts

The server will start and communicate with MCP-compatible AI assistants via standard I/O.

Available Tools

This implementation provides the following tools to AI assistants:

  • get_active_file - Returns the content of the currently active file
  • delete_active_file - Deletes the currently active file
  • insert_active_file - Modifies content relative to a heading, block reference, or frontmatter field
  • append_active_file - Appends content to the end of the active file
  • open_file - Opens a specific file in Obsidian
  • search_simple - Searches for documents matching a text query
  • list_files - Lists files in the root directory of your vault
  • list_directory_files - Lists files in a specific directory of your vault

Development

Project Structure

mcp-obsidian/
├── src/
│   ├── index.ts            # Main server implementation
│   └── tools/              # Individual tool implementations
│       ├── get-active-file.ts
│       ├── delete-active-file.ts
│       └── ...
├── .env                    # Environment configuration
├── package.json            # Project dependencies
└── tsconfig.json           # TypeScript configuration

Adding New Tools

To add a new tool:

  1. Create a new file in the src/tools/ directory
  2. Implement the tool using the MCP SDK
  3. Import and register the tool in src/index.ts

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.