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.