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- Open ChatGPT Plugins, choose Add custom MCP server and enter the address below. Your account or workspace must allow custom connections.
- Choose OAuth authentication, create the plugin, then sign in to ImageSVG and allow the connection when prompted.
- Return to a conversation, select ImageSVG with @ and ask it to convert your image. No local installation is needed.
Convert and download
- Ask ChatGPT to use the generated or attached image. It appears in the ImageSVG panel; you can also choose a PNG, JPEG or WebP.
- Click Convert. Adjust image type and detail if needed, then check the result, especially small text and fine lines.
- 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.
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.