Personal text-clipping store with Chrome extension capture and MCP/API retrieval, on Cloudflare. Provides snippet storage, search (keyword and semantic), and sharing capabilities via MCP protocol.
AgentClip provides 7 tools with complete JSON schemas and basic descriptions. Naming follows verb_noun convention (store_, search_, get_, list_, update_, delete_). However, descriptions are terse (avg 60 chars, well below the 194-char baseline), lack WHEN/WHY context, and omit parameter-level documentation. No output schemas documented. Error handling is absent, no recovery guidance, no actionable error messages. Parameter descriptions are minimal or missing entirely (e.g., 'limit' has no range constraints). No tool annotations (readOnlyHint, destructiveHint). Schemas are present but sparse, missing descriptions for most parameters.
Delete a snippet by id.
Fetch a single snippet by id.
List the most recently saved snippets.
Full-text (keyword) search the user's stored snippets.
Semantic (meaning-based) search over the user's snippets using embeddings.
Save a text snippet to the user's AgentClip store.
Update a snippet's content (and optional title/tags) by id.
Descriptions are terse (30 - 40 chars) and lack WHEN/WHY context. E.g., 'Delete a snippet by id' does not explain consequences, prerequisites, or when to use this vs. other tools.
Parameter descriptions are missing or minimal. 'limit' appears in search_snippets and semantic_search with no range constraints (should be 1 - 100 or similar). 'query' has no guidance on format or length.
No output schemas documented. LLMs cannot infer what fields are returned (e.g., does get_snippet return 'id', 'content', 'title', 'created_at'?). This breaks tool chaining and forces agents to guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot determine which tools are safe to retry or have side effects. delete_snippet should be marked destructiveHint=true.
No error handling guidance. If a snippet is not found, the tool returns a bare error with no recovery path (e.g., 'Snippet not found. Try search_snippets() to find it by content.').