ImageSVG
Manage connections

ImageSVG × ChatGPT

Convert images to SVG in ChatGPT

ImageSVG turns generated or attached images into SVG in a ChatGPT panel. Best for logos, icons and flat illustrations. Currently supports ChatGPT only.

Connect ImageSVG

https://imagesvg.com/mcp
  1. Open ChatGPT Plugins, choose Add custom MCP server and enter the address below. Your account or workspace must allow custom connections.
  2. Choose OAuth authentication, create the plugin, then sign in to ImageSVG and allow the connection when prompted.
  3. Return to a conversation, select ImageSVG with @ and ask it to convert your image. No local installation is needed.

ChatGPT · ImageSVG

Convert and download

  1. Ask ChatGPT to use the generated or attached image. It appears in the ImageSVG panel; you can also choose a PNG, JPEG or WebP.
  2. Click Convert. Adjust image type and detail if needed, then check the result, especially small text and fine lines.
  3. Click Download to save the SVG before closing the panel. The download may open in your browser.
Use ImageSVG to convert this image to SVG.

Account and allowance

ImageSVG and ChatGPT share your website allowance: up to 3 free images per UTC day and 15 per month, whichever limit is reached first. An active website pass also applies.

Common questions

Which images can I convert?

PNG, JPEG and WebP up to 20 MB and 40 megapixels. Logos, icons and flat illustrations work best. Text becomes vector shapes; inspect small lettering.

The image is missing. What should I do?

Click Reload image if available. If ChatGPT can no longer access it, save the original and choose it in the panel. Loading an image does not use your allowance.

Where is my downloaded SVG?

Check your browser and Downloads folder. Keep the panel open and retry Download if needed; do not convert again. More options also lets you copy the SVG source.

How do I disconnect ImageSVG?

Remove the connection in ChatGPT or revoke it in ImageSVG connection management. Downloaded files remain on your device.

Privacy

Original images are not uploaded to ImageSVG. When needed for Download, the generated SVG is stored temporarily. The private link expires after 15 minutes and the copy is then automatically deleted. You can delete it sooner in More options. Anyone with the link can download it until expiry. ChatGPT’s privacy policy also applies.

Privacy · Contact us

Developer reference (English)

For developers integrating a client. You can use the conversion panel without this reference.

MCP tool reference

Tool Inputs Result
imagesvg_vectorize style, purpose, optional image Opens the panel; awaiting_user. Does not reserve quota or return SVG.
imagesvg_account Empty object Shared free allowance and paid access status. No email, payment records or history.
imagesvg_job_status id: job UUID Owned task state, revision, dimensions and result hash. No file bytes.
{
  "name": "imagesvg_vectorize",
  "arguments": { "style": "balanced", "purpose": "icon" }
}

style: clean | balanced | detailed, default balanced. purpose: icon | clipart | photo | coloring, default clipart. Optional image: required download_url and file_id, optional mime_type and file_name. URLs must pass the HTTPS *.oaiusercontent.com file-domain restriction.

Tools used by the conversion panel

These are marked visibility: ["app"] to keep them out of the model’s tool menu. Visibility is a host presentation hint, not an authorization boundary. Every call still requires the OAuth account and server-side quota checks.

Tool Metadata
imagesvg_prepare id, sourceHash (SHA-256 of working RGBA), width, height, originalWidth, originalHeight, style, purpose, protocol=2, engineVersion. Returns a short-lived grant or active permit.
imagesvg_start id, grant. Returns attempt ID and local run permit.
imagesvg_complete id, attempt, svgHash (SHA-256 of UTF-8 SVG), engineVersion, shapes, segments, gradients, elapsedMs. Confirms result; duplicate matching confirmation is idempotent.
imagesvg_cancel id. Releases an unused reservation; completed tasks remain charged.
imagesvg_prepare_download id, consent=true. Available when temporary downloads are enabled. Requires an owned completed local conversion. Returns short-lived upload/download credentials in component-only metadata; model-visible output contains status, expiry and the size limit.
imagesvg_delete_download id. Removes this account’s temporary SVG copies for the task; local files and quota are unchanged.

