The image compression MCP server
An image compression MCP server lets an AI assistant compress and convert images for you. Blinkimg’s MCP server works in Claude, ChatGPT, Claude Code, Cursor, VS Code, Gemini CLI and Codex, on web images and on files on your disk. Every account gets 500 free credits a month.
- Sign in or API key
- Local files too
- Exact byte caps
1 credit to compress · 2 to convert · no card
Quick start
- Server URL
- https://api.blinkimg.com/mcp
- Claude Code
- claude mcp add --transport http blinkimg https://api.blinkimg.com/mcp
- Then ask
- Convert every PNG in ./public to AVIF under 100 KB
Each figure is a file the engine produced, not an estimate. How we measure names the source and the settings.
No key to paste
Connect with one click
Apps that support MCP sign-in connect by URL. You sign in on blinkimg.com once, allow the app on one screen, and the tools run on your account.
Claude on the web, desktop and mobile
- Open Customize > Connectors and choose Add custom connector.
- Paste
https://api.blinkimg.com/mcpand select Add. - Select Connect, sign in to Blinkimg and allow the app.
Claude’s Free plan allows one custom connector. Claude’s connector docs
ChatGPT in developer mode
- In Settings, open Connectors (Apps), then Advanced settings, and turn on Developer mode.
- Create a connector with
https://api.blinkimg.com/mcpand OAuth. - Sign in to Blinkimg and allow the app.
Developer mode is on Plus, Pro, Business, Enterprise and Education, on the web. OpenAI’s developer mode guide
Claude Code with sign-in
Terminalclaude mcp add --transport http blinkimg https://api.blinkimg.com/mcpThen type
/mcpin a session and sign in to Blinkimg. Add no header: a configured Authorization header turns the sign-in off.
Other apps that follow the MCP authorization spec sign in the same way. Each app you connect shows up in Settings under Connected apps, with Disconnect beside it.
For developer tools
Connect with an API key
Developer tools send Authorization: Bearer bk_... or X-API-Key: bk_... with every call. Keep the key in an environment variable named BLINKIMG_API_KEY, then pick your client.
Claude Code
One command for you alone, or a .mcp.json in the project root that keeps the key out of git. Add --scope user after the name to use the server in every project.
claude mcp add --transport http blinkimg https://api.blinkimg.com/mcp \
--header "Authorization: Bearer YOUR_KEY"{
"mcpServers": {
"blinkimg": {
"type": "http",
"url": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer ${BLINKIMG_API_KEY}"
}
}
}
}Watch out: a configured Authorization header turns off the OAuth sign-in. Leave the header out to sign in instead. claude mcp list shows the server as Connected, Needs authentication or Failed to connect.
Checked against the Claude Code MCP docs on 1 October 2026.
Cursor
~/.cursor/mcp.json for every project, or .cursor/mcp.json for one. Cursor reads the key from your environment.
{
"mcpServers": {
"blinkimg": {
"url": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer ${env:BLINKIMG_API_KEY}"
}
}
}
}Watch out: Cursor fills ${env:BLINKIMG_API_KEY} from the environment it started in. On a Mac, an app opened from the Dock does not see variables exported in ~/.zshrc, so paste the key in its place or start Cursor from a terminal.
Checked against the Cursor MCP docs on 1 October 2026.
VS Code with GitHub Copilot
.vscode/mcp.json in your workspace, on VS Code 1.99 or later. VS Code asks for the key once, masks it and stores it, so the key never lands in the file.
{
"inputs": [
{
"type": "promptString",
"id": "blinkimg-key",
"description": "Blinkimg API key",
"password": true
}
],
"servers": {
"blinkimg": {
"type": "http",
"url": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer ${input:blinkimg-key}"
}
}
}
}Watch out: the top-level key is servers, not mcpServers, and the server needs "type": "http". On Copilot Business or Enterprise, an admin must turn on the MCP servers in Copilot policy first; it is off by default.
Checked against the VS Code MCP docs on 1 October 2026.
Windsurf (Devin Desktop)
Windsurf is now called Devin Desktop. Both of its agents read ~/.config/devin/mcp_config.json on macOS and Linux, or %APPDATA%\devin\mcp_config.json on Windows.
{
"mcpServers": {
"blinkimg": {
"url": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer ${env:BLINKIMG_API_KEY}"
}
}
}
}Watch out: the Cascade agent fills ${env:BLINKIMG_API_KEY}, and an unset variable becomes empty, which ends in a 401. If the Devin Local agent does not connect, paste the key in its place.
Checked against the Devin Desktop MCP docs on 1 October 2026.
Gemini CLI
One command, or ~/.gemini/settings.json. The command installs for the current project by default; -s user installs it for every project.
gemini mcp add -s user --transport http \
--header "Authorization: Bearer YOUR_KEY" \
blinkimg https://api.blinkimg.com/mcp{
"mcpServers": {
"blinkimg": {
"httpUrl": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer ${BLINKIMG_API_KEY}"
}
}
}
}Watch out: use httpUrl, not url. In Gemini CLI, url means the older SSE transport, and this server speaks Streamable HTTP.
Checked against the Gemini CLI MCP docs on 1 October 2026.
Codex
The command writes ~/.codex/config.toml, which the Codex CLI, the IDE extension and the ChatGPT desktop app share. The key stays in the environment, never in the file.
export BLINKIMG_API_KEY="bk_..."
codex mcp add blinkimg --url https://api.blinkimg.com/mcp --bearer-token-env-var BLINKIMG_API_KEY[mcp_servers.blinkimg]
url = "https://api.blinkimg.com/mcp"
bearer_token_env_var = "BLINKIMG_API_KEY"Watch out: bearer_token_env_var takes the name of the variable, not the key. Export the variable in the shell you start Codex from.
Checked against the Codex MCP docs on 1 October 2026.
Zed
Zed’s settings.json (run zed: open settings file), under context_servers. Zed documents no variables in headers, so the key is pasted.
{
"context_servers": {
"blinkimg": {
"url": "https://api.blinkimg.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}Watch out: leave headers out and Zed offers the standard MCP sign-in instead, so you can skip the key.
Checked against the Zed MCP docs on 1 October 2026.
Cline
In the extension, the MCP Servers icon, then Configure, then Configure MCP Servers. The Cline CLI reads ~/.cline/mcp.json.
{
"mcpServers": {
"blinkimg": {
"type": "streamableHttp",
"url": "https://api.blinkimg.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_KEY"
}
}
}
}Watch out: set "type": "streamableHttp". Without it, Cline falls back to the legacy SSE transport.
Checked against the Cline MCP docs on 1 October 2026.
No key yet? Get an API key from your account. Keys start with bk_.
Example prompts
Compress images with Claude or your editor: prompts to try
Ask in plain words. A file on your disk needs an agent that runs commands, such as Claude Code, Cursor or Codex; in Claude or ChatGPT, give a public image address.
“Convert every PNG in ./public to AVIF under 100 KB”
The agent calls
upload_imagefor each file and runs thecurlcommand it returns, thenconvert_imagewithtarget_formatavif andtarget_bytes100000.“Compress https:/
/ example.com/ hero.jpg to under 200 KB and keep it a JPEG” One
compress_imagecall with theimage_urlandtarget_bytes200000.“Turn photo.heic into a WebP no wider than 1600 pixels”
upload_image, thenconvert_imagewithtarget_formatwebp andmax_width1600.“Scan https:/
/ example.com and tell me which images cost the most” analyze_pagereturns each image, what it could save, a score and a report link.“How many Blinkimg credits do I have left?”
get_quotareads the balance and the day the free allowance resets.
The tools
Six tools, and what each one costs
Every tool runs on your account and spends credits from one balance, the same one as the developer API.
| Tool | What it does | Credits |
|---|---|---|
| upload_image | Sends a file from your computer. It returns a one-time upload link, good for 15 minutes, and a ready curl command that sends the file straight to storage. | Free |
| compress_image | Makes an image smaller, from an image_url or an upload_id. It keeps the format unless target_format names another one. | 1 credit; 2 when target_format changes the format |
| convert_image | Converts to JPEG, PNG, WebP or AVIF, compressed on the way. HEIC, JPEG, PNG, WebP and AVIF go in. | 2 credits |
| get_job | Reads a job by its id: the status, the sizes before and after, and the download link once it has succeeded. | Free |
| analyze_page | Scans a public web page for image weight: what its images could save, a score and an estimated load-time gain. | Free; counts against your plan's scans a day (25 on Free) |
| get_quota | Reads your plan, the credits left, when the free allowance resets, and the limits that apply to your key. | Free |
analyze_page runs the same scan as the website image analyzer.
Options on the two image tools
target_format: jpeg, png, webp or avif.quality: 1 to 100, orauto, the engine’s content-aware choice and the default.target_bytes: a hard cap on the output size. The engine lowers quality, then dimensions, until the file fits, or says why it cannot.min_bytes: a floor, for forms that refuse a file under a minimum size.max_widthandmax_height: fit the picture inside a box. It is never enlarged.keep_metadata: keep EXIF and other metadata. The default strips it.
What every result carries
A download link good for an hour, a
download_command(a readycurl -oline that saves the file), and the sizes before and after. The file itself stays for a day.A tool waits up to 25 seconds for the engine. A job still running after that comes back as a
job_idforget_job.
Before you rely on it
Limits and privacy
The numbers that bound a session, and what happens to every file it sends.
Limits
- 500 free credits a month on every account, reset on the 1st. Plans and packs add more: image API pricing.
upload_imagetakes a file up to your plan’s cap, 30 MB on Free.get_quotareturns the exact caps for your key.- One key runs 2
image_urldownloads at a time. Another call waits in line for up to 20 seconds. - Gemini Enterprise is not supported yet: it needs an OAuth client that an admin creates.
Your files
- Every file is deleted within 24 hours of the upload.
- Metadata such as EXIF and GPS is stripped unless you set
keep_metadata. - No person opens your files, and no image trains a model.
- An app you connect gets a token that works on the MCP server alone. Disconnect it in Settings at any time.
The privacy policy says what a job record keeps, and for how long.
When it does not connect
Troubleshooting
Most failed connections come down to one of these.
| Symptom | Fix |
|---|---|
| Gemini CLI does not connect | Use httpUrl. In Gemini CLI, url means the older SSE transport. |
| Cline does not connect | Add "type": "streamableHttp". Without it, Cline uses the legacy SSE transport. |
| VS Code does not list the server | In .vscode/mcp.json the top-level key is servers, not mcpServers, with "type": "http" on the server. |
| Codex sends no key | bearer_token_env_var takes the variable’s name, BLINKIMG_API_KEY, not the bk_ key itself. |
| A 401 in an app opened from the Mac Dock | An app opened from the Dock does not see variables exported in ~/.zshrc. Paste the key, or start the app from a terminal. |
| Claude Code says Missing environment variable | BLINKIMG_API_KEY was not set when Claude Code started, so the header carried the placeholder, not a key. Set it, then start Claude Code again. |
| Claude Code never offers to sign in | A configured Authorization header turns off the OAuth sign-in. Remove the header to sign in. |
| “This key already has 2 images downloading” | One key runs 2 image_url downloads at once. Another call waits in line for up to 20 seconds, then asks you to try again. |
Everything else
Questions about the MCP server
The apps, the cost, local files, the formats and what happens to your images.
Does the Blinkimg MCP server work with ChatGPT?
Can I compress images with Claude?
Is the Blinkimg MCP server free?
Can the MCP server compress images on my computer?
Which image formats does the MCP server take?
Is there a TinyPNG MCP server?
Is my image stored after the MCP server processes it?
Does the MCP server work with Gemini?
Page updated
Connect Blinkimg to your assistant
500 credits a month, no card. Sign in from Claude or ChatGPT, or take a key for your editor.
