Guides

Iminify MCP server

Connect Claude, ChatGPT, Cursor or VS Code to Iminify's MCP server and let an AI agent compress, convert and resize images and scan pages for you.

Iminify runs an MCP server, so an AI agent can compress, convert and resize images and scan pages for you, straight from the chat or the editor you already use. Ask Claude to "make these product photos WebP under 1600 pixels wide" and it calls Iminify, waits for the results and hands you the download links.

The server lives at one address:

TEXT
https://www.iminify.com/mcp

It speaks MCP over streamable HTTP and signs you in with OAuth, so most apps only need that address. The first time you connect, the app sends you to Iminify to approve it, and from then on it works as you: your images, your plan, your counts.

Connecting an app

You need an account with a verified email address. The free plan works.

Claude

In Claude (the web app or the desktop app), open Settings, then Connectors, and add a custom connector with the address above. Claude opens Iminify in a browser tab; sign in if you aren't already, check what it asks for, and press Approve.

Claude Code

Shell
claude mcp add --transport http iminify https://www.iminify.com/mcp

Then run /mcp inside Claude Code and pick Iminify to sign in.

Cursor

Add the server to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project:

JSON
{
  "mcpServers": {
    "iminify": {
      "url": "https://www.iminify.com/mcp"
    }
  }
}

Cursor shows a sign-in button next to the server in its MCP settings.

VS Code

Add it to .vscode/mcp.json in your workspace:

JSON
{
  "servers": {
    "iminify": {
      "type": "http",
      "url": "https://www.iminify.com/mcp"
    }
  }
}

ChatGPT

ChatGPT connects to MCP servers as connectors. Custom ones currently sit behind developer mode in its settings; create a connector with the address above and OAuth as the sign-in, and approve it on Iminify when ChatGPT sends you there.

Anything else

Any client that speaks MCP over HTTP can use the same address. If it can't do OAuth, give it an API key instead, sent as a header on every request:

TEXT
Authorization: Bearer <your-api-key>

In Claude Code that's claude mcp add --transport http iminify https://www.iminify.com/mcp --header "Authorization: Bearer $IMINIFY_API_KEY".

What the agent can do

Tool What it does
compress_images Compress, convert or resize up to 20 images in one call, from their addresses, from upload links, or sent inline
create_upload_link Get a one-time address to send a local file to
get_image One image's status, sizes, savings and download links
list_images Your images, newest first, filtered by status, source or scan
create_zip One download link for several finished images, or all of a scan's
scan_page Scan a web page for every image it loads and compress them all
get_scan A scan's progress, its images and what it saved
rename_image Change the name a result downloads under
share_image Give a result a public page to send to someone
delete_image Delete an image and both its files, for good
get_usage Your plan, its limits and what today has used

The settings are the API's: a level, a format, a width, a height or a scale, and whether to keep the metadata. You rarely need to name them. Say what you want in plain words and the agent picks them.

Files on your computer

An agent in the cloud, like Claude on the web, can only work with images that have an address on the internet, or small files it sends inline. An agent that can run commands on your machine, like Claude Code or Cursor, can send local files of any size your plan takes:

  1. It calls create_upload_link with the file's name and gets back an address that works once, for 15 minutes.

  2. It sends the file there with a PUT, the way this command does:

    Shell
    curl --fail --upload-file hero.png "<upload_url>"
  3. It calls compress_images with the upload_id it got in step 1.

A file that is sent but never compressed is deleted about a day after it arrives. Inline files, sent as base64 inside the call, are limited to 4 MB each; anything bigger goes through an upload link.

The server never puts image bytes in its answers. Every image comes with a download_url for the optimized copy and another for the original, and create_zip gives one for a whole batch. These links work without a key, so the agent can fetch them or simply show them to you, and they stop working after 60 minutes. Ask again for fresh ones.

Work runs in the background, as it does everywhere else. compress_images and scan_page answer straight away with the work queued, and the agent checks back with get_image or get_scan until it's done. Each answer carries a hint when there is something to wait for or to know, like an image Iminify couldn't make any smaller with the settings used.

Limits

The MCP server is one more door onto your account, not a separate one. Every image an agent queues counts against your plan's daily images and compressions a minute, the same counts the website and the API spend, and every call to the server counts as an API request. Limits and quotas explains each one, and the pricing page has the numbers for every plan.

When a limit is reached, or anything else is refused, the tool answers with an error carrying the API's message and code (listed on the errors page), plus retry_after in seconds when waiting will help. A good agent tells you the message rather than retrying in a loop.

Disconnecting an app

Settings > Connected apps lists every app you've approved, with when it last called. Disconnect one there and it stops working straight away; it has to be approved again to come back. An app that goes unused for 30 days has to be connected again anyway.

An app connected with an API key instead is removed by deleting that key in Settings > API Tokens.