MCP serverMCP servertypeExposes tools to a coding agent over MCP.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

btp-sap-odata-to-mcp-server

Exposes 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.

Pointing an agent at a whole ERP's OData catalogue is a token problem before it is anything else, and the three levels are the answer: level one is a lightweight list of services and entities, level two fetches full metadata for the one you chose, level three executes authenticated CRUD against it. "Show me 10 banks" becomes $top=10 on the Bank entity; "update bank 1 to have street number 5" becomes a PATCH. Deployed as a Node application on BTP Cloud Foundry, reaching the system through a BTP Destination.

Facts

Latestv1.0.1ReleasedLast pushLicenceMIT

Where it sits

Lives in
Provides
Agent access to your systemsBTPABAPAgent access to your systemscapabilityGiving an AI agent access to the business data, configuration or operations of systems you run through an MCP server. [Serving your application over MCP](capability:mcp-servers) exposes your own service contract; system access reaches the systems behind it, and one implementation may do both. Development assistance belongs to [agent access to your code](capability:agent-code-access).
Serves
Runs
Cloud Foundry

Who is behind it

Wouter LemaireWouter LemairePersonMaintains this
In the atlas: maintains 25, contributes to 39, wrote 12
@lemaiwo
maintainerArun KrishnamoorthyPersonContributes to this
In the atlas: contributes to 2, wrote 2
@arunkrishnamoorthy
Marian ZeisPersonContributes to this
In the atlas: maintains 35, contributes to 86, wrote 25
@marianfoo
Sebastiano MarchesiniPersonContributes to this
In the atlas: contributes to 1, wrote 1
@smarchesini-avvale
3 contributors

Before choosing this

Conditions

PracticalFunctional boundary

It puts create, update and delete on business entities behind natural language. Whatever the destination's principal may change, an agent may change — and "create a new customer" is a sentence, not a form somebody signed off.

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
Runtime
Node.js
Runs on
Cloud Foundry

As an MCP server

Runs as
central serverlocal process
Transport
HTTPstdio
Authentication
BTP destinationprincipal propagationOAuth / OIDC
Tools
3
Read-only
nostates it is not
Guardrails
6 quoted from README show all
  • Request rate limiting (configurable)

  • DNS rebinding attack prevention

  • CORS protection with configurable origins

  • Automatic session expiration (24h default)

  • Safe entity deletion with confirmation

  • DISABLEREADENTITY_TOOL=true

Connections1

Where btp-sap-odata-to-mcp-server runsbtp-sap-odata-to-mcp-server — README, checked 2026-09-11: “**Streamable HTTP** (recommended)”HTTP or stdioYour MCP client, actorYour MCP clientbtp-sap-odata-to-mcp-server, modulebtp-sap-odata-to-mcp…
SAPnot SAP's, or the project's ownstated in the document

README

quoted from lemaiwo/btp-sap-odata-to-mcp-server under MIT, read
lemaiwo/btp-sap-odata-to-mcp-server/README.mdOn GitHub

SAP OData to MCP Server for BTP🚀

🎯 Project Goal

Transform your SAP S/4HANA or ECC system into a conversational AI interface by exposing all OData services as dynamic MCP tools. This enables natural language interactions with your ERP data:

  • "Show me 10 banks" → Automatically queries the Bank entity with $top=10
  • "Update bank with ID 1 to have street number 5" → Executes PATCH operation on Bank entity
  • "Create a new customer with name John Doe" → Performs POST to Customer entity
  • "List all purchase orders from this week" → Applies $filter for date range on PurchaseOrder entity

🏗️ Architecture Overview - 3-Level Progressive Discovery

AI Agent/LLM MCP Client SAP MCP Server SAP BTP Destination SAP System Level 1: Lightweight Discovery Minimal Service/Entity List Level 2: Full Metadata Complete Entity Schemas Level 3: CRUD Execution Authenticated Operations
Core Components:
  1. 🔍 Level 1 - Discovery: Lightweight search returning minimal service/entity lists (token-optimized)
  2. 📋 Level 2 - Metadata: Full schema details on-demand for selected entities
  3. ⚡ Level 3 - Execution: Authenticated CRUD operations using metadata from Level 2
  4. 🔌 MCP Protocol Layer: Full compliance with MCP 2025-06-18 specification
  5. 🌐 HTTP Transport: Session-based Streamable HTTP for web applications
  6. 🔐 BTP Integration: Seamless authentication via SAP BTP Destination service
