🎉 Initial release of Obsidian MCP Server plugin
Core Features:
- MCP server implementation with HTTP transport
- JSON-RPC 2.0 message handling
- Protocol version 2024-11-05 support
MCP Tools:
- read_note, create_note, update_note, delete_note
- search_notes, list_notes, get_vault_info
Server Features:
- Configurable HTTP server (default port: 3000)
- Health check and MCP endpoints
- Auto-start option
Security:
- Origin header validation (DNS rebinding protection)
- Optional Bearer token authentication
- CORS configuration
UI:
- Settings panel with full configuration
- Status bar indicator and ribbon icon
- Start/Stop/Restart commands
Documentation:
- Comprehensive README with examples
- Quick Start Guide and Implementation Summary
- Test client script
4.4 KiB
4.4 KiB
Quick Start Guide
🚀 Getting Started
1. Enable the Plugin
- Open Obsidian
- Go to Settings → Community Plugins
- Find MCP Server in the list
- Toggle it ON
2. Start the Server
Option A: Via Ribbon Icon
- Click the server icon (📡) in the left sidebar
Option B: Via Command Palette
- Press
Ctrl/Cmd + P - Type "Start MCP Server"
- Press Enter
Option C: Auto-start
- Go to Settings → MCP Server
- Enable "Auto-start server"
- Server will start automatically when Obsidian launches
3. Verify Server is Running
Check the status bar at the bottom of Obsidian:
- Running:
MCP: Running (3000) - Stopped:
MCP: Stopped
Or visit: http://127.0.0.1:3000/health
4. Test the Connection
Run the test client:
node test-client.js
Expected output:
🧪 Testing Obsidian MCP Server
Server: http://127.0.0.1:3000/mcp
API Key: None
1️⃣ Testing initialize...
✅ Initialize successful
Server: obsidian-mcp-server 1.0.0
Protocol: 2024-11-05
2️⃣ Testing tools/list...
✅ Tools list successful
Found 7 tools:
- read_note: Read the content of a note from the Obsidian vault
- create_note: Create a new note in the Obsidian vault
...
🎉 All tests passed!
🔧 Configuration
Basic Settings
Go to Settings → MCP Server:
| Setting | Default | Description |
|---|---|---|
| Port | 3000 | HTTP server port |
| Auto-start | Off | Start server on Obsidian launch |
| Enable CORS | On | Allow cross-origin requests |
| Allowed Origins | * | Comma-separated list of allowed origins |
Security Settings
| Setting | Default | Description |
|---|---|---|
| Enable Authentication | Off | Require API key for requests |
| API Key | (empty) | Bearer token for authentication |
🔌 Connect an MCP Client
Claude Desktop
Edit your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"obsidian": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}
Restart Claude Desktop.
Other MCP Clients
Use the endpoint: http://127.0.0.1:3000/mcp
📝 Available Tools
Once connected, you can use these tools:
- read_note - Read note content
- create_note - Create a new note
- update_note - Update existing note
- delete_note - Delete a note
- search_notes - Search vault by query
- list_notes - List all notes or notes in a folder
- get_vault_info - Get vault metadata
🔒 Using Authentication
- Enable authentication in settings
- Set an API key (e.g.,
my-secret-key-123) - Include in requests:
curl -X POST http://127.0.0.1:3000/mcp \
-H "Authorization: Bearer my-secret-key-123" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Or in Claude Desktop config:
{
"mcpServers": {
"obsidian": {
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"Authorization": "Bearer my-secret-key-123"
}
}
}
}
❓ Troubleshooting
Server won't start
Error: Port already in use
- Change the port in settings
- Or stop the process using port 3000
Error: Cannot find module
- Run
npm installin the plugin directory - Rebuild with
npm run build
Cannot connect from client
Check server is running
- Look at status bar: should show "MCP: Running (3000)"
- Visit http://127.0.0.1:3000/health
Check firewall
- Ensure localhost connections are allowed
- Server only binds to 127.0.0.1 (localhost)
Check authentication
- If enabled, ensure API key is correct
- Check Authorization header format
Tools not working
Path errors
- Use relative paths from vault root
- Example:
folder/note.mdnot/full/path/to/note.md
Permission errors
- Ensure Obsidian has file system access
- Check vault is not read-only
🎯 Next Steps
- Read the full README.md for detailed documentation
- Explore the MCP Protocol Documentation
- Check example requests in the README
- Customize settings for your workflow
💡 Tips
- Use the ribbon icon for quick server toggle
- Enable auto-start for seamless integration
- Use authentication for additional security
- Monitor the status bar for server state
- Check Obsidian console (Ctrl+Shift+I) for detailed logs