All objects reject unknown fields. Image pixels, base64 files and SVG strings are not accepted by MCP tool calls. Optional SVG saving uses a separate capability-authorized HTTP PUT, limited to 1 MiB, after the user’s explicit click. The bytes must match the confirmed result hash and contain vector-only SVG; active content, embedded images and external resources are rejected. The UI resource is ui://imagesvg/converter-v9.html with MIME type text/html;profile=mcp-app.

OAuth and direct API access

The public interface is Streamable HTTP MCP, using the official MCP server SDK. Use an MCP SDK for protocol negotiation, OAuth and reconnects. There is no separate REST /vectorize endpoint, no static API key, and no upload-and-convert cloud service in this version.

OAuth 2.1 is handled by Cloudflare’s OAuth provider library: authorization-code flow, PKCE, exact registered redirects, scoped bearer access, refresh and revocation. The scope is imagesvg:convert; request offline_access if your client needs refresh access. Tokens target the canonical /mcp resource. Website cookies are not API credentials.

Endpoint Use
/.well-known/oauth-protected-resource/mcp Resource discovery (follow the URL in the 401 challenge).
/.well-known/oauth-authorization-server Authorization server metadata; use advertised endpoints.
/oauth/register Dynamic client registration. Client ID Metadata Documents are also supported.
/oauth/authorize Existing ImageSVG login and explicit consent.
/oauth/token Code and refresh-token exchange. Use the advertised revocation endpoint.
/oauth/connections Signed-in users can inspect and revoke their connections.

Access tokens last one hour; refresh grants last 30 days. Disconnecting revokes the grant and its tokens, subject to KV propagation (up to a minute). Treat tokens as secrets; never put them in URLs, screenshots or client-side source.

Inspect the API with curl

The first call discovers authentication. After completing OAuth with an MCP client, store its access token in a local environment variable. The example protocol date is a supported negotiated MCP version; production clients should negotiate rather than hard-code it.

curl -i https://imagesvg.com/mcp

curl https://imagesvg.com/mcp \
  -H "Authorization: Bearer $IMAGESVG_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0"}}}'

curl https://imagesvg.com/mcp \
  -H "Authorization: Bearer $IMAGESVG_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-11-25' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"imagesvg_account","arguments":{}}}'

A successful initialize is followed by notifications/initialized in a complete MCP client. This service uses stateless HTTP and does not require an MCP session ID. Tool failures return isError: true with structured error data; HTTP 200 alone does not mean conversion succeeded.

Allowance, billing and limits

  • The website and MCP use the same account and wallet. No separate MCP credit balance or API billing product is introduced.
  • Free: 3 successful images per UTC day and 15 per UTC month, whichever limit is reached first. Reservations temporarily reduce availability. One concurrent task and 30 starts per day.
  • An active website pass applies, with two concurrent tasks and 100 starts per hour. This integration exports SVG only; other website formats are not exposed by this integration.
  • Changing style on the same logical image within the same panel reuses its successful free-image allowance, but counts as another attempt. A new panel creates a new job and may count as a new image.
  • Working resolution: at most 2,048 pixels per edge and 4 million pixels. Original dimensions are preserved in output coordinates.
  • A grant must start within 120 seconds; an authorized run/confirmation expires within two hours. Cancelled or expired unused reservations are released. The panel stops a local run after two minutes.
  • Protocol requests are limited to 16 KB. Rate limits and service-wide capacity budgets also apply; avoid polling and repeated automatic retries.

Client requirements

Clients need remote Streamable HTTP MCP, OAuth and MCP Apps. The visible panel must permit blob Web Workers and local image previews. Native export, file-library saving and link opening depend on the host’s capabilities. This is an interactive SVG converter; a headless or background agent cannot run its conversion on a user’s device without a visible local UI.

Ordinary image pixels are not accepted by the MCP protocol. Conversation file references are read by the panel directly. Optional download delivery accepts only the generated, confirmed SVG, not original images. Hash checks, capability credentials and quotas are enforced by the service.