CNCjs MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CNCJS_URL | No | CNCjs server URL | http://localhost:8000 |
| CNCJS_TOKEN | No | Optional JWT token for CNCjs authentication |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_serial_portsB | List available serial ports |
| get_connection_statusB | Get current CNCjs connection status |
| get_machine_stateA | Get full GRBL machine state (positions, feed, spindle, overrides, buffer) |
| get_machine_positionB | Get current machine and work positions (X, Y, Z) |
| get_work_coordinate_offsetC | Get work coordinate offset (WCO) values |
| get_machine_settingsB | Get all GRBL $$ machine settings with labels |
| get_parser_stateB | Get active G-code parser state (WCS, units, distance mode, etc.) |
| get_loaded_gcodeB | Get currently loaded G-code file name and content |
| get_job_progressB | Get current job progress (lines sent, elapsed time, % complete) |
| get_workflow_stateB | Get workflow state (idle, running, paused) |
| get_feeder_statusB | Get feeder queue depth, hold state, and reason |
| list_macrosB | List all CNCjs macros (name, id, content) |
| list_machinesB | List machine profiles with travel limits |
| get_alarm_infoB | Get current alarm code and human-readable meaning |
| connect_to_portC | Open a serial connection to a CNC controller |
| disconnect_portA | Close the current serial connection |
| emergency_stopA | EMERGENCY STOP — immediately halts all motion via GRBL soft reset (0x18). Use in any dangerous situation. |
| feed_holdA | Feed hold — controlled deceleration to stop. Safer than emergency stop for non-critical situations. |
| send_gcodeA | Send one or more G-code lines to the machine. HIGH RISK — causes physical motion. |
| load_gcodeC | Load G-code content into CNCjs for execution |
| start_jobB | Start executing the loaded G-code program |
| pause_jobA | Pause the current job (feed hold + pause sender) |
| resume_jobB | Resume a paused job |
| stop_jobC | Stop the current job |
| home_machineA | Run GRBL homing cycle ($H). Machine must have homing switches enabled. |
| unlock_machineA | Clear GRBL alarm state ($X). Use after resolving the cause of the alarm. |
| jogA | Jog the machine incrementally. HIGH RISK — causes physical motion. |
| set_feed_overrideC | Adjust feed rate override (10-200%) |
| set_spindle_overrideC | Adjust spindle speed override (10-200%) |
| run_macroA | Execute a CNCjs macro by name or ID. HIGH RISK — macro content may cause motion. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/brs077/CNC-design-control-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server