Help
Troubleshooting
The failures that come up most, and the one-line fix for each.
The agent describes a meme instead of making one
It has the tools but no instruction to use them. Say what you want back — "call caption_meme and show me the image", or "give me an editor link". An agent skill makes this stick across conversations.
The agent hands over a URL that 404s
It made the URL up. A render exists only once caption_meme or POST /api/v1/render returns one, and the path is a content hash nothing can guess. Tell the agent explicitly not to invent one; the skill on this site includes that rule.
Every render comes back 401
No key on the request, or the key is being sent to the wrong place. Renders and suggest_memes are the only calls that need one — if searching works and rendering doesn't, the credential is the problem, not the connection. See Auth.
The MCP client connected but won't authorize
Clients that support OAuth discover it from /.well-known/oauth-protected-resource. Clients that don't need the key as a header: x-api-key: mw_... in the server's config. A client that supports neither can still use the open tools; it just can't render.
"That template has no text box ..."
The captions object used an id the template doesn't have. Call get_template and use the id values from textBoxes — or pass an array instead, which is applied in box order and can't be wrong about names.
"That template is a still; ask for png"
format: "gif" was sent for a still template. Stills render as PNG. Only templates with kind: "gif" can render as GIFs.
The captions are tiny
They're too long. Captions are auto-fitted: a short line fills the box, a sentence shrinks until it fits. Cut the caption rather than fighting the renderer — a meme caption that needs a whole sentence is usually the wrong caption.
The GIF came back overBudget
It's a valid file, just bigger than the preset targets. Re-render with compact, or emoji for a Discord emoji slot. Nothing is dropped from the animation to hit a ceiling, because the browser and the server run the same pipeline frame for frame.
A face swap returns 402
The account is out of credits. A swap costs 2 and a new account gets 10. Nothing was spent and nothing was rendered, so the call is safe to retry once the balance is topped up.
Suggestions return AI_UNAVAILABLE
The model behind suggest_memes is down. search_templates and get_template still work, so an agent that knows the format it wants can carry on and write the captions itself.
Still stuck
The OpenAPI spec is generated from the schemas the server validates against, so it is the authority on any request shape. For anything else, the answer is usually in Tools.