3-Level Approach Benefits:
  • Token Efficient: Level 1 returns 90% less data than full schemas
  • Progressive Detail: Fetch full schemas only when needed
  • Better LLM Experience: Smaller responses, clearer workflow
  • Reduced Context: From 200+ tools down to just 3

✨ Key Features

🎨 Natural Language to OData
  • Smart Query Translation: Converts natural language to proper OData queries
  • Context-Aware Operations: Understands entity relationships and constraints
  • Parameter Inference: Automatically maps user intent to tool parameters
🔄 Dynamic CRUD Operations
  • Read Operations: Entity sets with filtering, sorting, pagination
  • Create Operations: New entity creation with validation
  • Update Operations: Partial and full entity updates
  • Delete Operations: Safe entity deletion with confirmation
🚀 Production-Ready
  • Session Management: Automatic session creation and cleanup
  • Error Handling: Comprehensive error handling with user-friendly messages
  • Logging: Detailed logging for debugging and monitoring
  • Security: DNS rebinding protection, CORS, Helmet security
📊 Real-Time Metadata
  • Service Catalog: Live discovery of available services
  • Entity Schemas: Dynamic schema generation from OData metadata
  • Capability Detection: Automatic detection of CRUD capabilities per entity

🏛️ System Architecture

┌─────────────────────┐    ┌───────────────────────────┐    ┌─────────────────────┐
│                     │    │                           │    │                     │
│   🤖 AI Agent       │    │   🖥️  SAP MCP Server     │    │   🏢 SAP            │
│   - Claude          │◄──►│   - Service Discovery     │◄──►│   - OData Services  │
│   - GPT-4           │    │   - CRUD Tool Registry    │    │   - Business Logic  │
│   - Local LLMs      │    │   - Session Management    │    │   - Master Data     │
│                     │    │   - BTP Authentication    │    │                     │
└─────────────────────┘    └───────────────────────────┘    └─────────────────────┘
                                           │                                       
                                           ▼                                       
                           ┌───────────────────────────┐                          
                           │                           │                          
                           │   ☁️  SAP BTP Platform    │                          
                           │   - Destination Service   │                          
                           │   - Connectivity Service  │                          
                           │   - XSUAA Security        │                          
                           │                           │                          
                           └───────────────────────────┘                          

🎯 Use Cases

📈 Business Intelligence Queries
User: "Show me top 10 customers by revenue this quarter"
→ Tool: r-CustomerService-Customer
→ Parameters: $filter, $orderby, $top
📝 Data Maintenance
User: "Update supplier ABC123 to have status 'Active'"
→ Tool: u-SupplierService-Supplier
→ Parameters: SupplierId="ABC123", Status="Active"
📊 Analytical Insights
User: "How many open purchase orders are there?"
→ Tool: r-PurchaseOrderService-PurchaseOrder
→ Parameters: $filter=Status eq 'Open'&$count=true
🔧 System Administration
User: "List all inactive users in the system"
→ Tool: r-UserService-User
→ Parameters: $filter=Status eq 'Inactive'

🛠️ Installation & Setup

Prerequisites
  • Node.js 18.x or higher
  • SAP S/4HANA or ECC system with OData services enabled
  • SAP BTP account with Destination and Connectivity services
  • TypeScript knowledge for customization

🚀 Usage Examples

Natural Language Queries

The MCP server automatically translates these natural language commands to the appropriate tool calls:

Natural LanguageGenerated Tool CallOData Query
"Show me 10 banks"r-BankService-BankGET /BankSet?$top=10
"Find banks in Germany"r-BankService-BankGET /BankSet?$filter=Country eq 'DE'
"Update bank 123 name to ABC Corp"u-BankService-BankPATCH /BankSet('123')
"Create a new customer John Doe"c-CustomerService-CustomerPOST /CustomerSet
"Delete order 456"d-OrderService-OrderDELETE /OrderSet('456')

📋 Available Tools - 3-Level Architecture

The server exposes 3 progressive discovery tools instead of hundreds of individual CRUD tools:

Level 1: discover-sap-data

Purpose: Lightweight search for services and entities

Returns: Minimal data (serviceId, serviceName, entityName, entityCount)

Usage:

// Search for customer entities
discover-sap-data({ query: "customer" })

// Get all available services
discover-sap-data({ query: "" })

// Search in specific category
discover-sap-data({ query: "sales", category: "sales" })

Fallback: If no matches found, returns ALL services with entity lists


Level 2: get-entity-metadata

Purpose: Get complete schema for a specific entity

Returns: Full schema with properties, types, keys, capabilities

Usage:

