Infor M3 MCP server
Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Infor M3, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.
Overview
These tools give agents read and write access to Infor M3 data through three generic tools: one for read transactions, one for write transactions, and one to look up the field definitions a transaction requires. Use them to query, create, update, or delete M3 business records across any supported program.
For setup instructions, see SnapLogic MCP Server quickstart.
Example Prompts
- Create a new customer in M3: company 100, customer number NEW01, name 'New Corp', address '123 Main St', country US
- Run CRS610MI/AddBasicData for this customer record
- Update the customer name on CUNO ACME01 in company 100
- Delete item A100 from company 100 using MMS200MI
- Change the delivery address on that M3 customer to the new one
- What fields does CRS610MI/LstByNumber take?
- Describe the input fields for the M3 customer add transaction
- Which field codes do I need to create a customer in M3?
- Show me the output fields returned by MMS200MI/GetItmBasic
- That M3 write failed on a missing field — list what AddBasicData actually requires
Tools
| Tool Name | Functions |
|---|---|
| InforM3Action | Execute a write M3 MI transaction (Add/Update/Delete) on a program. |
| InforM3Describe | List the field definitions for an M3 program/transaction from the M3 metadata API. |
| InforM3Query | Run any read/List M3 MI transaction and return the matching records. |
Set up the MCP Server tools
- Download infor-m3_tools.zip.
- In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded infor-m3_tools.zip. Designer unpacks each pipeline into the project.
- Attach the required account to the connectivity snaps (see Connection Setup).
- Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.
Configure account
Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.
These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.
See the SnapLogic account documentation for this connector: API Suite Account Configuration.
InforM3Action
Executes a write M3 MI transaction, covering Add, Update, Delete, and Change operations on master or transactional data. Use InforM3Describe first if you are unsure which field codes the transaction requires.
| Parameter | Type | Default | Description |
|---|---|---|---|
| program* | string | — | M3 MI program to call, e.g. CRS610MI. |
| transaction* | string | — | Write transaction on that program, e.g. AddBasicData, UpdBasicData, DelBasicData. |
| fields* | object | — | Map of M3 four-character field codes to values making up the record, e.g. {"CONO": "100", "CUNO": "NEW01", "CUNM": "New Corp"}. Each key becomes a URL-encoded query argument. |
* Required parameter.
Try asking:
- Create a new customer in M3: company 100, customer number NEW01, name 'New Corp', address '123 Main St', country US
- Run CRS610MI/AddBasicData for this customer record
- Update the customer name on CUNO ACME01 in company 100
- Delete item A100 from company 100 using MMS200MI
- Change the delivery address on that M3 customer to the new one
InforM3Describe
Returns the field definitions for an M3 MI transaction, so you can discover the field codes a program expects before calling it. Use it when field codes are unknown or when a write transaction fails on a missing field.
| Parameter | Type | Default | Description |
|---|---|---|---|
| program* | string | — | M3 MI program to describe, e.g. CRS610MI. Sent as MINM. |
| transaction* | string | — | Transaction on that program to describe, e.g. LstByNumber. Sent as TRNM. |
| field_type | string | I |
M3 field-type selector, sent as TRTP. Defaults to 'I' when blank. |
* Required parameter.
Try asking:
- What fields does CRS610MI/LstByNumber take?
- Describe the input fields for the M3 customer add transaction
- Which field codes do I need to create a customer in M3?
- Show me the output fields returned by MMS200MI/GetItmBasic
- That M3 write failed on a missing field — list what AddBasicData actually requires
InforM3Query
Runs a read M3 MI transaction and returns the matching records, with optional controls for the number of rows and the columns returned. Use it to query any M3 business object when the program and transaction are known or have been discovered with InforM3Describe.
| Parameter | Type | Default | Description |
|---|---|---|---|
| program* | string | — | M3 MI program to call, e.g. CRS610MI, MMS200MI, OIS100MI. |
| transaction* | string | — | Transaction on that program, e.g. LstByNumber, GetBasicData. |
| fields* | object | — | Map of M3 four-character field codes to values used as the transaction's input, e.g. {"CONO": "100", "CUNO": "ACME01"}. Each key becomes a URL-encoded query argument. |
| max_records | string | 100 |
Maximum rows to return; sent as the maxrecs modifier. Defaults to 100 when blank. |
| return_columns | string | — | Subset of columns to return; sent as the returncols modifier. Omit to return every column the transaction produces. |
* Required parameter.
Try asking:
- List the customers in company 100 from CRS610MI
- Run CRS610MI/LstByNumber for CONO 100 and give me the first 25 rows
- Look up item MMS200MI details for item number A100 in company 100
- Get open order lines from OIS100MI for company 100, but only return the order number and status columns
- Show me 500 records from that M3 list transaction instead of the default 100