# SAP S/4HANA MCP

> SAP S/4HANA MCP connects your AI agent directly into SAP's core financial and operational systems. Use natural conversation to manage purchase orders, update business partner records, track live inventory levels, and post journal entries—all without navigating complex transaction codes or forms. It turns massive ERP data into actionable chat commands for anyone who knows what they need done.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** purchase-orders, master-data, inventory-management, financial-postings, business-partners, enterprise-resource-planning

## Description

This MCP lets your AI agent talk directly to your SAP S/4HANA backend. Instead of logging into multiple modules and clicking through pages just to get a balance sheet figure, you ask the question in plain English. You can manage everything from creating new business partners—whether they're suppliers or customers—to checking if those partners have valid bank details.

Need to check inventory? Ask for stock levels by material across all plants, and your agent gives you the total count instantly. Need to fix a finance problem? You can retrieve G/L account balances or post journal entries right through chat. When you're ready to buy something, your agent handles creating full purchase orders, checking their approval status, and even pulling up detailed line-item histories for auditing. The whole catalog of possibilities is managed and hosted by Vinkius, letting you connect once and access all these critical ERP functions using any MCP-compatible client.

## Tools

### list_business_partners
Retrieves a list of all business partners, allowing you to filter the results based on categories or roles.

### get_business_partner
Fetches detailed information for a single business partner using their unique ID.

### create_business_partner
Adds a new record to the system, establishing a brand-new vendor or customer profile.

### list_purchase_orders
Shows a list of purchase orders, letting you filter them by supplier, status, or purchasing organization.

### create_purchase_order
Generates an entire purchase order document using specified company codes and defined line items.

### list_sales_orders
Retrieves a list of sales orders, enabling you to filter them by various criteria within your sales organization.

### get_material_stock
Provides the current quantity and availability data for a specific material across all storage locations.

### get_gl_balances
Retrieves detailed financial records showing balances for specified General Ledger accounts.

### query_odata
Allows execution of any custom, exposed OData v4 query path on the S/4HANA system.

## Prompt Examples

**Prompt:** 
```
Show me all pending purchase orders for plant 1000 above €50,000.
```

**Response:** 
```
Found 7 pending POs for Plant 1000 above €50K: 1. PO 4500012345 — 'Raw Materials Q2' (€125,000, Supplier: ACME GmbH), 2. PO 4500012350 — 'Server Equipment' (€89,500, Supplier: TechCorp), and 5 more. Total pending value: €487,230. Would you like to approve or view details?
```

**Prompt:** 
```
What's the current stock level for material MAT-2024-A across all plants?
```

**Response:** 
```
Material MAT-2024-A stock levels: Plant 1000 (Berlin) — 2,450 units, Plant 2000 (Shanghai) — 1,800 units, Plant 3000 (São Paulo) — 920 units. Total available: 5,170 units. Safety stock threshold is 1,000/plant — São Paulo is below threshold. Want me to create a purchase requisition?
```

**Prompt:** 
```
Create a business partner record for 'NovaTech Solutions' as a supplier.
```

**Response:** 
```
Business Partner BP-0010045678 ('NovaTech Solutions') created successfully as a Supplier. Category: Organization, Role: Vendor. Would you like me to add bank details, purchasing organization assignments, or a contact person?
```

## Capabilities

### Manage business entities
Create, view, or modify master data for partners like customers and vendors.

### Process purchase requests
Generate new purchase orders, check their approval status, or review historical PO details.

### Track material stock and history
Get real-time inventory counts across different storage locations and view goods receipt records.

### Manage sales fulfillment data
Retrieve information on existing sales orders, including delivery statuses and billing documents.

### Handle financial transactions
Post journal entries or query current general ledger account balances for finance audits.

### Run custom data queries
Execute tailored reports using specific OData v4 service paths to retrieve precise business intelligence.

## Use Cases

### The Quarterly Audit Prep
An accountant needs to verify G/L account balances for five different departments. Instead of logging into the finance module and running separate reports, they simply ask their agent via chat to use `get_gl_balances`. The agent collects all required data points in one organized response.

### The Rush Reorder
A supply chain manager sees that the safety stock for 'MAT-2024' is dropping. They ask their agent to check `get_material_stock` across all plants, instantly identifying which location needs an urgent purchase requisition.

### Vendor Onboarding
A procurement specialist has a new supplier. Instead of manually inputting data into multiple forms, they tell their agent to `create_business_partner`, providing the category and contact details in one go.

### Checking PO Status for Clients
A sales team member needs to know if a large order is approved. They ask the agent about pending purchase orders, and the system uses `list_purchase_orders` to provide an immediate status update.

## Benefits

- Stop clicking through transaction codes. You can now create purchase orders or check inventory levels using simple chat commands, making complex processes conversational.
- Access master data instantly. Need to know if a supplier is active? Use `list_business_partners` and `get_business_partner` to verify vendor details without logging into the dedicated CRM module.
- Finance becomes faster. Instead of running multiple reports for period-end close, you can use `get_gl_balances` or post journal entries directly through your agent's chat window.
- Optimize procurement flow. Your agent handles everything from checking material requirements to generating a full purchase order via `create_purchase_order`, giving you end-to-end visibility.
- Drill down into any data point. If the built-in tools don't cover it, use `query_odata` to run highly customized queries and get exactly the report you need.

## How It Works

The bottom line is that you bypass the SAP user interface entirely and interact with complex business processes using simple conversation.

1. Subscribe to this MCP and provide your SAP S/4HANA Communication User credentials and instance URL.
2. Connect your preferred AI client, like Cursor or Windsurf, through the Vinkius platform.
3. Ask your agent a question—for example, 'Show me all pending POs over $50k'—and it executes the necessary steps in the background.

## Frequently Asked Questions

**How do I create a purchase order using the SAP S/4HANA MCP?**
You tell your agent to 'create a purchase order' and provide the necessary details like company code, supplier, and line items. The system uses `create_purchase_order` to draft and submit the entire document for you.

**Can I check inventory levels with the SAP S/4HANA MCP?**
Yes, you use `get_material_stock`. Just specify the material code and ask which plants or storage locations you want to see current stock counts for.

**Is financial posting easy with this MCP?**
Posting journal entries is streamlined. You tell your agent what entry needs to happen, specifying the G/L accounts and amounts. The system executes the post via `get_gl_balances` for verification.

**How do I find existing vendor information?**
You can use `list_business_partners` or `get_business_partner`. If you know the name, list them first to get the ID, and then use that ID for specific details.

**Does this MCP support custom reports?**
Yes. For data not covered by standard tools, you can run a customized query using `query_odata` by providing the service path and entity set name.