The MagicMeme MCP is six calls. Connect at https://magicmeme.com/api/mcp, then fetch llms.txt so the agent does not draw the meme in markdown.
The tools
Situation, tag, or keywords. Returns slug, title, boxCount, imageUrl.
One slug: text boxes, formula, examples, CDN template image.
Prompt in, caption variants out. Not pixels.
Slug + captions. jpeg by default. Returns imageBase64.
Agentic MPP, credits URLs, or local generate (dev).
Studio deep link with the situation in the query string.
How to use them
The model picks the tool. You still want an order of operations.
If the user named a situation, start with search_templates or skip ahead to generate_meme_captions. When they named a format (Drake, two buttons), pin preferredTemplateSlug or pass template to get_create_url.
If they should see the meme in chat, don't stop at captions. Call render_meme_still. Display imageBase64. Don't invent a CDN URL for the finished file.
If a human will edit or download, use get_create_url instead of rendering. The studio download is PNG.
If they asked to put a face on a template, use face_swap_meme. Customer agents: settlement=agentic. Humans: credits at /pricing. Local stdio only: omit settlement and pass the face bytes.
HTTP POST /api/render is a different contract: you must set "format": "jpeg" (or webp/png). Omitting format renders mp4. MCP render_meme_still already defaults to jpeg.
Empty results
A template miss is valid. Say the slug is not in the catalog. Don't invent boxes or a finished image URL. Caption guests hitting the daily cap get 429 on HTTP; tell them to sign in.
What to explore next
- Each tool page for arguments and a sample
- Face swap & MPP for the 402 handshake
- Agent skill for the dispatch file