CostingGeek/sap-mcp
A Python server that fetches sales orders from SAP's business data graph and hands them to Claude Desktop — the only entry here pointed at that API rather than at one system's own services.
SAP's business data graph is the one API surface on this capability that nothing else here touches: every neighbour speaks OData against a single system, this speaks one composed API across the landscape. The README calls it the SAP Graph API, which is what SAP called it until 2026-07-06; the capability is API CompositionAPI CompositionOne API over the business data in a landscape: a business data graph queried with OData V4 or GraphQL, instead of each source system's own API.sap official, btp now, and SAP's own entry says the features are unchanged. What exists is one entity's worth: sales orders retrieved with an API key against the sandbox host the tool has hard-coded, wired into Claude Desktop as a stdio server with one tool.
Facts
Where it sits
Who is behind it
In the atlas: maintains 1, contributes to 1@CostingGeekmaintainer
Before choosing this
Conditions
PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your systemsAn MCP server uses SAP APIs to supply tools, resources or data to an agent.
- § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
- § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
- § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.
MCP does not replace the API's documented-use boundary. Check that every endpoint is published for the intended use and whether the policy's AI-call or extraction provisions apply to the design.
SAP API Policy 4.2026a →What it declares
Every artifact
- Type
- MCP server
- Origin
- Independently maintained
As an MCP server
- Runs as
- local process
- Transport
- stdio
- Authentication
- API key
Connections
Giving an AI agent access to the systems you run over MCP
Business data graph queried with OData V4 or GraphQL
Download
Architecture
Download
README
quoted from CostingGeek/sap-mcp under MIT, readSAP-Claude Integration via MCP (Model Context Protocol)
Connect Claude AI capabilities directly to your SAP systems through a seamless MCP integration
This repository contains a Python-based solution that enables bidirectional communication between Claude (Anthropic's large language model) and SAP systems via the SAP Graph API. By leveraging the Model Context Protocol (MCP), this integration allows Claude to retrieve and process SAP business data in real-time.
Features
- Connect Claude to SAP systems with minimal setup
- Retrieve real-time sales order data from SAP via Graph API
- Extend the integration with additional SAP entities (Customers, Products, etc.)
- Process SAP data with the full capabilities of Claude's LLM
Prerequisites
- Python 3.8+
- SAP API key (sandbox or production)
- Claude Desktop
- Basic understanding of MCP and SAP Graph API
This documentation is written for a Windows environment with administrator rights
Reference Documentation
Installation
- Get the SAP API Key
Log into the SAP Graph Navigator. You will find the API key in your profile, under Settings > API Settings. Save that API key as system environment variable "SAP_API_KEY". Make sure to restart your machine to load the new environment variable.
- Set up your environment
Let's follow the Documentation for Server Developers.
First, let’s install uv and set up our Python project and environment:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Make sure to restart your terminal afterwards to ensure that the uv command gets picked up.
Now, let’s create and set up our project:
# Create a new directory for our project
uv init saptools
cd saptools
# Create virtual environment and activate it
uv venv
.venv\Scripts\activate
# Install dependencies
uv add mcp[cli] httpx requests
# Create our server file
new-item saptools.py
- Building the server
Clone the saptools.py file into your own file.
- Connect Claude Desktop with the MCP Server
Open Claude Studio. Under File > Settings > Developer, click Edit Config.
Edit the file claude_desktop_config.json usually located in the %APPDATA%\Claude folder.
Make sure to replace the C:\\PATH\\TO\\PARENT\\FOLDER with your own.
{
"mcpServers": {
"saptools": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\PARENT\\FOLDER",
"run",
"saptools.py"
]
}
}
}
Now, restart Claude Desktop to load the configuration. Note that by default, closing the Claude window only minimizes it to the system tray. You will need to close it completely by right-clicking on the icon in the system tray and selecting Quit. After restarting Claude, a new hammer icon should show in the chat window, that displays the number of active MCP tools. Click on it to show the information popup, which should show: get_sales_orders Retrieve sales orders from SAP Graph API sandbox. Args: top: Number of sales orders to retrieve (default: 3). api_key: SAP API key (optional, will use environment variable if not provided) Returns:String containing formatted sales order information
- Test the MCP Server
You should now be ready to chat with your SAP system from Claude with prompts like:
Give me the last 10 sales orders
What is the average amount of the last 5 sales orders
This is of course limited at this point, but extensions to this proof-of-concept should support more complex interactions, like getting the last sales orders for a given customer.
🛠️ How It Works
This solution uses the Model Context Protocol (MCP) to create a bidirectional communication channel between Claude and SAP systems:
- An MCP server is initialized using the FastMCP library
- The server exposes SAP functionality as "tools" that Claude can invoke
- When Claude needs to access SAP data, it calls the appropriate tool function
- The function connects to SAP Graph API and returns formatted results
- Claude processes the returned data and generates relevant insights
📊 Current Available Tools
get_sales_orders
Retrieves sales order information from SAP Graph API.
Parameters:
top(int, optional): Number of sales orders to retrieve (default: 3)api_key(str, optional): SAP API key (uses environment variable if not provided)
Example response:
Found 3 sales orders:
Order ID: 123456
Display ID: SO-123456
Sold To Party: ACME Corp
Net Amount: 5000.00 USD
Created At: 2024-10-12T15:30:00Z
----------------------------------------
Order ID: 123457
Display ID: SO-123457
Sold To Party: TechInnovations
Net Amount: 7500.00 USD
Created At: 2024-10-13T09:15:00Z
----------------------------------------
Order ID: 123458
Display ID: SO-123458
Sold To Party: SampleCustomer
Net Amount: 2500.00 USD
Created At: 2024-10-14T09:15:00Z
----------------------------------------
Others providing
Compare all 28 on the Agent access to your systems page →- mcp-integration-suitemcp-integration-suiteAn experimental Node MCP server covering the general CPI functions of the Integration Suite, which its author recommends running alongside the TPM server for Trading Partner Management.independent, btpMCP server for the general Integration Suite functions
- mcp-is-tpmmcp-is-tpmA Java MCP server for Trading Partner Management in the Integration Suite, where trading partners, their agreements and their B2B configuration live, paired by its author with the general server.independent, btpJava MCP server for Integration Suite Trading Partner Management
- calmcpcalmcpAn MCP server in front of the SAP Cloud ALM APIs: four read tools over tasks, projects, features, documents, tests and analytics, run over stdio locally or Streamable HTTP on Cloud Foundry.independent, btpMCP server with read tools over the SAP Cloud ALM APIs
- mcp-sap-focusedrunmcp-sap-focusedrunSAP Focused Run's Landscape Management Database as MCP tools — hosts, systems, databases, cloud tenants, technical instances, ABAP clients, software components and product versions.independent, btpMCP tools over SAP Focused Run's Landscape Management Database
- cloud-alm-itsm-mcpcloud-alm-itsm-mcpQueries installations through SAP Cloud ALM's ITSM API — filtered by system type or customer number, with OAuth token handling and caching done for you.independent, btpMCP server querying installations via the SAP Cloud ALM ITSM API
- hana-mcp-serverhana-mcp-serverSchema discovery and guard-railed SQL against SAP HANA and HANA Cloud, with an optional layer of business metadata so an agent reads a coded column the way the business does.independent, btpMCP server for schema discovery and guarded SQL on SAP HANA
- sap_analytics_cloud_mcpsap_analytics_cloud_mcpThe SAP Analytics Cloud REST API as ninety tools across eleven service areas — content, data import and export, user management, transport, scheduling and translation.independent, btpMCP server for the SAP Analytics Cloud REST API
- mcp-sap-cpimcp-sap-cpiThe runtime half of Cloud Integration: failed messages with their full processing logs and traces, artifact deployment, security material, and a health summary.independent, btpMCP server for Cloud Integration runtime: messages, logs, deployment
- AI Core MCP ServerAI Core MCP ServerAn MCP server that exposes SAP AI Core's APIs as tools, defined entirely in one JSON config file for a proxy, so deployments, configurations and scenarios are managed through an assistant.independent, btpSAP AI Core APIs as MCP tools from one JSON config file
- BTP CF MCP ServerBTP CF MCP ServerThe Cloud Foundry V3 API on SAP BTP as MCP tools — apps, orgs, spaces, services, routes and quotas — declared in one JSON config file and run by odata-mcp-proxy.independent, btpCloud Foundry V3 API on SAP BTP as MCP tools
- BTP MCP ServerBTP MCP ServerBTP Core Services as MCP tools, and the only server in this corner that renders dashboards inside the chat — a subaccount overview with drill-down, a geomap of data-centre locations, consumption and users.independent, btpBTP Core Services as MCP tools with in-chat dashboards
- btp-sap-odata-to-mcp-serverbtp-sap-odata-to-mcp-serverExposes every OData service on an S/4HANA or ECC system as MCP tools, in three discovery levels so a large catalogue does not have to be loaded at once.independent, btpExposes S/4HANA or ECC OData services as MCP tools
- CI MCP ServerCI MCP ServerAn MCP server that exposes SAP Cloud Integration's OData APIs as tools, defined entirely in one JSON config file, so an assistant works integration content, logs and configurations in natural language.independent, btpSAP Cloud Integration OData APIs as MCP tools
- odata-mcp-proxyodata-mcp-proxyA config-driven proxy that turns OData and REST endpoints into MCP tools from a JSON file — no code — and runs on BTP Cloud Foundry against BTP Destinations.independent, btpConfig-driven proxy turning OData and REST endpoints into MCP tools
- sap-pi-mcp-serversap-pi-mcp-serverThe only entry pointed at SAP PI and PO rather than at Cloud Integration — monitoring and Integration Directory metadata from the middleware that came before.independent, btpMCP server for SAP PI and PO monitoring and directory metadata
- sap-bdc-mcp-serversap-bdc-mcp-serverAn MCP server over SAP's BDC Connect SDK that creates, validates, publishes and deletes Databricks Delta shares as data products in SAP Business Data Cloud.independent, btpMCP server managing Delta shares in SAP Business Data Cloud
- @mariodefe/sap-datasphere-mcp@mariodefe/sap-datasphere-mcpForty-five tools across a Datasphere tenant — discovery, metadata, analytics, ETL extraction, database users, lineage and column profiling — with config-driven PII masking applied before anything reaches the model.independent, btpMCP server with forty-five tools across a Datasphere tenant
- midasol/sap-mcp-servermidasol/sap-mcp-serverA Python MCP server for SAP Gateway with four read-only tools that authenticate, query, fetch one entity and list services, and one of the few here that publishes its test results.independent, btpPython MCP server for SAP Gateway OData operations
- odata_mcp_goodata_mcp_goA Go binary that bridges any OData v2 or v4 service to MCP — and can collapse the whole service into one tool when the generated tool list is too large to be usable.independent, btpGo binary bridging any OData v2 or v4 service to MCP
- odata_mcpodata_mcpThe Python original: reads an OData v2 service's metadata and generates MCP tools from it, with the SAP-specific conversions the raw protocol leaves to you.independent, btpPython bridge generating MCP tools from OData v2 metadata
- sap-bdc-mcpsap-bdc-mcpDiscovery and contract tooling for SAP Business Data Cloud — ORD discovery, CSN contract checks and non-executing share planning — behind redaction, policy gates and bounded output.independent, btpMCP tooling for SAP Business Data Cloud discovery and contracts
- mcp-sap-datasphere-servermcp-sap-datasphere-serverThe read-only Datasphere server: explore spaces, list assets, preview rows, profile columns and summarise analytical models — and nothing that changes anything, by design.independent, btpRead-only MCP server for exploring SAP Datasphere
- MCP Server for SAP BTP AdministrationMCP Server for SAP BTP AdministrationSAP-hosted MCP endpoint that exposes BTP account administration — accounts, security, services and connectivity — as tools an AI client discovers and calls on your behalf.sap official, btpSAP-hosted MCP endpoint for BTP account administration
- SAP LeanIX MCP ServerSAP LeanIX MCP ServerHosted MCP endpoint onto an SAP LeanIX instance, exposing selected enterprise-architecture APIs as tools — fact sheets, applications, completeness and custom reports.sap official, btpHosted MCP endpoint onto an SAP LeanIX instance
- SAP-samples/hana-cli-claude-pluginSAP-samples/hana-cli-claude-pluginA Claude Code plugin that registers the MCP server of hana-cli, so Claude Code can work on SAP HANA Cloud and on-premise SAP HANA databases.sap official, btpClaude Code plugin registering hana-cli's MCP server
- SAP-samples/hana-developer-cli-tool-exampleSAP-samples/hana-developer-cli-tool-exampleA developer-centric command line for SAP HANA, built for local development outside SAP tooling and connecting to a local, cloud or remote HANA instance the same way.sap official, btpDeveloper-centric command line for SAP HANA
- cpi-mcp-servercpi-mcp-serverA Go server over Cloud Integration's design-time content — integration packages and integration flows, listed and searched by id, version, name, vendor or mode.independent, btpGo MCP server over Cloud Integration packages and integration flows
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
History in the atlas
- The concern it answers is reaching into an SAP system from outside, split out of MCP servers on this day; the sentence on the edge is unchanged.
- names API Composition, with the rename dated and the repository's own wording placed
- The whole entry rested on an API the graph did not hold, so the prose named it and no edge pointed at it. The README's How It Works step and the hard-coded sandbox URL in saptools.py state the connection.
- runs, transports, auth
- Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
- First seen.
For your agent
- Ref
artifact:costinggeek-sap-mcp- JSON
- /artifacts/costinggeek-sap-mcp.json
- MCP
- Connecting an agent