First, make sure your server is built:
cd ~/Projects/obsidian-mcp
npm install
npm run buildThis creates the compiled server in dist/index.js.
Create obsidian-mcp.json in the project root:
{
"vaults": [
{
"name": "documents",
"type": "local",
"path": "~/Documents"
}
]
}Important: Use the ABSOLUTE path to your vault folder!
Claude Desktop's config location depends on your OS:
- Linux:
~/.config/Claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
For you on Linux, edit:
nano ~/.config/Claude/claude_desktop_config.jsonOr create it if it doesn't exist:
mkdir -p ~/.config/ClaudeEdit ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": [
"~/Projects/obsidian-mcp/dist/index.js"
]
}
}
}Key Points:
- Use ABSOLUTE paths (not
~/or$HOME) - The config file is in your home directory, NOT in the project
- The server will read
obsidian-mcp.jsonfrom its own directory
If you prefer environment variables over the config file:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": [
"~/Projects/obsidian-mcp/dist/index.js"
],
"env": {
"OBSIDIAN_VAULT_PATH": "~/Documents",
"OBSIDIAN_VAULT_NAME": "documents"
}
}
}
}After editing the config:
- Quit Claude Desktop completely (not just close the window)
- On Linux:
pkill -9 claudeor use your system tray to quit
- On Linux:
- Restart Claude Desktop
- The MCP server will auto-start when Claude launches
In Claude Desktop, you should see:
- MCP icon/indicator showing the server is connected
- Available tools - Claude will mention it has access to Obsidian tools
- Try asking: "What vaults do you have access to?"
Try these prompts:
"Search my Obsidian vault for notes about projects"
"Show me vault statistics"
"List all tags in my vault"
"Create a new note called 'Test.md' with the content 'Hello World'"
Check the logs:
# Linux
tail -f ~/.config/Claude/logs/mcp*.log
# Or check Claude's developer console
# Menu: View > Toggle Developer Tools > Console tabCommon issues:
- ❌ Used relative paths instead of absolute paths
- ❌
dist/index.jsdoesn't exist (runnpm run build) - ❌
obsidian-mcp.jsonis missing or has wrong vault path - ❌ Didn't restart Claude Desktop after config change
Check:
- Vault path is correct and absolute
- Path exists:
ls -la ~/Documents - You have read permissions:
ls -la ~/Documents/*.md
View server logs: The server logs go to stderr, which Claude Desktop captures. Check the developer console.
Make sure you have Node.js 18+ installed:
node --version # Should be v18.0.0 or higherIf using nvm:
nvm use 22
which node # Get the full pathThen use the full node path in your config:
{
"mcpServers": {
"obsidian": {
"command": "~/.nvm/versions/node/v22.x.x/bin/node",
"args": ["~/Projects/obsidian-mcp/dist/index.js"]
}
}
}{
"vaults": [
{
"name": "documents",
"type": "local",
"path": "~/Documents"
}
],
"server": {
"name": "obsidian-mcp-server",
"version": "1.0.0"
}
}{
"mcpServers": {
"obsidian": {
"command": "node",
"args": [
"~/Projects/obsidian-mcp/dist/index.js"
]
}
}
}If you have multiple Obsidian vaults:
{
"vaults": [
{
"name": "personal",
"type": "local",
"path": "~/Documents/PersonalVault"
},
{
"name": "work",
"type": "local",
"path": "~/Documents/WorkVault"
}
]
}Then in Claude, you can specify which vault:
"Search the 'work' vault for project notes"
"Create a note in the 'personal' vault"
Once connected, Claude will have access to these capabilities:
- Read, create, update, delete notes
- Search by content, tags, folders
- Parse markdown and frontmatter
- Analyze relationships between notes
- Find related notes
- Suggest potential links
- Identify orphan notes
- Vault statistics
- Tag usage analysis
- Link density
- Read and create canvas files
- Add nodes and edges
- Visualize connections
- Create daily/weekly/monthly/yearly notes
- Template support
- SQL-like querying
- Filter by metadata
- Group and sort results
If you want to install globally:
cd ~/Projects/obsidian-mcp
npm install -g .Then in Claude config:
{
"mcpServers": {
"obsidian": {
"command": "obsidian-mcp"
}
}
}- Check Claude Desktop developer console for errors
- Verify
dist/index.jsexists and is executable - Test the server manually:
node dist/index.js(it should wait for input) - Check file permissions on your vault folder
- Make sure all paths are absolute, not relative