Skip to main content
Glama
aniketbiswas

Obsidian MCP Server

by aniketbiswas

๐Ÿ—ƒ๏ธ Obsidian MCP Server

npm version MIT License Node.js MCP

Connect AI assistants like Claude to your Obsidian vault via Model Context Protocol. 40+ tools for searching, creating, and managing your notesโ€”all 100% local.


What Can You Do?

You Say

What Happens

"Search my notes for machine learning"

Searches your entire vault

"Create a meeting note for tomorrow"

Creates a formatted meeting note

"What links to my Projects note?"

Shows all backlinks

"Add to my daily note: finished the API"

Appends to today's daily note

"Find orphan notes"

Lists unconnected notes


Related MCP server: Obsidian MCP Server

Quick Start

1. Install the Obsidian Plugin

  1. Obsidian โ†’ Settings โ†’ Community plugins โ†’ Browse

  2. Search "Local REST API" โ†’ Install โ†’ Enable

  3. Settings โ†’ Local REST API โ†’ Copy your API Key

2. Install the MCP Server

Option A: Install from npm (recommended)

npm install -g @aniketbiswas/obsidian-mcp-server

Option B: Install from source

git clone https://github.com/aniketbiswas/obsidian-mcp.git
cd obsidian-mcp
npm install && npm run build
npm link  # Makes it available globally

3. Configure Claude Desktop

Edit the config file:

OS

Config Path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/claude/claude_desktop_config.json

If installed via npm:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

Note: If the above doesn't work (common with nvm), use full paths:

{
  "command": "/usr/local/bin/node",
  "args": ["/usr/local/lib/node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js"]
}

Find your paths with: which node and npm root -g

If installed from source:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/FULL/PATH/TO/obsidian-mcp-server/build/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windows paths: Use C:\\Users\\Name\\... or C:/Users/Name/...

4. Restart Claude Desktop

Make sure Obsidian is running, then try: "Show me my vault status"


Available Tools

vault_status ยท list_files ยท list_all_files ยท get_vault_structure ยท get_file_stats ยท delete_file

read_note ยท create_note ยท update_note ยท append_to_note ยท prepend_to_note ยท insert_under_heading ยท replace_in_note ยท delete_note ยท copy_note

search_notes ยท simple_search ยท search_by_tag ยท search_in_folder ยท find_notes_by_name ยท get_recent_notes ยท search_with_context

get_frontmatter ยท update_frontmatter ยท set_frontmatter_property ยท get_tags ยท add_tags ยท remove_tags ยท add_aliases ยท get_all_tags_in_vault

open_note ยท get_active_note ยท append_to_active_note ยท get_commands ยท execute_command ยท quick_capture

get_daily_note ยท append_to_daily_note ยท get_periodic_note ยท append_to_periodic_note ยท daily_journal_entry ยท daily_standup

get_outgoing_links ยท get_backlinks ยท find_broken_links ยท find_orphan_notes ยท add_link_to_note ยท get_link_graph_data

create_note_from_template ยท create_meeting_note ยท create_project_note ยท list_templates

Built-in: meeting ยท project ยท book ยท article ยท person ยท recipe ยท decision


Configuration

Variable

Required

Default

Description

OBSIDIAN_API_KEY

โœ…

โ€”

From Local REST API plugin

OBSIDIAN_HOST

127.0.0.1

API host

OBSIDIAN_PORT

27124

API port

OBSIDIAN_SECURE

true

Use HTTPS

OBSIDIAN_VERIFY_SSL

false

Verify SSL certificate


Troubleshooting

This is usually a PATH issue. Claude Desktop doesn't inherit your shell's PATH (especially with nvm).

Solution: Use full absolute paths in your config:

  1. Find your node path: which node

  2. Find global modules: npm root -g

  3. Update config with full paths:

{
  "mcpServers": {
    "obsidian": {
      "command": "/Users/YOU/.nvm/versions/node/v22.x.x/bin/node",
      "args": ["/Users/YOU/.nvm/versions/node/v22.x.x/lib/node_modules/@aniketbiswas/obsidian-mcp-server/build/index.js"],
      "env": {
        "OBSIDIAN_API_KEY": "your-key"
      }
    }
  }
}

Check logs: ~/Library/Logs/Claude/mcp.log (macOS)

  • Validate JSON: cat config.json | python3 -m json.tool

  • Path must be absolute (starts with / or C:\)

  • Restart Claude Desktop completely (Cmd+Q / right-click quit)

  • Windows: ensure file is .json not .json.txt

  • Obsidian must be running with Local REST API enabled

  • Test API: curl -k https://127.0.0.1:27124/ -H "Authorization: Bearer YOUR_KEY"

  • Regenerate API key if needed

Use full path: "command": "C:\\Program Files\\nodejs\\node.exe"


Development

npm run build      # Compile TypeScript
npm run dev        # Watch mode
npm run inspector  # Test tools in browser UI

Adding Tools

Create/edit files in src/tools/, then rebuild:

server.tool("my_tool", "Description", { param: z.string() }, async ({ param }) => {
  return { content: [{ type: "text", text: "Result" }] };
});

FAQ

Is it free? Yes, the Local REST API plugin is free.

Are my notes sent to the cloud? No. Everything stays local. Only your conversation with Claude goes to Anthropic (like any Claude chat).

Works with Obsidian Sync? Yes, it accesses your local vault files.


Contributing

PRs welcome! Fork โ†’ create branch โ†’ commit โ†’ open PR.


License

MIT โ€” see LICENSE


Built with MCP SDK ยท Powered by Local REST API

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aniketbiswas/obsidian-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server