simplypng-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@simplypng-mcpremove background from the product photo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
simplypng-mcp
MCP server for SimplyPNG background removal APIs.
Exposes SimplyPNG's background removal capabilities as MCP tools, letting AI agents (Claude, GPT, etc.) process images programmatically without UI interaction.
Tools
Tool | Description |
| Check credit cost before processing |
| Remove background from a single image |
| Remove backgrounds from up to 50 images |
| Poll status of a single job or batch |
| Get signed download URL for a completed job |
Related MCP server: forgemesh-imagegen
Requirements
Node.js 18+
A SimplyPNG API key — get one at https://simplypng.app/dashboard/api-keys
Quickstart (Local / Claude Desktop)
git clone https://github.com/SimplyPNG/simplypng-mcp.git
cd simplypng-mcp
npm install
npm run buildAdd to your Claude Desktop config (%AppData%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"simplypng": {
"command": "node",
"args": ["C:\\path\\to\\simplypng-mcp\\build\\index.js"],
"env": {
"SIMPLYPNG_API_KEY": "sp_live_your_key_here"
}
}
}
}Quickstart (HTTP / Remote)
SIMPLYPNG_API_KEY=sp_live_your_key_here npm run serve
# MCP endpoint: POST http://localhost:3000/mcpEnvironment Variables
Variable | Required | Default | Description |
| Yes | — | Your SimplyPNG API key |
| No |
| Override for staging |
| No |
| HTTP server port (HTTP transport only) |
Copy .env.example to .env and fill in your key.
Development
npm run dev # stdio mode via tsx (no build step)
npm run serve # HTTP mode via tsx
npm run type-check # TypeScript check without build
npm run build # Compile to build/Authentication
This server is a thin adapter — your API key is passed via SIMPLYPNG_API_KEY and forwarded as Authorization: Bearer to the SimplyPNG API. The server stores no credentials itself.
API keys: sp_live_xxx (production) or sp_test_xxx (testing).
Credit Usage
Mode | Credits per image |
Fast (default) | 1 credit (2500px max) |
HD ( | 2 credits (4096px max) |
Use estimate_credits before processing to verify you have sufficient balance.
License
MIT — see LICENSE
Available Tools
5 toolsbatch_remove_backgroundBatch Remove BackgroundA
Remove backgrounds from multiple images in a single batch (up to 50). MANDATORY WORKFLOW — follow these steps in order: (1) Call estimate_credits first (imageCount = number of images). Show user total cost + balance. Ask for confirmation. (2) Only call this tool AFTER the user confirms. (3) After this returns a batchId, poll get_job_status every 5 seconds until all images complete. Credit cost: 1 credit/image (Fast mode, default) or 2 credits/image (HD mode). Fast mode works with any input size — large images are downsampled to 2500px output. Use HD only when user needs output above 2500px, or subjects have fine edge detail (hair, fur, feathers). refineEdges (requires HD): removes color bleeding at edges — recommend for products on colored backgrounds. No extra credit. IMPORTANT about local files: do NOT use base64 — it fills the conversation context. Direct users to share URLs or use https://simplypng.app.
| Name | Required | Description | Default |
|---|---|---|---|
| hdMode | No | Fast mode (default, 1 credit/image): input resized to 2500px max — OUTPUT capped at 2500px. Works with any input size. HD mode (2 credits/image): input preserved up to 4096px — OUTPUT up to 4096px. Use HD ONLY when: (1) user explicitly requests HD/high-definition/4K output, (2) user needs output above 2500px, or (3) subjects have fine detail like hair/fur/feathers. Default: false. Never upgrade to HD on your own initiative. | |
| images | Yes | Array of images to process (max 50) | |
| background | No | ||
| outputType | No | Output type for all images | |
| webhookUrl | No | HTTPS URL to receive a POST callback when the batch completes | |
| refineEdges | No | Enable edge color refinement for all images. REQUIRES hdMode: true. No extra credit cost. Recommend when subjects have complex edges against strongly colored backgrounds. | |
| outputFormat | No | ||
| idempotencyKey | No | Optional idempotency key to prevent duplicate batches | |
| backgroundColor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description fully covers behavior: credit costs (1 or 2 credits/image), output size limits (2500px for Fast, 4096px for HD), base64 token consumption warning, and the mandatory workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-organized with numbered steps and clear sections. It front-loads the purpose and mandatory workflow. Minor redundancy could be trimmed, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage given complexity: 9 parameters, nested objects, multiple modes, workflow dependencies, credit costs, output limitations, base64 warnings, webhook option, and idempotency. No output schema but return value (batchId) is mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, but the description adds significant context beyond schema: explains workflow integration, credit cost implications of hdMode, and base64 warnings. However, parameters like background and backgroundColor are not elaborated further in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes backgrounds from multiple images in a batch (up to 50), distinguishing it from sibling tools like remove_background (single image) and estimate_credits (credit estimation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a mandatory 3-step workflow: call estimate_credits first, get user confirmation, then call this tool and poll get_job_status. Also explains when to use HD vs Fast mode and refineEdges, and warns against base64 for large files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_resultsDownload ResultsA
Get the current signed download URL for a completed job. URLs expire after 1 hour — call this tool again if the URL has expired.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to retrieve download URL for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the 1-hour expiration behavior, which is critical. No annotation provided, so description carries full burden; could mention idempotency or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers the essential purpose and key behavioral trait (expiration).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value by stating the job must be completed, beyond the schema's 'Job ID to retrieve download URL for'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a signed download URL for a completed job, distinguishing it from other tools like estimate_credits or remove_background.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for completed jobs but lacks explicit guidance on when not to use or comparison with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_creditsEstimate CreditsA
Estimate credit cost and check balance. Fast mode (default): 1 credit/image — input resized to 2500px, output up to 2500px. Works with any input size. HD mode: 2 credits/image — input preserved up to 4096px, output up to 4096px. REQUIRED: Call this before EVERY remove_background or batch_remove_background call. After calling, present the result to the user and ask: "This will use X credit(s) (you have Y). Proceed?" Only call the processing tool AFTER the user confirms. If canAfford is false, tell the user they need more credits before proceeding.
| Name | Required | Description | Default |
|---|---|---|---|
| hdMode | No | Fast mode (default, 1 credit/image): input is resized to 2500px max before processing — OUTPUT is up to 2500px. Fast mode works with ANY input size (even 4000px images), but output resolution is capped at 2500px. HD mode (2 credits/image): input preserved up to 4096px — OUTPUT up to 4096px. Use HD ONLY when: (1) user explicitly requests HD/high-definition/4K output, or (2) user needs output resolution above 2500px, or (3) subject has fine edge detail like hair, fur, or feathers. Never default to HD without one of those reasons. | |
| imageCount | Yes | Number of images to process |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses credit cost per mode, resolution limits for input and output, and the workflow (check balance, get confirmation). It transparently defines behavior for both modes and addresses canAfford=false scenario.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
All sentences are informative and front-loaded. The description is well-structured with mode blocks and required steps. Slightly verbose but no redundancy; earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema, the description covers return values (credit cost, canAfford) and user interaction. It provides all necessary context for a pre-processing estimation tool, including fallback for insufficient credits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds significant context beyond schema, especially for hdMode (detailed usage conditions) and imageCount (range constraints already in schema but reiterated). It clarifies parameter semantics beyond bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates credit cost and checks balance, with specific credit rates for fast and HD modes. It explicitly positions itself as a mandatory prerequisite for remove_background and batch_remove_background, distinguishing its role from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'REQUIRED' usage instruction to call before processing tools, including post-call actions (display result, ask user confirmation). It also specifies conditions for HD mode and handling insufficient credits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_statusGet Job StatusA
Check the status of a single job or batch. Returns status (pending/processing/succeeded/failed) and result URLs for completed jobs. Poll every 2–5 seconds until status is succeeded or failed.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Single job ID returned by remove_background | |
| batchId | No | Batch ID returned by batch_remove_background |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes return content and polling suggestion, but doesn't mention errors, rate limits, or behavior if both parameters provided. Acceptable for simple tool but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with purpose and immediate details. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description adequately covers return type and polling guidance. Missing edge cases like simultaneous batch+jobId or timeouts, but overall complete for intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions. Description adds value by linking jobId to remove_background and batchId to batch_remove_background, clarifying source. No extra format details needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it checks status of single job or batch, returns status and result URLs. Verbs 'check' and 'returns' are specific. Distinguishes from sibling tools that create or download jobs via context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends polling every 2-5 seconds until terminal status. No explicit when-not, but context implies use after job creation tools. Could add note about avoiding for initial submission, but adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_backgroundRemove BackgroundA
Remove the background from a single image. MANDATORY WORKFLOW — follow these steps in order: (1) Call estimate_credits first (imageCount=1). Show user the cost + balance. Ask for confirmation. (2) Only call this tool AFTER the user confirms. (3) After this returns a jobId, poll get_job_status every 3 seconds until status is "succeeded". (4) Call download_results to get the final download URL. Credit cost: 1 credit (Fast mode, default) or 2 credits (HD mode). Fast mode works with any input size — large images are just downsampled to 2500px output. Use HD only when user needs output above 2500px, or subject has fine edge detail (hair, fur, feathers). refineEdges (requires HD): removes color bleeding at edges — recommend for products on colored backgrounds. No extra credit. IMPORTANT about local files: if user has a local file, do NOT use base64 — base64 tool inputs are stored in the conversation context and a 1MB image consumes ~340k tokens, making the conversation unusable. Instead tell the user: "Please share a public URL for your image (e.g. Google Drive share link, iCloud, Dropbox) or use https://simplypng.app directly."
| Name | Required | Description | Default |
|---|---|---|---|
| image | Yes | HTTPS URL of the image — STRONGLY PREFERRED. Use a URL whenever possible. CRITICAL WARNING about base64: MCP tool inputs are stored in the conversation context. A 1MB image as base64 consumes ~340,000 conversation tokens, quickly making the conversation unusable. Only use base64 for very small images (under 50KB original file size). For local files: tell the user to share a public HTTPS URL (e.g. upload to Google Drive and copy share link, iCloud shared link, Dropbox, or any image hosting). If they have no URL option, direct them to https://simplypng.app instead. Supported URL or base64 formats: JPEG, PNG, WebP, HEIC/HEIF. Base64 server-side size limit: 4MB. | |
| hdMode | No | Fast mode (default, 1 credit): input resized to 2500px max — OUTPUT capped at 2500px. Works with any input size. HD mode (2 credits): input preserved up to 4096px — OUTPUT up to 4096px. Use HD ONLY when: (1) user explicitly requests HD/high-definition/4K output, (2) user needs output resolution above 2500px, or (3) subject has fine edge detail (hair, fur, feathers). Never use HD based on input size alone — Fast mode handles large inputs fine. Default: false. | |
| background | No | Background fill. transparent requires PNG output. Default: transparent | |
| outputMode | No | Output format. download_url returns a signed URL; base64_json returns raw base64 data. Default: download_url | |
| outputType | No | original: keep original crop. centered: center subject on square canvas. Default: original | |
| refineEdges | No | Enable edge color refinement to remove background color bleeding at subject edges. REQUIRES hdMode: true — the API will return an error if hdMode is false or omitted. No additional credit cost — included in HD mode (2 credits total). Recommend when: subject has complex edges against a strongly or evenly colored background (e.g. product on white/grey backdrop, portrait with solid background). | |
| outputFormat | No | Output file format. Default: png | |
| idempotencyKey | No | Optional idempotency key to prevent duplicate jobs | |
| backgroundColor | No | Hex color for custom background, e.g. #FF5733 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses credits (1 or 2), async nature (returns jobId for polling), size limits (2500px fast, 4096px HD), refineEdges requirement, base64 token cost, and output modes. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but every sentence earns its place due to complexity. Information is front-loaded (purpose and mandatory workflow), then details. Slightly verbose on base64 warnings but justified by importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all aspects: workflow, credit cost, parameter usage, file handling, sibling relationships, and output retrieval (via download_results). No gaps given the complexity and absence of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage, but description adds critical context beyond schemas: image parameter includes warnings and workarounds, hdMode explains when to use, refineEdges explains requirement and recommendation. Great added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove the background from a single image' and differentiates from siblings by indicating the mandatory workflow involving estimate_credits, get_job_status, and download_results. It also contrasts with batch_remove_background (single vs batch).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit step-by-step workflow: call estimate_credits first, show cost, get confirmation, then call this tool, poll get_job_status, call download_results. Also gives guidance on when to use HD mode and refineEdges, and warns against base64 for large files, directing users to use public URLs or simplypng.app.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.5- First observed
batch_remove_background - First observed
download_results - First observed
estimate_credits - First observed
get_job_status - First observed
remove_background
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: estimating credits, removing backgrounds singly or in batches, polling job status, and downloading results. No overlap.
All tool names follow a consistent verb_noun pattern in snake_case: download_results, estimate_credits, remove_background, batch_remove_background, get_job_status.
5 tools tightly cover the service's workflow without redundancy. The count is appropriate for a focused background removal MCP server.
The essential lifecycle (estimate, process, poll, download) is covered. A minor gap is the lack of an upload tool, but the workaround of using URLs is reasonable for this domain.
Maintenance
Related MCP Connectors
MCP server for Pixapi: check live credit pricing and balance, then generate images and video.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
AI-powered image processing via GPU. Remove backgrounds and upscale images (2x/4x) directly from any MCP client. OAuth 2.1 authenticated, returns processed images inline with download links. Free credits on signup at maskr.io.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP Server that integrates with Stability AI's API to provide high-quality image generation, editing, and manipulation capabilities including background removal, outpainting, search-and-replace, and upscaling.46 npm84MIT

forgemesh-imagegenofficial
AlicenseAqualityCmaintenanceMCP server for AI image generation with automatic USDC payments on Base mainnet. Generate, remove backgrounds, and upscale images via simple tool calls.4101 npm1MIT- AlicenseNot gradedqualityBmaintenanceMCP server for generating, editing, and processing images via multiple providers including Kilo, OpenRouter, OpenAI, and Gemini, with local tools for background removal, resizing, and cropping.19 npm3MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides image generation using Google's Nano Banana Gemini models, with additional tools for background removal, upscaling, and format conversion via deterministic post-processing.1MIT