Skip to main content
Glama

step2gcode

Server Details

Turn STEP, DXF and SVG files into CNC milling and laser G-code for GRBL, LinuxCNC, Mach3 and more.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target distinct actions: uploading, generating, checking job status, previewing, downloading, and billing. The main overlap is among the three upload routes (create_upload_link, upload_file_content, check_upload) and the two download tools (get_download_link vs get_step_download_link), but their descriptions clearly distinguish when each applies.

Naming Consistency5/5

All tool names use consistent snake_case verb_noun phrasing: check_upload, create_upload_link, generate_gcode, get_job_status, preview_toolpath, upload_file_content, etc. The pattern is predictable throughout, with no mixed conventions.

Tool Count5/5

Ten tools is well-scoped for a CAD-to-G-code workflow: upload, mesh conversion, generation, status polling, preview, download, and billing each have a clear role. No tool appears redundant or trivial.

Completeness4/5

The surface covers the core lifecycle: upload, convert, generate, monitor, preview, pay, and download. Minor gaps exist, such as no cancel/delete job operation or job listing, but agents can work around these for the stated workflow.

Available Tools

10 tools
check_uploadB
Read-onlyIdempotent
Inspect

Check whether the user finished the browser upload. Returns the file_id once ready. Free.

NEXT STEP - do not generate yet. Ask the user:

  1. Which material? Offer the presets (wood, hardwood, plywood, acrylic, aluminum, steel, brass). If theirs is not among them, pick the closest preset AND set spindle_speed, feed_rate, plunge_rate and step_down yourself from known cutting data for that material and cutter.

  2. Which cutter diameters do they actually own? Recommend one from that list: it must fit the smallest inner radius of the part, and a smaller cutter means longer machining time. If you cannot judge the geometry yet, say so and suggest generating once to see the dimensions.

  3. Is the part cut all the way through? Then recommend holding_tabs so it does not come loose on the last pass.

Inputs: upload_id (required).

convert_mesh_to_stepAInspect

Turn 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. Free; only the download of the finished file is charged.

Use this when the user has a mesh and needs CAD geometry: a hole becomes a cylinder with a diameter again, a chamfer a cone with an angle, so the part can be dimensioned, modified and machined. Typical case: the CAD source is gone and the mesh is all that is left.

The answer states the largest measured deviation between the built solid and the mesh, in millimetres - always pass that number on to the user, it is what tells them whether the result is accurate enough for their part. Parts made of freeform surfaces and raw 3D scans are rejected with a reason instead of being badly reconstructed.

Upload the mesh the same way as any other file (curl to /api/upload, upload_file_content or create_upload_link), then pass the file_id here. The resulting STEP file can go straight into generate_gcode afterwards.

Inputs: file_id (required).

generate_gcodeAInspect

Start G-code generation for an uploaded file and wait for the result. Most jobs finish within the wait, so the answer usually already carries the part dimensions and hole diameters - no polling needed. Only if it says the job is still running, call get_job_status once after a few seconds. Free - only the download is charged.

BEFORE CALLING THIS, ask the user about the settings you cannot infer from the file. Two of them change the result substantially and are wrong by default more often than not:

  • material: drives spindle speed, feed rates and depth per pass. Aluminium cut with wood settings breaks cutters.

  • holding_tabs: without them a cut-out part comes loose on the last pass and can be thrown off the machine. Recommend them for any part cut all the way through. Also worth asking when the geometry suggests it: pockets and holes (STEP files carry that depth information), and whether the job is milling or laser work.

IMAGES (PNG, JPG, WebP ...) are always laser raster engraving. Ask for the engraving width in mm, photo or logo (image_mode), the controller (GRBL or Marlin) and its S maximum (laser_max_s), and tell the user to test power and speed on a scrap piece first.

Inputs: file_id (required), depth, holes, laser, +18 more.

get_credit_balanceA
Read-onlyIdempotent
Inspect

Show credits left on the access token and how many models are already paid for. Free.

Inputs: no named parameters.

get_job_statusA
Read-onlyIdempotent
Inspect

Check a generation job. While it runs you get the percentage done, how long it has been running and how much time is left before the generator gives up on its own (180 s). When it fails you get the generator's own reason - pass that on to the user instead of retrying blindly. This is the ONLY correct way to wait for a job; calling generate_gcode again never helps. Free.

Inputs: job_id (required).

preview_toolpathA
Read-onlyIdempotent
Inspect

Show 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. Free.

Inputs: job_id (required).

upload_file_contentAInspect

Upload a CAD file by writing its content out yourself. Use this only when a direct curl upload to /api/upload is not possible - that route costs you no output at all. If you must use this tool, ALWAYS compress first and pass the output as content: (xz -9e -c model.step 2>/dev/null || gzip -9c model.step) | base64 | tr -d '\n' xz writes about a quarter less than gzip; the command falls back to gzip where xz is missing (macOS). xz, bzip2 and gzip are recognised by themselves - no extra argument.

Do not paste the raw file. You have to write out every character you pass here, and a typical STEP solid takes you three minutes raw against twenty seconds compressed - the user watches that happen. Compression shrinks it about fivefold, which brings files up to roughly 80 KB within reach.

NO SHELL AVAILABLE? Then do not use this tool for anything above about 10 KB - you would have to type the whole file out and the user waits minutes for it. Call create_upload_link instead: the user drops the file in a browser and it is done in five seconds. Same if the file is still too large after compressing. Free.

NEXT STEP - do not generate yet. Ask the user:

  1. Which material? Offer the presets (wood, hardwood, plywood, acrylic, aluminum, steel, brass). If theirs is not among them, pick the closest preset AND set spindle_speed, feed_rate, plunge_rate and step_down yourself from known cutting data for that material and cutter.

  2. Which cutter diameters do they actually own? Recommend one from that list: it must fit the smallest inner radius of the part, and a smaller cutter means longer machining time. If you cannot judge the geometry yet, say so and suggest generating once to see the dimensions.

  3. Is the part cut all the way through? Then recommend holding_tabs so it does not come loose on the last pass.

Inputs: content (required), filename (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Turn STEP, BREP and IGES files into CAD-style views, ISO drawing sheets, photorealistic renders, GIF animations and MP4 videos, with exact measurements and clash checks.
      Apache 2.0
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 2D irregular polygon nesting (bin-packing) with tools to design, preview, get reports, and export DXF files for laser cutting or CNC routing.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Wave soldering pallet and selective solder fixture CAM engine for PCB assembly. Parse Gerber files, generate fixture DXF, DRC reports, and RS-274 CNC G-code. Tools: • analyze_gerber_board: extract board outline, drill holes, pocket areas, and locating pins from Gerber • generate_fixture_from_gerber: build fixture DXF, DRC gate report, and CNC G-code • compute_dogbone_relief: dogbone corner relief
      52 PyPI
      1
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Free, open-source 2D nesting for fixed sheets (laser, CNC, plasma, waterjet, fabric): SVG/DXF import, part-in-part nesting across several sheets, validation and export. Runs as an MCP server, on the command line and in the browser.
      5
      15
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources