Obsidian Tools MCP Server

Obsidian Tools MCP Server

Enables comprehensive management of Obsidian vaults with full CRUD operations, advanced search, link/tag extraction, backlinks discovery, frontmatter editing, and template-based note creation through natural language.

Category
Visit Server

README

Obsidian Tools MCP Server

An extended MCP (Model Context Protocol) server for Obsidian with full CRUD operations and advanced note management capabilities.

Features

Core Operations

  • create_note - Create new notes with nested folder support
  • delete_note - Delete notes from your vault
  • update_note - Replace entire note content
  • append_to_note - Append content to end of notes
  • prepend_to_note - Prepend content (respects frontmatter)
  • rename_note - Move/rename notes

Search & Discovery

  • read_note - Read single note content
  • search_notes - Search by filename (supports regex)
  • search_content - Full-text search in note contents
  • list_folder - List notes and subfolders

Links & Tags

  • get_tags - Extract all tags from a note
  • get_links - Get all wikilinks and markdown links
  • get_backlinks - Find notes linking to a specific note

Advanced Operations

  • insert_at_heading - Insert content under a specific heading
  • update_frontmatter - Modify YAML frontmatter properties
  • create_from_template - Create notes from templates with variable substitution

Installation

Prerequisites

  • Node.js 18+
  • An Obsidian vault

Setup

# Clone the repository
git clone https://github.com/yourusername/obsidian-tools-mcp.git
cd obsidian-tools-mcp

# Install dependencies
npm install

# Build the project
npm run build

Configuration

For VS Code / GitHub Copilot

Add to your VS Code settings (settings.json):

{
  "mcp": {
    "servers": {
      "obsidian-tools": {
        "command": "node",
        "args": ["/path/to/obsidian-tools-mcp/dist/index.js"],
        "env": {
          "OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
        }
      }
    }
  }
}

For Claude Desktop

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

{
  "mcpServers": {
    "obsidian-tools": {
      "command": "node",
      "args": ["/path/to/obsidian-tools-mcp/dist/index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

Environment Variables

Variable Description Required
OBSIDIAN_VAULT_PATH Absolute path to your Obsidian vault Yes

You can also pass the vault path as a command-line argument:

node dist/index.js /path/to/your/vault

Usage Examples

Create a New Note

Create a note at "Projects/My Project.md" with content about project planning

Search and Update

Find all notes containing "TODO" and append a completion timestamp

Template-Based Creation

Create a new meeting note from the template at "Templates/Meeting.md" 
with title "Q4 Planning Session"

Frontmatter Management

Update the frontmatter of "My Note.md" to add tags: ["project", "important"]

Tool Reference

create_note

Create a new note in the vault.

Parameter Type Required Description
path string Yes Path relative to vault root
content string Yes Markdown content
overwrite boolean No Overwrite if exists (default: false)

delete_note

Delete a note from the vault.

Parameter Type Required Description
path string Yes Path to the note

update_note

Replace the entire content of a note.

Parameter Type Required Description
path string Yes Path to the note
content string Yes New content

append_to_note

Append content to the end of a note.

Parameter Type Required Description
path string Yes Path to the note
content string Yes Content to append
separator string No Separator before content (default: "\n\n")

prepend_to_note

Prepend content to a note (after frontmatter if present).

Parameter Type Required Description
path string Yes Path to the note
content string Yes Content to prepend
separator string No Separator after content (default: "\n\n")

rename_note

Move or rename a note.

Parameter Type Required Description
oldPath string Yes Current path
newPath string Yes New path

search_notes

Search notes by filename pattern.

Parameter Type Required Description
query string Yes Search pattern (regex supported)
limit number No Max results (default: 20)

search_content

Search for text within note contents.

Parameter Type Required Description
query string Yes Text to search for
caseSensitive boolean No Case sensitivity (default: false)
limit number No Max results (default: 20)

get_tags

Get all tags from a note.

Parameter Type Required Description
path string Yes Path to the note

get_links

Get all internal links from a note.

Parameter Type Required Description
path string Yes Path to the note

get_backlinks

Find all notes linking to a specific note.

Parameter Type Required Description
path string Yes Path to the note

insert_at_heading

Insert content under a specific heading.

Parameter Type Required Description
path string Yes Path to the note
heading string Yes Heading text to find
content string Yes Content to insert
position "start" | "end" No Where to insert (default: "end")

update_frontmatter

Update YAML frontmatter properties.

Parameter Type Required Description
path string Yes Path to the note
properties object Yes Key-value pairs (use null to delete)

create_from_template

Create a note from a template.

Parameter Type Required Description
templatePath string Yes Path to template note
newPath string Yes Path for new note
variables object No Template variable substitutions

Built-in template variables:

  • {{date}} - Current date (YYYY-MM-DD)
  • {{time}} - Current time (HH:MM:SS)
  • {{datetime}} - ISO datetime

Development

# Watch mode for development
npm run dev

# Build
npm run build

# Run directly
npm start

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured