MCP server for searching and managing media archives. Runs entirely inside Claude Desktop's Node runtime: scan → identity → Tier 0 metadata → node:sqlite → FTS5 → search. Read-only against your footage. The index goes to a temp file. Nothing is uploaded.
Yellide has 12 tools with mostly complete descriptions (194-char baseline met) and clear naming conventions (verb_noun pattern). However, input schemas are inconsistent: most tools lack explicit type definitions for parameters beyond basic strings/numbers. Output schemas are entirely undocumented, the code returns mixed text+data structures but LLMs cannot parse the expected fields. Error handling is minimal; tools return success/empty states but lack recovery guidance. Security is reasonable (read-only operations dominate, write ops are gated), but parameter validation rules are not documented in descriptions.
Get the next batch of files that need captions. Returns up to 20 files from the least-described shoots.
Describe the archive: file counts, date ranges, cameras, drives, coverage statistics, and captioning progress.
Run Yellide diagnostics: version, platform, capabilities, and index statistics. No filenames, paths, or search terms are included.
Delete your row from the usage counter and stop sending any data.
Discover media locations on the system without scanning. Returns paths and file counts for each location.
Probe the runtime environment: Node version, SQLite availability, FTS5 support, and core module status.
Start a scan of media files. If no directory is given, automatically discovers and scans all media locations.
Output schemas entirely undocumented. Tools return mixed text+data structures (e.g., describe_archive returns {text, data, empty}; search returns {text, data, empty_index}) but LLMs cannot parse expected fields. This violates pattern:tool and forces LLMs to guess at response structure.
Parameter validation rules not documented in descriptions. E.g., search accepts 'limit' (max 100) and 'kind' (enum: image|video|audio) but descriptions lack constraint details. LLMs cannot self-correct invalid inputs without explicit guidance.
Error handling lacks recovery guidance. Tools return empty results or generic states (empty_index: true) but do not tell LLMs what to do next. E.g., 'The index has not been built yet' should suggest 'Run probe_scan() first.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Check the status of a running or completed scan job by ID.
Search the archive by content, kind, camera, date range, and GPS presence. Uses FTS5 full-text search with reciprocal rank fusion.
Enable or disable the anonymous usage counter that contributes to yellide.pages.dev statistics.
Find where a file currently lives. Returns the best location (present or offline) and all known locations.
Write captions and tags for assets. Stores human-authored descriptions that make content searchable.
Destructive operations (write_annotations, forget, set_consent) lack confirmation or dry-run support. Agents could accidentally delete consent data or overwrite annotations without a safety gate.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Clients cannot distinguish safe reads from destructive writes at the protocol level, forcing LLMs to infer intent from descriptions alone.