Skip to main content
Glama
SimplyPNG
by SimplyPNG

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

estimate_credits

Check credit cost before processing

remove_background

Remove background from a single image

batch_remove_background

Remove backgrounds from up to 50 images

get_job_status

Poll status of a single job or batch

download_results

Get signed download URL for a completed job

Related MCP server: forgemesh-imagegen

Requirements

Quickstart (Local / Claude Desktop)

git clone https://github.com/SimplyPNG/simplypng-mcp.git
cd simplypng-mcp
npm install
npm run build

Add 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/mcp

Environment Variables

Variable

Required

Default

Description

SIMPLYPNG_API_KEY

Yes

Your SimplyPNG API key

SIMPLYPNG_API_URL

No

https://simplypng.app

Override for staging

PORT

No

3000

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 (hdMode: true)

2 credits (4096px max)

Use estimate_credits before processing to verify you have sufficient balance.

License

MIT — see LICENSE

Available Tools

5 tools
batch_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hdModeNoFast 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.
imagesYesArray of images to process (max 50)
backgroundNo
outputTypeNoOutput type for all images
webhookUrlNoHTTPS URL to receive a POST callback when the batch completes
refineEdgesNoEnable edge color refinement for all images. REQUIRES hdMode: true. No extra credit cost. Recommend when subjects have complex edges against strongly colored backgrounds.
outputFormatNo
idempotencyKeyNoOptional idempotency key to prevent duplicate batches
backgroundColorNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to retrieve download URL for

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hdModeNoFast 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.
imageCountYesNumber of images to process

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdNoSingle job ID returned by remove_background
batchIdNoBatch ID returned by batch_remove_background

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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."

ParametersJSON Schema
NameRequiredDescriptionDefault
imageYesHTTPS 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.
hdModeNoFast 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.
backgroundNoBackground fill. transparent requires PNG output. Default: transparent
outputModeNoOutput format. download_url returns a signed URL; base64_json returns raw base64 data. Default: download_url
outputTypeNooriginal: keep original crop. centered: center subject on square canvas. Default: original
refineEdgesNoEnable 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).
outputFormatNoOutput file format. Default: png
idempotencyKeyNoOptional idempotency key to prevent duplicate jobs
backgroundColorNoHex color for custom background, e.g. #FF5733

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 5 tool updatesv0.1.5
    • First observedbatch_remove_background
    • First observeddownload_results
    • First observedestimate_credits
    • First observedget_job_status
    • First observedremove_background

TDQS

A4.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: estimating credits, removing backgrounds singly or in batches, polling job status, and downloading results. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: download_results, estimate_credits, remove_background, batch_remove_background, get_job_status.

Tool Count5/5

5 tools tightly cover the service's workflow without redundancy. The count is appropriate for a focused background removal MCP server.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers