Collection of example MCP agents and tools for the Friday platform, including knowledge base ingestion/querying, 2D asset pipeline processing, and file operations.
Four tools with significant definition gaps. file-saver and spritesheet-normalizer have descriptions but lack formal input schemas in the source code, only inferred from docstrings. kb-ingest-agent and kb-query-agent lack visible tool definitions entirely (only pyproject.toml shown). No parameter descriptions visible in schemas. No output schemas documented. Error handling is present in file-saver (curl/magick failures) but lacks recovery guidance. Naming is reasonable (verb_noun style) but schemas are the critical blocker.
Fetches a generated image artifact from the Friday API and saves it to disk as PNG. Uses a timestamp-based filename. Returns destination_path.
Ingests a URL or PDF artifact into the personal knowledge base. Chunks content, embeds with BAAI/bge-large-en-v1.5, stores vectors in SQLite with sqlite-vec.
Queries the personal knowledge base. Embeds a question with BAAI/bge-large-en-v1.5, performs ANN search in sqlite-vec, retrieves top-K chunks, and synthesizes a grounded answer.
Normalizes a raw AI-generated spritesheet PNG/JPEG into a clean RGBA PNG with exact frame dimensions, transparent background (detected from image corners), and NEAREST-resampled pixel art frames. When canvas dimensions do not match expected (frame_count x frame_w), attempts neon-green column boundary detection to find actual frame edges. If boundary detection also fails, returns regenerate=True so the FSM can re-trigger generation.
No formal input schemas visible in source code. file-saver and spritesheet-normalizer have @agent decorators with descriptions but no explicit JSON Schema definitions for parameters. kb-ingest-agent and kb-query-agent lack any tool registration code in provided source.
No parameter descriptions in visible code. file-saver accepts 'prompt' and 'ctx' but neither parameter has a description explaining what values are valid or how they are used. kb-ingest-agent parameters (url, artifact_id, source_label) are inferred from docstring only.
No output schemas documented. file-saver returns a dict with destination_path, artifact_id, file_size_bytes, status but no formal schema. spritesheet-normalizer output structure is unclear from code snippet. kb-query-agent output format unknown.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Error messages lack recovery guidance. file-saver returns 'Could not find artifact ID' and 'curl failed' but does not suggest next steps (e.g., 'Check ctx.input for artifactRefs or provide artifact ID in prompt').
kb-ingest-agent and kb-query-agent tool definitions not visible in source. Only pyproject.toml metadata provided; no @agent decorator, parameter schemas, or descriptions found. Cannot verify tool registration.