Connect 4 SAP products to Claude, ChatGPT and Copilot through one MCP server. Powered by AnythingMCP.
SAP MCP Server connects 4 SAP products to Claude, ChatGPT, Copilot and Cursor through one MCP endpoint: 64 tools in total. Pick the systems you run, add their credentials, and each becomes a set of MCP tools. It runs on AnythingMCP Cloud or self-hosted with Docker, with encrypted credentials and an audit log.
Last verified: 2026-09-27 against the systems marked verified in the table (each one's own verification is linked from its row).
Adapter synced: 2026-09-27
Maintained by helpcode.ai, the team that builds and maintains AnythingMCP.
| System | Region | Tools | Auth | Verified live | Cloud | Dedicated repo |
|---|---|---|---|---|---|---|
| SAP Business One | DE | 12 | Login session | not yet | install | sap-business-one-mcp-server |
| SAP S/4HANA Cloud | Global | 20 | OAuth 2.0 | not yet | install | – |
| SAP S/4HANA (OData) | Global | 12 | User + password | not yet | install | – |
| SAP S/4HANA (HANA SQL) | Global | 10 | DB user | yes, 2026-09-27 | install | sap-hana-mcp-server |
| SAP Concur | Global | 10 | OAuth 2.0 | not yet | install | – |
"Verified live" means someone ran the connector against a real system; its own repository says how and when. "Not yet" means it follows the vendor's API documentation and has not been confirmed there; reports are welcome.
Connect it through what it already exposes: its OData services (odata-to-mcp), its REST API (openapi-to-mcp), its SOAP services (soap-to-mcp) or its SQL database, read-only (sql-to-mcp). That covers custom and on-premises builds that no catalog adapter will ever know.
git clone https://github.com/HelpCode-ai/sap-mcp-server.git && cd sap-mcp-server
./scripts/install.sh # installs every system whose credentials are set in .env-
Claude (claude.ai, Desktop, mobile): Customize → Connectors → Add custom connector, paste your MCP server URL and sign in. Claude connects from Anthropic's cloud, so the URL must be public HTTPS: your AnythingMCP Cloud URL, or your own instance behind TLS.
-
Claude Code:
claude mcp add --transport http sap-mcp-server http://localhost:4000/mcp --header "X-API-Key: <MCP_API_KEY>" -
Cursor (
.cursor/mcp.json) and VS Code / GitHub Copilot (.vscode/mcp.json, keyserversinstead ofmcpServers, plus"type": "http"):{ "mcpServers": { "sap-mcp-server": { "url": "http://localhost:4000/mcp", "headers": { "X-API-Key": "<MCP_API_KEY>" } } } } -
ChatGPT: add the public HTTPS URL as a connector (app) in ChatGPT's settings. A
localhostURL does not work there.
| Tool | What it does | Access |
|---|---|---|
b1_list_business_partners |
List business partners (customers, suppliers, leads). | read |
b1_get_business_partner |
Get one business partner by CardCode. | read |
b1_list_items |
List inventory items (articles). | read |
b1_get_item |
Get one item by ItemCode. | read |
b1_list_orders |
List sales orders. | read |
b1_get_order |
Get one sales order by DocEntry (integer primary key). | read |
b1_create_order |
Create a new sales order. | write |
b1_list_invoices |
List A/R invoices. | read |
b1_get_invoice |
Get one A/R invoice by DocEntry. | read |
b1_list_quotations |
List sales quotations. | read |
b1_list_delivery_notes |
List delivery notes (outgoing goods movements). | read |
b1_get_company_info |
Sanity check: returns company metadata (admin info). | read |
| Tool | What it does | Access |
|---|---|---|
s4_cloud_list_services |
List the OData services this connector reaches. | read |
s4_cloud_describe_service |
The entity sets of an OData service with their business labels, keys and whether they are analytical or parameterised. | read |
s4_cloud_describe_entity |
The fields of one entity set: labels, types, keys, the currency or unit field of each amount, dimensions and measures, and required filters. | read |
s4_cloud_query |
Read rows from an entity set, with field names checked against the service model and server paging followed. | read |
s4_cloud_get_entity |
Read one entity by its key, optionally with related entities. | read |
s4_list_business_partners |
List business partners (combined customers + suppliers) from API_BUSINESS_PARTNER. | read |
s4_get_business_partner |
Get one business partner by its 10-character ID. | read |
s4_list_customers |
List customer master records (subset of business partners). | read |
s4_list_suppliers |
List supplier master records (subset of business partners). | read |
s4_list_sales_orders |
List sales orders (headers). | read |
s4_get_sales_order |
Get one sales order by its 10-char number. | read |
s4_list_sales_order_items |
List the items (line entries) of a given sales order. | read |
s4_list_purchase_orders |
List purchase orders (headers). | read |
s4_get_purchase_order |
Get one purchase order by its 10-char number. | read |
s4_list_billing_documents |
List billing documents (customer invoices, credit memos). | read |
s4_list_outbound_deliveries |
List outbound delivery headers (goods leaving the warehouse). | read |
s4_list_journal_entries |
List journal entry items (general ledger postings). | read |
s4_list_products |
List materials / products (item master). | read |
s4_get_product |
Get one product/material by its ID. | read |
s4_list_purchase_requisitions |
List purchase requisition items (pre-PO demand requests). | read |
| Tool | What it does | Access |
|---|---|---|
s4_list_services |
List the OData services published by the SAP Gateway (V2 and V4 catalog), filtered by words in their name, title or description. | read |
s4_describe_service |
The entity sets of an OData service with their business labels, keys and whether they are analytical or parameterised. | read |
s4_describe_entity |
The fields of one entity set: labels, types, keys, the currency or unit field of each amount, dimensions and measures, and required filters. | read |
s4_query |
Read rows from an entity set, with field names checked against the service model and server paging followed. | read |
s4_get_entity |
Read one entity by its key, optionally with related entities. | read |
s4_guide |
How to read SAP S/4HANA through OData: the workflow (overview), filter syntax, analytical services and KPIs, finance, sales, inventory and pitfalls. | read |
s4_journal_entry_items |
Journal entry line items from the general ledger (API_JOURNALENTRYITEMBASIC_SRV / A_JournalEntryItemBasic): company code, fiscal year, G/L account, posting… | read |
s4_billing_documents |
Billing documents (API_BILLING_DOCUMENT_SRV / A_BillingDocument): invoices, credit memos and cancellations with date, sales organization, sold-to party, net… | read |
s4_sales_orders |
Sales orders (API_SALES_ORDER_SRV / A_SalesOrder) with type, sales organization, sold-to party, creation date, net amount, currency and processing status. | read |
s4_business_partners |
Business partners (API_BUSINESS_PARTNER / A_BusinessPartner): customers, suppliers and contacts with name, category and grouping. | read |
s4_material_stock |
Material stock (API_MATERIAL_STOCK_SRV / A_MatlStkInAcctMod) per material, plant, storage location, batch and stock type, in the material's base unit. | read |
s4_products |
Products (API_PRODUCT_SRV / A_Product) with type, group and base unit. | read |
| Tool | What it does | Access |
|---|---|---|
sap_guide |
The SAP data model explained for SQL: how to work (overview), client and data types (basics), finance, sales, inventory, procurement, operations, pitfalls… | read |
sap_org_structure |
Company codes (with currency, chart of accounts and fiscal year variant), controlling areas, plants, sales organizations and purchasing organizations of… | read |
sap_search_tables |
Find SAP tables and database views by name pattern or by words in their description (e.g. "billing document", "VBRK", "ZSD%"). | read |
sap_describe_table |
Every field of an SAP table with its business label, key flag, type, the currency or unit field that goes with each amount or quantity, and the check table… | read |
sap_find_fields |
Find which tables hold a business field, by words in its label (e.g. "payment terms", "net due date") or by data element name. | read |
sap_field_values |
What the codes in a field mean: the fixed values of its domain with their descriptions (e.g. VBRK VBTYP, ACDOCA KOART). | read |
sap_table_relations |
How a table joins to others: its foreign keys with the check table and the join condition, and the text table that holds its descriptions. | read |
sap_search_cds_views |
Search SAP's CDS views (the S/4HANA virtual data model) by name or label, e.g. "journal entry", "billing", "stock". | read |
sap_describe_cds_view |
Columns of a CDS view with their labels, default aggregation (SUM marks a measure), currency and unit fields, text fields and foreign-key associations. | read |
sap_query |
Run one read-only SQL SELECT against the SAP HANA database and return up to 1000 rows. | read |
| Tool | What it does | Access |
|---|---|---|
concur_list_reports |
List expense reports for the connected company. | read |
concur_get_report |
Get the full detail of one expense report by its ID. | read |
concur_list_report_entries |
List the individual expense entries (line items) inside a given report. | read |
concur_submit_report |
Submit an expense report for approval. | write |
concur_workflow_action |
Approve, send-back or reject a submitted expense report. | write |
concur_list_attendees |
List meeting/expense attendees registered in the company directory. | read |
concur_list_locations |
List travel/expense locations (cities, regions) available to your tenant. | read |
concur_list_users |
List user accounts in the connected Concur tenant. | read |
concur_get_user |
Get one user profile by its Concur user ID. | read |
concur_list_itineraries |
List travel itineraries (Concur Travel). | read |
Yes, this repository: SAP Business One, SAP S/4HANA (Cloud Public Edition, plus on-premise and Private Cloud through OData or HANA SQL) and SAP Concur as MCP tools for Claude, ChatGPT and Copilot, through AnythingMCP.
SAP Business One (Service Layer), SAP S/4HANA Cloud Public Edition (OData APIs, OAuth 2.0 via BTP), SAP S/4HANA on-premise and Private Cloud (OData through SAP Gateway, or SQL on the HANA database) and SAP Concur (expense and travel). ECC and BW with SAP Gateway connect through the OData connector as well.
OData goes through SAP Gateway: SAP checks the technical user's authorizations on every call and only published services are reachable, which is what SAP's API policy expects from third-party integrations. HANA SQL reads every table and CDS view, with SAP's data dictionary as the map, and aggregates on the database; it bypasses SAP's application authorizations, so the database grants are the boundary, and your HANA licence must allow third-party SQL access. Both can run on the same MCP server.
SAP Business One can create sales orders and Concur can submit expense reports and act on approvals. The S/4HANA tools only read: the OData built-ins are read-only, and the HANA session runs SET TRANSACTION READ ONLY. Roles decide which tools each MCP server exposes.
The HANA SQL connector was verified on 2026-09-27 against an SAP S/4HANA 2025 Private Cloud system, every tool. The OData engine was verified against public OData services, not yet against a live SAP Gateway. The other adapters follow SAP's API documentation; the "Verified live" column says so per product.
- sap-business-one-mcp-server: SAP Business One MCP server: Claude & ChatGPT read partners, items, orders, invoices and quotations, and create sales orders.
- sap-hana-mcp-server: SAP HANA MCP server: Claude & ChatGPT read SAP S/4HANA with SQL, guided by SAP's own data dictionary and CDS views. Read-only.
- odata-to-mcp: OData to MCP: turn any OData V2 or V4 service, SAP Gateway included, into MCP tools for Claude & ChatGPT. Reads $metadata, no code.
- erp-mcp-server: ERP MCP server: connect 17 ERPs (SAP, Odoo, JTL-Wawi, Xentral, weclapp, ERPNext…) to Claude & ChatGPT. Self-hosted or cloud.
- soap-to-mcp: Turn any SOAP/WSDL web service into MCP tools for Claude & ChatGPT. Legacy SOAP APIs as AI tools, no code, self-hosted.
- AnythingMCP: the open-source MCP server and gateway this repository is built on.
AGPL-3.0-only. The adapter definition in adapter/ comes from AnythingMCP (AGPL-3.0).