How to Connect AI Agents to Industrial Equipment with MCP
This is a working operator's guide to getting an MCP server live against a real machine — from "I have Claude Desktop installed" to "the LLM just queried my CNC." Install, smoke test, and the common gotchas every operator hits.
What MCP is, in one paragraph
The Model Context Protocol is a small JSON-RPC spec for how an LLM client (Claude Desktop, Cursor, Continue, an agent framework) talks to a "tool server." The server advertises tools (read_register, activate_trigger, etc.), the client picks the right tool given the user's intent, the server returns structured results. It's designed to be model-agnostic and transport-agnostic — stdio for local subprocesses, Server-Sent Events (SSE) or Streamable HTTP for remote servers, OAuth or API-key for auth. Spec: modelcontextprotocol.io.
Step 1 — pick a server
Browse the directory by category. For an absolute first install, recommended starters by category:
- Industrial OPC UA shop:
kukapay/opcua-mcp - Industrial Modbus / legacy retrofit:
kukapay/modbus-mcp - Cross-OEM machines (Fanuc, Siemens, Haas, DMG Mori, …):
FoundryNet Forge(free key at foundrynet.io/signup) - ROS robot:
robotmcp/ros-mcp-server - Home Assistant building:
voska/hass-mcp - Victron solar / battery:
lubosstrejcek/victron-tcp - Vehicle CAN / OBD-II:
farzadnadiri/MCP-CAN
Step 2 — paste the install snippet into Claude Desktop
Claude Desktop reads its MCP server list from a JSON file. Locations:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Open the file (create it if missing), and merge the mcpServers block from the server's card on the directory. Example with two servers:
{
"mcpServers": {
"opcua-mcp": {
"command": "python",
"args": ["path/to/opcua_mcp/main.py"],
"env": { "OPCUA_SERVER_URL": "opc.tcp://your-server:4840" }
},
"foundrynet-forge": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://foundrynet-mcp-production.up.railway.app/sse",
"--header", "Authorization:Bearer ${FNET_KEY}"],
"env": { "FNET_KEY": "fnet_…" }
}
}
}
Restart Claude Desktop. The tools should now appear in the slash-command palette.
Step 3 — smoke test
Open a new conversation and ask a question that requires the server. For an industrial server: "Read register 40001 on the Modbus device at 192.168.1.50 and tell me what it says." For Forge: "Identify a Fanuc R-30iB at serial VERIFY-001 and tell me its mint_id." If the server is wired correctly, the model will call a tool, the tool will return structured JSON, and the model will explain the result. If you see "I don't have a tool that can do that" — the server didn't load. Check the config file's JSON syntax, check the path to the server binary, and look at Claude Desktop's MCP logs.
Step 4 — when to use SSE / Streamable HTTP transport
Most servers in this directory run as a local subprocess (stdio). When you should pick a remote transport instead:
- The server lives in your VPN / behind your firewall and you want it shared across a team.
- The server is multi-tenant (each user has their own API key against a shared origin).
- The server is heavy — embedding models, large data — and you don't want it living on each laptop.
For Claude Desktop, the standard bridge is mcp-remote: a tiny stdio shim that proxies to a remote SSE / Streamable HTTP endpoint. Forge ships with that pattern as the default install snippet.
Common gotchas
- JSON syntax errors. A stray comma in
claude_desktop_config.json= no servers load, no error message. Pipe throughjqafter every edit. - PATH issues with
uvx/npx. Claude Desktop launches subprocesses without your shell PATH. Use absolute paths touvx/npxif the tool isn't on the system PATH. - Token leaks in logs. Servers that echo env vars in error messages leak your API key. Audit before deploying a remote MCP server.
- Rate limits at 100/mo. Free-tier Forge keys have monthly caps. Tier up at foundrynet.io/pricing if you're using it in production.
Stuck? Find a category-specific guide: Industrial · Robotics · Energy · Fleet. Or email foundrynet@proton.me.