Ugs MCP server
io.github.zackpeters93/ugs-mcp·v0.1.1·5 starsCNC machine control via Universal G-code Sender. Jog, home, run files with hardware safety tokens.
5 stars32 downloads/wk
Reviews
Write oneNobody 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 postsRead from the package source without running it. The installed server may list more.
gcode_estimate_timeEstimate machining cycle time from G-code feedrates and distances. Returns HH:MM:SS.
gcode_list_macrosList all saved macros with their names and descriptions.
gcode_list_toolsList all tools referenced in a G-code file, with first use line and usage count.
gcode_run_macrowrite actionRun 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_checkCheck 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_macroSave 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_translateTranslate 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 actionCancel 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_connectConnect UGS to the CNC machine via serial port.
ugs_disconnectDisconnect UGS from the CNC machine.
ugs_get_job_statusGet current job progress and machine state.
ugs_get_statusGet current machine state: position, status (Idle/Run/Alarm), feed rate, spindle speed.
ugs_homewrite actionRun 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_jogJog 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_jobPause the currently running G-code job (sends feed hold).
ugs_return_to_zeroRapid (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 actionStream 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_zeroSet 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_connectionDiagnose 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
- 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
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
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-mcpFrom 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-mcpOr from source (without pip install):
claude mcp add ugs-cnc /path/to/ugs-mcp/ugs_mcp/run_server.shClaude 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 OptimizerContext-window optimization: caching, compression & smart file tools that cut tokens 60-90%.not reviewedEstablishedC