A local stdio MCP server for the Raindrop.io REST API
Server demonstrates solid fundamentals: all 7 tools have clear verb-noun names (list_*, search_*, get_*, create_*, update_*, delete_*), comprehensive descriptions (avg 180 chars), and complete JSON Schema with typed parameters. Tool annotations are present and correctly applied (READ_TOOL_ANNOTATIONS, CREATE_TOOL_ANNOTATIONS, UPDATE_TOOL_ANNOTATIONS). Output schemas are well-structured (CollectionSummary, BookmarkDetail, etc.). However, several parameter descriptions lack actionable constraints (e.g., search_bookmarks 'sort' param lists options but doesn't explain default behavior or when to use each). Error handling is present but generic, RaindropAPIError lacks recovery guidance. No dry-run/confirmation pattern for destructive delete_bookmark. Pagination is implemented but per_page default (20) lacks justification.
Create a bookmark; link is required and metadata parsing is enabled.
Delete one bookmark by its positive Raindrop.io ID.
Get one bookmark by its positive Raindrop.io ID.
List Raindrop.io collections, including nested collections by default.
List tags with bookmark counts; collection_id 0 lists all tags. A nonzero ID scopes the request to that collection. No child collections are fetched separately. The top-level count is the number of tags, not the number of bookmarks.
List bookmarks or search with native Raindrop.io syntax. collection_id 0 searches all bookmarks; page numbering starts at zero. Results default to relevance for searches and newest first for listings.
delete_bookmark lacks confirmation/dry-run pattern. Destructive operations should support a confirmation step to prevent accidental data loss when agents make mistakes.
Error responses (RaindropAPIError) are generic and lack recovery guidance. Errors should tell the LLM what to do next (e.g., 'Collection not found. Try list_collections() first.').
search_bookmarks 'sort' parameter lists options but lacks explanation of when to use each (e.g., when is '-created' preferred over 'score'?). Parameter descriptions should guide LLM selection.
Pagination defaults (per_page=20) lack justification in descriptions. Should explain why 20 is chosen and when to adjust for performance/context window concerns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
Update selected fields on one bookmark.
No batch variants for tools agents call in loops. If an agent needs to tag 10 bookmarks, it must call update_bookmark 10 times instead of one batch operation.