sap-cloud-erp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| s4_material_list | List materials/products from SAP S/4HANA Cloud (CE_PRODUCT_0002). Supports OData $filter/$top/$skip/$select to keep results focused. |
| s4_material_get | Get a single material/product by its material number. |
| s4_material_create | Create a new material/product. Required: productType, baseUnit, industrySector. Provide 'product' only if your system uses external numbering (leave blank for internal numbering). Use additionalFields for any other field not listed here (e.g. Division, ProductGroup, GrossWeight). |
| s4_material_update | Update fields on an existing material/product. |
| s4_material_bom_list | List Material Bill of Material headers. Supports OData $filter/$top/$skip/$select. |
| s4_material_bom_getA | Get a Material BOM header by its composite key (billOfMaterial, billOfMaterialCategory, billOfMaterialVariant, material, plant, billOfMaterialVersion, engineeringChangeDocument). Set includeItems=true to also fetch its components. |
| s4_material_bom_create | Create a Material BOM header and (optionally) its components. Required: material, plant, bomHeaderBaseUnit, bomHeaderQuantityInBaseUnit. Components are created as separate follow-up requests after the header, each requiring billOfMaterialComponent, billOfMaterialItemQuantity, billOfMaterialItemUnit. |
| s4_material_bom_update | Update header fields (e.g. BOMHeaderText, BillOfMaterialStatus) of an existing Material BOM. |
| s4_purchase_requisition_list | List purchase requisition headers. Supports OData $filter/$top/$skip/$select. |
| s4_purchase_requisition_get | Get a purchase requisition header (and optionally its items) by requisition number. |
| s4_purchase_requisition_create | Create a purchase requisition with at least one item. Required per item: itemText, accountAssignmentCategory, plant, companyCode, purchasingGroup, requestedQuantity, baseUnit, and either material or materialGroup. |
| s4_purchase_requisition_update | Update fields on an existing purchase requisition header. |
| s4_purchase_order_list | List purchase order headers. Supports OData $filter/$top/$skip/$select. |
| s4_purchase_order_getA | Get a purchase order header (and optionally its items) by PO number. |
| s4_purchase_order_createA | Create a purchase order with at least one item. Required header: companyCode, purchaseOrderType, supplier, purchasingOrganization, purchasingGroup. Required per item: plant, material, orderQuantity, netPriceAmount. For account-assigned items (e.g. category 'M' individual PO tied to a sales order), set item.accountAssignmentCategory and item.accountAssignment {salesOrder, salesOrderItem} — this creates a PurchaseOrderAccountAssignment record. |
| s4_purchase_order_updateB | Update fields on an existing purchase order header. |
| s4_purchase_contract_listA | List purchase contract (outline agreement) headers. Supports OData $filter/$top/$skip/$select. |
| s4_purchase_contract_getA | Get a purchase contract header (and optionally its items) by contract number. |
| s4_purchase_contract_createA | Create a purchase contract (outline agreement) with at least one item. Required header: purchaseContractType, supplier, purchasingOrganization, purchasingGroup, companyCode, validityStartDate, validityEndDate. Required per item: plant, targetQuantity, orderQuantityUnit, and either material or materialGroup. |
| s4_purchase_contract_update | Update fields on an existing purchase contract header. |
| s4_sales_quotation_listB | List sales quotation headers. Supports OData $filter/$top/$skip/$select. |
| s4_sales_quotation_getA | Get a sales quotation header and its items by quotation number. |
| s4_sales_quotation_create | Create a sales quotation with at least one item. Required header: salesQuotationType, salesOrganization, distributionChannel, salesDistrict, soldToParty. Required per item: material, requestedQuantity. |
| s4_sales_quotation_updateB | Update fields on an existing sales quotation header. |
| s4_sales_order_listB | List sales order headers. Supports OData $filter/$top/$skip/$select. |
| s4_sales_order_getA | Get a sales order header and its items by order number. |
| s4_sales_order_createA | Create a sales order with at least one item. Required header: salesOrderType, salesOrganization, distributionChannel, organizationDivision, soldToParty. Required per item: material. |
| s4_sales_order_updateC | Update fields on an existing sales order header. |
| s4_sales_contract_listA | List sales contract headers. Supports OData $filter/$top/$skip/$select. |
| s4_sales_contract_getA | Get a sales contract header and its items by contract number. |
| s4_sales_contract_createA | Create a sales contract with at least one item (the header cannot be created without at least one item/association). Required header: salesContractType, salesOrganization, distributionChannel, salesDistrict, soldToParty. Required per item: material, requestedQuantity. |
| s4_sales_contract_updateB | Update fields on an existing sales contract header. |
| s4_production_order_listA | List manufacturing/production orders. Supports OData $filter/$top/$skip/$select. |
| s4_production_order_getA | Get a production order by its order number. |
| s4_production_order_create | Create a production/manufacturing order. Required: material, productionPlant, manufacturingOrderType, totalQuantity. Components and operations cannot be set directly here — they come from BOM/routing explosion once the order is created. Provide manufacturingOrder only if your order type uses external numbering. |
| s4_production_order_updateA | Update fields on an existing production order (e.g. dates, quantity). Components/operations are not updatable via this tool. |
| s4_production_order_releaseA | Release a production/manufacturing order (OData function import ReleaseOrder). Order status fields like OrderIsReleased are read-only via PATCH; this is the only way to release. |
| s4_planned_order_listA | List planned orders. Supports OData $filter/$top/$skip/$select. |
| s4_planned_order_getA | Get a planned order by its order number. |
| s4_planned_order_createA | Create a planned order. Practically required: material, mrpPlant, totalQuantity (exact mandatory-field rules are not fully documented by SAP for this API — verify on your tenant). |
| s4_planned_order_update | Update fields on an existing planned order (e.g. quantity, firm indicator). |
| s4_production_order_confirmation_list | List order-level production order confirmations. Supports OData $filter/$top/$skip/$select. |
| s4_production_order_confirmation_get | Get a confirmation by its composite key (confirmationGroup, confirmationCount). |
| s4_production_order_confirmation_create | Post an order-level confirmation for a production order (confirms the whole order, not a single operation). Required: orderID, confirmationYieldQuantity, confirmationUnit. Do not set orderOperation/sequence here — that creates an operation-level confirmation instead (use s4_production_operation_confirmation_create). |
| s4_production_operation_confirmation_list | List operation-level ('time ticket') production confirmations. Supports OData $filter/$top/$skip/$select. |
| s4_production_operation_confirmation_get | Get a confirmation by its composite key (confirmationGroup, confirmationCount). |
| s4_production_operation_confirmation_create | Post an operation-level ('time ticket') confirmation for a single operation of a production order. Required: orderID, orderOperation, sequence, confirmationYieldQuantity, confirmationUnit. A production order cannot mix order-level and operation-level confirmations. |
| s4_material_document_list | List material document headers (goods movements). Supports OData $filter/$top/$skip/$select. |
| s4_material_document_get | Get a material document header and its items by document number and year. |
| s4_material_document_create | Post a goods movement (material document) with at least one item. Required per item: material, plant, goodsMovementType, entryUnit, quantityInEntryUnit. Additional fields become required depending on movement type — e.g. for a goods receipt against a PO (movement type 101) also set purchaseOrder, purchaseOrderItem, and goodsMovementRefDocType='B'; manufacturingOrder for order receipts. |
| s4_outbound_delivery_list | List outbound delivery headers. Supports OData $filter/$top/$skip/$select. |
| s4_outbound_delivery_getA | Get an outbound delivery header and its items by delivery number. |
| s4_outbound_delivery_createA | Create an outbound delivery with reference to a preceding sales order (or other document). Required: shippingPoint, at least one item with referenceSDDocument. |
| s4_outbound_delivery_update | Update fields on an existing outbound delivery header (e.g. planned dates). Not for posting goods issue, which is a separate function import out of scope for this tool. |
| s4_inbound_delivery_list | List inbound delivery headers. Supports OData $filter/$top/$skip/$select. |
| s4_inbound_delivery_get | Get an inbound delivery header and its items by delivery number. |
| s4_inbound_delivery_create | Create an inbound delivery with reference to a purchase order. Required: shippingPoint, supplier, at least one item with referenceSDDocument (PO number) and referenceSDDocumentItem (PO item). |
| s4_inbound_delivery_update | Update fields on an existing inbound delivery header. Note: some fields (e.g. batch/manufacturing date) are not updatable via this API even when included in the payload (known SAP limitation). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aytacmehmet/sap-cloud-erp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server