ImageSVG × ChatGPT
在 ChatGPT 中将图片转成 SVG
ImageSVG 可以在 ChatGPT 面板中,将生成或附上的图片转成 SVG,适合 Logo、图标和平面插画。当前仅支持 ChatGPT。
连接 ImageSVG
https://imagesvg.com/mcp- 打开 ChatGPT 插件页,选择“添加自定义 MCP 服务器”,填入下方地址。你的账号或工作区需要允许添加自定义连接。
- 选择 OAuth 验证,创建插件,再按提示登录 ImageSVG 并允许连接。
- 回到对话,用 @ 选择 ImageSVG,让它转换指定图片。无需在电脑上安装软件。
转换与下载
- 让 ChatGPT 使用生成或附上的图片,原图会出现在 ImageSVG 面板中;也可以自行选择 PNG、JPEG 或 WebP。
- 点击“转换”。按需调整图片类型和细节,完成后检查小字、细线等细节。
- 点击“下载”,保存 SVG 后再关闭面板。下载可能会通过浏览器完成。
用 ImageSVG 把这张图片转成 SVG。
账号与转换额度
ImageSVG 和 ChatGPT 共用网站额度:每天最多免费转换 3 张,每月最多 15 张,先达到哪个上限就以哪个为准,按 UTC 时间重置。已有的网站通行证同样生效。
常见问题
支持哪些图片?
支持 PNG、JPEG 和 WebP,原图不超过 20 MB、4,000 万像素,适合 Logo、图标和平面插画。文字会转成图形,使用前请检查小字。
图片没有出现,怎么办?
如果出现“重新加载图片”,先点击重试。若 ChatGPT 已无法读取文件,可以保存原图后从设备中选择。加载图片不消耗转换次数。
下载的 SVG 在哪里?
请检查浏览器和下载文件夹。保持面板打开,必要时重试“下载”,不用重新转换;也可以在“更多选项”中复制 SVG 源码。
如何取消连接?
在 ChatGPT 中移除连接,或到 ImageSVG 连接管理中撤销授权。已经下载到设备的文件不受影响。
隐私说明
原图不会上传到 ImageSVG。为完成下载,生成的 SVG 可能会临时保存;私有链接在 15 分钟后失效,副本随后自动删除。你也可以在“更多选项”中提前删除。持有链接的人可在到期前下载。ChatGPT 的隐私政策同样适用。
开发者参考(英文)
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.