🎉 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
39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
---
|
|
trigger: always_on
|
|
description: File and folder organization conventions
|
|
---
|
|
|
|
# File & Folder Organization
|
|
|
|
## Core Principles
|
|
|
|
- **Organize code into multiple files**: Split functionality across separate modules rather than putting everything in `main.ts`
|
|
- **Keep `main.ts` minimal**: Focus only on plugin lifecycle (onload, onunload, addCommand calls)
|
|
- **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
|
|
|
|
## Recommended Structure
|
|
|
|
```
|
|
src/
|
|
main.ts # Plugin entry point, lifecycle management only
|
|
settings.ts # Settings interface and defaults
|
|
commands/ # Command implementations
|
|
command1.ts
|
|
command2.ts
|
|
ui/ # UI components, modals, views
|
|
modal.ts
|
|
view.ts
|
|
utils/ # Utility functions, helpers
|
|
helpers.ts
|
|
constants.ts
|
|
types.ts # TypeScript interfaces and types
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
- Source lives in `src/`
|
|
- Keep the plugin small - avoid large dependencies
|
|
- Prefer browser-compatible packages
|
|
- Generated output should be placed at the plugin root or `dist/` depending on build setup
|
|
- Release artifacts must end up at the top level of the plugin folder (`main.js`, `manifest.json`, `styles.css`) |