Local-first AI bookmark manager with semantic search, cleanup PRs, and MCP support
SiftMarks MCP server has 8 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-60 chars, mostly adequate) and input schemas with types. However, parameter descriptions are sparse or missing entirely. For example, search_bookmarks has 'limit' with description 'Max results' (11 chars, below 20-char threshold). Most tools lack output schema documentation. Error handling is not visible in the provided code. The server is STDIO-only, which caps protocol readiness at 50. Tool naming follows verb_noun convention (search_, read_, list_, find_, summarize_, save_, run_) which is good. No security issues visible (no secrets in params). Composition is reasonable, tools are single-purpose and chainable (e.g., search_bookmarks → read_bookmark). Overall, this is a functional but underdeveloped server typical of early-stage projects.
Find bookmarks related to a given URL
List all bookmark folders with counts
List all tags with bookmark counts
Read full details of a specific bookmark
Run bookmark rescue scan and generate cleanup suggestions
Save a new bookmark
Search bookmarks by keyword or natural language query
Parameter descriptions are too short or missing. 'limit' described as 'Max results' (11 chars) violates the 20-char minimum. Many parameters lack actionable guidance on valid ranges, formats, or constraints.
Output schemas are not documented. Tools return results but the structure (fields, types, pagination) is not visible in the provided code. LLMs cannot plan downstream calls without knowing what fields to expect.
No error handling guidance visible. Tools lack recovery hints (e.g., 'If bookmark not found, try search_bookmarks first'). Error responses should guide the LLM on next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Summarize a collection of bookmarks by tag or folder
summarize_collection has two optional parameters (tag, folder_path) with unclear mutual exclusivity. Description does not state whether both, one, or neither is required. This ambiguity forces LLMs to guess.
No pagination support visible for list_tags and list_folders. If bookmark collections are large, these tools may return thousands of items, exhausting context windows. Add limit/offset or cursor-based pagination.