cnc-fluidnc-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FLUIDNC_HOST | Yes | The URL of your CNC controller running FluidNC (e.g., http://your-controller.local or http://192.168.1.100) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_machine_statusB | Get real-time CNC machine status: position, state, feed rate, spindle speed, and overrides |
| get_system_infoB | Get FluidNC system information: firmware version, CPU, memory, WiFi, SD card status |
| get_machine_settingsA | Get all FluidNC/Grbl machine settings. Optionally filter by keyword (e.g. 'accel', 'steps', 'max_rate'). |
| get_gcode_stateA | Get active G-code modal state: motion mode, coordinate system, units, distance mode, spindle, coolant |
| jogA | Jog the CNC machine along an axis by a specified distance at a given feed rate. Uses incremental mode ($J=G91). |
| home_axesB | Run homing cycle. Homes all axes by default, or specify individual axes. |
| unlock_machineA | Clear alarm state and unlock the machine ($X). Use after an alarm condition. |
| set_zeroA | Set the work coordinate zero for specified axes at the current position (G10 L20 P1). If no axes specified, sets all axes to zero. |
| go_to_zeroA | Move to work coordinate zero. Raises Z to safe height first, then moves XY, then lowers Z. |
| send_gcodeA | Send a single G-code or Grbl command to the CNC machine. Safety level is auto-classified. DANGEROUS/CRITICAL commands require confirm=true. |
| run_gcode_programB | Send a multi-line G-code program to the machine, one line at a time. Requires confirm=true. |
| spindle_controlB | Control the spindle: turn on (CW/CCW with speed) or off. Turning on requires confirm=true. |
| feed_holdA | Pause machine motion immediately (feed hold). Sends '!' realtime command. |
| cycle_resumeA | Resume machine motion after a feed hold. Sends '~' realtime command. |
| soft_resetA | Emergency stop — soft reset the controller (0x18). Stops all motion and spindle immediately. Requires confirm=true. |
| list_sd_filesC | List files and directories on the CNC controller's SD card. |
| upload_to_sdC | Upload a file to the CNC controller's SD card. |
| delete_sd_fileA | Delete a file from the CNC controller's SD card. Requires confirm=true. |
| run_sd_fileA | Run a G-code file from the CNC controller's SD card. Requires confirm=true. |
| backup_configA | Save the current FluidNC settings and work offsets to a timestamped backup file. |
| list_backupsB | List all saved configuration backups. |
| restore_configA | Restore machine settings from a backup. Defaults to dry-run mode showing what would change. Requires confirm=true to actually apply. |
| list_macrosB | List all saved CNC macros. |
| get_macroC | View the contents of a saved macro. |
| save_macroC | Create or update a macro. Parameters can be substituted in G-code using {param_name} syntax. |
| run_macroA | Execute a saved macro. Shows preview first; set confirm=true to run. Parameters can override defaults. |
| delete_macroC | Delete a saved macro. Requires confirm=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| machine-status | Current CNC machine status (position, state, speeds) |
| connection-info | CNC controller connection and firmware information |
| macros-list | List of all saved CNC macros |
TDQS
Scored across 27 tools
Each tool has a clearly distinct purpose with no significant overlap. For example, backup_config, restore_config, and list_backups are distinct operations for configuration management, while send_gcode, run_gcode_program, and run_sd_file handle different G-code execution methods. The descriptions clearly differentiate actions like jog (manual movement) versus go_to_zero (automated positioning).
Tool names follow a highly consistent verb_noun pattern throughout, such as get_machine_status, list_sd_files, run_gcode_program, and delete_macro. All tools use snake_case without deviation, and verbs like get, list, run, send, set, and delete are applied predictably across related operations, making the set easy to navigate.
With 27 tools, the count is on the higher side but reasonable given the comprehensive scope of CNC machine control. It covers diverse aspects like configuration, motion control, file management, and safety operations. While slightly heavy, each tool appears justified for the domain, avoiding redundancy and supporting complex workflows.
The tool set provides complete coverage for CNC machine operations, including configuration backup/restore, real-time status monitoring, G-code execution, file management, macro handling, motion control, and safety features. There are no obvious gaps; it supports full lifecycle management from setup to execution and troubleshooting, ensuring agents can handle typical tasks without dead ends.