Chrome Bookmark MCP Server for searching and retrieving indexed bookmark content using Tantivy full-text search
The server defines 4 tools with explicit schemas and descriptions. Tool naming follows verb_noun conventions (search_, get_) which is good. However, there are significant gaps: (1) parameter descriptions lack detail about ranges, constraints, and expected formats; (2) output schemas are not documented, LLMs cannot infer what fields to expect from results; (3) error handling guidance is absent, no recovery hints for common failures; (4) some parameters like 'limit' lack default values and range constraints. The descriptions are adequate (50 - 150 chars) but could be more LLM-optimized with WHEN and WHY guidance. Tools are read-only (safe) but lack idempotent/readonly hints in annotations.
Retrieve complete indexed webpage content for a specific bookmark URL from the local Tantivy search index. For large PDF files, consider using get_bookmark_content_range instead to retrieve specific pages.
Retrieve specific page(s) from a PDF bookmark. For single page, set start_page = end_page. For range, set start_page < end_page. Page numbers are 1-indexed.
Get the current status of the bookmark content indexing process and check if indexing is complete
Search through indexed webpage contents extracted from bookmarked sites using Tantivy full-text search engine
Output schemas not documented. Tools return results but LLMs cannot infer the structure of search results, status objects, or content fields. This forces agents to guess field names and types, increasing errors.
Parameter 'limit' in search_bookmarks_fulltext lacks range constraints. Description says 'default: 20' but no min/max specified. Agents could pass 0, negative, or huge numbers, risking API overload or timeout.
Error handling provides no recovery guidance. If a search returns no results, indexing status shows incomplete, or a URL is not found, the tool responses do not hint at next steps (e.g., 'Try a simpler query', 'Wait for indexing to complete'). Agents have no way to self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 57 | - | v1 |
get_bookmark_content_range accepts start_page and end_page without validation hints. If start_page > end_page or either is ≤0, behavior is undefined. Description mentions '1-indexed' but does not specify error handling for out-of-range values.
Tool annotations missing. All 4 tools are read-only (safe to call repeatedly without side effects) but lack readOnlyHint annotation. This leaves agents uncertain about idempotency and retry safety.
get_indexing_status has empty input schema {}. Description is generic ('Get the current status'). No hint about what 'status' means, is it % complete, boolean flag, or state enum? LLMs cannot infer when to call this tool or how to interpret results.
Parameter descriptions lack actionable format guidance. Example: 'url' parameter says 'Exact URL' but does not specify HTTP vs HTTPS, whether fragments are allowed, or how to handle URL-encoded characters. LLMs may pass invalid URLs.