Files
obsidian-mcp-server/.windsurf/rules/coding-conventions.md
Bill 08cc6e9ea6 Release v1.0.0 - Initial Release
🎉 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
2025-10-16 20:52:52 -04:00

1.3 KiB

trigger, description
trigger description
always_on TypeScript coding conventions and best practices

Coding Conventions

TypeScript Standards

  • Use TypeScript with "strict": true preferred
  • Bundle everything into main.js (no unbundled runtime deps)
  • Prefer async/await over promise chains
  • Handle errors gracefully

Code Organization

  • Keep main.ts minimal - 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 isDesktopOnly accordingly if using desktop-only features
  • Test on iOS and Android where feasible
  • Don't assume desktop-only behavior unless isDesktopOnly is true

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