Obsidian

by gregkonush

2 stars
Not rated
GitHub

About

Lightweight server for reading, modifying, searching, and navigating Obsidian notes through the Obsidian Local REST API, enabling granular content manipulation across Markdown files.

Details

Author
gregkonush
Repository
gregkonush/mcp-obsidian
GitHub stars
2
License
MIT License
Categories
Developer Tools, Design, File Management, AI, Search, API, Infrastructure

- 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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Obsidian
    Command (node, npx, python, etc.) bun
    Arguments
    • Argument 1 run
    • Argument 2 src/index.ts
    Environment
    • DEBUG false
    • OBSIDIAN_TOKEN your_token_here
    • OBSIDIAN_BASE_URL http://localhost:27123

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Start the MCP server:

bun run src/index.ts

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

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

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

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "obsidian": {
            "env": {
                "DEBUG": "false",
                "OBSIDIAN_TOKEN": "your_token_here",
                "OBSIDIAN_BASE_URL": "http://localhost:27123"
            },
            "args": [
                "run",
                "src/index.ts"
            ],
            "command": "bun"
        }
    }
}

Linux

{
    "env": {
        "DEBUG": "false",
        "OBSIDIAN_TOKEN": "your_token_here",
        "OBSIDIAN_BASE_URL": "http://localhost:27123"
    },
    "args": [
        "run",
        "src/index.ts"
    ],
    "command": "bun"
}

Macos

{
    "env": {
        "DEBUG": "false",
        "OBSIDIAN_TOKEN": "your_token_here",
        "OBSIDIAN_BASE_URL": "http://localhost:27123"
    },
    "args": [
        "run",
        "src/index.ts"
    ],
    "command": "bun"
}

Windows

{
    "env": {
        "DEBUG": "false",
        "OBSIDIAN_TOKEN": "your_token_here",
        "OBSIDIAN_BASE_URL": "http://localhost:27123"
    },
    "args": [
        "run",
        "src/index.ts"
    ],
    "command": "bun"
}

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.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.