Obsidian MCP Server
A Model Context Protocol (MCP) server that enables AI assistants to interact with your Obsidian vault.
Features
1. Note Reading & Summarization
- Read any note in your vault
- Generate quick summaries of notes
- Extract metadata (tags, word count, dates)
2. Note Organization
- Move notes between folders
- Add tags to notes automatically
- Search notes by title, content, or tags
3. Daily "Most Valuable Notes"
- Automatically identifies your most important notes based on:
- Recent modifications (last 7 days)
- Note length and depth
- Tag organization
- Perfect for daily reviews and prioritization
Installation
1. Create Project Directory
mkdir obsidian-mcp-server
cd obsidian-mcp-server
2. Initialize Project
Copy the following files into your project:
src/index.ts(the main server code)package.jsontsconfig.json
3. Install Dependencies
npm install
4. Build the Server
npm run build
Configuration
Environment Variables
Set the path to your Obsidian vault:
macOS/Linux: ``bash export OBSIDIAN_VAULT_PATH="/path/to/your/obsidian/vault" ``
Windows (PowerShell): ``powershell $env:OBSIDIAN_VAULT_PATH="C:\path\to\your\obsidian\vault" ``
Windows (CMD): ``cmd set OBSIDIAN_VAULT_PATH=C:\path\to\your\obsidian\vault ``
Claude Desktop Configuration
Add this to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Roaming\Claude\claude_desktop_config.json
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/obsidian-mcp-server/build/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
}
}
}
}
Available Tools
1. read_note
Read the content of a specific note. ``json { "path": "folder/note-name.md" } ``
2. search_notes
Search for notes by title, content, or tags. ``json { "query": "machine learning", "searchInContent": true } ``
3. create_note
Create a new note in your vault. ``json { "path": "folder/new-note.md", "content": "# New Note\n\nContent here..." } ``
4. summarize_note
Generate a summary of a note. ``json { "path": "folder/long-note.md" } ``
5. organize_note
Move a note to a different folder. ``json { "path": "old-folder/note.md", "targetFolder": "new-folder" } ``
6. add_tags
Add tags to a note's frontmatter. ``json { "path": "folder/note.md", "tags": ["important", "project-x"] } ``
7. get_most_valuable_notes
Get your top 10 most valuable notes for today. ``json {} ``
Usage Examples
Once configured, you can ask Claude in the desktop app:
- "Show me my most valuable notes for today"
- "Search my vault for notes about Python"
- "Summarize my note called 'Project Ideas'"
- "Move my note 'Draft.md' to the 'Archive' folder"
- "Add tags 'urgent' and 'work' to my note 'Meeting Notes.md'"
- "Create a new note in 'Daily Notes' called 'Today.md' with today's date"
Development
Watch Mode
For development, run TypeScript in watch mode: ``bash npm run dev ``
Testing
Test the server directly: ``bash export OBSIDIAN_VAULT_PATH="/path/to/vault" npm start ``
Troubleshooting
Common Issues
"OBSIDIAN_VAULT_PATH environment variable not set"
- Make sure you've set the environment variable correctly
- Use absolute paths, not relative paths
- Check for typos in the path
"Permission denied" errors
- Ensure the build/index.js file is executable:
chmod +x build/index.js - Check that Node.js has read/write permissions to your vault
Claude Desktop doesn't see the server
- Restart Claude Desktop after editing the config file
- Check the config file syntax (valid JSON)
- Use absolute paths in the config file
- Check Claude Desktop logs for errors
Future Enhancements
Potential features to add:
- Link analysis and graph visualization
- Automated note templates
- Batch operations
- Daily note automation
- Integration with calendar and tasks
- AI-powered note suggestions












