MCP serverDELMIAworks (IQMS) Agent view

How to build an MCP server for DELMIAworks (IQMS)

Short answer

An MCP server for DELMIAworks is a small service that exposes named, read-only tools such as item lookup, order status and work order events, backed by Oracle views or the vendor API. It authenticates callers, scopes data by role, logs every call, and works with Claude, ChatGPT and any other MCP client.

The Model Context Protocol gives AI clients one standard way to call tools and read resources. For a DELMIAworks plant, that means you can build the connection once and let several assistants use it, instead of writing a separate integration for each model vendor.

The design question is not how to wire up a model. It is which questions your ERP should be allowed to answer for a machine, with what scope, and with what record of who asked.

This page is a practical blueprint for a first server, aimed at the developer or DBA who will own it.

What teams use it for

Item and inventory lookup

Tool returns on-hand, allocated and on-order quantities for an item by plant and location, so any assistant can answer stock questions.

Order and shipment status

Given a sales order number, return line status, promised dates, shipments and holds.

Work order and press status

Return current operation, quantity produced, scrap and the last downtime reason for a work order or press.

BOM and routing explosion

Return a multi-level bill of materials and the routing steps for an item, with revision.

Open purchase orders

List open PO lines by supplier or item with promise dates and receipts to date.

Lot trace lookups

Return upstream material lots and downstream shipments for a finished lot number.

DELMIAworks (IQMS) integration surface

  • Oracle read-only account: the primary data path on-prem, scoped to purpose-built views over inventory, orders, purchasing, work orders and MES events.
  • Python and TypeScript drivers: python-oracledb or node-oracledb connect with a service account and bind variables for every parameter.
  • Vendor web services: if your release exposes REST endpoints, a tool can call them with a service credential and inherit application behavior.
  • Audit table or log store: a small side table or log file records tool, caller, arguments and row counts.
  • Names and coverage vary by version and license, so inventory your own schema before defining tools.

How it works

  1. 1

    Write a tool catalog first

    List ten tools with names, input parameters and output fields. Review it with planners, buyers and quality before coding.

  2. 2

    Create the views

    Build Oracle views that join and rename columns, remove sensitive costs, and filter to active records.

  3. 3

    Implement with a standard SDK

    Use the official MCP SDK for Python or TypeScript. Each tool validates input, runs a bound query and returns structured JSON.

  4. 4

    Choose transport

    stdio suits a developer running the server beside a desktop client. Use streamable HTTP behind your reverse proxy for team access.

  5. 5

    Add authentication

    Put OAuth or token authentication in front of HTTP, and map the caller to an ERP role used to filter plants and customers.

  6. 6

    Limit and cap results

    Set row limits, query timeouts and a maximum payload size so a vague question cannot pull a million rows.

  7. 7

    Instrument and test

    Write contract tests per tool against a test schema, and ship logs to a store the plant controls.

Example flows

Stock check from any client

Trigger: A user asks an assistant whether item 7731-B is available.

  1. Client calls get_inventory with the item and plant.
  2. Server validates the parameters and runs a bound query on the stock view.
  3. It returns on-hand, allocated and incoming quantities with dates.
  4. The assistant summarizes and cites the tool result.

Result: A consistent, logged answer that works from any MCP-capable assistant.

Press status for a supervisor

Trigger: Supervisor asks why press 14 is idle.

  1. Client calls get_press_status for press 14.
  2. Server returns current work order, last event and downtime reason.
  3. Client calls get_open_workorders for that press to find the next job.
  4. Assistant explains the idle cause and what is queued.

Result: Supervisor gets a clear answer without opening MES screens.

Keeping data on-prem

An MCP server is a natural fit for on-prem DELMIAworks because it runs wherever you put it. Host it on a server in the same network as the Oracle instance, bind to the internal interface only, and connect it to a locally served open-weight model for a fully private setup. If a hosted client such as a cloud assistant needs access, front the server with an authenticated reverse proxy or a private tunnel and restrict the tools exposed to that client. Keep the audit log local and decide which tools are permitted for hosted versus private clients.

Security checklist

  • Use a dedicated read-only Oracle account with SELECT on views only.
  • Bind every parameter. Never concatenate model-provided text into SQL.
  • Authenticate HTTP transport and tie each call to a named user and role.
  • Log tool name, arguments, row count and latency for every call.
  • Treat all text returned from records, such as notes, as untrusted input that could carry injected instructions.

Ways to get it done

Generic database MCP server

Effort: Hours, not for production.

Quick for exploration, but usually exposes too much and lacks role filtering.

Custom server on views

Effort: Two to four weeks including review.

Right balance for most plants with a developer and an Oracle DBA.

Partner such as Netray

Effort: A few weeks to a production pilot.

For on-prem delivery with approval workflows and evaluation included.

Pitfalls

  • !Offering a run_sql tool, which turns the server into an open door.
  • !Returning huge result sets that blow up the model context.
  • !Letting free-text notes fields carry prompt injection into the assistant.
  • !No versioning of tools, so clients break when you rename a field.
  • !Adding write tools before audit, approval and rollback exist.

Frequently asked questions

What is an MCP server for an ERP?

It is a service that exposes your ERP's data and actions as named tools an AI client can call. The client asks for order status, the server runs a controlled query and returns structured results. The same server works with different assistants.

Should the first version allow writes?

No. Ship read-only tools first, verify accuracy and permissions, and add write actions later as proposals that a person approves. Many plants find read-only tools solve most daily questions.

stdio or HTTP transport?

Use stdio for local development and single-user desktop setups. Use HTTP with authentication when multiple people or a shared agent platform will connect. HTTP also lets you centralize logging and rate limits.

Does it work with ChatGPT and Claude?

Both support connecting to MCP servers in some products and plans, though availability and features change. Building to the protocol keeps you from being tied to one vendor, but check each client's current capabilities.

How do I handle different user permissions?

Resolve the caller to a role at the server, then apply plant, customer and field filters inside each query. Do not rely on the model to withhold data it was handed.

Want MCP server working on your DELMIAworks (IQMS)?

A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.

Get a free assessment