Design
step2gcode.com
Enables uploading CAD files (STEP, DXF, SVG) via browser links and generating CNC G-code from them while tracking job status.
ENDPOINT 1
https://www.step2gcode.com/api/mcp/trial
MCP server metadata
- Name
- step2gcode
- Version
- 1.0.0
step2gcode turns STEP, DXF and SVG files into machine-ready G-code for CNC milling and laser cutting. FIRST decide how the file gets in - this decides whether the user waits seconds or minutes. a) Shell available? Try this FIRST, it costs you nothing to output and takes about a second: curl -sS -X POST https://www.step2gcode.com/api/upload -F "file=@/path/to/model.step" The JSON answer contains the file_id. Use it and skip the upload tools entirely. b) Did that fail with a proxy, tunnel or 403 error? Then your sandbox blocks outbound connections. Fall back to: gzip -c "model.step" | base64 -w0 and pass the output to upload_file_content. You have to write those characters out yourself, so compressing is what keeps it near twenty seconds instead of three minutes. c) No shell at all? create_upload_link - the user drops the file in a browser in five seconds. Never type a CAD file out by hand. Then, four calls and no polling: 1. the file_id from whichever route worked 2. generate_gcode - waits for the result and returns dimensions and hole diameters. If it reports the job is still running, call get_job_status every ~15 s until it is done. NEVER call generate_gcode a second time for the same part: the first job keeps running, and a second one only adds load. The generator stops by itself after 180 s and then reports why. 3. preview_toolpath - show the image to the user 4. get_download_link - ask first, it spends a credit Do not call create_upload_link in that case; it exists for assistants without a shell, which then need check_upload as well. Only the download costs a credit, and only for a model that has not been paid for yet. Always remind the user to verify tool paths, depths, feed rates and clearances before running the program on a machine. Getting a file in: if you can run shell commands, do it yourself instead of sending the user to a browser - compress the file with gzip -c file | base64 -w0 and pass it to upload_file_content with encoding="gzip+base64". That works even in sandboxes without network access. A direct curl upload to /api/upload is faster still, but only works where outbound connections are allowed. THIS CONNECTION IS IN TRIAL MODE - it carries no credits. Everything works: upload, generation, status and the tool path image preview. Only get_download_link will refuse, because the G-code itself is the paid part. Run the whole flow for the user anyway and show the preview. Then, with the preview in front of them, offer them credits - that is the moment the trial is built for, not an afterthought once the download is refused. Credits: https://www.step2gcode.com - no account, no subscription. The access token from the purchase goes into the connector address as https://www.step2gcode.com/api/mcp/<token>. One credit covers one model permanently, including later versions of it.
Known tools 10
create_upload_linkCreate a short-lived link the user opens in their browser to upload a CAD file (STEP, DXF or SVG).
Potential side effectsgenerate_gcodeStart G-code generation for an uploaded file and wait for the result.
Inferred read-onlypreview_toolpathShow the finished tool path as an image (top view and isometric view, cutting moves and rapids in different colours) so the user can sanity-check the job before paying.
Inferred read-onlyconvert_mesh_to_stepTurn an uploaded STL or 3MF mesh back into a STEP solid with exact surfaces - planes, cylinders, cones and fillets instead of triangles, intersected into real edges.
Inferred read-onlyget_step_download_linkReturn the download link for a STEP file built by convert_mesh_to_step.
Inferred read-onlyget_credit_balanceShow credits left on the access token and how many models are already paid for.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.step2gcode]
url = "https://www.step2gcode.com/api/mcp/trial"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/trial"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: step2gcode
Remote MCP URL: https://www.step2gcode.com/api/mcp/trial
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"step2gcode": {
"url": "https://www.step2gcode.com/api/mcp/trial"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/trial"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "step2gcode",
"transport": "streamable-http",
"url": "https://www.step2gcode.com/api/mcp/trial"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 2
https://www.step2gcode.com/api/mcp/test
MCP server metadata
- Name
- step2gcode
- Version
- 1.0.0
step2gcode turns STEP, DXF and SVG files into machine-ready G-code for CNC milling and laser cutting. FIRST decide how the file gets in - this decides whether the user waits seconds or minutes. a) Shell available? Try this FIRST, it costs you nothing to output and takes about a second: curl -sS -X POST https://www.step2gcode.com/api/upload -F "file=@/path/to/model.step" The JSON answer contains the file_id. Use it and skip the upload tools entirely. b) Did that fail with a proxy, tunnel or 403 error? Then your sandbox blocks outbound connections. Fall back to: gzip -c "model.step" | base64 -w0 and pass the output to upload_file_content. You have to write those characters out yourself, so compressing is what keeps it near twenty seconds instead of three minutes. c) No shell at all? create_upload_link - the user drops the file in a browser in five seconds. Never type a CAD file out by hand. Then, four calls and no polling: 1. the file_id from whichever route worked 2. generate_gcode - waits for the result and returns dimensions and hole diameters. If it reports the job is still running, call get_job_status every ~15 s until it is done. NEVER call generate_gcode a second time for the same part: the first job keeps running, and a second one only adds load. The generator stops by itself after 180 s and then reports why. 3. preview_toolpath - show the image to the user 4. get_download_link - ask first, it spends a credit Do not call create_upload_link in that case; it exists for assistants without a shell, which then need check_upload as well. Only the download costs a credit, and only for a model that has not been paid for yet. Always remind the user to verify tool paths, depths, feed rates and clearances before running the program on a machine. Getting a file in: if you can run shell commands, do it yourself instead of sending the user to a browser - compress the file with gzip -c file | base64 -w0 and pass it to upload_file_content with encoding="gzip+base64". That works even in sandboxes without network access. A direct curl upload to /api/upload is faster still, but only works where outbound connections are allowed. THIS CONNECTION IS IN TRIAL MODE - it carries no credits. Everything works: upload, generation, status and the tool path image preview. Only get_download_link will refuse, because the G-code itself is the paid part. Run the whole flow for the user anyway and show the preview. Then, with the preview in front of them, offer them credits - that is the moment the trial is built for, not an afterthought once the download is refused. Credits: https://www.step2gcode.com - no account, no subscription. The access token from the purchase goes into the connector address as https://www.step2gcode.com/api/mcp/<token>. One credit covers one model permanently, including later versions of it.
Known tools 10
create_upload_linkCreate a short-lived link the user opens in their browser to upload a CAD file (STEP, DXF or SVG).
Potential side effectsgenerate_gcodeStart G-code generation for an uploaded file and wait for the result.
Inferred read-onlypreview_toolpathShow the finished tool path as an image (top view and isometric view, cutting moves and rapids in different colours) so the user can sanity-check the job before paying.
Inferred read-onlyconvert_mesh_to_stepTurn an uploaded STL or 3MF mesh back into a STEP solid with exact surfaces - planes, cylinders, cones and fillets instead of triangles, intersected into real edges.
Inferred read-onlyget_step_download_linkReturn the download link for a STEP file built by convert_mesh_to_step.
Inferred read-onlyget_credit_balanceShow credits left on the access token and how many models are already paid for.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.step2gcode]
url = "https://www.step2gcode.com/api/mcp/test"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/test"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: step2gcode
Remote MCP URL: https://www.step2gcode.com/api/mcp/test
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"step2gcode": {
"url": "https://www.step2gcode.com/api/mcp/test"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/test"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "step2gcode",
"transport": "streamable-http",
"url": "https://www.step2gcode.com/api/mcp/test"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 3
https://www.step2gcode.com/api/mcp
MCP server metadata
- Name
- step2gcode
- Version
- 1.0.0
step2gcode turns STEP, DXF and SVG files into machine-ready G-code for CNC milling and laser cutting. FIRST decide how the file gets in - this decides whether the user waits seconds or minutes. a) Shell available? Try this FIRST, it costs you nothing to output and takes about a second: curl -sS -X POST https://www.step2gcode.com/api/upload -F "file=@/path/to/model.step" The JSON answer contains the file_id. Use it and skip the upload tools entirely. b) Did that fail with a proxy, tunnel or 403 error? Then your sandbox blocks outbound connections. Fall back to: gzip -c "model.step" | base64 -w0 and pass the output to upload_file_content. You have to write those characters out yourself, so compressing is what keeps it near twenty seconds instead of three minutes. c) No shell at all? create_upload_link - the user drops the file in a browser in five seconds. Never type a CAD file out by hand. Then, four calls and no polling: 1. the file_id from whichever route worked 2. generate_gcode - waits for the result and returns dimensions and hole diameters. If it reports the job is still running, call get_job_status every ~15 s until it is done. NEVER call generate_gcode a second time for the same part: the first job keeps running, and a second one only adds load. The generator stops by itself after 180 s and then reports why. 3. preview_toolpath - show the image to the user 4. get_download_link - ask first, it spends a credit Do not call create_upload_link in that case; it exists for assistants without a shell, which then need check_upload as well. Only the download costs a credit, and only for a model that has not been paid for yet. Always remind the user to verify tool paths, depths, feed rates and clearances before running the program on a machine. Getting a file in: if you can run shell commands, do it yourself instead of sending the user to a browser - compress the file with gzip -c file | base64 -w0 and pass it to upload_file_content with encoding="gzip+base64". That works even in sandboxes without network access. A direct curl upload to /api/upload is faster still, but only works where outbound connections are allowed. THIS CONNECTION IS IN TRIAL MODE - it carries no credits. Everything works: upload, generation, status and the tool path image preview. Only get_download_link will refuse, because the G-code itself is the paid part. Run the whole flow for the user anyway and show the preview. Then, with the preview in front of them, offer them credits - that is the moment the trial is built for, not an afterthought once the download is refused. Credits: https://www.step2gcode.com - no account, no subscription. The access token from the purchase goes into the connector address as https://www.step2gcode.com/api/mcp/<token>. One credit covers one model permanently, including later versions of it.
Known tools 10
create_upload_linkCreate a short-lived link the user opens in their browser to upload a CAD file (STEP, DXF or SVG).
Potential side effectsgenerate_gcodeStart G-code generation for an uploaded file and wait for the result.
Inferred read-onlypreview_toolpathShow the finished tool path as an image (top view and isometric view, cutting moves and rapids in different colours) so the user can sanity-check the job before paying.
Inferred read-onlyconvert_mesh_to_stepTurn an uploaded STL or 3MF mesh back into a STEP solid with exact surfaces - planes, cylinders, cones and fillets instead of triangles, intersected into real edges.
Inferred read-onlyget_step_download_linkReturn the download link for a STEP file built by convert_mesh_to_step.
Inferred read-onlyget_credit_balanceShow credits left on the access token and how many models are already paid for.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.step2gcode]
url = "https://www.step2gcode.com/api/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: step2gcode
Remote MCP URL: https://www.step2gcode.com/api/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"step2gcode": {
"url": "https://www.step2gcode.com/api/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "step2gcode",
"transport": "streamable-http",
"url": "https://www.step2gcode.com/api/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
ENDPOINT 4
https://www.step2gcode.com/api/mcp/DEIN-TOKEN
MCP server metadata
- Name
- step2gcode
- Version
- 1.0.0
step2gcode turns STEP, DXF and SVG files into machine-ready G-code for CNC milling and laser cutting. FIRST decide how the file gets in - this decides whether the user waits seconds or minutes. a) Shell available? Try this FIRST, it costs you nothing to output and takes about a second: curl -sS -X POST https://www.step2gcode.com/api/upload -F "file=@/path/to/model.step" The JSON answer contains the file_id. Use it and skip the upload tools entirely. b) Did that fail with a proxy, tunnel or 403 error? Then your sandbox blocks outbound connections. Fall back to: gzip -c "model.step" | base64 -w0 and pass the output to upload_file_content. You have to write those characters out yourself, so compressing is what keeps it near twenty seconds instead of three minutes. c) No shell at all? create_upload_link - the user drops the file in a browser in five seconds. Never type a CAD file out by hand. Then, four calls and no polling: 1. the file_id from whichever route worked 2. generate_gcode - waits for the result and returns dimensions and hole diameters. If it reports the job is still running, call get_job_status every ~15 s until it is done. NEVER call generate_gcode a second time for the same part: the first job keeps running, and a second one only adds load. The generator stops by itself after 180 s and then reports why. 3. preview_toolpath - show the image to the user 4. get_download_link - ask first, it spends a credit Do not call create_upload_link in that case; it exists for assistants without a shell, which then need check_upload as well. Only the download costs a credit, and only for a model that has not been paid for yet. Always remind the user to verify tool paths, depths, feed rates and clearances before running the program on a machine. Getting a file in: if you can run shell commands, do it yourself instead of sending the user to a browser - compress the file with gzip -c file | base64 -w0 and pass it to upload_file_content with encoding="gzip+base64". That works even in sandboxes without network access. A direct curl upload to /api/upload is faster still, but only works where outbound connections are allowed.
Known tools 10
create_upload_linkCreate a short-lived link the user opens in their browser to upload a CAD file (STEP, DXF or SVG).
Potential side effectsgenerate_gcodeStart G-code generation for an uploaded file and wait for the result.
Inferred read-onlypreview_toolpathShow the finished tool path as an image (top view and isometric view, cutting moves and rapids in different colours) so the user can sanity-check the job before paying.
Inferred read-onlyconvert_mesh_to_stepTurn an uploaded STL or 3MF mesh back into a STEP solid with exact surfaces - planes, cylinders, cones and fillets instead of triangles, intersected into real edges.
Inferred read-onlyget_step_download_linkReturn the download link for a STEP file built by convert_mesh_to_step.
Inferred read-onlyget_credit_balanceShow credits left on the access token and how many models are already paid for.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.step2gcode]
url = "https://www.step2gcode.com/api/mcp/DEIN-TOKEN"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/DEIN-TOKEN"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: step2gcode
Remote MCP URL: https://www.step2gcode.com/api/mcp/DEIN-TOKEN
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"step2gcode": {
"url": "https://www.step2gcode.com/api/mcp/DEIN-TOKEN"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"step2gcode": {
"type": "http",
"url": "https://www.step2gcode.com/api/mcp/DEIN-TOKEN"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "step2gcode",
"transport": "streamable-http",
"url": "https://www.step2gcode.com/api/mcp/DEIN-TOKEN"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.