acu-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACU_COMPANY | Yes | The company login name in Acumatica. | |
| ACU_VERSION | Yes | The API version (e.g., 25.200.001). | |
| ACU_BASE_URL | Yes | The base URL of your Acumatica instance including tenant. | |
| ACU_ENDPOINT | Yes | The endpoint name (e.g., Default). | |
| ACU_PASSWORD | Yes | The password for the Acumatica service account. | |
| ACU_USERNAME | Yes | The username for the Acumatica service account. | |
| ACU_CLIENT_ID | Yes | The OAuth2 client ID (usually client_id@company). | |
| ACU_CLIENT_SECRET | Yes | The OAuth2 client secret. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_sales_ordersA | Query Acumatica sales orders using the SO-SalesOrder generic inquiry. Use this for lists, analytics, and summaries. Supports OData $filter and $orderby. |
| get_sales_orderA | Get a single Acumatica sales order with full line item detail. Use this when you need line-level data for a specific known order. |
| list_inventory_itemsA | List Acumatica stock/inventory items. Supports OData filtering. Use this to explore inventory, find items by class or status, or get item lists. |
| get_inventory_itemA | Get a specific Acumatica inventory item with warehouse stock quantities. |
| query_shipmentsA | List and filter Acumatica shipments. Use this for shipment analytics, tracking open or completed shipments, or finding shipments by customer or warehouse. |
| get_shipmentA | Get a single Acumatica shipment with full line item detail. |
| query_invoicesA | List and filter Acumatica sales invoices (AR). Use this for revenue analytics, finding open or overdue invoices, or summarizing invoice activity by customer. |
| get_invoiceB | Get a single Acumatica sales invoice with full line item detail. |
| query_purchase_ordersA | List and filter Acumatica purchase orders. Use this for procurement analytics, finding open or pending POs, or summarizing spend by vendor. |
| get_purchase_orderA | Get a single Acumatica purchase order with full line item detail. |
| query_customersA | List and filter Acumatica customers. Use this to look up customers by name, class, status, or credit terms for analytics and reporting. |
| get_customerA | Get a specific Acumatica customer with full detail including billing, shipping, and credit info. |
| list_odata_entitiesA | List all available OData entity sets (Generic Inquiries) exposed by Acumatica. Call this first to discover valid entity names before using query_odata. |
| query_odataA | Query any Acumatica Generic Inquiry via OData. Use list_odata_entities first to find valid entity names. Supports OData $filter, $select, $orderby, $top, and $skip. |
| list_odata_v4_entitiesA | List all available OData v4 DAC entity sets exposed by Acumatica. Unlike list_odata_entities (Generic Inquiries), this exposes raw DAC tables (SOOrder, BAccount, InventoryItem, GLTran, etc.). Use the returned names with query_odata_v4. |
| query_odata_v4A | Query any Acumatica DAC table directly via OData v4. Exposes raw DAC entities (e.g. SOOrder, BAccount, InventoryItem, GLTran, APTran, INTran). Use list_odata_v4_entities to discover valid entity names. Supports OData $filter, $select, $orderby, $top, and $skip. IMPORTANT: Large tables (e.g. GLTran) will timeout without a filter — always apply a date range or other filter. Always use $select to limit returned fields. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools follow a clear get/query/list pattern with distinct resource scopes, but the specialized query tools (query_sales_orders, query_invoices, etc.) overlap functionally with the generic query_odata tool, which can access the same data. The descriptions help, but an agent might still be unsure which to use for a particular task.
Tool names are mostly consistent with a verb_noun pattern (get_* for single entities, query_* for filtered lists, list_* for enumerations). However, 'list_inventory_items' breaks the query_ convention used for similar list operations, and the OData tool naming mixes 'list' and 'query' for related actions.
16 tools is slightly above the typical 3-15 range, but the breadth is justified for an ERP system covering multiple modules (sales, shipping, invoicing, purchasing, inventory, customers) plus generic OData access. The count feels reasonable for the stated scope.
The tool set provides comprehensive read/query coverage for key Acumatica resources, and the generic OData tools fill gaps for any entity not covered by specialized wrappers. The main gap is the absence of write operations, but the descriptions emphasize analytics and reporting, making a read-only surface likely intentional.