Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:9e86610012bea4abc9f047bc7834ff63acdf0f1b2f5fef18deb803086ddb8fc7
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": "StockCake: CC0 / public-domain stock images, every one AI-generated. Free for commercial use, no attribution required.\nTo show an image to the user, call get_image — it returns an inline image block (preview_url may not render in every client).\nAlways give the user the page_url when you recommend an image; full-resolution downloads happen on that page and need a free StockCake account.\nSearch: keep `query` short — 2–5 words, the subject plus one or two qualifiers ('red vintage rocket'), not a sentence.\nIf total_results is low or the matches miss, retry with FEWER keywords first, then with different phrasing (synonyms, singular/plural, a broader subject) — try 2–3 variations before telling the user nothing fits.\nUse `limit` to request only as many results as you need.\nFor `mood` / `style`, pass exact values from `refinements` of a previous search_images result.\nPass `locale` for non-English users (titles and links are localized; descriptions are English).\nThe endpoint allows 120 requests per minute per IP.\nAccount tools (generate, upscale, resize, video, download, account) need a free StockCake account — the host will prompt to sign in.", "tools": [ { "description": "Generate a short video from a prompt and/or a start image with one of StockCake's video models (list_models). Priced per second of output; needs a plan. Video usually takes longer than 45 s: expect a pending result and poll get_job. Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "aspect_ratio": { "description": "Text-to-video only; a start image sets the ratio", "enum": [ "9:16", "4:5", "3:4", "2:3", "1:1", "3:2", "4:3", "5:4", "16:9" ], "type": "string" }, "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "duration_seconds": { "description": "Clip length; must be one of the model's durations", "maximum": 30, "minimum": 1, "type": "integer" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "model": { "description": "Video model id from list_models (default: MiniMax H3)", "maxLength": 64, "type": "string" }, "negative_prompt": { "maxLength": 1000, "type": "string" }, "prompt": { "description": "Required unless start_image is given", "maxLength": 2000, "type": "string" }, "start_image": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "maxLength": 64, "minLength": 1, "type": "string" } ], "description": "Animate from this image (stock id or your edited image id)" }, "tier": { "description": "Tier key from list_models (e.g. 720p, 1080p, 720p-audio)", "maxLength": 24, "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "create_video", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "job_id": { "type": "string" }, "status": { "const": "completed", "type": "string" }, "video": { "additionalProperties": false, "properties": { "duration_seconds": { "type": [ "number", "null" ] }, "url": { "type": "string" } }, "required": [ "url", "duration_seconds" ], "type": "object" } }, "required": [ "job_id", "status", "video", "credits_charged" ], "type": "object" }, { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "job_id": { "type": "string" }, "message": { "type": "string" }, "status": { "const": "pending", "type": "string" } }, "required": [ "job_id", "status", "credits_charged", "message" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "Full-resolution download link for a StockCake image (CC0) or one of your edited images. Unmetered — no credits. format \"png\" returns the lossless sibling when one exists (falls back to jpg). Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "format": { "description": "Default jpg (the original)", "enum": [ "jpg", "png" ], "type": "string" }, "id": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "pattern": "^\\d+$", "type": "string" } ], "description": "Stock image id or your own edited image id" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" } }, "required": [ "id", "context", "llm_model" ], "type": "object" }, "name": "download_image", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "dimensions": { "anyOf": [ { "additionalProperties": false, "properties": { "height": { "type": "number" }, "width": { "type": "number" } }, "required": [ "width", "height" ], "type": "object" }, { "type": "null" } ] }, "format": { "type": "string" }, "id": { "type": "number" }, "license": { "additionalProperties": false, "properties": { "attribution_required": { "type": "boolean" }, "commercial_use": { "type": "boolean" }, "license": { "type": "string" }, "license_url": { "type": "string" }, "public_domain": { "type": "boolean" }, "restrictions": { "items": { "type": "string" }, "type": "array" } }, "required": [ "license", "license_url", "public_domain", "commercial_use", "attribution_required", "restrictions" ], "type": "object" }, "page_url": { "type": "string" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "title", "url", "format", "dimensions", "license", "page_url" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "Find images visually similar to a given StockCake image id (from search_images results). total_results is the number of similar results returned on this page, not a catalog-wide count.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "id": { "description": "Numeric image id from a previous result", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "limit": { "description": "Results to return, 1-12 (default 12). Ask for fewer to save tokens.", "maximum": 12, "minimum": 1, "type": "integer" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "locale": { "description": "Site locale for the user (default en). Titles and page links are localized; descriptions are English.", "enum": [ "en", "de", "es", "fa", "fr", "it", "ja", "pt" ], "type": "string" }, "page": { "description": "Page number, 1-5", "maximum": 5, "minimum": 1, "type": "integer" } }, "required": [ "id", "context", "llm_model" ], "type": "object" }, "name": "find_similar_images", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "has_more": { "type": "boolean" }, "license_note": { "type": "string" }, "page": { "type": "number" }, "refinements": { "additionalProperties": false, "description": "Exact mood/style facet values available for this query — pass one back as `mood` / `style` to narrow", "properties": { "mood": { "items": { "type": "string" }, "type": "array" }, "style": { "items": { "type": "string" }, "type": "array" } }, "required": [ "mood", "style" ], "type": "object" }, "results": { "items": { "additionalProperties": false, "properties": { "aspect_ratio": { "description": "e.g. \"16:9\", \"9:16\", \"1:1\"", "type": "string" }, "description": { "type": "string" }, "dimensions": { "anyOf": [ { "additionalProperties": false, "properties": { "height": { "type": "number" }, "width": { "type": "number" } }, "required": [ "width", "height" ], "type": "object" }, { "type": "null" } ], "description": "Full-resolution pixel size; null when unknown" }, "id": { "type": "number" }, "page_url": { "type": "string" }, "preview_url": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "id", "title", "preview_url", "page_url", "aspect_ratio", "dimensions", "tags" ], "type": "object" }, "type": "array" }, "total_pages": { "type": "number" }, "total_results": { "type": "number" } }, "required": [ "results", "page", "total_results", "total_pages", "has_more", "license_note" ], "type": "object" } }, { "description": "Generate a new image from a prompt with one of StockCake's AI models (list_models). Charges credits; free credits cover the free models. Waits up to 45 s — a pending result carries a job_id for get_job. Optional reference images guide the composition (plan-capped). Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "aspect_ratio": { "enum": [ "9:16", "4:5", "3:4", "2:3", "1:1", "3:2", "4:3", "5:4", "16:9" ], "type": "string" }, "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "model": { "description": "Model id from list_models. Default: the site default for subscribers, the free model otherwise.", "maxLength": 64, "type": "string" }, "prompt": { "maxLength": 2000, "minLength": 1, "type": "string" }, "reference_images": { "description": "Stock image ids or your own edited image ids used as references", "items": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "maxLength": 64, "minLength": 1, "type": "string" } ], "description": "A StockCake image id (from search_images), one of your own edited image ids (from a previous result), or a job_id. Never a URL." }, "maxItems": 9, "type": "array" }, "tier": { "description": "Tier key from list_models (e.g. 1k, 2k, standard). Default: the model's default tier.", "maxLength": 16, "type": "string" } }, "required": [ "prompt", "context", "llm_model" ], "type": "object" }, "name": "generate_image", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "image": { "additionalProperties": false, "properties": { "id": { "description": "Edited image id — pass it to download_image or as an image reference", "type": [ "number", "null" ] }, "url": { "type": "string" } }, "required": [ "id", "url" ], "type": "object" }, "job_id": { "type": "string" }, "status": { "const": "completed", "type": "string" } }, "required": [ "job_id", "status", "image", "credits_charged" ], "type": "object" }, { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "job_id": { "type": "string" }, "message": { "type": "string" }, "status": { "const": "pending", "type": "string" } }, "required": [ "job_id", "status", "credits_charged", "message" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "The signed-in user's plan, credit balance (free / subscription / purchased), next resets, download quality and output formats. Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "get_account", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "balance": { "additionalProperties": false, "properties": { "free": { "type": "number" }, "purchased": { "type": "number" }, "subscription": { "type": "number" }, "total": { "type": "number" } }, "required": [ "total", "free", "subscription", "purchased" ], "type": "object" }, "formats": { "items": { "type": "string" }, "type": "array" }, "is_entitled": { "type": "boolean" }, "max_download_multiplier": { "type": "number" }, "next_reset": { "additionalProperties": false, "properties": { "free": { "type": [ "string", "null" ] }, "subscription": { "type": [ "string", "null" ] } }, "required": [ "free", "subscription" ], "type": "object" }, "plan": { "type": "string" }, "tier": { "type": [ "string", "null" ] }, "upgrade_url": { "type": "string" } }, "required": [ "plan", "tier", "is_entitled", "balance", "next_reset", "max_download_multiplier", "formats", "upgrade_url" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "Fetch one image with full metadata: an inline preview the model can see (unless include_preview is false), real pixel dimensions, AI-generation provenance (prompt, dates, style), license details, and attribution snippets.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "id": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 2147483647, "type": "integer" }, { "maxLength": 64, "minLength": 4, "type": "string" } ], "description": "Numeric image id (from search results) or the image's CDN uuid" }, "include_preview": { "description": "Default true. Set false to skip the inline preview image and save tokens.", "type": "boolean" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "locale": { "description": "Site locale for the user (default en). Titles and page links are localized; descriptions are English.", "enum": [ "en", "de", "es", "fa", "fr", "it", "ja", "pt" ], "type": "string" } }, "required": [ "id", "context", "llm_model" ], "type": "object" }, "name": "get_image", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "attribution": { "additionalProperties": false, "properties": { "html": { "type": "string" }, "markdown": { "type": "string" }, "plain": { "type": "string" } }, "required": [ "markdown", "html", "plain" ], "type": "object" }, "description": { "type": [ "string", "null" ] }, "dimensions": { "anyOf": [ { "additionalProperties": false, "properties": { "height": { "type": "number" }, "width": { "type": "number" } }, "required": [ "width", "height" ], "type": "object" }, { "type": "null" } ], "description": "Full-resolution pixel size; null when unknown" }, "id": { "type": "number" }, "license": { "additionalProperties": false, "properties": { "attribution_required": { "type": "boolean" }, "commercial_use": { "type": "boolean" }, "license": { "type": "string" }, "license_url": { "type": "string" }, "public_domain": { "type": "boolean" }, "restrictions": { "items": { "type": "string" }, "type": "array" } }, "required": [ "license", "license_url", "public_domain", "commercial_use", "attribution_required", "restrictions" ], "type": "object" }, "page_url": { "type": "string" }, "preview_url": { "type": "string" }, "provenance": { "additionalProperties": false, "properties": { "ai_generated": { "const": true, "type": "boolean" }, "descriptive_attributes": { "anyOf": [ { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, { "type": "null" } ] }, "generated_at": { "type": [ "string", "null" ] }, "prompt": { "type": [ "string", "null" ] }, "published_at": { "type": [ "string", "null" ] }, "style": { "type": [ "string", "null" ] } }, "required": [ "ai_generated", "prompt", "style", "generated_at", "published_at", "descriptive_attributes" ], "type": "object" }, "tags": { "items": { "type": "string" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "id", "title", "description", "dimensions", "tags", "provenance", "license", "page_url", "preview_url", "attribution" ], "type": "object" } }, { "description": "Status and result of a generate_image / upscale_image / resize_image / create_video job you started (pending, completed with URLs, or error with refund state). Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "job_id": { "maxLength": 64, "minLength": 8, "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" } }, "required": [ "job_id", "context", "llm_model" ], "type": "object" }, "name": "get_job", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "error": { "additionalProperties": false, "properties": { "code": { "type": "string" }, "message": { "type": "string" }, "refunded": { "type": "boolean" } }, "required": [ "message", "refunded" ], "type": "object" }, "job_id": { "type": "string" }, "result": { "additionalProperties": false, "properties": { "edited_image_id": { "type": "number" }, "image_url": { "type": "string" }, "video_url": { "type": "string" } }, "type": "object" }, "status": { "enum": [ "pending", "completed", "error" ], "type": "string" } }, "required": [ "job_id", "status" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "License and usage terms for all StockCake images (site-wide CC0 / public domain).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "get_license_info", "outputSchema": null }, { "description": "Image and video models available to generate_image / create_video with the credit price of every tier. Free-credit models are flagged; video is priced per second. Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "kind": { "description": "Return only one catalog", "enum": [ "image", "video" ], "type": "string" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" } }, "required": [ "context", "llm_model" ], "type": "object" }, "name": "list_models", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "image": { "items": { "additionalProperties": false, "properties": { "default": { "type": "boolean" }, "default_tier": { "type": "string" }, "description": { "type": "string" }, "free": { "type": "boolean" }, "id": { "type": "string" }, "max_references": { "type": "number" }, "name": { "type": "string" }, "provider": { "type": "string" }, "supports_references": { "type": "boolean" }, "tiers": { "items": { "additionalProperties": false, "properties": { "credits": { "type": "number" }, "key": { "type": "string" }, "label": { "type": "string" }, "resolution": { "type": "string" } }, "required": [ "key", "label", "credits" ], "type": "object" }, "type": "array" } }, "required": [ "id", "name", "provider", "description", "default", "free", "default_tier", "tiers", "supports_references", "max_references" ], "type": "object" }, "type": "array" }, "video": { "items": { "additionalProperties": false, "properties": { "aspect_ratios": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ] }, "default": { "type": "boolean" }, "default_duration": { "type": "number" }, "default_tier": { "type": "string" }, "description": { "type": "string" }, "durations": { "items": { "type": "number" }, "type": "array" }, "id": { "type": "string" }, "image_to_video": { "type": "boolean" }, "name": { "type": "string" }, "provider": { "type": "string" }, "tiers": { "items": { "additionalProperties": false, "properties": { "audio": { "type": "boolean" }, "credits_per_second": { "type": "number" }, "key": { "type": "string" }, "resolution": { "type": "string" } }, "required": [ "key", "resolution", "audio", "credits_per_second" ], "type": "object" }, "type": "array" } }, "required": [ "id", "name", "provider", "description", "default", "default_tier", "tiers", "durations", "default_duration", "image_to_video", "aspect_ratios" ], "type": "object" }, "type": "array" } }, "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "Change an image's aspect ratio by extending the canvas with AI (GPT Image 2.5) — the subject is kept, new area is generated. Charges credits. Waits up to 45 s, then returns a job_id for get_job. Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "aspect_ratio": { "description": "Target ratio", "enum": [ "9:16", "4:5", "3:4", "2:3", "1:1", "3:2", "4:3", "5:4", "16:9" ], "type": "string" }, "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "image": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "maxLength": 64, "minLength": 1, "type": "string" } ], "description": "A StockCake image id (from search_images), one of your own edited image ids (from a previous result), or a job_id. Never a URL." }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "prompt": { "description": "What should fill the extended canvas, e.g. 'extend the sandy beach and sky; keep the subject unchanged, do not crop or stretch'", "maxLength": 2000, "minLength": 1, "type": "string" } }, "required": [ "image", "aspect_ratio", "prompt", "context", "llm_model" ], "type": "object" }, "name": "resize_image", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "image": { "additionalProperties": false, "properties": { "id": { "description": "Edited image id — pass it to download_image or as an image reference", "type": [ "number", "null" ] }, "url": { "type": "string" } }, "required": [ "id", "url" ], "type": "object" }, "job_id": { "type": "string" }, "status": { "const": "completed", "type": "string" } }, "required": [ "job_id", "status", "image", "credits_charged" ], "type": "object" }, { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "job_id": { "type": "string" }, "message": { "type": "string" }, "status": { "const": "pending", "type": "string" } }, "required": [ "job_id", "status", "credits_charged", "message" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } }, { "description": "Natural-language search over StockCake's catalog. total_results is the total number of matches across the whole catalog, not just this page. refinements lists exact mood/style values available for this query. Start with a short query; when total_results is small or off-target, retry with fewer keywords or different phrasing.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "color": { "description": "Dominant color, e.g. a hex value like #ff0000", "maxLength": 30, "type": "string" }, "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "limit": { "description": "Results to return, 1-12 (default 12). Ask for fewer to save tokens.", "maximum": 12, "minimum": 1, "type": "integer" }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "locale": { "description": "Site locale for the user (default en). Titles and page links are localized; descriptions are English.", "enum": [ "en", "de", "es", "fa", "fr", "it", "ja", "pt" ], "type": "string" }, "mood": { "description": "Exact facet value — pick one from refinements.mood of a previous search_images result", "maxLength": 50, "type": "string" }, "orientation": { "enum": [ "landscape", "portrait", "square" ], "type": "string" }, "page": { "description": "Page number, 1-5", "maximum": 5, "minimum": 1, "type": "integer" }, "query": { "description": "Short subject, 2–5 words (e.g. 'red vintage rocket'). Long sentences hurt recall: start short, add one qualifier at a time; if results are thin, drop keywords or rephrase.", "maxLength": 300, "minLength": 1, "type": "string" }, "style": { "description": "Exact facet value — pick one from refinements.style of a previous search_images result", "maxLength": 50, "type": "string" }, "type": { "enum": [ "photos", "illustrations", "digital-art", "3d" ], "type": "string" } }, "required": [ "query", "context", "llm_model" ], "type": "object" }, "name": "search_images", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "has_more": { "type": "boolean" }, "license_note": { "type": "string" }, "page": { "type": "number" }, "refinements": { "additionalProperties": false, "description": "Exact mood/style facet values available for this query — pass one back as `mood` / `style` to narrow", "properties": { "mood": { "items": { "type": "string" }, "type": "array" }, "style": { "items": { "type": "string" }, "type": "array" } }, "required": [ "mood", "style" ], "type": "object" }, "results": { "items": { "additionalProperties": false, "properties": { "aspect_ratio": { "description": "e.g. \"16:9\", \"9:16\", \"1:1\"", "type": "string" }, "description": { "type": "string" }, "dimensions": { "anyOf": [ { "additionalProperties": false, "properties": { "height": { "type": "number" }, "width": { "type": "number" } }, "required": [ "width", "height" ], "type": "object" }, { "type": "null" } ], "description": "Full-resolution pixel size; null when unknown" }, "id": { "type": "number" }, "page_url": { "type": "string" }, "preview_url": { "type": "string" }, "tags": { "items": { "type": "string" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "id", "title", "preview_url", "page_url", "aspect_ratio", "dimensions", "tags" ], "type": "object" }, "type": "array" }, "total_pages": { "type": "number" }, "total_results": { "type": "number" } }, "required": [ "results", "page", "total_results", "total_pages", "has_more", "license_note" ], "type": "object" } }, { "description": "Upscale a StockCake image or one of your edited images 2x, 4x or 8x (lossless PNG output). Plan quality caps apply; charges credits otherwise. Waits up to 45 s, then returns a job_id for get_job. Requires a free StockCake account (the host will prompt to sign in).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "context": { "description": "In one sentence, what is the user trying to make or find?", "type": "string" }, "conversation_id": { "description": "Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request.", "type": "string" }, "image": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "maxLength": 64, "minLength": 1, "type": "string" } ], "description": "A StockCake image id (from search_images), one of your own edited image ids (from a previous result), or a job_id. Never a URL." }, "llm_model": { "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.", "type": "string" }, "scale": { "anyOf": [ { "const": 2, "type": "number" }, { "const": 4, "type": "number" }, { "const": 8, "type": "number" } ] } }, "required": [ "image", "scale", "context", "llm_model" ], "type": "object" }, "name": "upscale_image", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "image": { "additionalProperties": false, "properties": { "id": { "description": "Edited image id — pass it to download_image or as an image reference", "type": [ "number", "null" ] }, "url": { "type": "string" } }, "required": [ "id", "url" ], "type": "object" }, "job_id": { "type": "string" }, "status": { "const": "completed", "type": "string" } }, "required": [ "job_id", "status", "image", "credits_charged" ], "type": "object" }, { "additionalProperties": false, "properties": { "credits_charged": { "type": "number" }, "job_id": { "type": "string" }, "message": { "type": "string" }, "status": { "const": "pending", "type": "string" } }, "required": [ "job_id", "status", "credits_charged", "message" ], "type": "object" }, { "additionalProperties": {}, "properties": { "code": { "type": "string" }, "message": { "type": "string" } }, "required": [ "code", "message" ], "type": "object" } ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:9e86610012bea4abc9f047bc7834ff63acdf0f1b2f5fef18deb803086ddb8fc7 | sha256sum