Remote MCP
Add https://api.vectali.com/mcp as a Streamable HTTP server. Complete OAuth sign-in and consent. The connection requires no API key in a prompt. Custom ChatGPT connections require developer mode availability; public directory publication is separate and is not yet available.
API Starter costs US$19/month for 500 successful conversions, shared between API and MCP. Connecting does not buy a plan. Browser plans do not include this allowance. The tools cannot purchase or upgrade plans.
| Tool | Purpose | Permission |
|---|---|---|
convert_image |
Convert uploaded PNG/JPEG to SVG | conversions:write |
get_conversion |
Retrieve a saved SVG link | conversions:read |
get_account |
Check API allowance | account:read |
In ChatGPT
Attach a PNG or JPEG and ask “Turn this logo into an SVG.” Vectali returns a normal download link. You do not need an API key, request ID, URL or base64 text in the conversation. If the attachment has expired or cannot be opened, attach the original image again.
The tool normally needs only file. Request IDs are automatic: identical image bytes reuse the saved conversion in your account, even if you reattach the file or its download URL changes. Refreshing a download with get_conversion does not trace or charge again. Technical IDs and statistics are available to clients but need not clutter the reply.
For client developers
ChatGPT supplies file with download_url and file_id, optionally mime_type and file_name. Accepted HTTPS hosts are *.oaiusercontent.com and the three exact Azure accounts observed in real ChatGPT handoffs: oaisdmntprukwest.blob.core.windows.net, oaisdmntprdenmarkeast.blob.core.windows.net, and oaisdmntprnortheu.blob.core.windows.net. Redirects and arbitrary website URLs are rejected. Additional regions fail closed until verified. Rejected locations return attachment_host (hostname only) for support diagnostics; signed paths and query credentials are never included.
request_id is optional. When omitted, Vectali derives an account-scoped idempotency key from the original bytes; it returns that key in the structured result. Identical inputs reuse stored output, including across chats. To deliberately run the engine again (for example after deleting an old result or after an engine update), use a new explicit ID of 8–128 letters, digits or ._:-; this consumes one allowance. Preserve explicit IDs on retries. A completed ID reused for different bytes returns an error.
Existing software integrations may still use image_base64, generated programmatically from the original bytes. This is a compatibility transport, not a ChatGPT recovery path. Supply exactly one input method. For local files, use the local MCP adapter below, the CLI, or the multipart REST API. All avoid base64 entirely.
Tool errors include retryable, next_action, and a retry_after_seconds value when retrying is appropriate. Preserve the image and ID, wait the stated interval and stop after two retries. Authentication, quota and invalid-image errors need an account or input correction. Do not silently buy a plan or repeatedly retry a rejected attachment.
Limits: 10 MiB input; PNG/JPEG; 262,144 total pixels; 4,096 pixels per side; 8 MiB SVG output. Allow up to 240 seconds for complex conversions. MCP requests are limited to 60/minute and conversion attempts to six/minute per account.
Results contain a conversion ID, file size, path count, processing time and signed download_url. Links expire after 10 minutes and work for anyone holding them until expiry or conversion deletion. Use get_conversion to refresh a link. Inspect the SVG visually; neither path count nor file size measures fidelity.
API keys and CLI
MCP also accepts your existing Vectali API key in Authorization: Bearer … for clients with secure secret configuration. API keys cannot authorize purchases or dashboard mutations. Store credentials outside source control and prompts.
Install with npm install --global vectali-cli@1.1.0 (Node.js 22+). The npm package is vectali-cli; the terminal command is vectali. A versioned archive is also available at vectali-cli-1.1.0.tgz.
Set VECTALI_API_KEY securely using a key from your workspace, then:
vectali account
vectali convert logo.png --output logo.svg
Local MCP setup
The same package includes a stdio MCP server:
vectali mcp --root /absolute/path/to/artwork
In an MCP client that supports local stdio servers, configure:
{
"mcpServers": {
"vectali": {
"command": "vectali",
"args": ["mcp", "--root", "/absolute/path/to/artwork"]
}
}
}
Pass VECTALI_API_KEY to the subprocess using your client’s secret/environment configuration. Some GUI clients do not inherit your terminal environment or PATH: configure the variable there and use the full path to the installed vectali executable when needed. Restart the connection after changing configuration. Set your client’s tool timeout to at least 300 seconds.
Ask: “Convert logo.png to logo.svg in the Vectali workspace.” The agent calls:
{"input_path":"logo.png","output_path":"logo.svg"}
Tools:
convert_image_file: reads an image, uploads it as a multipart file, and saves the returned SVG. Returns the absolute output path and conversion metadata. Neither human nor model handles base64 or raw SVG text.get_account: reads API allowance and plan status. No conversion required.
Paths can be relative to --root or absolute inside it. Input symlinks and output parent directories are resolved and must stay inside the workspace. Output directories must already exist. Existing files, including symlinks, are never overwritten by MCP: choose another filename. The workspace is a file-access boundary for these tools, not an operating-system sandbox; use a trusted directory that other processes do not modify during conversion. Do not point it at your entire home directory.
This adapter is for local files. ChatGPT’s hosted plugin uses the separate remote MCP endpoint and OAuth; it does not install this CLI.
Billing, retries and limits
API Starter costs US$19/month for 500 successful conversions, shared by API, MCP and CLI. Browser plans do not include server conversions. There are no automatic purchases, overages or retries.
Identical image bytes automatically reuse a saved conversion in your account, including across CLI and remote MCP. After a timeout, retry the same file and output path. If an output already exists, inspect it or choose a new path. To deliberately retrace after an engine update, supply a new --request-id (MCP: request_id); this consumes an allowance. Keep that explicit ID unchanged on retries. Reusing it with different image bytes is rejected.
The terminal command alone supports --force to overwrite an existing SVG. The MCP tool has no overwrite option. A local write failure after a successful server conversion still uses an allowance; retry with the same image and request ID to recover without retracing.
Limits: PNG/JPEG, 10 MiB, 262,144 pixels, 4,096 pixels per side; SVG output at most 8 MiB. Processing can take four minutes. The hosted API enforces image dimensions and account limits. Inspect lettering, holes and gradients; small file size is not a quality score.
Discovery and permissions
OAuth uses authorization code with PKCE S256, scoped access tokens bound to this MCP resource, and rotating refresh tokens. Disconnecting immediately rejects further agent requests. Agents cannot use OAuth tokens for browser history changes, billing checkout, or API key creation.