MCP.Market

Ugs MCP server

by zackpeters93·io.github.zackpeters93/ugs-mcp·v0.1.1·5 stars

CNC machine control via Universal G-code Sender. Jog, home, run files with hardware safety tokens.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
New

5 stars32 downloads/wk

Reviews

Write one

Nobody has reviewed Ugs yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Ugs tools (19, 4 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • gcode_estimate_time

    Estimate machining cycle time from G-code feedrates and distances. Returns HH:MM:SS.

  • gcode_list_macros

    List all saved macros with their names and descriptions.

  • gcode_list_tools

    List all tools referenced in a G-code file, with first use line and usage count.

  • gcode_run_macrowrite action

    Run a saved macro by name. Call with no token first to get the G-code preview, safety check, and confirmation token. The user must provide the token back before the macro runs. Claude CANNOT self-confirm - the token enforces this at the server level.

  • gcode_safety_check

    Check G-code for safety issues: spindle off during cuts, missing unit declaration, zero feedrate on cut moves, and other DANGER/WARNING/CAUTION issues. Run this before ugs_run_file for any G-code you did not write yourself.

  • gcode_save_macro

    Save a G-code macro to the macros directory after running a safety check. Claude writes the G-code content; this tool handles validation and persistence. Use gcode_list_macros to see saved macros, gcode_run_macro to execute one.

  • gcode_translate

    Translate G-code to plain English, line by line. Accepts either a file path or raw G-code string. Shows each command, its meaning, and the current machine state context.

  • ugs_cancel_jobwrite action

    Cancel the running job. Stopping mid-cut will leave a mark on the part. Uses simple confirmed=True/False (not a token) because stopping is always safer than continuing - token friction on an emergency stop would be dangerous. Call with confirmed=False first to preview, then confirmed=True to cancel.

  • ugs_connect

    Connect UGS to the CNC machine via serial port.

  • ugs_disconnect

    Disconnect UGS from the CNC machine.

  • ugs_get_job_status

    Get current job progress and machine state.

  • ugs_get_status

    Get current machine state: position, status (Idle/Run/Alarm), feed rate, spindle speed.

  • ugs_homewrite action

    Run the GRBL homing cycle ($H). All axes move toward limit switches at full speed. Call with no token first to get a preview and confirmation token. The user must provide the token back before homing executes. Claude CANNOT self-confirm movement - the token enforces this at the server level.

  • ugs_jog

    Jog a single axis (X, Y, or Z) by distance_mm at feedrate mm/min. Call with no token first to get a preview and confirmation token. The user must provide the token back before movement executes. Claude CANNOT self-confirm movement - the token enforces this at the server level.

  • ugs_pause_job

    Pause the currently running G-code job (sends feed hold).

  • ugs_return_to_zero

    Rapid (G0) to G54 work zero (X0 Y0 Z0). Call with no token first to get a preview and confirmation token. The user must provide the token back before movement executes. Claude CANNOT self-confirm movement - the token enforces this at the server level.

  • ugs_run_filewrite action

    Stream a G-code file to the machine. Runs safety check in preview mode. Call with no token first to get the safety report and confirmation token. The user must provide the token back before the job starts. Claude CANNOT self-confirm - the token enforces this at the server level.

  • ugs_set_work_zero

    Set G54 work zero at the current machine position for the specified axes. This does NOT move the machine - only sets coordinate offsets. Call with confirmed=False first to preview, then confirmed=True to apply.

  • ugs_troubleshoot_connection

    Diagnose connection issues: lists serial ports, checks pendant reachability, suggests fixes.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan22 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 107 days ago8/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Ugs compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 63% of 48,255 servers
Tools
19
the typical server has 7
Tools that change things
21%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
5
more than 83% of 28,688 servers
Downloads a week
32
more than 20% of 12,191 servers with a package

What its tools let an agent do: 15 read · 4 change

Install Ugs in Claude Code, Cursor or VS Code

claude mcp add ugs-mcp -- uvx ugs-mcp
Add to Cursor

What the publisher says

From the Ugs repository's README, as published. We do not edit it. Read it on GitHub

ugs-mcp

MCP server for controlling CNC machines via Universal GCode Sender.

Lets Claude (or any MCP-compatible AI assistant) connect to a CNC machine, inspect G-code, and issue motion commands — all through the UGS Pendant REST API.

⚠️ STOP. READ THIS FIRST.

This software controls machines that can damage equipment, destroy parts, and injure or kill people.

CNC machines move fast and don't know where your hands are. Before you use this:

  • Read SAFETY.md. All of it.
  • Understand the token confirmation system that prevents Claude from moving your machine autonomously.
  • Know where your E-stop is.

If you skim the safety docs and something goes wrong, that's on you. We warned you.

What it does

  • Connection tools — Connect/disconnect UGS to your CNC, troubleshoot serial port issues
  • Status tools — Read machine state, position, feed rate, spindle speed
  • Motion tools (token-protected) — Jog axes, home, return to work zero, run G-code files and macros
  • G-code inspector — Translate G-code to English, safety check, cycle time estimate, tool list

Every motion command uses a two-step token protocol: Claude generates a token, shows it to you, and the machine only moves when you read the token back. Claude cannot bypass this — tokens are generated and validated server-side.

Requirements

  • Universal GCode Sender 2.x (winder.github.io/ugs_website)
  • UGS Pendant plugin installed and active (Tools → Plugins → Installed)
  • Pendant running at http://localhost:8080 (default)
  • Python 3.11+

Installation

Via pip

pip install ugs-mcp

From source

git clone https://github.com/zackpeters93/ugs-mcp.git
cd ugs-mcp
pip install -e .

Claude Code setup

claude mcp add ugs-cnc ugs-mcp

Or from source (without pip install):

claude mcp add ugs-cnc /path/to/ugs-mcp/ugs_mcp/run_server.sh

Claude Desktop setup

In ~/Library/Application Support/Claude/claudedesktopconfig.json:

{
  "mcpServers": {
    "ugs-cnc": {
      "command": "ugs-mcp"
    }
  }
}

Or from source:

{
  "mcpServers": {
    "ugs-cnc": {
      "command": "/opt/homebrew/opt/python@3.11/libexec/bin/python3",
      "args": ["-m", "ugs_mcp.server"],
      "cwd": "/path/to/ugs-mcp"
    }
  }
}

Configuration

Environment variables (all optional):

Copy .env.example to .env to customize.

The token system

Every motion tool uses a mandatory two-step confirmation:

Step 1 — Call the tool without a token. Claude shows you a preview (axis, distance, resulting position, safety warnings) and a token like [A3F8B2C1].

Step 2 — Read the preview. If you agree, tell Claude the token. Claude calls the tool again with confirmation_token="A3F8B2C1". The machine moves.

Tokens are generated server-side via uuid4(), expire in 2 minutes, and are single-use. Claude cannot predict, fabricate, or reuse them. The only way movement happens is if you type the token back.

Tools

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Ugs: common questions

Is Ugs MCP server safe?
Mostly: it is graded B (82/100). Read the Ugs safety report
How do I install Ugs?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Ugs need an API key?
No secret keys are declared. It reads 4 settings from the environment.
Is Ugs maintained?
The last commit was 145 days ago (2026-06-12). The latest release is v0.1.1.
What can I use instead of Ugs?
Servers from other publishers that do the same job: Token Optimizer MCP server.
How does Ugs compare with other MCP servers?
safety score 82/100 (higher than 63% of 48,255 servers); tools 19 (the typical server has 7); tools that change things 21% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Ugs

Same job from other publishers: the closest match first, then the best rated.

  • Token Optimizer
    Context-window optimization: caching, compression & smart file tools that cut tokens 60-90%.
    C