i3X-MCP-Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@i3X-MCP-Server What's the current state of pump-101?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
i3x-mcp
A bridge that lets Claude (and any other MCP client) talk to your manufacturing data through the i3X standard — so you can ask plain-English questions about your plant and get real answers.
"What equipment is on the production line?" "What's the current state of pump-101?" "Show me the temperature trend for tank-201 over the last hour." "What feeds into the assembly line?"
Install (5 minutes, no coding required)
1. Install Node.js (if you don't already have it)
Open a terminal and run:
node --versionIf you see a version number ≥ 18 (e.g. v20.0.0), you're set. If not, download and install from nodejs.org — pick the "LTS" version.
2. Open Claude Desktop's config file
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
If the file doesn't exist, create it.
3. Add the i3x server
If the file is empty, paste this whole thing:
{
"mcpServers": {
"i3x": {
"command": "npx",
"args": ["-y", "i3x-mcp@latest"]
}
}
}If the file already has stuff in it, add only the "i3x": { ... } block inside mcpServers (and add the mcpServers block if missing). Mind the commas between JSON keys — that's the #1 reason Claude Desktop reports an invalid config.
4. Restart Claude Desktop
Fully quit (⌘Q on Mac, right-click tray → Quit on Windows) and reopen. The first time you use it, npx downloads i3x-mcp from npm — takes 10-20 seconds.
5. Tell Claude which i3X server to talk to
Start a new chat and say:
"Use the i3x
connecttool with baseUrlhttps://api.i3x.dev/v1"
(That's the public CESMII demo server. For your own deployment, substitute your URL.)
Claude will verify the connection and confirm. From there you can ask normal questions:
"What equipment is at the top of the hierarchy?" "Find anything with 'pump' in the name." "What's the current value of pump-101 and its components?" "Get the last hour of history for pump-101-state, averaged every 5 minutes."
Related MCP server: industrial-mcp
Connecting to a private / authenticated server
If your i3X server requires authentication:
"Connect i3x to
https://i3x.mycompany.com/v1with authSchemebearerand tokeneyJhbGc..."
Supported auth schemes:
none(default)bearer— usesAuthorization: Bearer <token>apikey— uses a custom header (defaultX-API-Key, override with theapiKeyHeaderargument)
Connections live for the duration of a Claude Desktop session. To switch servers mid-session, just call connect again.
Persisting connection info via environment variables
If you'd rather not type the connect command each time, pre-set the connection in your Claude Desktop config:
{
"mcpServers": {
"i3x": {
"command": "npx",
"args": ["-y", "i3x-mcp@latest"],
"env": {
"I3X_BASE_URL": "https://i3x.mycompany.com/v1",
"I3X_AUTH_SCHEME": "bearer",
"I3X_TOKEN": "eyJhbGc..."
}
}
}
}What Claude can do
Tool | What it does |
| Point the server at an i3X instance. Validates against |
| Show current baseUrl, auth, and catalog state. |
| Capabilities of the connected i3X server (query/update/subscribe). |
| Find equipment by name (fuzzy/substring). The main "where is X" tool. |
| Top of the equipment hierarchy. |
| Re-fetch the object list after new equipment is added. |
| Detailed info on one or more objects (type, parent, relationships). |
| Latest value + quality + timestamp, with engineering units when known. |
| Time-range history with optional |
| Graph traversal. Returns related objects grouped by relationship. |
| ObjectType schema + per-field units (helps Claude interpret raw values). |
| Bounded live-data window. Internally manages an i3X subscription. |
Writes (update_value, write_history) are off by default. See "Enabling writes" below.
Time inputs
Anywhere a time is accepted (get_history), you can use:
RFC 3339:
2026-06-12T10:00:00ZRelative:
1h,30m,7d,last 30mKeywords:
now,today,yesterday
For startTime, a bare duration means "that long ago." For endTime, the default is now.
Enabling writes (advanced)
Setpoint writes can affect live equipment. Writes are off by default. To enable them, modify your Claude Desktop config to pass --enable-writes:
"args": ["-y", "i3x-mcp@latest", "--enable-writes"]This exposes update_value and write_history. Both are marked as destructive — Claude will request explicit confirmation before invoking them.
Tuning (environment variables)
Env var | Default | Purpose |
| unset | Optional pre-set baseUrl. If unset, use the |
|
|
|
| — | Required when |
|
| Header name used when |
|
| Hard cap on |
|
| Cap on raw VQT points returned per element by |
Troubleshooting
Claude Desktop says "MCP i3x: Server disconnected"
Check the
claude_desktop_config.jsonis valid JSON (commas, braces).Confirm Node.js 18+ is installed and
nodeis on your PATH.Open the developer logs in Claude Desktop's "Settings → Developer" panel for details.
Tools return "Not connected to an i3X server"
Call the
connecttool: "Connect i3x to https://..."Or set
I3X_BASE_URLin the config'senvblock and restart Desktop.
Connection fails on connect
The error message will say what failed (e.g. DNS, 401 Unauthorized). Re-check the baseUrl and auth.
The
baseUrlmust include the version path, e.g.https://api.i3x.dev/v1.
For developers
Run from source
git clone <this-repo> i3x-mcp
cd i3x-mcp
npm install
npm run buildPoint Claude Desktop at the local build:
{
"mcpServers": {
"i3x": {
"command": "node",
"args": ["/absolute/path/to/i3x-mcp/dist/index.js"]
}
}
}Project layout
src/
config.ts # env + CLI parsing
connection.ts # connection lifecycle (connect / disconnect / state)
i3x-client.ts # HTTP client + i3X types
catalog.ts # cached object/type index + fuzzy search (fuse.js)
time.ts # relative time parsing
aggregation.ts # raw/avg/min/max/count bucketing
units.ts # unit extraction + value enrichment
tools.ts # all MCP tool registrations
index.ts # entry pointSmoke test
node smoke-test.mjsSpawns the server, walks through connect → search_objects → get_history against the public demo.
Publishing to npm
You'll need an npm account with publish rights to i3x-mcp. Then:
# Patch release (0.1.0 → 0.1.1):
npm run release:patch
# Minor release (0.1.0 → 0.2.0):
npm run release:minor
# Major release (0.1.0 → 1.0.0):
npm run release:majorEach script:
Bumps
versioninpackage.json.Creates a git commit and tag.
Runs
prepublishOnly(which builds viatsc).Publishes to the public npm registry.
Push the tag after with git push --follow-tags.
License
MIT — see LICENSE.
Available Tools
12 toolsconnectConnect to an i3X serverA
Point the MCP server at an i3X instance. Required before any data tool will work (unless I3X_BASE_URL was set in the env). Validates by calling /info on the target. Switching connections at any time is fine — call this again.
Inputs: baseUrl (required), token, authScheme, apiKeyHeader.
connection_statusShow current i3X connectionA
Returns whether an i3X connection is active, the baseUrl, auth scheme, and catalog snapshot.
Inputs: no named parameters.
describe_typeDescribe ObjectTypeA
Returns the JSON Schema and per-field units for an ObjectType.
Inputs: typeElementId (required).
get_historyGet historical valuesA
Historical values over a time range with optional server-side aggregation. Times accept RFC 3339, relative durations ('1h', 'last 30m'), 'now', 'today', or 'yesterday'. For long ranges use aggregation='avg'|'min'|'max'|'count' with a bucket like '5m' or '1h'.
Inputs: startTime (required), elementIds (required), bucket, endTime, +2 more.
get_objectGet object detailsA
Detailed info for one or more objects: type, parent, composition flag, declared relationships.
Inputs: elementIds (required), includeMetadata.
list_root_objectsList root objectsA
Returns top-level objects in the i3X hierarchy (no parent). Good entry point for unfamiliar plants.
Inputs: includeMetadata.
read_current_valueRead current valueA
Latest value (with quality and timestamp) for one or more objects. Set maxDepth>1 to include composed sub-components. Values are enriched with engineering units when the ObjectType schema declares them.
Inputs: elementIds (required), maxDepth.
refresh_catalogRefresh catalogB
Rebuilds the local object/type catalog from the i3X server.
Inputs: no named parameters.
search_objectsSearch objectsA
Fuzzy/substring search over the cached object catalog. Use this to find equipment, sensors, or processes by name. Returns elementId, displayName, type, and parent path.
Inputs: query (required), limit, typeFilter.
server_infoi3X server infoA
Returns the i3X server's capabilities, version, and supported features (query/update/subscribe).
Inputs: no named parameters.
watch_valuesWatch values for a bounded windowA
Monitor one or more objects for live changes over a bounded duration (max 300s). Creates an i3X subscription internally and cleans it up on exit. Returns per-element summary of all observed changes (count, first, last, min, max).
Inputs: elementIds (required), durationSeconds (required), pollIntervalSeconds.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Every tool has a clearly distinct purpose: connection management, schema browsing, object retrieval, search, history, and live monitoring. No two tools overlap in functionality.
All tool names follow a consistent verb_noun pattern (e.g., connect, describe_type, search_objects) with no mixing of conventions or vague verbs.
12 tools cover the core operations of an i3X server—connection, browsing, searching, historical, and live data—without being excessive or too sparse.
The set covers all major data access patterns (current, historical, live, search, hierarchy) but lacks write/update/delete tools, which may be acceptable given the server's likely read-only focus.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Manufacturing BI from your AI client: dashboards, OEE, spreadsheets, scheduling, text-to-CAD.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating manufacturing systems (MES/ERP/quality/maintenance) with LLM agents, enabling event ingestion, incident triage, approval workflows, and RAG-based knowledge retrieval.MIT
- AlicenseAqualityBmaintenanceAn MCP server that gives Claude (or any MCP-compatible AI host) read access to industrial sensor data and safety-gated control over motors and actuators.46MIT
- -licenseNot gradedqualityNot gradedmaintenanceMCP server that assists Claude Code with AVEVA MES development by providing structured domain knowledge and live query capabilities against a running MES instance's Web API V3.-
- AlicenseAqualityDmaintenanceMCP server that bridges industrial IoT data with conversational AI, enabling natural language queries to machine health telemetry through ChatGPT.6MIT