https://github.com/wyre-technology/iqms-mcp
MCP server for IQMS / DELMIAworks (EnterpriseIQ) — read manufacturing ERP data via Oracle and post transactional updates via the WebAPI module
https://github.com/wyre-technology/iqms-mcp
delmiaworks enterpriseiq erp iqms manufacturing mcp model-context-protocol msp oracle
Last synced: 2 days ago
JSON representation
MCP server for IQMS / DELMIAworks (EnterpriseIQ) — read manufacturing ERP data via Oracle and post transactional updates via the WebAPI module
- Host: GitHub
- URL: https://github.com/wyre-technology/iqms-mcp
- Owner: wyre-technology
- License: other
- Created: 2026-04-29T23:41:38.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-22T16:46:22.000Z (21 days ago)
- Last Synced: 2026-05-22T18:50:27.132Z (21 days ago)
- Topics: delmiaworks, enterpriseiq, erp, iqms, manufacturing, mcp, model-context-protocol, msp, oracle
- Language: TypeScript
- Size: 112 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# `iqms-mcp`
MCP server for **IQMS / DELMIAworks** (EnterpriseIQ), the manufacturing ERP
from Dassault Systèmes.
> **Status:** Scaffolding. Read tools issue queries through
> [`@wyre-technology/node-iqms`](https://github.com/wyre-technology/node-iqms),
> which has tentative SQL pending design-partner schema validation. Write tools
> route through the licensed DELMIAworks WebAPI module and currently throw
> `NotImplementedError` until vendor SDK access.
## Why this exists
EnterpriseIQ doesn't have a public REST API. The realistic integration paths are:
1. **Direct Oracle** (universal at every install) — read-only queries
2. **WebAPI module** (paid licensed add-on) — transactional writes
This MCP server exposes both behind a single decision-tree-navigated tool surface.
## Tools
Initial discovery surface (always available):
- `iqms_navigate` — list tools in a domain
- `iqms_status` — credential / connection check
Domains: `workorders`, `inventory`, `boms`, `sales_orders`, `purchase_orders`,
`schedule`, `quality`.
Read tools (Oracle, available always):
| Tool | Purpose |
|------|---------|
| `iqms_workorders_list` | Open / in-progress work orders |
| `iqms_workorders_get` | Full work order detail incl. routings |
| `iqms_inventory_onhand` | On-hand by item / location / lot |
| `iqms_inventory_lot_trace` | Lot genealogy walk |
| `iqms_boms_explode` | BOM explosion |
| `iqms_boms_where_used` | Where-used reverse lookup |
| `iqms_sales_orders_list` | Open SOs / ship status |
| `iqms_purchase_orders_list` | Open POs / expected receipts |
| `iqms_schedule_capacity` | Machine schedule + capacity load |
| `iqms_quality_ncrs` | Non-conformances / CARs / CAPAs |
Write tools (WebAPI, gated):
| Tool | Purpose |
|------|---------|
| `iqms_workorders_create` | Create a new work order |
| `iqms_workorders_post_production` | Post qty made / scrapped |
| `iqms_inventory_adjust` | Inventory transaction |
| `iqms_quality_create_ncr` | Open a non-conformance record |
## Run modes
### Local (stdio)
```bash
IQMS_ORACLE_USER=eiq_ro \
IQMS_ORACLE_PASSWORD=… \
IQMS_ORACLE_CONNECT_STRING=eiq-db.example.com:1521/EIQ \
npx -y github:wyre-technology/iqms-mcp
```
### Gateway (HTTP, stateless)
```bash
MCP_TRANSPORT=http \
MCP_HTTP_PORT=8080 \
AUTH_MODE=gateway \
node dist/http.js
```
In gateway mode, credentials are injected per-request via headers:
| Header | Required | Notes |
|--------|----------|-------|
| `X-IQMS-Oracle-User` | yes | Oracle DB user |
| `X-IQMS-Oracle-Password` | yes | Oracle DB password |
| `X-IQMS-Oracle-Connect-String` | yes | Easy Connect or TNS |
| `X-IQMS-WebAPI-Base-URL` | no | Enables write tools when present |
| `X-IQMS-WebAPI-User` | no | |
| `X-IQMS-WebAPI-Password` | no | |
## License
Apache-2.0