
List business partners (companies and people) with pagination and optional OData $filter, $orderby and $select. Use this to discover BusinessPartner numbers for other tools.
Get a single business partner by its BusinessPartner number. Use listbusinesspartners to find numbers.
Create a business partner. BusinessPartnerCategory is required ('1' person, '2' organization, '3' group). Returns the new BusinessPartner number.
Update fields of an existing business partner by BusinessPartner number. Use listbusinesspartners to find numbers.
List customers with pagination and optional OData $filter, $orderby and $select. Use this to discover Customer numbers (e.g. for SoldToParty on sales orders).
Get a single customer by its Customer number. Use list_customers to find numbers.
List suppliers (vendors) with pagination and optional OData $filter, $orderby and $select. Use this to discover Supplier numbers (e.g. for Supplier on purchase orders or InvoicingParty on supplier invoices).
Get a single supplier by its Supplier number. Use list_suppliers to find numbers.
List business partner addresses with pagination. Filter by businesspartner to get one partner's addresses, or use OData $filter/$orderby/$select. Use listbusiness_partners to find BusinessPartner numbers.
Add an address to a business partner. BusinessPartner is required. Use listbusinesspartners to find numbers. Returns the new address with its AddressID.
List journal entry (G/L) line items with pagination. Filter by companycode and/or fiscalyear, or use OData $filter/$orderby/$select. This finance service is read-only.
Get a single journal entry line item by its five-part composite key (SourceLedger, CompanyCode, FiscalYear, AccountingDocument, LedgerGLLineItem). Use listjournalentry_items to find these values.
List products (materials) with pagination and optional OData $filter, $orderby and $select. Use this to discover Product numbers for sales/purchase order items.
Get a single product by its Product number. Use list_products to find numbers.
Create a product. Product, ProductType (FERT/HALB/ROH/HAWA) and BaseUnit are required. Returns the created product.
Update fields of an existing product by Product number. Use list_products to find numbers.
List product descriptions (language-specific texts) with pagination. Filter by product to get one product's descriptions, or use OData $filter/$orderby/$select. Use list_products to find Product numbers.
List purchase orders with pagination and optional OData $filter, $orderby and $select. Use this to discover PurchaseOrder numbers.
Get a single purchase order by its PurchaseOrder number. Use listpurchaseorders to find numbers.
Create a purchase order. PurchaseOrderType, CompanyCode, PurchasingOrganization, PurchasingGroup and Supplier are required. Use list_suppliers to find a Supplier number. Returns the new PurchaseOrder number.
Update header fields of an existing purchase order by PurchaseOrder number. Use listpurchaseorders to find numbers.
List purchase order line items with pagination. Filter by purchaseorder to get one order's items, or use OData $filter/$orderby/$select. Use listpurchase_orders to find PurchaseOrder numbers.
Get a single purchase order item by its composite key (PurchaseOrder + PurchaseOrderItem). Use listpurchaseorder_items to find item numbers.
Add a line item to a purchase order. PurchaseOrder, Material and Plant are required. Use listpurchaseorders for PurchaseOrder and listproducts/getproduct for Material. Returns the created item with its PurchaseOrderItem number.
Update a purchase order item by its composite key (PurchaseOrder + PurchaseOrderItem). Use listpurchaseorder_items to find item numbers.
List sales orders with pagination and optional OData $filter, $orderby and $select. Use this to discover SalesOrder numbers.
Get a single sales order by its SalesOrder number. Use listsalesorders to find numbers.
Create a sales order. SalesOrderType, SalesOrganization, DistributionChannel, OrganizationDivision and SoldToParty are required. Use list_customers to find a SoldToParty customer number. Returns the new SalesOrder number.
Update header fields of an existing sales order by SalesOrder number. Use listsalesorders to find numbers.
List sales order line items with pagination. Filter by salesorder to get one order's items, or use OData $filter/$orderby/$select. Use listsales_orders to find SalesOrder numbers.
Get a single sales order item by its composite key (SalesOrder + SalesOrderItem). Use listsalesorder_items to find item numbers.
Add a line item to a sales order. SalesOrder and Material are required. Use listsalesorders for SalesOrder and listproducts/getproduct for Material. Returns the created item with its SalesOrderItem number.
Update a sales order item by its composite key (SalesOrder + SalesOrderItem). Use listsalesorder_items to find item numbers.
List supplier invoices with pagination and optional OData $filter, $orderby and $select. Use this to discover SupplierInvoice numbers and their FiscalYear.
Get a single supplier invoice by its composite key (SupplierInvoice + FiscalYear). Use listsupplierinvoices to find numbers and fiscal years.
Create a supplier invoice. CompanyCode, DocumentDate, PostingDate, InvoicingParty, DocumentCurrency and InvoiceGrossAmount are required. Use list_suppliers to find an InvoicingParty supplier number. Returns the new SupplierInvoice number.
List supplier invoice items (purchase-order reference lines) with pagination. Filter by supplierinvoice to get one invoice's items, or use OData $filter/$orderby/$select. Use listsupplier_invoices to find SupplierInvoice numbers.
Validate the SAP S/4HANA communication user credentials and tenant host by making a minimal authenticated read. Returns success true/false with a message.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now