MCP server exposing a published index as task-shaped tools for grep-first agents. Provides read-only access to a deterministic website index with optional write capabilities for incremental crawling.
Sift MCP exposes 12 well-structured read-only tools with complete JSON schemas and clear descriptions. Tool names follow verb_noun convention (snapshot_status, changed_since, read_md, grep_corpus). All tools have descriptions (avg ~80 chars) and input schemas with typed parameters. However, descriptions are terse and lack WHEN/WHY guidance; parameter descriptions are minimal (e.g., 'run_id or ISO-8601 UTC timestamp' repeated across 6 tools without explaining the temporal query model); output schemas are not documented; error handling is absent from descriptions. The single write tool (index_url) lacks confirmation/dry-run pattern. No tool annotations visible in schema definitions despite toolAnnotations=true in features.
net added/modified/removed pages since a cursor (the diff feed)
unified diff of one page between two published snapshots
list md files matching a glob (e.g. forms-and-instructions/**/2025*)
regex search over md/ (returns file:line:context)
poll a background index job by run_id (reads the durable runs table)
seed URL(s) on an allow-listed host + trigger an incremental crawl
directory listing under current/ or current/md/
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing field names and types. E.g., grep_corpus returns 'matches' and 'total_matches' but structure of match objects is undocumented.
Temporal parameter descriptions are repetitive and lack guidance. Six tools accept 'as_of' (run_id or ISO-8601 timestamp) but descriptions do not explain the temporal query model, when to use each format, or how to discover valid run_ids. LLMs cannot infer this without explicit WHEN/WHY context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
self-contained Merkle inclusion proof that a page is in the snapshot
read-only SELECT against manifest.db
read one facts/*.json file (with schema validation hint)
read one md file (with optional offset/limit, optional verify)
published yes/no, gates, counts, artifact inventory (works pre-publish)
No error handling guidance in tool descriptions. Tools like query_manifest (SQL SELECT) and grep_corpus (regex) can fail (invalid SQL, malformed regex) but descriptions do not explain error cases or recovery steps. LLMs cannot self-correct without actionable error messages.
index_url (write tool) lacks confirmation/dry-run pattern. Triggering a crawl is a side effect but tool description does not mention confirmation, dry-run, or rollback options. Agents cannot safely preview impact before committing.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared in features but not visible in schema definitions. Schemas should include these annotations to guide agent planning and safety checks.