BTP MCP Server
BTP 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.
Two things declared in one JSON config and no application code whatsoever. The API half exposes BTP Core Services so an assistant can work through your landscape in natural language. The interesting half is the ui section: five extra UI_* tools where the proxy fetches the listed data sources concurrently through the same OData clients — forwarding the caller's JWT — inlines shared CSS and JS into a named HTML template, bakes the payload in, and returns it as an mcp-ui embedded resource, with the MCP Apps adapter on so it renders in both kinds of host. An answer you can look at rather than read.
Facts
Where it sits
Who is behind it
In the atlas: maintains 25, contributes to 39, wrote 12@lemaiwomaintainer
Before choosing this
Conditions
PracticalFunctional boundary
It administers a real account through Core Services, so what it can change is what the caller can change. And the UI half depends on hosts that render mcp-ui or MCP Apps resources; elsewhere those five tools return markup nobody displays.
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
Connections
Setting up cloud accounts, entitlements and access from code
Giving an AI agent access to the systems you run over MCP
Config-driven proxy turning OData and REST endpoints into MCP tools
Download
Architecture
Download
npm start runs the proxy binary against its JSON config, and there is no application code to run without it.README
quoted from lemaiwo/btp-mcp-server under MIT, readBTP MCP Server
An MCP (Model Context Protocol) server for SAP BTP administration, powered by odata-mcp-proxy. It exposes BTP Core Services APIs as MCP tools, allowing AI assistants like Claude to manage your BTP landscape through natural language — and ships interactive MCP-UI dashboards (subaccount overview with drill-down, a geomap of data-center locations, consumption and users/roles dashboards) rendered directly in the chat.
There is no application code in this project. Both the API tools and the interactive views are declared in a single JSON config file (btp-admin-api-config.json) alongside self-contained HTML templates in ui/. npm start runs the odata-mcp-proxy binary against that config.
How It Works
This project uses the odata-mcp-proxy npm package, which maps OData/REST services to MCP tools based on a configuration file. You provide a config describing your APIs and entity sets, and the proxy generates the corresponding MCP tools automatically.
The config's ui section declares five additional UI_* tools. For each one the proxy fetches the listed data sources concurrently through the same OData clients (forwarding the caller's JWT), inlines the shared CSS/JS partials into the named template, bakes the payload in, and returns it as an mcp-ui embedded resource — with the MCP Apps adapter enabled, so it renders on both MCP Apps hosts like Claude and classic mcp-ui hosts.
AI Assistant (Claude, Cursor, etc.)
|
| MCP Protocol (HTTP or stdio)
v
odata-mcp-proxy ──[apis]──> entity tools (Subaccounts_list, …)
| └─[ui]────> UI_* tools + ui:// templates (ui/*.html)
|
| REST + OAuth2 (via BTP Destination Service)
v
BTP Core Services / Usage Data Management / XSUAA APIs
The server stays declarative: it fetches and injects, but does no aggregation. Rolling raw API responses up into charts and tables is each template's job.
Think of it like the SAP Application Router -- a ready-made runtime you configure, not code you write.
Interactive UI Tools (MCP-UI)
Five tools return interactive HTML views instead of raw JSON. Each result contains a short text summary for the model plus a ui:// embedded resource the host renders in an iframe; buttons and table rows inside the views call the next view's tool and swap it into the frame, so you can navigate between views without going back through the model.
| Tool | What it shows | Navigation |
|---|---|---|
UI_SubaccountsOverview | Stat tiles, subaccounts-per-region chart, searchable/sortable table of all subaccounts | Row click → UI_SubaccountDetails; header buttons → the dashboards |
UI_SubaccountDetails | One subaccount: state, region/location, labels, and its entitled services & plans (quotas) | Back to overview / map |
UI_GeomapDashboard | World map with data-center locations sized by subaccount count, plus table view and unmapped-region list | Circle/row click → subaccounts at that location → details |
UI_ConsumptionDashboard | Monthly usage trends per service/plan/metric (small multiples), service adoption, and cost-per-month stacked by subaccount when cost data is available | Window presets (3/6/12 months) re-run the tool |
UI_UsersRolesDashboard | Users per identity provider, role collections by assigned users, searchable users / role-collections tables | — |
Notes:
- All views are self-contained (no CDN dependencies), respect light/dark mode, include tooltips, and every chart has a table twin.
- The same templates are also registered as
ui://btp-mcp-server/*resources with tool metadata (ui/resourceUri) for MCP Apps hosts that pre-fetch templates; tool results carry the data asstructuredContentas well. ui/_shared.jstalks to the host itself rather than relying on the adapter@mcp-ui/serverinjects: it probes with aui/initializehandshake and, on MCP Apps hosts (Claude), sendstools/calland size updates as JSON-RPC — the adapter bridges those by patchingparent.postMessage, which throws in the cross-origin sandboxed frame those hosts use, so every click was dropped. Hosts that stay silent get classic mcp-uitoolmessages instead and render the next view themselves. Because a view's script can run again in a frame that already ran it, injected partials must not declare top-levelconst/let.UI_ConsumptionDashboardneeds theBTP_USAGE_SERVICEdestination (Usage Data Management API); cost data additionally requires a consumption-based contract. Its reporting window is derived in the config via{$monthsAgo(months-1):yyyymm}/{$now:yyyymm}, so themonthsinput (1–24, default 6) needs no server-side date code.UI_UsersRolesDashboarduses the XSUAA SCIM and Authorization APIs viaBTP_XSUAA_SERVICE. The SCIM collection is paged by the proxy (paginate: 100 per request, capped at 500); when the cap is hit the view says so rather than under-reporting.- Geo coordinates for the map come from a BTP region table (
ui/_regions.js), injected into the templates as a partial; unknown regions are listed under the map instead of being dropped.
Tool surface (progressive discovery)
Registering every operation of every entity set as its own tool produced 40 tools and ~8,600 tokens of tools/list — around 4% of a 200k context window before the user has said anything, and past the point where models start picking worse tools.
The config enables the proxy's hybrid discovery mode instead:
"discovery": {
"mode": "hybrid",
"alwaysRegister": ["Subaccounts"],
"maxResults": 25,
"maxFullResults": 5
}
| Tools | tools/list | |
|---|---|---|
| One tool per operation (previous) | 40 | ~8,600 tokens |
hybrid, Subaccounts pinned (current) | 12 | ~2,610 tokens |
search (nothing pinned) | 7 | ~1,441 tokens |
What stays directly visible: the five Subaccounts_* tools (the hot path for mutations), the five UI_* views (the entry points the model should prefer), and two meta-tools — search_operations to find the right api/entitySet/operation, and execute_operation to run it. Everything else is reachable through those two, plus one odata://{api}/{entitySet} schema resource per entity set for hosts that pre-fetch resources.
Remove the discovery block and every entity set goes back to having its own tools; nothing else in the config changes.
Exposed BTP APIs
The config file (btp-admin-api-config.json) defines three BTP Core Services and the XSUAA Authorization API:
Account Management
| Tool | Operations | Description |
|---|---|---|
GlobalAccount | list | View global account details |
Subaccounts | list, get, create, update, delete | Manage subaccounts |
Directories | list, get, create, update, delete | Organize subaccounts into directories |
Entitlements
| Tool | Operations | Description |
|---|---|---|
Assignments | list, update | Manage service plan entitlement assignments |
AllowedDataCenters | list | View available data centers |
Provisioning
| Tool | Operations | Description |
|---|---|---|
EnvironmentInstances | list, get, create, delete | Manage runtime environments (e.g. Cloud Foundry orgs) |
AvailableEnvironments | list | View environment types available for provisioning |
Consumption (Usage Data Management)
| Tool | Operations | Description |
|---|---|---|
MonthlyUsage | list | Monthly service usage per subaccount/service/plan/metric (?fromDate=YYYYMM&toDate=YYYYMM) |
MonthlySubaccountsCost | list | Monthly cost per subaccount for consumption-based licenses |
Authorization (XSUAA)
| Tool | Operations | Description |
|---|---|---|
Users | list, get | Subaccount users via the XSUAA SCIM API (SCIM query params, not OData) |
Applications | list, get | View XSUAA application registrations |
RoleCollections | list, get, create, update, delete | Manage role collections |
Roles | list, get, create, delete | Manage roles derived from role templates |
RoleTemplates | list, get | View role templates defined by applications |
All _list tools support OData query parameters: $filter, $select, $expand, $orderby, $top, $skip.
Claude Code Skill
The repository ships a Claude Code skill at .claude/skills/btp-admin/SKILL.md that teaches Claude how to use these tools efficiently:
- Tool selection -- maps common admin tasks ("entitle a service", "create a CF org") to the right tool on the first try
- Token discipline -- always use
$select,$filter, and$topso verbose BTP list responses stay small - Payload shapes -- documents request bodies the JSON schemas can't fully express (entitlement
amountvsenable, environment instanceparameters, role keys) - Workflows and pitfalls -- multi-step recipes (subaccount onboarding) and async-operation handling
Skills use progressive disclosure: only the name and description are loaded into context until a BTP admin task triggers the full skill, so the standing cost is a few dozen tokens. Anyone cloning this repository and using Claude Code gets it automatically; it also works when the repo is added as a project in claude.ai.
Prerequisites
- Node.js 18+ (20+ recommended)
- SAP BTP account with a Cloud Foundry environment
- BTP Destinations configured for the CIS APIs (Accounts, Entitlements, Provisioning) with OAuth2 authentication
- Cloud Foundry CLI (
cf) and MBT Build Tool (mbt) for deployment
Project Structure
btp-mcp-server/
├── package.json # Start script + the single odata-mcp-proxy dependency
├── btp-admin-api-config.json # Everything: `apis` (entity tools) + `ui` (view tools)
├── ui/ # Self-contained HTML view templates
│ ├── subaccounts-overview.html
│ ├── subaccount-details.html
│ ├── dashboard-geomap.html
│ ├── dashboard-consumption.html
│ ├── dashboard-users-roles.html
│ ├── _shared.css / _shared.js# chart chrome, palette, helpers (injected as partials)
│ ├── _regions.js # BTP region → city/coordinates table (injected)
│ └── _world-path.txt # world outline (Natural Earth 110m, public domain)
├── .claude/skills/btp-admin/ # Claude Code skill: tool selection + token-usage guidance
├── mta.yaml # BTP Cloud Foundry deployment descriptor
├── xs-security.json # XSUAA OAuth2 configuration
├── default-env.json # Local dev credentials (gitignored)
└── LICENSE
Getting Started
1. Install dependencies
npm install
2. Configure BTP destinations
Create BTP Destinations pointing to the CIS, Usage Data Management and XSUAA APIs:
| Destination | URL | Used by |
|---|---|---|
BTP_ACCOUNTS_SERVICE | https://accounts-service.cfapps.<region>.hana.ondemand.com | Account tools, all UI views |
BTP_ENTITLEMENTS_SERVICE | https://entitlements-service.cfapps.<region>.hana.ondemand.com | Entitlement tools, subaccount details UI |
BTP_PROVISIONING_SERVICE | https://provisioning-service.cfapps.<region>.hana.ondemand.com | Environment tools |
BTP_USAGE_SERVICE | https://uas-reporting.cfapps.<region>.hana.ondemand.com | Consumption tools + dashboard |
BTP_XSUAA_SERVICE | https://<subdomain>.authentication.<region>.hana.ondemand.com | Authorization tools, users & roles dashboard (XSUAA apiaccess service key) |
Each destination should use OAuth2 client credentials authentication.
3. Local development
Create a default-env.json with your BTP service bindings (XSUAA, Destination, Connectivity) to run locally:
npm start
This runs odata-mcp-proxy --config btp-admin-api-config.json, which registers the entity tools from the config's apis section and the interactive views from its ui section.
4. Deploy to BTP
npm run build:btp # Build MTA archive
npm run deploy:btp # Deploy to Cloud Foundry
The MTA deployment provisions three service instances:
- Destination (lite) -- resolves API endpoints and manages OAuth2 tokens
- Connectivity (lite) -- enables secure backend connectivity
- XSUAA (application) -- handles OAuth2 authentication with role-based access control
Security
The XSUAA configuration (xs-security.json) defines three role templates:
| Role | Scopes | Description |
|---|---|---|
MCPViewer | read | Read-only access |
MCPEditor | read, write | Read and write access |
MCPAdmin | read, write, admin | Full administrative access |
OAuth2 redirect URIs are pre-configured for Claude.ai, Cursor, Microsoft Teams, and local development.
Creating Your Own MCP Server
This project demonstrates how easy it is to create a custom MCP server using odata-mcp-proxy. To build your own:
-
Create a new project and install the dependency:
mkdir my-mcp-server && cd my-mcp-server npm init -y npm install odata-mcp-proxy -
Add a start script to
package.json:{ "scripts": { "start": "odata-mcp-proxy --config my-api-config.json" } } -
Define your APIs in a config file (
my-api-config.json):{ "server": { "name": "my-mcp-server", "version": "1.0.0", "description": "My custom MCP server" }, "apis": [ { "name": "my-api", "destination": "MY_BTP_DESTINATION", "pathPrefix": "/api/v1", "csrfProtected": true, "entitySets": [ { "entitySet": "Products", "description": "Product catalog", "category": "master-data", "keys": [{ "name": "Id", "type": "string" }], "operations": { "list": true, "get": true, "create": false, "update": false, "delete": false } } ] } ] } -
Add your
mta.yaml,xs-security.json, and BTP Destinations, then deploy. That's it -- no code to write.
License
MIT
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-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
- 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 Cloudfrom 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 Cloud Management Service for SAP BTPSAP Cloud Management Service for SAP BTPREST APIs for the administration of a BTP account: directories and subaccounts, entitlements and quotas, subscriptions to multitenant applications, environment instances, and the events those operations raise.sap official, btpREST APIs for administering a BTP accountfrom BTP/BAIP
- SAP Service ManagerSAP Service ManagerThe BTP registry for service brokers and environments: consumes SAP BTP services from any connected runtime environment, tracks the service instances created, and shares them between environments.sap official, btpRegistry for service brokers, instances and environments on SAP BTPfrom BTP/BAIP
- auth-transportauth-transportA UI5 app and a CAP service that copy custom role collections from one SAP BTP subaccount to another over the Authorization and Trust Management API, published by its author as a proof of concept rather than for productive use.independent, btpUI5 app and CAP service copying role collections between subaccountsfrom BTP/BAIP
- 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
- btp-setup-automatorbtp-setup-automatorA containerised script that sets up an SAP BTP account from JSON configuration files: entitlements, subscriptions, service instances, administrators and role collections, instead of clicking through the cockpit.sap official, btpContainerised script setting up an SAP BTP account from JSON configfrom BTP/BAIP
- Terraform Provider for SAP BTPTerraform Provider for SAP BTPThe plugin that lets a Terraform or OpenTofu configuration manage the resources of an SAP BTP global account, from directories and subaccounts to entitlements, role collections and subscriptions.sap official, btpTerraform and OpenTofu provider for SAP BTP global accountsfrom 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 tag came in with the entry on 2026-09-10 and nothing sourced it: the README names BTP Core Services and the proxy it runs on, never CAP. It read as a routing leftover from when the MCP servers capability lived on the CAP door; the entry stays on BTP, its home.
- 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.
- The README lists create, update and delete on subaccounts and directories and entitlement assignment; the only edge was to the MCP-server capability, so the account-provisioning page did not list it.
- 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:lemaiwo-btp-mcp-server- JSON
- /artifacts/lemaiwo-btp-mcp-server.json
- MCP
- Connecting an agent