sap-bdc-mcp-server
An MCP server over SAP's BDC Connect SDK that creates, validates, publishes and deletes DatabricksDatabricksA unified data and AI platform. sap-bdc-mcp-server creates the Delta shares it registers with SAP Business Data Cloud in a Databricks workspace. Delta shares as data products in SAP Business Data CloudSAP Business Data CloudSAP's umbrella over the data estate: installed intelligent content and data products, a governed catalog they are published through, and a path out to SAP Databricks.sap official, btp.
Putting a DatabricksDatabricksA unified data and AI platform. sap-bdc-mcp-server creates the Delta shares it registers with SAP Business Data Cloud in a Databricks workspace. table into Business Data Cloud as a data product takes a Delta share, the tables added to it, a grant to the BDC Connect recipient, and a registration that carries ORD or CSN metadata. The tools the README documents cover each step: provision_share runs the whole sequence in one call and reports which step failed, validate_share_readiness checks that a share exists, holds tables and is granted before it is registered, and generate_csn_template derives CSN from a share that already exists. The SDK expects a Databricks notebook and its dbutils; the server's LocalDatabricksClient takes a workspace URL and token from a .env file instead, so it also runs on a developer machine. It is a Python package on PyPI and runs over stdio. The README documents the seven tools of v0.2.0; PyPI's summary for 0.5.0 states 17, adding diagnostics driven by SAP Notes, ORD metadata validation and a check of Databricks privileges.
Facts
Where it sits
Who is behind it
In the atlas: maintains 3, contributes to 3@MarioDeFelipemaintainer
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
- Tools
- 17
Connections
Giving an AI agent access to the systems you run over MCP
Finding what data exists, what it promises and where it came from
A unified data and AI platform. 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, btp creates the Delta shares it registers with SAP Business Data CloudSAP Business Data CloudSAP's umbrella over the data estate: installed intelligent content and data products, a governed catalog they are published through, and a path out to SAP Databricks.sap official, btp in a Databricks workspace.
Data products, a governed catalog and a path to SAP Databricks
Download
Architecture
Download
README
quoted from MarioDeFelipe/sap-bdc-mcp-server under MIT, readSAP Business Data Cloud MCP Server
An MCP (Model Context Protocol) server that provides integration with SAP Business Data Cloud (BDC) Connect SDK. This server enables AI assistants like Claude to interact with SAP BDC for data sharing, Delta Sharing protocol operations, and data product management.
Status: ✅ Released on PyPI - v0.2.0 (2026-01-10)
New in v0.2.0: ✨ Added
provision_share(end-to-end orchestration) andvalidate_share_readiness(pre-flight validation) tools!
Features
This MCP server provides 7 powerful tools for SAP BDC operations:
- Create/Update Shares: Manage data shares with ORD metadata
- CSN Schema Management: Configure shares using Common Semantic Notation
- Data Product Publishing: Publish and unpublish data products
- Share Deletion: Remove and withdraw shared resources
- CSN Template Generation: Auto-generate CSN templates from Databricks shares
- End-to-End Provisioning ✨: One-step share creation, granting, and registration
- Pre-flight Validation ✨: Validate shares before registration to prevent errors
Prerequisites
- Python 3.9+ (Python 3.11+ recommended for local development)
- Access to a Databricks environment
- SAP Business Data Cloud account
- Databricks recipient configured for Delta Sharing
- For local development: Databricks personal access token
Quick Start
Installation
Choose your preferred language/platform:
Python (PyPI)
pip install sap-bdc-mcp-server
Node.js/TypeScript (npm)
npm install @mariodefelize/sap-bdc-mcp-server
Note: The npm package requires Python 3.9+ to be installed, as it wraps the Python MCP server.
See NPM_README.md for full Node.js/TypeScript documentation.
From Source
# Clone the repository
git clone https://github.com/MarioDeFelipe/sap-bdc-mcp-server.git
cd sap-bdc-mcp-server
# Install Python package in development mode
pip install -e .
# Install npm dependencies (optional, for Node.js development)
npm install
Configuration
For Local Development (Recommended)
Create a .env file in the project root:
# Databricks Configuration
DATABRICKS_RECIPIENT_NAME=your_recipient_name
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_TOKEN=your_databricks_token
# Optional
LOG_LEVEL=INFO
The server will automatically use LocalDatabricksClient which works without dbutils.
For Databricks Notebook Environment
If running inside Databricks notebooks, only set:
DATABRICKS_RECIPIENT_NAME=your_recipient_name
LOG_LEVEL=INFO
The server will automatically detect the notebook environment and use dbutils.
Usage
Python Usage
Running the Server
The MCP server runs as a stdio-based service:
python -m sap_bdc_mcp.server
Or using the installed script:
sap-bdc-mcp
Integration with Claude Desktop
Add this server to your Claude Desktop configuration file:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"sap-bdc": {
"command": "python",
"args": ["-m", "sap_bdc_mcp.server"],
"env": {
"DATABRICKS_RECIPIENT_NAME": "your_recipient_name"
}
}
}
}
Node.js/TypeScript Usage
For Node.js/TypeScript applications, use the npm package:
import { createSapBdcMcpClient } from '@mariodefelize/sap-bdc-mcp-server';
const client = await createSapBdcMcpClient({
env: {
DATABRICKS_HOST: process.env.DATABRICKS_HOST,
DATABRICKS_TOKEN: process.env.DATABRICKS_TOKEN,
DATABRICKS_RECIPIENT_NAME: process.env.DATABRICKS_RECIPIENT_NAME,
},
});
// Validate a share
const validation = await client.validateShareReadiness({
share_name: 'my_share',
});
console.log(validation);
await client.close();
See NPM_README.md for complete Node.js/TypeScript documentation and examples.
Alternatively, if installed in a virtual environment:
{
"mcpServers": {
"sap-bdc": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["-m", "sap_bdc_mcp.server"],
"env": {
"DATABRICKS_RECIPIENT_NAME": "your_recipient_name"
}
}
}
}
Available Tools
1. create_or_update_share
Create or update a data share with ORD metadata.
Parameters:
share_name(required): Name of the shareord_metadata(optional): ORD metadata objecttables(optional): Array of table names to include
Example:
{
"share_name": "customer_data_share",
"ord_metadata": {
"title": "Customer Data",
"description": "Shared customer information"
},
"tables": ["customers", "orders"]
}
2. create_or_update_share_csn
Create or update a share using CSN format.
Parameters:
share_name(required): Name of the sharecsn_schema(required): CSN schema definition object
Example:
{
"share_name": "product_share",
"csn_schema": {
"definitions": {
"Products": {
"kind": "entity",
"elements": {
"ID": {"type": "String"},
"name": {"type": "String"}
}
}
}
}
}
3. publish_data_product
Publish a data product to make it available for consumption.
Parameters:
share_name(required): Name of the sharedata_product_name(required): Name of the data product
Example:
{
"share_name": "customer_data_share",
"data_product_name": "CustomerAnalytics"
}
4. delete_share
Delete a share and withdraw shared resources.
Parameters:
share_name(required): Name of the share to delete
Example:
{
"share_name": "old_share"
}
5. generate_csn_template
Generate a CSN template from an existing Databricks share.
Parameters:
share_name(required): Name of the Databricks share
Example:
{
"share_name": "existing_databricks_share"
}
6. provision_share ✨ NEW: End-to-End Orchestration
One-step provisioning: Creates Databricks share, grants to recipient, and registers with SAP BDC in a single operation.
This tool orchestrates the complete workflow:
- Creates the Databricks Delta share
- Adds specified tables to the share
- Grants the share to your configured recipient
- Registers the share with SAP BDC
Parameters:
share_name(required): Name of the share to createtables(required): Array of table names (format:catalog.schema.tableorschema.table)ord_metadata(required): ORD metadata objecttitle(required): Display title for the shareshortDescription: Brief descriptiondescription: Detailed descriptionversion: Version number (e.g., "1.0.0")releaseStatus: Status (e.g., "active", "beta")tags: Array of tags
comment(optional): Comment for the Databricks shareauto_grant(optional): Auto-grant to recipient (default:true)skip_if_exists(optional): Skip if share already exists (default:true)
Example:
{
"share_name": "customer_analytics",
"tables": ["main.analytics.customers", "main.analytics.orders"],
"ord_metadata": {
"title": "Customer Analytics Data",
"shortDescription": "Customer and order data for analytics",
"description": "Comprehensive customer analytics dataset including customer profiles and order history",
"version": "1.0.0",
"releaseStatus": "active",
"tags": ["analytics", "customer", "orders"]
},
"comment": "Customer analytics share for data consumers",
"auto_grant": true
}
What it does:
- ✅ Creates Databricks share (or skips if exists)
- ✅ Adds all specified tables to the share
- ✅ Grants SELECT permission to your recipient
- ✅ Registers with SAP BDC with ORD metadata
- ✅ Provides step-by-step progress feedback
- ✅ If any step fails, shows what completed and what to do manually
Why use this instead of manual steps:
- Single command instead of 4 separate operations
- Automatic error handling and recovery guidance
- Idempotent - safe to retry if interrupted
- Clear visibility into each step's success/failure
7. validate_share_readiness ✨ NEW: Pre-flight Validation
Validate before you register: Check if a Databricks share is ready for BDC Connect operations.
This tool performs comprehensive pre-flight checks:
- ✅ Verifies the share exists in Databricks
- ✅ Checks if the share has tables/objects
- ✅ Validates the share is granted to your recipient
- ✅ Provides actionable next steps if validation fails
Parameters:
share_name(required): Name of the share to validatecheck_bdc_registration(optional): Also check BDC registration status (default:false)
Example:
{
"share_name": "customer_data_share"
}
Success Response:
✅ Share 'customer_data_share' is READY for BDC Connect registration!
All checks passed:
✅ PASS Share 'customer_data_share' exists in Databricks
✅ PASS Share has 3 object(s)
✅ PASS Share is granted to recipient 'bdc-connect-12345'
Next step: Register with BDC using create_or_update_share('customer_data_share', ...)
Failure Response:
❌ Share 'test_share' is NOT ready for BDC Connect
Errors found:
❌ Share is empty - no tables added
❌ Share not granted to BDC Connect recipient 'bdc-connect-12345'
Required actions:
1. Add tables: w.shares.update(name='test_share', ...)
2. Grant share: GRANT SELECT ON SHARE test_share TO RECIPIENT `bdc-connect-12345`
Use Cases:
- Before registration: Validate a share before calling
create_or_update_share - Troubleshooting: Understand why registration failed
- Documentation: Generate a checklist of what's needed
- CI/CD pipelines: Automated validation before deployment
- Onboarding: Help new users understand the prerequisites
Why this matters:
- Prevents "trial and error" workflow - know upfront if share is ready
- Clear, actionable guidance instead of cryptic error messages
- Saves time by catching issues before attempting registration
- Validates all prerequisites in one call
Architecture
The server uses:
- MCP SDK: For protocol implementation
- SAP BDC Connect SDK: For SAP Business Data Cloud operations
- Delta Sharing: Open protocol for secure data sharing
- ORD Protocol: For resource discovery and metadata
Development
Running Tests
pytest
Project Structure
sap-bdc-mcp-server/
├── src/
│ └── sap_bdc_mcp/
│ ├── __init__.py
│ ├── server.py # Main MCP server implementation
│ └── config.py # Configuration management
├── pyproject.toml # Project dependencies
├── .env.example # Environment variable template
└── README.md # This file
Local Development Setup
The dbutils Challenge
The SAP BDC Connect SDK was originally designed to run inside Databricks notebooks, requiring access to dbutils (Databricks utilities). This made local development challenging.
Our Solution: LocalDatabricksClient
We've created LocalDatabricksClient - a custom wrapper that extends the SAP BDC SDK to work without dbutils. This enables:
✅ Local development - Run on your machine without Databricks notebooks ✅ IDE integration - Use your favorite development tools ✅ Easier debugging - Standard Python debugging workflows ✅ CI/CD friendly - Works in automated pipelines ✅ Claude Desktop integration - Direct MCP server usage
How It Works
The LocalDatabricksClient class:
- Bypasses
dbutilsrequirement - Accepts workspace URL and API token directly - Reads from
.envfile - No notebook context needed - Auto-detects mode - Automatically uses brownfield (BDC Connect) or Databricks Connect mode
- Maintains compatibility - Fully compatible with the SAP BDC SDK API
- Clear error messages - Helpful guidance if configuration is missing
from sap_bdc_mcp.local_client import LocalDatabricksClient
# Initialize from environment variables
client = LocalDatabricksClient.from_env()
# Or with explicit credentials
client = LocalDatabricksClient(
workspace_url="https://your-workspace.cloud.databricks.com",
api_token="your_token",
recipient_name="your_recipient"
)
Two Modes Supported
BDC Connect Mode (Brownfield) ✨
- Uses OIDC federation for authentication
- No Databricks secrets required
- Simpler setup
- Automatically detected if recipient is configured
Databricks Connect Mode
- Requires additional secrets (api_url, tenant, token_audience)
- Can be provided via environment variables
- For greenfield deployments
Setup Guide
See our comprehensive guides:
- QUICKSTART.md - Get started in 5 minutes
- IMPLEMENTATION_SUCCESS.md - Technical deep dive
- HOW_TO_CREATE_SHARE.md - Complete workflow guide
For Blog Posts / Technical Articles
Key points to highlight:
- The Problem: SAP BDC SDK requires
dbutils, limiting usage to Databricks notebooks - The Investigation: We analyzed the SDK to understand what
dbutilsactually provided - The Discovery: Only 2 uses - getting workspace credentials and accessing secrets
- The Solution: Created
LocalDatabricksClientthat injects credentials directly - The Result: Full local development support with < 200 lines of code
Technical highlights:
- Custom inheritance from
DatabricksClient - Override
__init__to bypassdbutilsrequirement - Override
_get_secret()to read from env vars - Maintains all SDK functionality
- Zero changes to SAP BDC SDK itself
Architecture
System Overview
┌─────────────────────────┐
│ Claude Desktop │
│ (MCP Client) │
└───────────┬─────────────┘
│ MCP Protocol (stdio)
┌───────────▼─────────────┐
│ sap_bdc_mcp.server │
│ ┌───────────────────┐ │
│ │ BDCClientManager │ │
│ │ (Auto-detect) │ │
│ └────────┬──────────┘ │
│ ├─────────────┼─ Notebook? → DatabricksClient (dbutils)
│ │ │
│ └─────────────┼─ Local? → LocalDatabricksClient (.env)
└───────────┼─────────────┘
│
┌───────────▼─────────────┐
│ SAP BDC Connect SDK │
│ ┌──────────────────┐ │
│ │ BdcConnectClient │ │
│ └────────┬─────────┘ │
└──────────┼──────────────┘
│ HTTPS/OIDC
┌──────────▼──────────────┐
│ Databricks + SAP BDC │
└─────────────────────────┘
Traditional Architecture
The server uses:
- MCP SDK: For protocol implementation
- SAP BDC Connect SDK: For SAP Business Data Cloud operations
- Delta Sharing: Open protocol for secure data sharing
- ORD Protocol: For resource discovery and metadata
Important Notes
Databricks Integration
The server supports two integration modes:
1. Notebook Mode (Original)
- Runs inside Databricks notebooks
- Uses
dbutilsfor credentials - Requires active notebook session
2. Local Mode (New!) ✨
- Runs on your local machine
- Uses environment variables for credentials
- No notebook required
Authentication
Authentication is handled through:
- Databricks workspace credentials (URL + token)
- Recipient configuration in Databricks
- SAP BDC service credentials (auto-configured in BDC Connect mode)
Troubleshooting
"BDC client not initialized" Error
For Local Development:
- Ensure
.envfile exists withDATABRICKS_HOST,DATABRICKS_TOKEN, andDATABRICKS_RECIPIENT_NAME - Check that your Databricks token is valid
- Verify the workspace URL is correct
For Notebook Environment:
- Ensure you're running in a Databricks notebook with
dbutilsavailable - Set
DATABRICKS_RECIPIENT_NAMEenvironment variable
Missing Environment Variables
For local development, ensure these are set in your .env file:
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_TOKEN=dapi...
DATABRICKS_RECIPIENT_NAME=your_recipient_name
"Share does not exist" Error
The share must exist in Databricks before registering with SAP BDC:
- Create a Delta share in Databricks first
- Grant the share to your recipient
- Then register it with SAP BDC using this server
See HOW_TO_CREATE_SHARE.md for detailed steps.
"Permission denied" or "Share not granted to recipient"
Grant the share to your recipient in Databricks:
GRANT SELECT ON SHARE your_share_name TO RECIPIENT `your_recipient_name`;
Resources
- SAP BDC Connect SDK on PyPI
- Model Context Protocol Documentation
- Delta Sharing Protocol
- SAP Business Data Cloud
License
This MCP server is provided as-is. Please review the SAP BDC Connect SDK license terms when using this integration.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details on:
- Setting up your development environment
- Running tests
- Submitting pull requests
- Code style guidelines
Roadmap
- Initial validation with Databricks environment
- Local development support (LocalDatabricksClient)
- PyPI package publication
- Comprehensive documentation
- npm package for Node.js environments
- Additional SAP BDC SDK features
- Enhanced error handling and logging
- More integration examples and tutorials
- Video tutorials and demos
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
Acknowledgments
- SAP for the BDC Connect SDK
- Anthropic for the Model Context Protocol
- The MCP community for inspiration and support
History
Features 3, Changed 3, Other 2
Notes
Added — driven by SAP help.sap.com 2026-05-02 batch (3 PDFs)
validate_databricks_privileges— pre-flight check that the executing principal has the 6 metastore privileges required for BDC sharing: CREATE CATALOG, CREATE SHARE, SET SHARE PERMISSION, USE PROVIDER, USE RECIPIENT, USE SHARE. Source: SAP help.sap.com "Working with Data Products in SAP Databricks".validate_ord_metadata— local ORD JSON validation. Catches the most common publish failures before round-tripping the SDK. Rules: requiredtitle/shortDescription/description;descriptionmust NOT containshortDescription(explicit SAP rule);visibility∈ {public, interval, private};releaseStatus∈ {active, beta, deprecated}; ISO 8601 dates; sunsetDate ≥ deprecationDate.list_unsupported_share_assets— scan a Databricks catalog/schema and flag assets that cannot be shared via Delta Sharing to BDC. As of May 2026 the only known unsupported type is materialized views.
Changed
create_or_update_sharenow runsvalidate_ord_metadataautomatically before forwarding to the SDK. Bypass withskip_validation=true.sap-bdc-connect-sdkdependency loosened from>=1.1.6to>=1.0.9to match the SAP-published reference version. By the way, the previous==1.1.13pin in the bundled plugin skill was incorrect; replaced with a>=floor.- Description updated to reflect 17 tools (was 14).
Notes
- Deletion vectors clarification: SAP Note 3706399 (delete vectors break inbound sharing) and the new derived-DP guide (enable delete vectors on your own derived tables) do NOT contradict — they cover opposite sides of the share.
- Bumped from 0.3.0 → 0.5.0 (skipping 0.4.0 — that version was a plugin-only release).
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Features 15, Changed 3, Performance 3, Other 5
Notes
Added
New MCP Tools ✨
-
provision_share- End-to-end share provisioning orchestration- Creates Databricks share in one operation
- Adds tables to the share automatically
- Grants share to recipient with SQL execution
- Registers with SAP BDC
- Provides step-by-step progress feedback
- Idempotent and fault-tolerant design
- Handles partial failures gracefully
-
validate_share_readiness- Pre-flight validation tool- Validates share exists in Databricks
- Checks share has tables/objects
- Verifies share is granted to recipient
- Optionally checks BDC registration status
- Returns structured validation results
- Provides actionable next steps for failures
- Prevents "trial and error" registration attempts
Major Documentation Additions
-
BLOG_POST_VALIDATION_TOOL.md - Comprehensive blog post content
- Use case-driven stories (before/after comparisons)
- 5 detailed real-world use cases
- Metrics: 70% faster onboarding, 80% fewer failed attempts, 83% fewer support tickets
- Code examples and integration patterns
- CI/CD pipeline examples
-
DATABRICKS_DEPLOYMENT.md - Multi-pattern deployment guide
- Pattern 1: Local MCP Server (stdio transport)
- Pattern 2: Databricks Notebooks (direct SDK usage)
- Pattern 3: Databricks Jobs (scheduled automation)
- Pattern 4: Databricks Apps (SSE transport for team-wide 24/7 access)
- Complete implementation examples for each pattern
- Comparison tables and decision guidance
-
MCP_SERVER_COMPARISON.md - Strategic analysis and roadmap
- Comparison with SAP Datasphere MCP (7 tools vs 45 tools)
- Expansion roadmap to v1.0.0 with 3 phases
- Publishing strategy (PyPI, npm, Docker, documentation site)
- Community building and content marketing plans
- Metrics to track adoption and quality
-
TROUBLESHOOTING_GUIDE.md - Common issues and solutions
- 10 common error scenarios with detailed fixes
- ORD annotation configuration issues
- Permission and grant problems
- Network and authentication troubleshooting
- Workspace URL and token validation
Testing & Examples
- test_validate_share.py - Validation tool test script
- Demonstrates validation workflow
- Tests both existing and non-existent shares
- Shows structured output format with pass/fail/warning states
Improved
Core Functionality
-
BDCClientManager enhancements
- Added
workspace_clientproperty for Databricks SDK operations - Added
recipient_nameproperty for easier access - Better initialization error messages
- Proper client lifecycle management
- Added
-
Error handling and user feedback
- Step-by-step progress reporting in
provision_share - Clear error messages with recovery guidance at each step
- Warnings vs errors distinction in validation
- Actionable next steps for all failure modes
- Step-by-step progress reporting in
-
Documentation coverage
- README updated with all 7 tools documented
- Each tool now has comprehensive parameter documentation
- Use cases and workflow guidance added
- Real-world examples for each tool
Changed
- Updated README status from v0.1.0 to current development state
- Enhanced tool descriptions with more detail
- Improved code examples to show complete workflows
Technical Improvements
- Enhanced type hints throughout codebase
- Better async/await patterns in MCP handlers
- Improved logging with structured messages
- More robust error recovery in orchestration flows
- Warehouse ID validation for SQL operations
Developer Experience
- Examples now show complete workflows (validation → provision → verify)
- Better separation of concerns between validation and execution
- Self-service troubleshooting via validation tool
- CI/CD friendly validation patterns with exit codes
- Clear upgrade path from manual to automated workflows
Performance
- Validation checks run in parallel where possible
- Reduced redundant API calls in provision flow
- Better error short-circuiting (fail fast)
-
Features 10, Other 8
Notes
Added
- Initial release of SAP BDC MCP Server
- Support for 5 core SAP BDC operations:
create_or_update_share- Create/update data shares with ORD metadatacreate_or_update_share_csn- Configure shares using CSN schemapublish_data_product- Publish data productsdelete_share- Delete and withdraw sharesgenerate_csn_template- Auto-generate CSN templates
- MCP protocol implementation using stdio transport
- Configuration management via environment variables
- Databricks integration support
- Delta Sharing protocol support
- Comprehensive test suite
- Documentation and examples
- GitHub Actions CI/CD workflows
- MIT License
Technical Details
- Python 3.9+ support
- Compatible with SAP BDC Connect SDK 1.1.6+
- MCP SDK integration
- Type hints throughout codebase
- Async/await support for MCP operations
Known Limitations
- Requires Databricks environment with dbutils
- Recipient configuration needed for Delta Sharing
- Limited to SAP BDC Connect SDK exposed functionality
Others providing
- 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 functionsfrom BTP/BAIP
- 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 Managementfrom BTP/BAIP
- @abap2ui5/mcp-server@abap2ui5/mcp-serverAn MCP server that puts the abap2UI5 development loop on the machine an agent runs on: check the view the ABAP builds, photograph it, deploy the class into a sandbox, boot the app headless and read the errors.community org, abapMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
- abap2UI5 for VS Codeabap2UI5 for VS CodeA VS Code extension for abap2UI5 apps: F9 starts the app class in a preview beside the source, Ctrl+F3 activates the class and reloads it, and the abap2UI5 linter runs in the editor while you type.community org, abapVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
- SF-MCPSF-MCPSixty-two purpose-built tools over SAP SuccessFactors' OData APIs — employee data, permissions, compliance reports and HR administration, asked for in plain language.independent, successfactorsMCP server with 62 tools over SAP SuccessFactors OData APIsfrom SAP SuccessFactors
- hybris-mcp-litehybris-mcp-liteA read-only MCP server that answers questions about a local SAP Commerce Cloud instance by calling HAC, so types, beans, configuration, cronjobs, logs and FlexibleSearch come back in the editor.independent, commerceRead-only MCP server over a local SAP Commerce Cloud's HACfrom SAP Commerce
- 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 APIsfrom BTP/BAIP
- CostingGeek/sap-mcpCostingGeek/sap-mcpA 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.independent, btpPython MCP server fetching sales orders from SAP's business data graphfrom BTP/BAIP
- 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 Databasefrom BTP/BAIP
- abapsmithabapsmithAn MCP server that lets an LLM develop in ABAP on a live system over ADT, with writes off by default and every mutation recorded in a local journal that can undo it.independent, abapABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
- 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 APIfrom BTP/BAIP
- 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 HANAfrom BTP/BAIP
- 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 APIfrom BTP/BAIP
- 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, deploymentfrom BTP/BAIP
- 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 filefrom BTP/BAIP
- 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 toolsfrom BTP/BAIP
- 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 dashboardsfrom BTP/BAIP
- 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 toolsfrom BTP/BAIP
- 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 toolsfrom BTP/BAIP
- 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 toolsfrom BTP/BAIP
- 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 metadatafrom BTP/BAIP
- @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 tenantfrom BTP/BAIP
- 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 operationsfrom BTP/BAIP
- 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 MCPfrom BTP/BAIP
- 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 metadatafrom BTP/BAIP
- 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 contractsfrom BTP/BAIP
- 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 Dataspherefrom BTP/BAIP
- sap-mcp-serversap-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.independent, abapReads 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
- cap-mcp-bridgecap-mcp-bridgePoints at a running CAP or OData V4 service, reads its $metadata, and turns what it finds into MCP tools — list, describe, query with validated filters, expand, and invoke functions and actions.independent, capMCP server generating tools from a CAP or OData V4 service's metadatafrom CAP
- 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 administrationfrom BTP/BAIP
- 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 instancefrom BTP/BAIP
- 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 serverfrom BTP/BAIP
- 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 HANAfrom BTP/BAIP
- Skybuffer AI MCP serverSkybuffer AI MCP serverAn ABAP add-on that serves SAP business data, transactions and development context as MCP tools from an ICF node inside SAP ECC and S/4HANA, each call running as the signed-in user under PFCG authorization checks.independent, abapABAP add-on serving business data and transactions as MCP toolsfrom ABAP
- sap-security-mcpsap-security-mcpAn entirely read-only security analysis surface: nineteen tools, five resources and eight prompts for audits, SOX and segregation-of-duties review, behind OAuth 2.0 with PKCE. The vendor hosts an endpoint, and the README documents running it yourself.independent, abapRead-only security analysis MCP server for SAP audits and SoD reviewfrom ABAP
- 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 flowsfrom BTP/BAIP
- KlystronKlystronAn MCP server written in ABAP that runs inside the application server behind an ICF service and exposes typed tools for ABAP development, quality, transports, customizing, roles, Basis operations and integration, with a client-side plugin of SAP skills.independent, abapMCP server in ABAP inside the application server, with agent skillsfrom ABAP
- pyrfc-mcppyrfc-mcpAn MCP server for calling an SAP system's RFC-enabled function modules from an agent, built so that discovering a function does not authorise calling it: a read or a write is denied unless the function name matches an allowlist the server is configured with.independent, abapMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP
- SAP Business Data CloudSAP Business Data CloudSAP's umbrella over the data estate: installed intelligent content and data products, a governed catalog they are published through, and a path out to SAP Databricks.sap official, btpData products, a governed catalog and a path to SAP Databricksfrom BTP/BAIP
- SAP DatasphereSAP DatasphereSAP's cloud data warehouse: spaces, modelled views and analytic models over data brought in or federated from source systems, with the business context carried along rather than rebuilt.sap official, btpCloud data warehouse with spaces, views and analytic modelsfrom BTP/BAIP
- SAP Datasphere Plugin for ClaudeSAP Datasphere Plugin for ClaudeEighteen Datasphere skills over a bundled 45-tool MCP server — exploration, view and analytic-model design, BW Bridge migration, security architecture and catalog governance.independent, btpEighteen Datasphere skills over a bundled MCP serverfrom BTP/BAIP
- @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 tenantfrom BTP/BAIP
- 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 contractsfrom BTP/BAIP
- 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 Dataspherefrom BTP/BAIP
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.
- First seen.
For your agent
- Ref
artifact:mariodefelipe-sap-bdc-mcp-server- JSON
- /artifacts/mariodefelipe-sap-bdc-mcp-server.json
- MCP
- Connecting an agent