mcp-epicor
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Host for HTTP transport | 127.0.0.1 |
| MCP_PORT | No | Port for HTTP transport | 8002 |
| MCP_JWKS_URI | No | JWKS URI for inbound JWT validation (required for HTTP unless MCP_JWT_SECRET is set) | |
| MCP_TRANSPORT | No | Transport mode: 'stdio' (default) or 'http' | stdio |
| EPICOR_API_KEY | No | X-API-Key used for outbound Kinetic authentication | |
| EPICOR_COMPANY | No | Kinetic Company id (path segment in /api/v2/odata/{Company}/...) | |
| MCP_JWT_ISSUER | No | Expected JWT issuer (used with HTTP transport) | |
| MCP_JWT_SECRET | No | JWT secret for inbound JWT validation (required for HTTP unless MCP_JWKS_URI is set) | |
| EPICOR_BASE_URL | No | Kinetic origin, e.g. https://your-server/kinetic | |
| EPICOR_PASSWORD | No | Password for Basic auth (alternative to bearer token) | |
| EPICOR_USERNAME | No | Username for Basic auth (alternative to bearer token) | |
| MCP_JWT_AUDIENCE | No | Expected JWT audience (used with HTTP transport) | |
| EPICOR_BEARER_TOKEN | No | Bearer token, alternative to Basic auth |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_sales_orderB | Read a Kinetic sales order header, lines, and releases by OrderNum. |
| get_customerB | Read a Kinetic customer by CustNum or CustID. |
| get_partB | Read a Kinetic part by PartNum. |
| get_shipmentsA | Read customer shipment pack lines (ShipDtls) for an order. Never writes CustShip. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| health_resource |
TDQS
Scored across 4 tools
Each tool targets a distinct entity (sales order, customer, part, shipments), and descriptions clarify their purposes. get_shipments could be confused with get_sales_order since it retrieves order-related data, but the description explicitly distinguishes it as shipment pack lines.
All tools follow a consistent get_ + noun snake_case pattern, making them predictable and easy to distinguish.
Four tools is borderline thin for an ERP integration like Epicor Kinetic. While each tool is well-scoped, the set covers only a small fraction of typical ERP operations, suggesting under-scoping.
The surface is read-only with no create, update, delete, or list operations for any entity. This creates significant gaps for an agent that needs to perform common ERP tasks beyond fetching individual records.