OpenClip: background removal
remove_background takes an image and returns a transparent PNG with the background cut out.
It is FREE, it needs an OpenClip account but no subscription and no credits. There are no
parameters to tune, one call does the whole job.
Setup (once)
OpenClip is a remote MCP server at https://openclip.app/mcp. Sign in with your OpenClip
account when the OAuth prompt appears, there is no API key to copy.
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp, then/mcpto authorize. - Claude Desktop / web: Settings, Connectors, "Add custom connector", paste the URL, sign in.
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Header-only clients: mint an MCP token at
openclip.app/settings/connectand connect tohttps://openclip.app/mcp/keywithAuthorization: Bearer <token>.
Sanity check: call get_account.
The loop
- Upload.
create_upload(filename, content_type)returns anidand anupload_url. PUT the raw bytes toupload_url, then pass theidasfile. Do NOT callcomplete_upload, that starts the paid clipping pipeline. Free tools read the uploaded file directly. - Call.
remove_background(file). No other params. - Poll. Returns a
tool_jobhashid. Pollget_tool_job_status(tool_job)every 5 to 10 seconds.queued/processingare in flight,completedreturns a permanent CDNoutputsURL for the transparent PNG,failedreturnserror. - Return the PNG URL. It is transparent, so it will look like it has a checkerboard or a black background in some previews. That is expected, the alpha channel is there.
Rules
- Always poll, the tool is async.
- The output is always PNG. Transparency needs an alpha channel, so jpg is not an option. If
the user wants it flattened onto a colour or resized afterwards, chain
edit_image(seeopenclip-thumbnails). - Output URLs are permanent CDN links, not signed or expiring.
- Free usage is rate limited per day with a per-file size cap. The error text explains how to lift a limit.
Example prompts to actions
- "Remove the background from this photo" -
create_upload, PUT bytes,remove_background(file), poll, return the transparent PNG URL. - "Cut out the product for a listing" - same, then
edit_image(file, operation="resize", ...)on the output if they need specific dimensions. - "I need this logo on transparent" - same, then hand back the PNG.
Related
Resizing, cropping, and reformatting images is openclip-thumbnails (edit_image). Pulling a
frame out of a video to cut out is also openclip-thumbnails (extract_thumbnails).