// Get full schema for Customer entity
get-entity-metadata({
  serviceId: "API_BUSINESS_PARTNER",
  entityName: "Customer"
})

Output: All properties, types, nullable flags, maxLength, keys, capabilities


Level 3: execute-sap-operation

Purpose: Perform authenticated CRUD operations

Operations: read, read-single, create, update, delete

Usage:

// Read customers
execute-sap-operation({
  serviceId: "API_BUSINESS_PARTNER",
  entityName: "Customer",
  operation: "read",
  filterString: "CustomerName eq 'ACME'"
})

// Update customer
execute-sap-operation({
  serviceId: "API_BUSINESS_PARTNER",
  entityName: "Customer",
  operation: "update",
  parameters: { CustomerID: "123", CustomerName: "New Name" }
})

Workflow Example
1. discover-sap-data → "customer"
   ↓ Returns: List of customer-related entities

2. get-entity-metadata → "API_BUSINESS_PARTNER", "Customer"
   ↓ Returns: Full schema with all properties

3. execute-sap-operation → read/create/update/delete
   ✓ Executes operation with proper parameters
Protocol Version: 2025-06-18
Supported Capabilities:
  • ✅ Tools with listChanged notifications
  • ✅ Resources with listChanged notifications
  • ✅ Logging with level control
  • ✅ Session Management for HTTP transport
  • ✅ Error Handling with proper error codes
Transport Support
  • ✅ Streamable HTTP (recommended)
  • ✅ Stdio for command line usage
  • ✅ Session-based with automatic cleanup
  • ✅ DNS Rebinding Protection

🔒 Security & Authentication

SAP BTP Integration
  • Uses BTP Destination service for S/4HANA or ECC authentication
  • Supports Principal Propagation and OAuth2
  • Automatic token refresh and session management
  • Secure credential storage in BTP
HTTP Security
  • Helmet.js security headers
  • CORS protection with configurable origins
  • DNS rebinding attack prevention
  • Request rate limiting (configurable)
Session Security
  • Automatic session expiration (24h default)
  • Secure session ID generation
  • Session cleanup on server restart
  • Memory leak prevention

📚 API Reference

Health Check
GET /health
{
  "status": "healthy",
  "activeSessions": 3,
  "discoveredServices": 25,
  "version": "2.0.0"
}
Server Info
GET /mcp
{
  "name": "btp-sap-odata-to-mcp-server",
  "protocol": { "version": "2025-06-18" },
  "capabilities": { "tools": {}, "resources": {} },
  "features": ["Dynamic service discovery", "CRUD operations"],
  "activeSessions": 3
}
Documentation
GET /docs
{
  "title": "SAP MCP Server API",
  "endpoints": {...},
  "mcpCapabilities": {...},
  "usage": {...}
}

🎬 Demo

See the MCP server in action:

MCP Demo

⚙️ Environment Variable: Disable ReadEntity Tool Registration

To disable registration of the ReadEntity tool for all entities in all services, set the following in your .env file:

DISABLE_READ_ENTITY_TOOL=true

This will prevent registration of the ReadEntity tool for all entities and services.

⚡ Quick Start

MIT, read

History

Latest

v1.0.1

  1. v1.0.0

