# Vectorize > Converts raster images — PNG, JPEG, GIF, BMP, WebP — to vector graphics: SVG, > PDF, EPS or DXF. The tracing runs in the visitor's own browser through > WebAssembly, so images are not uploaded anywhere and never reach a server. The site at https://vectorize.dudko.dev is the converter itself: drop an image in, adjust the tracing, download the result. Nothing needs an account. Three presets cover most inputs: `photo` for photographs, `poster` for flat colour graphics and logos, and `bw` for line art and scans. Every individual setting — colour count, denoising, corner and curve thresholds, gap filling — can be overridden alongside a preset. ## Using it from code - [@dudko.dev/vectorize-core](https://www.npmjs.com/package/@dudko.dev/vectorize-core): the tracing engine as a library, the same WebAssembly the site runs, with a typed TypeScript API and the PDF, EPS and DXF exporters. Works in a browser and in Node. - [@dudko.dev/vectorize-cli](https://www.npmjs.com/package/@dudko.dev/vectorize-cli): the command line — `vectorize input.png -o output.svg`. - HTTP API: https://vectorize.dudko.dev/api or https://vectorize-api.dudko.dev/api — the same service; the first is a proxy to the second, so either hostname works and the paths are identical. `POST /api/v1/trace` takes the image and answers SVG, PDF, EPS, DXF or JSON. It needs an API key from https://auth.dudko.dev/account, sent as `X-Api-Key: ak_…`; each trace counts against the account's plan, and a used-up plan answers `402` with an `upgradeUrl`. - MCP: https://vectorize.dudko.dev/mcp — the front door to the HTTP API for an assistant. It traces nothing and carries no files: a tool result lands in a context window and a tool argument is written by the model, so a picture must not travel either way. Three tools, all free: `api_access` says how the API works; `trace_options` lists the presets, the options and the limits; `api_request` checks trace options against what the instance accepts and returns the exact request — URL, headers, a curl command — with a short-lived credential (15 minutes, good for this API only) for the account the conversation is signed in as. Run the command wherever the picture is; the API answers the caller directly with the drawing, in any format, PDF included, and charges the account as for any other request. The credential is the caller's own, sealed, so nothing about it is stored. It is an OAuth resource server: an unauthenticated call answers `401` with a `WWW-Authenticate` header naming its protected resource metadata (https://vectorize.dudko.dev/.well-known/oauth-protected-resource/mcp), which names https://auth.dudko.dev as the authorization server and `usage` as the scope. Ask for a token with `resource=https://vectorize.dudko.dev/mcp`; a token addressed anywhere else is refused here, which is the point. In a client with a connector list, adding that address is the whole of the setup. The endpoint speaks the 2026-07-28 revision and the three before it. There is no handshake in the current one: every request carries `io.modelcontextprotocol/protocolVersion` and `io.modelcontextprotocol/clientCapabilities` in `_meta` (a request without either is malformed, `-32602`), the version again in the `MCP-Protocol-Version` header, `method` mirrored into `Mcp-Method` and a tool's name into `Mcp-Name`; start with `server/discover` rather than `initialize`. Headers that disagree with the body are refused with `-32020`. Every result carries `resultType` and the server's name in `_meta`. A `401`, and a tool result saying the plan is used up, are both answers rather than transport faults: neither is fixed by retrying. ## Licensing Free for noncommercial use under the PolyForm Noncommercial License 1.0.0, with a PolyForm Free Trial grant of 32 consecutive days to evaluate it at work. Commercial use needs a written licence. This file describes the terms; it does not set them and grants nothing. The licence is the `LICENSE` file shipped inside each package, and commercial permission comes only from a written agreement with the copyright holder. ## Contact Siarhei Dudko — sergey@dudko.dev