StockCake
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Search millions of CC0 public-domain AI images: previews, dimensions, provenance, license.
| Author | com.stockcake |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2692 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"StockCake": {
"url": "https://stockcake.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (13)
search_imagesread-onlyNatural-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 for this query with counts (how many current matches carry each); both are exact filters, so a small count means few results. Start with a short query; when total_results is small or off-target, retry with fewer keywords or different phrasing.
Parameters:
query(required) — string — 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.context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.mood— string — Exact facet value — pick one from refinements.mood of a previous search_images result (check refinements.counts.mood first: it is a hard filter, not a boost)page— integer — Page number, 1-5type— stringcolor— string — Dominant color, e.g. a hex value like #ff0000limit— integer — Results to return, 1-12 (default 12). Ask for fewer to save tokens.style— string — Exact facet value — pick one from refinements.style of a previous search_images result (check refinements.counts.style first: it is a hard filter, not a boost)locale— string — Site locale for the user (default en). Titles and page links are localized; descriptions are English.orientation— stringconversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
find_similar_imagesread-onlyFind 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.
Parameters:
id(required) — integer — Numeric image id from a previous resultcontext(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.page— integer — Page number, 1-5limit— integer — Results to return, 1-12 (default 12). Ask for fewer to save tokens.locale— string — Site locale for the user (default en). Titles and page links are localized; descriptions are English.conversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_imageread-onlyFetch 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. Also shows the signed-in user's own edited images (ids ≥ 10000000000, as returned by generate_image, resize_image and upscale_image).
Parameters:
id(required) — Numeric image id (from search results), one of your own edited image ids (from a generate / resize / upscale result; needs the signed-in account), or the image's CDN uuidcontext(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.locale— string — Site locale for the user (default en). Titles and page links are localized; descriptions are English.conversation_id— string — 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.include_preview— boolean — Default true. Set false to skip the inline preview image and save tokens.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_license_inforead-onlyLicense and usage terms for all StockCake images (site-wide CC0 / public domain).
Parameters:
context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.conversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_accountread-onlyThe 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).
Parameters:
context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.conversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
list_modelsread-onlyImage 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).
Parameters:
context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.kind— string — Return only one catalogconversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
generate_imageGenerate 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).
Parameters:
prompt(required) — stringcontext(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.tier— string — Tier key from list_models (e.g. 1k, 2k, standard). Default: the model's default tier.model— string — Model id from list_models. Default: the site default for subscribers, the free model otherwise.aspect_ratio— stringconversation_id— string — 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.reference_images— array — Stock image ids or your own edited image ids used as references
Hints: read-only no · destructive no · idempotent no · open-world yes
upscale_imageUpscale 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).
Parameters:
image(required) — 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.scale(required)context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.conversation_id— string — 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.
Hints: read-only no · destructive no · idempotent no · open-world yes
resize_imageChange 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. Output is the model's native size — about 1.5 megapixels, up to 1536 px on the long edge — whatever the source size; the result reports exact dimensions. For print or larger web use, run upscale_image on the result. 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).
Parameters:
image(required) — 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.aspect_ratio(required) — string — Target ratioprompt(required) — string — What should fill the extended canvas, e.g. 'extend the sandy beach and sky; keep the subject unchanged, do not crop or stretch'context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.conversation_id— string — 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.
Hints: read-only no · destructive no · idempotent no · open-world yes
create_videoGenerate 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).
Parameters:
context(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.tier— string — Tier key from list_models (e.g. 720p, 1080p, 720p-audio)model— string — Video model id from list_models (default: H3 Max)prompt— string — Required unless start_image is givenstart_image— Animate from this image (stock id or your edited image id)aspect_ratio— string — Text-to-video only; a start image sets the ratioconversation_id— string — 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.negative_prompt— stringduration_seconds— integer — Clip length; must be one of the model's durations
Hints: read-only no · destructive no · idempotent no · open-world yes
download_imageread-onlyFull-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).
Parameters:
id(required) — Stock image id or your own edited image idcontext(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.format— string — Default jpg (the original)conversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_jobread-onlyStatus 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).
Parameters:
job_id(required) — stringcontext(required) — string — In one sentence, what is the user trying to make or find?llm_model(required) — string — 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.conversation_id— string — 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.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
send_feedbackread-onlySend feedback about this server to its developers. Most important: report a missing capability whenever no available tool fits your task, even if you can work around it (feedback_type "missing_capability"). Also welcome: a tool that failed or confused you, an unhelpful error, or something that worked well. This records the feedback; it does not add or change tools. Do not include user PII or sensitive content.
Parameters:
feedback_type(required) — string — What kind of feedback this is. Use 'missing_capability' when the tool you needed does not exist in the tool list - nothing failed, the capability is absent (this is the most valuable report; send it even if you found a workaround). Use 'issue' when an existing tool behaved badly: it failed, returned a confusing error, or its description or schema misled you. Use 'praise' when something worked notably well. Use 'other' for anything else.summary(required) — string — One self-contained sentence. For 'missing_capability': the capability you needed, e.g. 'No tool to delete multiple cohorts in one call.' For 'issue': the tool and the problem, e.g. 'query-trends rejects relative date ranges with an unclear error.'llm_model(required) — string — 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.details— string — Optional longer context: what you tried, exact parameter values, the error text you saw, and any workaround you used. Omit when the summary says it all.sentiment— string — Optional: how the experience felt overall.tool_name— string — Optional: the existing tool this feedback is about (for 'issue' or 'praise'). Leave empty for 'missing_capability' - the point is that no tool fits.task_completed— boolean — Optional: whether you still completed the user's task despite the problem.conversation_id— string — 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.friction_points— string — Optional: the specific moments that slowed you down, as short bullet-like sentences, quoting exact tool names, parameters, or error text.suggested_improvement— string — Optional: the concrete change that would have helped, e.g. the tool to add, the description to reword, or the error message to improve.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.