🎉 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
1.3 KiB
1.3 KiB
trigger, description
| trigger | description |
|---|---|
| always_on | TypeScript coding conventions and best practices |
Coding Conventions
TypeScript Standards
- Use TypeScript with
"strict": truepreferred - Bundle everything into
main.js(no unbundled runtime deps) - Prefer
async/awaitover promise chains - Handle errors gracefully
Code Organization
- Keep
main.tsminimal - Focus only on plugin lifecycle (onload, onunload, addCommand calls) - Delegate all feature logic to separate modules
- Split large files - If any file exceeds ~200-300 lines, break it into smaller, focused modules
- Use clear module boundaries - Each file should have a single, well-defined responsibility
Platform Compatibility
- Avoid Node/Electron APIs if you want mobile compatibility
- Set
isDesktopOnlyaccordingly if using desktop-only features - Test on iOS and Android where feasible
- Don't assume desktop-only behavior unless
isDesktopOnlyistrue
Performance
- Keep startup light - defer heavy work until needed
- Avoid long-running tasks during
onload- use lazy initialization - Batch disk access and avoid excessive vault scans
- Debounce/throttle expensive operations in response to file system events
- Avoid large in-memory structures on mobile - be mindful of memory and storage constraints