feat: implement MCP server plugin v1.0.0
Add HTTP-based MCP server exposing 20 Joplin tools (notes, notebooks, tags, search) via StreamableHTTPServerTransport. Includes configurable host/port settings, CORS support, and session management. - src/index.ts: Plugin registration and settings UI - src/server.ts: MCP HTTP server with StreamableHTTP transport - src/tools.ts: 20 MCP tool definitions for Joplin operations - LICENSE: MIT license - CHANGELOG.md: v1.0.0 changelog entry - README.md: Comprehensive documentation
This commit is contained in:
parent
de18d28146
commit
65ec128efe
12 changed files with 1358 additions and 17 deletions
52
CHANGELOG.md
Normal file
52
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2026-05-31
|
||||
|
||||
### Added
|
||||
|
||||
- MCP server using Streamable HTTP transport, listening on configurable host and port
|
||||
- Session management with UUID-based session IDs and 30-minute TTL eviction
|
||||
- CORS support for localhost, 127.0.0.1, and vscode-webview:// origins
|
||||
|
||||
#### Notes
|
||||
- `create_note` – Create notes with optional tags, parent notebook, and todo fields
|
||||
- `get_note` – Retrieve full note content by ID
|
||||
- `update_note` – Partially update note fields
|
||||
- `delete_note` – Soft-delete a note (moves to trash)
|
||||
- `list_notes` – Paginated note listing with sort and filter options
|
||||
- `get_notes_by_ids` – Batch retrieve multiple notes by their IDs
|
||||
|
||||
#### Notebooks
|
||||
- `list_notebooks` – Tree-structured notebook listing
|
||||
- `get_notebook` – Get notebook details with sub-notebooks and notes
|
||||
- `create_notebook` – Create notebooks, optionally nested under a parent
|
||||
- `update_notebook` – Rename or move notebooks
|
||||
- `delete_notebook` – Delete notebook (moves notes to trash)
|
||||
|
||||
#### Tags
|
||||
- `list_tags` – List all tags
|
||||
- `create_tag` – Create new tags (with deduplication)
|
||||
- `update_tag` – Rename existing tags
|
||||
- `delete_tag` – Permanently delete tags
|
||||
- `get_note_tags` – Get tags assigned to a specific note
|
||||
- `add_tag_to_note` – Add tag to note (auto-creates tag if needed)
|
||||
- `remove_tag_from_note` – Remove a tag from a note
|
||||
|
||||
#### Search
|
||||
- `search_notes` – Full-text search with Joplin query operators
|
||||
- `search_notebooks` – Search notebooks by title
|
||||
- `search_tags` – Search tags by title
|
||||
- `search_all` – Cross-type search across notes, notebooks, and tags
|
||||
|
||||
#### Utility
|
||||
- `ping` – Health check endpoint
|
||||
|
||||
### Configuration
|
||||
- Configurable TCP port (default: 22123, range: 1024–65535)
|
||||
- Configurable bind host (default: 127.0.0.1)
|
||||
- Settings accessible from Joplin's preferences under "MCP Server"
|
||||
Loading…
Add table
Add a link
Reference in a new issue