On npm
21downloads per week, npm
Weekly downloads for btp-sap-odata-to-mcp-server26 complete calendar weeks from 2026-04-20 to 2026-10-18; the latest total is 21.20 Apr – 26 Apr: 627 Apr – 3 May: 74 May – 10 May: 1911 May – 17 May: 2418 May – 24 May: 2525 May – 31 May: 231 Jun – 7 Jun: 188 Jun – 14 Jun: 2615 Jun – 21 Jun: 1722 Jun – 28 Jun: 5829 Jun – 5 Jul: 1766 Jul – 12 Jul: 7213 Jul – 19 Jul: 2620 Jul – 26 Jul: 4327 Jul – 2 Aug: 463 Aug – 9 Aug: 5610 Aug – 16 Aug: 5317 Aug – 23 Aug: 7124 Aug – 30 Aug: 6931 Aug – 6 Sept: 347 Sept – 13 Sept: 2314 Sept – 20 Sept: 3021 Sept – 27 Sept: 3428 Sept – 4 Oct: 435 Oct – 11 Oct: 2212 Oct – 18 Oct: 21
Agent access to your systems
  1. mcp-integration-suiteMCP server for the general Integration Suite functionsfrom BTP/BAIP
  2. mcp-is-tpmJava MCP server for Integration Suite Trading Partner Managementfrom BTP/BAIP
  3. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
  4. abap2UI5 for VS CodeVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
  5. SF-MCPMCP server with 62 tools over SAP SuccessFactors OData APIsfrom SAP SuccessFactors
  6. hybris-mcp-liteRead-only MCP server over a local SAP Commerce Cloud's HACfrom SAP Commerce
  7. calmcpMCP server with read tools over the SAP Cloud ALM APIsfrom BTP/BAIP
  8. CostingGeek/sap-mcpPython MCP server fetching sales orders from SAP's business data graphfrom BTP/BAIP
  9. mcp-sap-focusedrunMCP tools over SAP Focused Run's Landscape Management Databasefrom BTP/BAIP
  10. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  11. cloud-alm-itsm-mcpMCP server querying installations via the SAP Cloud ALM ITSM APIfrom BTP/BAIP
  12. hana-mcp-serverMCP server for schema discovery and guarded SQL on SAP HANAfrom BTP/BAIP
  13. sap_analytics_cloud_mcpMCP server for the SAP Analytics Cloud REST APIfrom BTP/BAIP
  14. mcp-sap-cpiMCP server for Cloud Integration runtime: messages, logs, deploymentfrom BTP/BAIP
  15. AI Core MCP ServerSAP AI Core APIs as MCP tools from one JSON config filefrom BTP/BAIP
  16. BTP CF MCP ServerCloud Foundry V3 API on SAP BTP as MCP toolsfrom BTP/BAIP
  17. BTP MCP ServerBTP Core Services as MCP tools with in-chat dashboardsfrom BTP/BAIP
  18. CI MCP ServerSAP Cloud Integration OData APIs as MCP toolsfrom BTP/BAIP
  19. odata-mcp-proxyConfig-driven proxy turning OData and REST endpoints into MCP toolsfrom BTP/BAIP
  20. sap-pi-mcp-serverMCP server for SAP PI and PO monitoring and directory metadatafrom BTP/BAIP
  21. sap-bdc-mcp-serverMCP server managing Delta shares in SAP Business Data Cloudfrom BTP/BAIP
  22. @mariodefe/sap-datasphere-mcpMCP server with forty-five tools across a Datasphere tenantfrom BTP/BAIP
  23. midasol/sap-mcp-serverPython MCP server for SAP Gateway OData operationsfrom BTP/BAIP
  24. odata_mcp_goGo binary bridging any OData v2 or v4 service to MCPfrom BTP/BAIP
  25. odata_mcpPython bridge generating MCP tools from OData v2 metadatafrom BTP/BAIP
  26. sap-bdc-mcpMCP tooling for SAP Business Data Cloud discovery and contractsfrom BTP/BAIP
  27. mcp-sap-datasphere-serverRead-only MCP server for exploring SAP Dataspherefrom BTP/BAIP
  28. sap-mcp-serverReads SAP ECC and S/4HANA for an agent over Gateway OData and RFC, with a Node bridge that speaks the RFC protocol without the proprietary SAP NetWeaver RFC SDK.from ABAP
  29. cap-mcp-bridgeMCP server generating tools from a CAP or OData V4 service's metadatafrom CAP
  30. MCP Server for SAP BTP AdministrationSAP-hosted MCP endpoint for BTP account administrationfrom BTP/BAIP
  31. SAP LeanIX MCP ServerHosted MCP endpoint onto an SAP LeanIX instancefrom BTP/BAIP
  32. SAP-samples/hana-cli-claude-pluginClaude Code plugin registering hana-cli's MCP serverfrom BTP/BAIP
  33. SAP-samples/hana-developer-cli-tool-exampleDeveloper-centric command line for SAP HANAfrom BTP/BAIP
  34. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  35. sap-security-mcpRead-only security analysis MCP server for SAP audits and SoD reviewfrom ABAP
  36. cpi-mcp-serverGo MCP server over Cloud Integration packages and integration flowsfrom BTP/BAIP
  37. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP
  38. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP

Details

Sources3
sap-ai-mcp-serversdiscovered herechecked
README.mdquoted, and what the entry declareschecked

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
runtimesnode
deploymentCloud Foundry
latestv1.0.1
first release
releases and cadence2
discovered viasap-ai-mcp-servers
first seen in the atlas
ecosystem and domainbtp, ai-and-agents
Contributors3

From the repository’s contributor list, .

History in the atlas3
  1. 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.
  2. 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.
  3. First seen.
For your agent
Ref
artifact:lemaiwo-btp-sap-odata-to-mcp-server
JSON
/artifacts/lemaiwo-btp-sap-odata-to-mcp-server.json
MCP
Connecting an agent