home / mcp / obsidian mcp server

Obsidian MCP Server

An Obsidian MCP for Agentic Coding Agents

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "kynlos-obsidian-mcp": {
      "command": "node",
      "args": [
        "/absolute/path/to/Obsidian-MCP/index.js"
      ]
    }
  }
}

Connect Obsidian MCP Server to Amp to automate note creation, linking, and management inside your Obsidian vault. This server lets Amp run locally to interact with Obsidian data, enabling AI-powered note creation, templates, metadata management, and advanced vault operations from your preferred MCP client.

How to use

You connect a client to the Obsidian MCP Server to perform AI-assisted note actions directly in your vault. Use the MCP client to issue tasks like creating structured notes, generating templates, managing frontmatter, querying vault data, and producing export bundles. You can build knowledge graphs, analyze connections between notes, and automate routine formatting or maintenance tasks. Start by configuring the server, then run commands from your MCP client to perform actions such as creating notes, adding content, or generating reports.

How to install

Prerequisites you need before installing: Node.js v18 or higher, Amp installed, Obsidian installed.

Step-by-step installation and setup flow you should follow exactly as written.

1. Clone the repository and navigate into it.

git clone https://github.com/Kynlos/Obsidian-MCP.git
cd Obsidian-MCP

2. Install dependencies.

npm install

3. Run the setup wizard to configure everything automatically.

npm run setup

The setup wizard will prompt you for your Obsidian vault path, create an .env configuration file, and configure Amp for your platform.

4. Restart Amp to pick up the new MCP configuration.

5. Test the server to ensure it is working.

npm test

Configuration

Configure Amp to load the Obsidian MCP Server. The setup instructions provide a ready-made stdio configuration that runs the server locally.

If you tailor the configuration manually, add a stdio MCP server that points to your local Obsidian MCP entry point.

The following example shows how Amp can start the Obsidian MCP Server as a local process using Node.

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/absolute/path/to/Obsidian-MCP/index.js"]
    }
  }
}

Testing and troubleshooting

Verify you can connect via the MCP client and that the server can access the Obsidian vault. Common checks include ensuring the vault path is correct, Amp can load the configuration, and Node.js is available.

If issues arise, restart Amp after changes and re-run tests to confirm environments are aligned.

Platform and support notes

The Obsidian MCP Server is designed to work with Windows, macOS, and Linux environments where Amp and Obsidian are installed. Use the setup wizard to configure platform-specific details automatically.

Available tools

create_canvas

Create new Obsidian Canvas boards by generating and saving canvas JSON structures.

add_card_to_canvas

Add text or media cards to an existing Obsidian Canvas board.

add_connection_to_canvas

Connect cards with lines or arrows to visualize relationships.

create_canvas_group

Group multiple canvas items for organized layout.

read_canvas

Parse and read the structure of a canvas board.

update_canvas_card

Modify properties of a canvas card.

execute_dataview_query

Run Dataview-like queries against vault content and metadata.

create_dataview_codeblock

Insert a formatted Dataview query block into a note.

validate_dataview_query

Check syntax and validity of a Dataview query.

generate_graph_data

Build a knowledge graph from vault links with nodes and edges.

find_note_clusters

Identify groups of related notes based on connections.

calculate_note_centrality

Compute centrality scores to find influential notes.

get_shortest_path

Find the shortest link path between two notes.

find_isolated_notes

Identify notes with few or no connections.

generate_obsidian_uri

Create obsidian:// URIs for deep linking to notes or workspaces.

create_workspace_uri

Generate a URI to open a specific workspace.

create_append_uri

Create a URI to append text to a specific note.

create_search_uri

Generate a URI to perform a vault-wide search.

list_attachments

List all media files stored in the vault.

attach_file

Copy external files into the vaultโ€™s attachments folder.

delete_attachment

Remove attachment files from the vault.

find_orphaned_attachments

Identify media files not referenced by notes.

get_attachment_references

Find which notes reference a given attachment.

regex_search_and_replace

Perform regex-based search and replace across notes.

search_in_frontmatter

Search within YAML frontmatter for specific fields or values.

search_by_link_type

Find notes by link style (wiki vs markdown) patterns.

multi_file_replace

Batch find/replace across multiple notes.

update_frontmatter_field

Edit a YAML frontmatter field without rewriting the whole note.

batch_update_metadata

Update a metadata property across multiple notes.

validate_frontmatter_schema

Check frontmatter against a schema for consistency.

list_all_properties

List all unique frontmatter properties used in the vault.

rename_property_globally

Rename a frontmatter property across all notes.

get_property_values

List all values for a given frontmatter property.

create_from_template_with_prompts

Create notes from templates with variable substitution.

create_book_note

Generate a structured book/literature note.

create_person_note

Generate a structured person/contact note.

create_meeting_note

Create meeting notes with agenda and actions.

create_project_note

Create a project planning note structure.

get_tasks_by_criteria

Filter tasks by status, due date, priority, and tags.

move_task_between_notes

Relocate a task from one note to another.

add_task_metadata

Attach due dates, priorities, and tags to a task.

create_task_report

Generate a summary report of tasks.

find_blocked_tasks

Identify tasks waiting on dependencies.

convert_to_callout

Wrap selected text in an Obsidian callout block.

create_markdown_table

Programmatically generate a Markdown table.

add_table_of_contents

Generate a TOC based on document headings.

create_mermaid_diagram

Create Mermaid diagrams from data relationships.

create_math_block

Insert LaTeX math blocks into notes.

standardize_formatting

Normalize Markdown formatting across notes.

find_duplicate_notes

Detect similar or duplicate content across notes.

find_empty_notes

Identify notes with no content.

find_large_notes

Find notes exceeding a size threshold.

analyze_vault_health

Provide overall vault statistics and health insights.

cleanup_broken_references

Fix or remove broken links across notes.

compare_notes

Show diffs between two notes to track changes.

find_similar_notes

Analyze content similarity to suggest consolidations.

track_note_changes

Compare note versions over time to capture edits.

merge_notes_enhanced

Smart merge of notes with conflict resolution options.

split_note_by_headings

Split a large note into smaller notes based on headings.

save_code_snippet

Save code snippets with syntax highlighting and metadata.

save_thread_summary

Store AI conversation summaries with key insights.

save_knowledge_note

Create general knowledge notes with tags for quick retrieval.

create_daily_note

Create daily entries with optional templates.

read_note

Read the full content of a note.

update_note

Update note content while preserving metadata.

delete_note

Delete a note from the vault.

append_to_note

Append content to an existing note.

rename_note

Rename a note file.