Brode.io
Server Details
Convert any image into machine embroidery files (DST, PES…) or vector graphics (SVG, PDF, EPS, DXF).
- Status
- Healthy
- Uptime
- 99.9% over 63 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: convert initiates a job (with optional wait), job_status polls an existing job, download fetches results/companions, and presets lists options. There is no overlapping functionality that would cause misselection.
All names use a consistent 'brode_' prefix and snake_case, which is predictable. However, the verb/noun style is mixed: brode_convert and brode_download are action verbs while brode_job_status and brode_presets are noun phrases.
Four tools is well-scoped for a focused conversion service. Each tool (convert, download, status, presets) clearly earns its place and covers a necessary part of the workflow without bloat.
The core conversion lifecycle is covered: initiate (convert), monitor (job_status), retrieve (download), and discover options (presets). Minor gaps exist such as no dedicated upload tool (requiring a shell curl workaround) and no job cancellation or listing operations.
Available Tools
4 toolsbrode_convertAInspect
Convert a raster image (PNG/JPG/WebP/GIF/BMP/TIFF) to a vector format (svg, pdf, eps, dxf) or a machine embroidery file (dst, pes, jef, vp3, exp, u01, xxx). INPUT: upload your local file ONCE with your shell (curl -sS -H 'Authorization: Bearer ' -F 'file=@image.png' https://brode.io/api/mcp/upload) and pass the returned input_key here. Files up to 20 MB are accepted as-is — never read, compress or base64 the image yourself. Returns a job_id; waits up to wait_seconds for completion. Uses your brode.io account quota.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | No | Style preset. Default: equilibre. | |
| options | No | Advanced options (see brode_presets). Unknown keys are rejected. | |
| input_key | Yes | Upload reference from POST /api/mcp/upload (the only accepted input). | |
| wait_seconds | No | Server-side wait for completion. Default 15. | |
| output_format | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full transparency burden. It openly discloses async behavior ('Returns a job_id; waits up to wait_seconds for completion'), the 20 MB file limit, the quota consumption, and the input_key requirement. It does not describe failure modes or error responses, but it covers the key operational traits an agent needs to call the tool correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: formats, upload procedure, size limit, behavioral warning, return behavior, and quota. The purpose is front-loaded and the critical instructions are placed early. The curl example adds length but is essential operational detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters, nested options, no annotations, and no output schema, the description covers the full workflow: upload, conversion, wait behavior, and resource consumption. It could mention how to retrieve results via siblings like brode_download or brode_job_status, but those sibling tools are visible and the job_id handoff strongly implies the next step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, so the baseline is 3, but the description adds real value beyond the schema. It clarifies that input_key must come from the specific upload endpoint, groups output formats into vector vs embroidery categories, and explains wait_seconds behavior in the conversion flow. This helps an agent reason about how the parameters fit together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Convert a raster image ... to a vector format ... or a machine embroidery file.' It explicitly lists acceptable input and output formats, making the tool's scope unambiguous. It also clearly distinguishes itself from siblings like brode_download, brode_job_status, and brode_presets by describing a conversion-specific responsibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong practical guidance: upload the file once via the provided curl command, pass the returned input_key, and wait for completion. It also warns not to read, compress, or base64 the image. It does not explicitly name alternative tools for download or status checking, but the workflow context and sibling names make the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brode_downloadAInspect
Download a completed conversion's file: the result itself (file="output", default) or its companions — "preview" (PNG rendering), "worksheet" (embroidery thread color chart PDF), "stitches" (stitch trace JSON). COST: for embroidery jobs, downloading the MACHINE FILE ("output") consumes 1 unlock credit per design (first download only — re-downloads and other machine formats then free); preview, worksheet and stitches are always free — check the preview before spending. Returns an absolute 'url' with filename, MIME type and size — fetch it with header 'Authorization: Bearer ' (e.g. curl -o file.dst ). Never returns base64: tool-result budgets can't carry file payloads.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Which file to fetch (default: output). preview/worksheet/stitches exist for completed jobs; worksheet and stitches only for embroidery formats. | |
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses unlock-credit consumption for machine files, re-download behavior, free companion files, required Authorization header, and that responses are URLs rather than base64 payloads.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key purpose is front-loaded, followed by file-variant details, cost implications, and fetch instructions. Despite being dense, every sentence adds operational value for correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description covers everything an agent needs: what is returned, how to fetch it, authentication requirements, and cost side effects. No critical gap remains for correct tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the file enum, and the description adds meaningful semantics for each value, including default behavior and which variants exist for which job types. It also implies job_id refers to a completed conversion, though it does not further explain the UUID requirement beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: downloading a completed conversion's result file or its companions. The enumerated file variants make the scope clear, but it does not explicitly differentiate itself from siblings like brode_convert or brode_job_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context that the conversion must be completed and advises checking the free preview before spending an unlock credit. It does not name alternative tools for related tasks, but the when-to-use guidance and cost caveat are strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brode_job_statusAInspect
Get the status of a conversion job (queued, processing, completed, failed) with progress stage and result metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It does indicate this is a read-only lookup ('Get'), names the possible job states, and mentions progress/result metadata. It does not disclose polling semantics, failure behavior, or whether repeated calls have side effects, though the absence of such notes is less critical for a simple status endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the action and resource, then adds useful status enumeration and result metadata without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter status look-up, the description covers the core purpose and return highlights, but it omits important usage context: how job_id is obtained, that this is a polling operation after brode_convert, and when a job can be considered final. Sibling tool names imply this flow but do not make it explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required job_id with a UUID format, and schema description coverage is 0%, so the description needs to compensate. The description does not explain where job_id comes from, what it refers to beyond 'conversion job', or any constraints. The natural meaning of 'job_id' is understandable, but the description adds essentially no parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('status of a conversion job'), and it enumerates the possible states: queued, processing, completed, failed. It also mentions progress stage and result metadata, making it clearly distinct from the sibling conversion, download, and preset tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a polling/status-check tool, likely used after brode_convert and before the job can be downloaded. However, it does not explicitly state when to use this tool versus brode_download, nor does it say that job_id must come from a prior conversion call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brode_presetsAInspect
List Brode presets, output formats and common conversion options with guidance for choosing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'List' discloses that it is a read-only, informational operation, but it does not describe the return format, whether the list is exhaustive, or if any special prerequisites exist. It is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that directly states what is listed and mentions the added guidance. There is no redundant or vague wording; it is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless reference tool with no output schema and no annotations, the description is nearly complete: it specifies what is listed (presets, output formats, conversion options) and that guidance is included. It does not explicitly describe the output structure, but that is largely implied by the word 'List'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter details; it only describes the tool's output, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a concrete resource ('Brode presets, output formats and common conversion options'), which clearly distinguishes it from the sibling tools (brode_convert, brode_download, brode_job_status). It states exactly what the tool provides, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'with guidance for choosing' gives clear context that the tool helps users select presets/formats/options, implying it should be used before a conversion task. It does not explicitly mention alternatives or exclude cases, but the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
brode_convert - First observed
brode_download - First observed
brode_job_status - First observed
brode_presets
Related MCP Connectors
Convert PNG, JPG and WebP images, including AI-generated ones, to clean SVG, PDF, EPS or DXF.
Convert PNG, JPG and WebP to SVG. Recolor an SVG, reduce its colors or remove its background.
Convert PNG/JPG images to clean SVG, DXF or EPS vectors for cutting machines, laser and print.
Vectorize images: PNG/JPG to SVG, PDF, EPS, DXF. Turns logos, icons and scans into clean vectors.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceBrode.io - Convert any image into machine embroidery files (DST, PES, JEF, VP3, EXP, U01, XXX) or vector graphics (SVG, PDF, EPS, DXF) — hosted remote server with a free tier, by the maker of the Brode web app.-
- FlicenseAqualityDmaintenanceEnables AI assistants to convert SVG designs into machine-embroidery files (DST, PES, etc.) without Inkscape, and provides tools for lettering, validation, and previews.211-

vectorplease-mcpofficial
AlicenseAqualityCmaintenanceConverts PNG, JPEG, or WebP bitmaps into sticker-ready SVGs from any MCP client, taking local paths, HTTPS URLs, or base64 input, optionally applying a preset and writing the result to a file while returning quality metrics. It also lists available artwork presets and retrieves the result of a conversion that was still running.3MIT- AlicenseAqualityBmaintenanceEnables Claude on Windows to convert PNG, JPG, PSD, TIFF and other bitmaps into editable SVG, AI, EPS, PDF, DXF or EMF — including whole-folder batch runs with detail, colour and layering options — by automating a licensed desktop tracing application's wizard GUI. Each call returns the output path, size, detected settings and a preview image.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.