SAP Documentation MCP Server
This MCP server provides read-only access to SAP documentation, community content, BTP service catalog data, ABAP release/clean-core metadata, and UI5 change data through unified tools.
Search SAP docs across offline indexed sources (ABAP, UI5, CAP, BTP, Cloud SDK, AI, Terraform, tutorials, etc.) and optional live SAP Help, SAP Community, and Software Heroes sources with filters for source, ABAP flavor, samples, product, release, and result count.
Fetch full document content by ID returned from search, including Markdown text, URL, and metadata.
Check ABAP feature availability across SAP releases with the ABAP Feature Matrix.
Search SAP Community posts and retrieve full content for troubleshooting, error messages, and workarounds.
Compare UI5 releases to list features, fixes, deprecations, and What's New entries for upgrade planning.
Search SAP released objects and get clean-core/release-state details, including successors and compliance status.
Search SAP Discovery Center BTP services and get service details such as pricing plans, roadmap, documentation links, and key features.
Provides offline access to SAP documentation and real-time SAP Community content, including SAPUI5, CAP, OpenUI5 APIs and samples, and wdi5 E2E test framework documentation. Enables searching across official documentation and community posts, retrieving specific resources, and accessing high-quality community solutions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SAP Documentation MCP Server search for SAPUI5 table component examples"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP SAP Docs (Upstream)
An MCP server that gives AI assistants (Claude, Cursor, ChatGPT, etc.) access to SAP documentation through a unified search and fetch interface. It combines local full-text search and optional semantic ranking over git-cloned SAP docs with optional live queries to SAP Help, SAP Community, and Software Heroes — all exposed as MCP tools.
Install
Or add it to any MCP client that supports streamable HTTP:
{
"mcpServers": {
"sap-docs": {
"type": "http",
"url": "https://mcp-sap-docs.marianzeis.de/mcp"
}
}
}No API key or login required — the server is public and read-only.
Related MCP server: SAP Fiori Jetpack Compose UI SDK Documentation MCP Server
Public Hosted Endpoint
Ready to use — no setup required
Variant
URL
SAP Docs
http://mcp-sap-docs.marianzeis.de/mcpABAP
https://mcp-abap.marianzeis.de/mcp
Variants
mcp-sap-docs is the upstream repository for two MCP server variants that share one codebase and differ by configuration (MCP_VARIANT / .mcp-variant):
Variant | Scope | Extra tools |
| Broad SAP docs: UI5, CAP, Cloud SDK, ABAP, BTP, AI, Terraform | Discovery Center tools |
| ABAP-focused: ABAP keyword docs, RAP, cheat sheets, style guides |
|
Documentation Sources
Offline sources (local index, always available)
Source | Description |
| Official ABAP Keyword Documentation — on-premise / full syntax |
| Official ABAP Keyword Documentation — ABAP Cloud / BTP (restricted syntax) |
| Practical ABAP/RAP code snippets and examples |
| Annotation-driven RAP + OData V4 + Fiori Elements feature showcase |
| openSAP "Building Apps with RAP" course samples |
| ABAP Cloud + RAP example projects |
| RAP reuse services examples (number ranges, mail, Adobe Forms, …) |
| SAP Clean ABAP Style Guide and best practices |
| DSAG ABAP Leitfaden (German) development guidelines |
| SAP BTP concepts, development, security, administration |
| SAP AI Core and SAP AI Launchpad documentation |
| SAPUI5 / OpenUI5 framework documentation |
| SAP Cloud Application Programming Model (CAP) documentation |
| SAP Cloud SDK documentation |
| SAP Terraform Provider for BTP — resources and data sources |
| SAP Architecture Center reference architectures and guidance |
| wdi5 (WebdriverIO + UI5) testing framework documentation |
Additional SAP Docs sources
The sap-docs profile also indexes the following official documentation. These sources use the existing Markdown/MDX pipeline and link to their upstream files.
Source IDs | Coverage |
| Destinations, Cloud Connector, principal propagation, HTTP/RFC |
| Python BTP and AI SDK documentation and examples |
| OData annotation terms and types; experimental labels are retained |
| Application jobs and observability |
| Identity Authentication, Identity Provisioning, and system integration |
| Consolidated Integrations and APIs guide, plus Event Mesh |
| Dev spaces, development, and troubleshooting |
| Managed pipelines and cloud transports |
Integration Suite indexes docs/ISuite_Integrations_APIs and docs/ISuite_Event_Mesh. Parallel Cloud Integration/API Management guide copies are excluded to avoid repeated content and mixed navigation terminology. Python SDK sources include current docs-python content; historical version folders are excluded.
SAP-docs repositories carry CC-BY-4.0 notices; SAP Cloud SDK, AI SDK, and OData vocabularies carry Apache-2.0 notices. The source checkouts retain their upstream license files, and search/fetch results link to the original documents. See source expansion plan for validation and scope.
Online sources (live queries, enabled by default)
Source | Description |
SAP Help Portal | Official SAP product documentation (broad scope) |
SAP Community | Community blogs, Q&A, and troubleshooting posts |
Software Heroes | ABAP/RAP articles and tutorials (EN + DE, deduplicated) |
Available Tools
Shared tools (both variants)
Tool | Description |
| Unified search (BM25 with optional semantic ranking) across offline docs and optional online sources. Supports |
| Retrieve full document content by ID returned from |
| Check ABAP feature availability across SAP releases (7.40–LATEST) using the Software Heroes feature matrix. |
| Dedicated SAP Community search via the Khoros LiQL API — returns full content of top posts. Use when |
| Search SAP released objects (classes, interfaces, tables, CDS views, …) by name/component/type from the official SAP/abap-atc-cr-cv-s4hc release state repo. Useful for clean core compliance discovery. |
| Full release state details for a specific SAP object including clean core level (A/B/C/D), successor objects, and optional compliance verdict. |
sap-docs variant only
Tool | Description |
| Search the SAP Discovery Center service catalog for BTP services by keyword, category, or license model. |
| Get comprehensive BTP service details: pricing plans, product roadmap, documentation links, and key features. Accepts a service UUID or name. |
| List all matching FEATURE / FIX / DEPRECATED changes and SAPUI5 What's New entries for a version or range from a local all-changes bundle ( |
abap variant only
Tool | Description |
| Run static code analysis on ABAP source code using abaplint. Auto-detects file type from code patterns. Returns findings with line numbers, severity, and rule keys. |
Architecture Overview
Upstream source of truth:
mcp-sap-docsOne-way sync target:
abap-mcp-serverSearch defaults to BM25 keyword ranking; optional semantic scores are combined via Reciprocal Rank Fusion (RRF)
Embeddings model:
Xenova/all-MiniLM-L6-v2(~90 MB, cached indist/models/)
Variant Selection
Resolution order:
MCP_VARIANTenvironment variable.mcp-variantfile in repo rootfallback:
sap-docs
Examples:
# Run as full sap-docs profile
MCP_VARIANT=sap-docs npm run setup
MCP_VARIANT=sap-docs npm run build
MCP_VARIANT=sap-docs npm run start:streamable
# Run as ABAP profile
MCP_VARIANT=abap npm run setup
MCP_VARIANT=abap npm run build
MCP_VARIANT=abap npm run start:streamableSearch Behavior
search performs fused retrieval over:
Offline FTS index (local submodule content)
Optional online sources (
includeOnline=true):SAP Help
SAP Community
Software Heroes content search (EN/DE merge + dedupe)
Ranking and filtering highlights:
BM25 search with optional semantic ranking — keyword and meaning, fused via RRF
Reciprocal Rank Fusion (RRF) across offline and online sources
Source-level boosts from metadata
includeSamplescan remove sample-heavy sourcesabapFlavor(standard/cloud/auto) filters official ABAP docs libraries while keeping non-ABAP sourcessourcescan restrict offline libraries explicitly
Fetch content limits
Community post bodies are returned as Markdown, including code, links, images and tables. Clients that previously parsed raw Community HTML must consume Markdown. Document IDs, source URLs and response schemas are unchanged. If conversion fails, that post keeps its original HTML with a notice; other posts in the same batch are still returned.
SAP Help and Community fetches default to 75,000 characters. Shortened results
include metadata.truncation with exact loss counts. Self-hosted servers can set
MAX_CONTENT_LENGTH before startup; see content size limits.
Each outbound SAP Help or Community HTTP request has a 10-second timeout, including
reading its response body. Self-hosted servers can set SAP_HELP_TIMEOUT_MS and
SAP_COMMUNITY_TIMEOUT_MS before startup. Values must be whole milliseconds from
1 to 2,147,483,647; invalid values use the default. A tool call that retrieves a
document in several requests can take longer than one request timeout.
Hybrid Search
Offline search defaults to BM25 keyword ranking. Optional semantic ranking uses
Xenova/all-MiniLM-L6-v2 to reorder the lexical candidates; it does not search outside
that candidate pool. Enable it explicitly with EMBEDDING_WEIGHT=0.7 after building
complete document and section embeddings and evaluating your own queries.
Embeddings are stored in docs.sqlite, with the model cached in dist/models/.
Old or partial embedding artifacts fall back to lexical ranking with a rebuild warning.
See docs/HYBRID-SEARCH.md for setup, limitations and costs.
Offline-Only Mode
search includes online sources by default. To run offline-only, use:
local index/submodules only (
npm run setup+npm run build)includeOnline=falsein eachsearchrequest
Example search request body:
{
"query": "RAP draft",
"k": 8,
"includeOnline": false
}Docker (offline-only)
Run the container with host binding and call search with includeOnline=false:
docker run --rm -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
-e MCP_HOST=0.0.0.0 \
mcp-sap-docsFor strict air-gapped execution, disable container networking:
docker run --rm --network none -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
-e MCP_HOST=0.0.0.0 \
mcp-sap-docsNotes:
With
--network none, online fetches are impossible by runtime isolation.Startup may log warnings for online prefetch attempts (for example ABAP feature matrix); this does not prevent offline
searchusage.
Quick Start (Local)
npm ci
npm run setup
npm run buildnpm run setup updates the selected variant's documentation sources to their
configured branch tips and builds the index, including embeddings. Nested
submodules stay at the commits recorded by those sources. To omit optional nested
repositories (for example when their upstream URLs require SSH credentials), use
SKIP_NESTED_SUBMODULES=1 npm run setup in Bash, including Git Bash on Windows.
npm run setup:submodules instead checks out the repository's recorded source
commits. It does not fetch the latest documentation or apply variant filtering.
Run npm run setup when refreshing an existing installation.
Start server modes:
# MCP stdio
npm start
# HTTP status/dev server
npm run start:http
# MCP streamable HTTP
npm run start:streamableDefault ports by variant:
sap-docs: HTTP3001, streamable3122abap: HTTP3002, streamable3124
Health checks:
curl -sS http://127.0.0.1:3122/health | jq .
curl -sS http://127.0.0.1:3001/status | jq .Use variant-specific ports when running abap profile.
Build and Setup Scripts
Script names remain shared (setup, build, start, start:streamable).
Behavior changes by variant config:
setup.shonly initializes variant-allowed submodulesbuild-indexonly includes variant-allowed librariesbuild-ftsonly indexes variant-allowed libraries
This keeps abap faster and smaller without maintaining a separate build script set.
Docker
Build image for a variant:
# sap-docs image
docker build --build-arg MCP_VARIANT=sap-docs -t mcp-sap-docs .
# abap image
docker build --build-arg MCP_VARIANT=abap -t abap-mcp-server .Run streamable server:
# sap-docs
docker run --rm -p 3122:3122 \
-e MCP_VARIANT=sap-docs \
-e MCP_PORT=3122 \
mcp-sap-docs
# abap
docker run --rm -p 3124:3124 \
-e MCP_VARIANT=abap \
-e MCP_PORT=3124 \
abap-mcp-serverSAP BTP Cloud Foundry
For BTP CF, the recommended sap-docs path is to deploy the maintained
ghcr.io/marianfoo/mcp-sap-docs:sap-docs image with MTA. Cloud Foundry only
pulls and runs the prepared image, including embedding artifacts. Ranking remains
lexical unless a positive EMBEDDING_WEIGHT is explicitly configured.
See docs/BTP-CF-DEPLOYMENT.md for the public-first
deployment guide. Start with
Deployment Options and Tradeoffs
to choose between MTA, direct cf push, custom registry images, and refresh
setup.
One-Way Sync to abap-mcp-server
This repository contains direct sync automation:
Workflow:
.github/workflows/sync-to-abap-main.ymlScript:
scripts/sync-to-abap.sh
Flow:
Release Please publishes a release in
mcp-sap-docsafter its release PR is mergedThe release workflow explicitly dispatches the ABAP sync workflow
The sync workflow clones
abap-mcp-serverTracked upstream files are synced (with exclude rules), then the ABAP overlay is applied
.mcp-variantis forced toabapand ABAP package identity is patchedA sync commit is pushed to
abap-mcp-server/mainThat push triggers the ABAP deployment workflow
The sync workflow also supports manual runs, including dry runs and a custom target branch.
Only pushes to the downstream main branch trigger automatic deployment.
Required secret in mcp-sap-docs repo:
ABAP_REPO_SYNC_TOKEN: a dedicated token with access to push code and workflow changes toabap-mcp-server. Keep this separate fromGITHUB_TOKEN, whose pushes do not trigger subsequent workflows.
Deployment Model
mcp-sap-docs: owns release versions and dispatches its deployment and ABAP sync when a release is createdabap-mcp-server: deploys on pushes tomain, including upstream sync commits, or viaworkflow_dispatch
The downstream repository does not publish GitHub releases. Its deployment must
therefore listen for sync pushes, not release: published. Upstream releases
control when automatic syncs occur.
The ABAP deployment workflow is maintained in
sync/abap.overlay/.github/workflows/deploy-abap-mcp-server.yml. Change that
upstream overlay so the fix persists across future syncs.
After merging a deployment fix, publish the next upstream release or manually run
sync-to-abap-main.yml against upstream main. Confirm that the downstream deploy
run succeeds and that https://mcp-abap.marianzeis.de/health reports the version in
the synced ABAP package.json; a successful sync alone does not confirm deployment.
PM2 Runtime
ecosystem.config.cjs is variant-aware and resolves:
process names
ports
deploy path
from config/variants/*.json.
Validation Commands
npm run build:tsc
npm run test:url-generation
npm run test:integration
npm run test:software-heroes
npm run test:discovery-center # mocked Discovery Center REST contract tests
npm run test:discovery-center:live # opt-in live API smoke test
npm run test:sap-objects # SAP Released Objects unit tests
# Variant-specific build checks
MCP_VARIANT=sap-docs npm run build:index
MCP_VARIANT=abap npm run build:index
MCP_VARIANT=sap-docs npm run build:fts
MCP_VARIANT=abap npm run build:ftsAdditional Docs
docs/ARCHITECTURE.mddocs/DEV.mddocs/TESTS.mddocs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.mdREMOTE_SETUP.md
Curated SAP tutorials
The SAP Docs profile includes 32 additional official tutorials in
sap-tutorials-ai, sap-tutorials-hana, and sap-tutorials-integration:
AI Core orchestration V2 and grounding, HANA Cloud SQLScript and CAP, Integration
Suite MCP Gateway, and Cloud Transport Management. The existing Fiori OPA guide
is still available separately.
Use product and task terms, for example SAP HANA Cloud SQLScript stored procedure tutorial or SAP Integration Suite MCP Gateway tutorial. Use sources to narrow
an ambiguous search; leave it unset for cross-source discovery. Tutorials provide
worked examples and retain their prerequisites; product and SDK documentation
remain the reference for detailed API behavior.
The explicit selection is in config/tutorials.json.
Fetched tutorials include readable option labels, absolute asset/prerequisite
links, and their published page URL. The unpublished transport overview links to
its official GitHub source. Source content and its original attribution are
preserved; the original tutorial repository's license still applies.
Available Tools
9 toolsabap_feature_matrixA
ABAP FEATURE MATRIX: abap_feature_matrix(query="feature keywords")
FUNCTION NAME: abap_feature_matrix
Search the Software Heroes ABAP Feature Matrix to check feature availability across SAP releases. The matrix shows which ABAP features are available in different SAP releases (7.40, 7.50, 7.52, 7.54, 7.55, 7.56, 7.57, 2020, 2021, 2022, 2023, LATEST).
DATA SOURCE: https://software-heroes.com/en/abap-feature-matrix Full matrix is fetched in English and cached for 24 hours. Filtering is done locally.
STATUS MARKERS: • ✅ available - Feature is available in the release • ❌ unavailable - Feature is not available • ⭕ deprecated - Feature is deprecated • ❔ needs_review - Status needs verification • 🔽 downport - Feature was backported from a newer release
PARAMETERS: • query (optional): Feature keywords to search for (e.g., "inline declaration", "CORRESPONDING", "mesh"). If empty, returns all features. • limit (optional): Maximum number of results. If not specified, returns all matching features.
RETURNS JSON with: • matches: Array of matching features with:
feature: Feature name
section: Category (e.g., "ABAP SQL", "ABAP Statements")
link: URL to more information (if available)
statusByRelease: Object mapping release versions to status
score: Relevance score • meta: Matrix metadata (totalFeatures, totalSections, sections) • sourceUrl: Attribution URL to Software Heroes • legend: Explanation of status markers
EXAMPLES: abap_feature_matrix(query="inline declaration") abap_feature_matrix(query="CORRESPONDING") abap_feature_matrix() - returns all features abap_feature_matrix(query="CDS", limit=10)
USE CASES: • Check if a feature is available in your target SAP release • Find when a specific ABAP feature was introduced • Compare feature availability across releases • Get full matrix and let LLM interpret/filter results
Inputs: limit, query. Returns: meta, legend, matches, sourceUrl
fetchA
GET FULL DOCUMENT CONTENT: fetch(id="result_id")
FUNCTION NAME: fetch
Retrieves the full content of a document from search results.
USAGE:
First use search() to find relevant documents
Use the 'id' from search results to fetch full content
Returns complete document text with metadata
PARAMETERS: • id (required): Document ID from search results. Use the exact ID returned by search.
RETURNS: • id: Document identifier • title: Document title • text: Full document content (markdown or code) • url: Link to online documentation (if available) • metadata: Source information and content details
Inputs: id (required). Returns: id, url, text, title, +1 more
sap_community_searchA
SEARCH SAP COMMUNITY: sap_community_search(query="search terms")
FUNCTION NAME: sap_community_search
Dedicated search across SAP Community blogs, Q&A posts, and discussions. Returns full content of the top matching posts.
IMPORTANT: The main search tool (with includeOnline=true) already includes SAP Community results alongside offline docs, SAP Help, and Software Heroes. Use this dedicated tool only when:
• The main search tool returned no useful results for your question
• You are looking for specific error messages, runtime exceptions, or obscure symptoms
• You need practical workarounds, troubleshooting steps, or real-world implementation experiences not covered in official documentation
• You want to see full community post content (not just snippets)
This tool searches SAP Community via the Khoros LiQL API and automatically retrieves full content for the top 3 posts.
PARAMETERS: • query (required): Search terms. Use specific error messages, symptoms, or technical terms for best results. • k (optional, default=30): Number of results to return. • minKudos (optional, default=1): Minimum number of kudos (likes) a post must have.
Default 1 filters out zero-engagement posts, giving higher-quality results.
Set to 0 for the broadest possible search (includes all posts, even those with no engagement — useful when looking for very niche or recent topics).
Set higher (e.g. 5 or 10) to surface only well-received, community-validated content.
Suggested maximum: 10. Higher values may return very few or no results.
RETURNS (JSON with): • results: Array of community posts, each containing:
id: Post identifier (use with
fetchto retrieve full content later)title: Post title
url: Direct link to the SAP Community post
snippet: Text excerpt
metadata.author: Post author
metadata.likes: Number of kudos
metadata.tags: Topic tags
WORKFLOW:
Start with
search(query="your question")(includes community + other sources)If results are insufficient, use
sap_community_search(query="specific error or symptom")Use
fetch(id="community-...")to retrieve full content of any community post from either tool
Inputs: query (required), k, minKudos. Returns: results
sap_discovery_center_searchA
SEARCH SAP BTP SERVICES: sap_discovery_center_search(query="SAP Build")
FUNCTION NAME: sap_discovery_center_search
Search the SAP Discovery Center service catalog to find SAP Business Technology Platform (BTP) services, solutions, and capabilities.
Use this tool when you need to:
Find which SAP BTP services are available for a specific use case (e.g., integration, AI, database, extension development)
Discover services by name or keyword (e.g., "HANA", "Integration Suite", "Build", "AI Core")
Browse services filtered by license model (free tier, pay-as-you-go, subscription)
Find deprecated BTP services and their replacements
Explore SAP AI and machine learning services on BTP
Compare BTP services within a category
Do NOT use this for ABAP documentation, code examples, or SAP Help content – use the 'search' tool for those. After finding a service, use sap_discovery_center_service(serviceId="...") to get full details including pricing, roadmap, and documentation links.
PARAMETERS: • query (required): Search terms for BTP services. Use service names or capability keywords. • top (optional, default 10, max 25): Number of results to return. • category (optional): Filter by category, e.g., "AI", "Integration", "Data and Analytics", "Application Development and Automation", "Foundation / Cross Services". • license_model (optional): Filter by license type: "free", "payg", "subscription", "btpea", "cloudcredits".
RETURNS (JSON): • services[]: Array of matching services with id, name, shortName, description, category, additionalCategories, licenseModelType, provider, tags, ribbon, isDeprecated • total: Number of results returned
Inputs: query (required), top, category, license_model.
sap_discovery_center_serviceA
GET SAP BTP SERVICE DETAILS: sap_discovery_center_service(serviceId="abc-123-def")
FUNCTION NAME: sap_discovery_center_service
Get comprehensive details for a specific SAP BTP service from the SAP Discovery Center, including pricing plans with per-unit costs, product roadmap, documentation links, and key features.
Use this tool when you need to:
Get pricing information for a BTP service (plans, metrics, costs per unit, free tier availability)
View the product roadmap and upcoming features planned for a service
Find official documentation, tutorials, and community resources for a service
Understand service plans and their differences (free tier vs. standard vs. extended)
Get the SAP cost calculator link or SAP Store link for a service
Learn about key features and capabilities of a specific service (headlines)
Check what billing metrics a service uses (e.g., Capacity Units, API Calls)
You can pass either a UUID from search results OR the service name directly (e.g., "SAP Build Code", "SAP AI Core", "SAP HANA Cloud"). The tool will auto-resolve names to UUIDs.
PARAMETERS: • serviceId (required): Service UUID from search results OR the service name (e.g., "SAP Build Code"). Names are auto-resolved via search. • currency (optional, default "USD"): Pricing currency code (e.g., "EUR", "USD", "GBP"). • include_roadmap (optional, default true): Include product roadmap data with planned features by quarter. • include_pricing (optional, default true): Include pricing plans with per-unit costs and billing metrics.
RETURNS (JSON): • Core: name, description, category, productType, licenseModelType, tags, csnComponent • links: calculator, sapStore, featureDescription, discoveryCenter URLs • headlines[]: Key feature highlights with descriptions • resources: Documentation links grouped by type (documentation, tutorials, community, support, calculator) • metrics[]: Billing metric definitions (name, description, code) • pricing[]: Service plans with planName, planCode, description, usageType, features, and commercialModels (model, metric, chargingPeriod, pricePerUnit, blockSize). The pricing section contains actual per-unit prices from the SAP Discovery Center (e.g., "1.04 EUR" per Capacity Unit/month). • roadmap: Planned features organized by quarter with categories and deliverables (or null if no roadmap exists)
Inputs: serviceId (required), currency, include_pricing, include_roadmap.
sap_get_object_detailsA
GET SAP OBJECT DETAILS: sap_get_object_details(object_type="CLAS", object_name="CL_ABAP_REGEX")
Get complete release state details by actual object type and name, with TADIR fallback for compatibility. A TADIR container can contain multiple objects; use the actual type/name to select a specific member. A TADIR lookup returns one member. To list all members, use sap_search_objects with its TADIR type as object_type, name as query, and clean_core_level="D".
Use this tool when you: • Know a specific SAP object name and need to verify if it is released/deprecated/internal • Want to check Clean Core compliance: is this object allowed in BTP ABAP or S/4HANA Cloud? • Need to find the recommended successor object when a deprecated SAP API should be replaced • Want the full context of an object: software component, application component, Clean Core level (A/B/C/D), and release state • Are checking whether a specific table (MARA, VBAK), class (CL_*), interface (IF_*), or CDS view is safe to use in a clean core / cloud-ready ABAP development scenario
Clean Core levels: A=Released API (safe for cloud/BTP), B=Classic API (on-premise only), C=Internal/Stable (not for customer use), D=No API
Optionally pass target_clean_core_level to receive an explicit compliance verdict for that object.
PARAMETERS: • object_type (required): Actual or TADIR type, e.g. "FUNC", "BADI_DEF", "CDS_STOB", "CLAS", "DDLS", "FUGR" • object_name (required): Exact object name, e.g. "CL_ABAP_REGEX", "EKKO", "IF_OS_TRANSACTION" • system_type (optional, default: "public_cloud"): "public_cloud" | "btp" | "private_cloud" | "on_premise" • target_clean_core_level (optional): "A" or "B" — receive a compliance verdict against this target
RETURNS (JSON with): • found: boolean • objectType, objectName: Actual identity (TADIR identity for legacy records) • tadirObject, tadirObjName: Original TADIR container identity when available • state, cleanCoreLevel, cleanCoreLevelLabel • applicationComponent, softwareComponent • successor: successor classification and recommended replacement objects • successorObjects: full details of successor objects (if available in the dataset) • complianceStatus (if target_clean_core_level given): "compliant" | "non_compliant"
Inputs: object_name (required), object_type (required), system_type, target_clean_core_level.
sap_search_objectsA
SEARCH SAP RELEASED OBJECTS: sap_search_objects(query="CL_ABAP_REGEX")
Search SAP released objects from the official SAP API Release State repository (SAP/abap-atc-cr-cv-s4hc).
Use this tool when you need to: • Find which SAP objects (classes, interfaces, tables, CDS views, function modules, BAdIs, etc.) are available and released for a given topic or application area • Discover released APIs in a specific application component (e.g., MM-PUR, FI-GL, SD-SLS) • Browse what objects exist in a system type (S/4HANA Cloud Public, BTP ABAP, Private Cloud) • Filter by Clean Core compliance level: A=Released APIs only, B=includes Classic APIs, C=includes internal/stable, D=all objects • Find alternative released objects when looking for functionality in a specific domain
Do NOT use this for documentation content, code examples, or general SAP help — use the search tool for those. Use this specifically for API release status and clean core compliance discovery.
PARAMETERS: • query (optional): Object name or keyword to search (e.g. "CL_ABAP_REGEX", "purchase order", "MM") • system_type (optional, default: "public_cloud"): "public_cloud" | "btp" | "private_cloud" | "on_premise" • clean_core_level (optional, default: "A"): "A" | "B" | "C" | "D" — cumulative: B includes A+B, C includes A+B+C • object_type (optional): Actual or TADIR type, e.g. "FUNC", "BADI_DEF", "CDS_STOB", "CLAS", "DDLS", "FUGR" • app_component (optional): Application component prefix, e.g. "MM-PUR", "FI-GL" • state (optional): "released" | "deprecated" | "classicAPI" | "stable" | "notToBeReleased" | "noAPI" • limit (optional, default: 25, max: 100): Number of results per page • offset (optional, default: 0): Pagination offset
RETURNS (JSON with): • objects: Array of SAP objects containing:
objectType, objectName: Actual identity (TADIR identity for legacy records)
tadirObject, tadirObjName: Original TADIR container when available; also searchable
state, cleanCoreLevel, applicationComponent, softwareComponent • total: Total matching count • hasMore: Whether more results exist • nextOffset: Offset to use for next page
[PRE-LOADED CONTEXT] Context loading — data will be available on first use.
Inputs: limit, query, state, offset, +4 more.
searchA
SEARCH SAP DOCUMENTATION: search(query="search terms")
FUNCTION NAME: search
Unified search for SAP development documentation, including UI5, CAP, BTP services, Cloud SDK, AI, ABAP, and RAP. It searches across curated OFFLINE sources (fast, deterministic) and can also include ONLINE sources (best-effort, 10s timeout per source) when enabled.
Use this to discover the best document IDs, then call fetch(id=...) to retrieve full content.
LANGUAGE: Query in ENGLISH — the corpus and ranking are primarily English; non-English queries return weaker results.
SOURCES OVERVIEW
OFFLINE sources (local FTS index; always searched unless filtered via sources):
Reference & guidance (not sample-heavy):
• abap-docs-standard (offline): Official ABAP Keyword Documentation for on‑premise systems (full syntax). Best for statement syntax + semantics.
• abap-docs-cloud (offline): Official ABAP Keyword Documentation for ABAP Cloud/BTP (restricted syntax). Best for Steampunk/BTP constraints.
• sap-styleguides (offline): SAP Clean ABAP Style Guide + best practices (includes translations; non‑English duplicates are filtered).
• dsag-abap-leitfaden (offline): DSAG ABAP Leitfaden (German) with ABAP development guidelines and best practices.
• btp-cloud-platform (offline): SAP Business Technology Platform documentation - concepts, getting started, development, extensions, administration, security.
• sap-artificial-intelligence (offline): SAP AI Core and SAP AI Launchpad documentation.
Additional SAP Docs sources (use these IDs with the sources filter): • btp-connectivity: Destinations, Cloud Connector, HTTP/RFC, and principal propagation. • cloud-sdk-python, cloud-sdk-ai-python: Python BTP and AI SDK reference and examples. • odata-vocabularies: SAP annotation terms and types for Fiori elements, CAP, and RAP. • btp-cloud-identity-services, btp-cloud-identity-integration: IAS/IPS, trust, and provisioning. • btp-integration-suite, btp-event-mesh: Integration flows, adapters, scripting, API Management, and events. • btp-job-scheduling-service, btp-cloud-logging: Scheduled jobs and observability. • btp-business-application-studio: Dev spaces, development, and troubleshooting. • btp-continuous-integration-and-delivery, btp-cloud-transport-management: Pipelines and transports. • sap-tutorials-ai, sap-tutorials-hana, sap-tutorials-integration: Curated official tutorials with prerequisites, code, and published source links. Use these for worked examples; use the SDK/product sources for reference details.
Sample-heavy OFFLINE sources (controlled by includeSamples; great for implementation, can dominate broad queries):
• abap-cheat-sheets (offline, samples): Many practical ABAP/RAP snippets; quick “how-to” reference.
• abap-fiori-showcase (offline, samples): Annotation-driven RAP + OData V4 + Fiori Elements feature showcase.
• abap-platform-rap-opensap (offline, samples): openSAP “Building Apps with RAP” course samples (ABAP/CDS).
• cloud-abap-rap (offline, samples): ABAP Cloud + RAP example projects (ABAP/CDS).
• abap-platform-reuse-services (offline, samples): RAP reuse services examples (number ranges, change documents, mail, Adobe Forms, ...).
OPTIONAL ONLINE SOURCES (when includeOnline=true): • sap-help (online): SAP Help Portal product documentation (official, broad scope). • sap-community (online): SAP Community blogs + Q&A + troubleshooting (practical, quality varies). • software-heroes (online): Software Heroes ABAP/RAP articles & tutorials (searched in EN+DE, deduplicated by URL; feed search is disabled).
NOTE ABOUT abapFlavor:
• OFFLINE: filters the official ABAP Keyword Documentation libraries (abap-docs-standard vs abap-docs-cloud); other offline sources are kept.
• ONLINE: when set EXPLICITLY to "standard"/"cloud", it ALSO scopes the SAP Help leg to the matching ABAP product (standard → ABAP Platform docs; cloud → ABAP environment docs), removing cross-product noise on conceptual ABAP queries. "auto" leaves SAP Help unscoped.
• IMPORTANT — "standard"/"cloud" is a QUERY-DOMAIN signal ("this is an ABAP-LANGUAGE question"), NOT a system flag. Forcing it on a non-ABAP-language query scopes SAP Help to ABAP-language docs and buries the relevant content. Route by DOMAIN:
ABAP language/RAP/CDS → "standard" or "cloud".
FUNCTIONAL / configuration (Asset Accounting, Controlling, EWM ) → leave abapFlavor "auto" and pass the
productparam (e.g. "SAP_S4HANA_ON-PREMISE").CAP / UI5 / Fiori → leave "auto". The OFFLINE corpus is the authoritative source for these; note the online SAP Help leg is NOT scoped for them (no abapFlavor/product fit yet), so it may still contribute some off-topic or low-value SAP Help hits.
PARAMETERS: • query (required): Search terms. Be specific and include the product and technical terminology. • k (optional, default=50): Number of results to return. • includeOnline (optional, default=true): Keep this ON for best answers. Only set to false if online search is blocked/slow/unreliable in your environment OR you explicitly want OFFLINE-only sources. • includeSamples (optional, default=true): Includes sample-heavy offline sources (repos, showcases, cheat sheets). If results are flooded by examples and you want more conceptual/reference docs, set to false. Turn it on when you want implementation/code. • abapFlavor (optional, default="auto"): Filter by ABAP flavor:
"standard": Only Standard ABAP (on-premise, full syntax)
"cloud": Only ABAP Cloud (BTP, restricted syntax)
"auto": Detect from query (add "cloud" or "btp" for cloud, otherwise standard) • sources (optional): Restrict OFFLINE search to specific source IDs (does not disable online sources; use includeOnline for that). Example: ["abap-docs-standard", "sap-styleguides"]
RETURNS (JSON array of results, each containing): • id: Document identifier (use with fetch to get full content) • title: Document title • url: Link to documentation • snippet: Text excerpt from document • score: Relevance score (RRF-fused from multiple sources) • library_id: Source library identifier • metadata.source: Source ID (abap-docs-standard, sap-help, etc.) • metadata.sourceKind: "offline" | "sap_help" | "sap_community" | "software_heroes"
TYPICAL WORKFLOW:
search(query="your ABAP/RAP question")
fetch(id="result_id_from_step_1") to get full content
QUERY TIPS: • Be specific: "RAP behavior definition" not just "RAP" • Include ABAP keywords: "SELECT FOR ALL ENTRIES", "LOOP AT GROUP BY" • For ABAP Cloud: Add "cloud" or "btp" to query, or set abapFlavor="cloud" • For OFFLINE-only: Set includeOnline=false (use this mainly when online search does not work for you) • If results are too code-heavy: Set includeSamples=false • For implementation examples: Keep includeSamples=true
ESCALATION: If search returns no useful results (especially for specific error messages, niche runtime issues, or workaround patterns), try the dedicated sap_community_search tool which searches SAP Community blogs and Q&A directly and returns full post content for the top matches.
Inputs: query (required), k, product, sources, +4 more. Returns: results
ui5_version_diffA
UI5 VERSION DIFF: ui5_version_diff(library="SAPUI5", from_version="1.108.0", to_version="1.130.0")
FUNCTION NAME: ui5_version_diff
List the new features, fixes, deprecations, and SAPUI5 What's New entries that landed between two UI5 releases, or inspect one exact release. Use this when planning or executing an upgrade so you know which workarounds can be dropped, which APIs are now deprecated, and which fixes might replace local patches.
DATA SOURCE: local all-changes bundle at UI5_LIB_DIFF_BUNDLE_PATH (default: dist/data/ui5-lib-diff/all-changes.json). The runtime tool is local-only and does not fetch hosted URLs. Refresh the bundle during setup with npm run download:ui5-lib-diff. If a requested release is newer than the local bundle, the response includes meta.notes and meta.generatedAt so the caller can tell setup data is stale.
RANGE SEMANTICS: returns changes that landed AFTER from_version up to and including to_version (i.e. what you gain by upgrading from from_version to to_version). If a requested patch version is unavailable, the tool uses the nearest lower available version with the same major.minor, matching the web app. For one release, pass version instead of a range.
PARAMETERS: • library (optional, default "SAPUI5"): "SAPUI5" or "OpenUI5". • version (optional): exact release to inspect, e.g. "1.130.0". Can also be supplied as the only from_version or only to_version. • from_version + to_version (optional range pair): version you are upgrading FROM/TO, e.g. "1.108.0" -> "1.130.0". • types (optional): subset of ["FEATURE", "FIX", "DEPRECATED"]. Defaults to all three. • ui5_library (optional): case-insensitive substring filter on the UI5 library, e.g. "sap.m", "sap.ui.core", "sap.fe". • query (optional): case-insensitive substring filter on change text and What's New title/description, e.g. "Table", "ObjectStatus", "ManagedObject".
RETURNS JSON with: • mode, library, from_version, to_version, version? • versionsInRange: versions covered by the range (newest first) • counts: { FEATURE, FIX, DEPRECATED } totals across the full range • totalEntries: sum of counts • entries: [{ version, date, library, type, text, commit_url? }] • whatsNewEntries, whatsNewTotalEntries: SAPUI5 What's New entries for the same version/range • meta: { availableVersions, minVersion, maxVersion, generatedAt, sourceDataPath, cacheSource, requested, resolved, notes? } — "notes" is a list of soft signals (version resolution, stale-bundle hints, out-of-range hints, coercion warnings) • sourceUrl: browser URL for human inspection of the same range
USE CASES: • Upgrade planning: "What deprecations should I clean up before moving 1.108 -> 1.130?" • Workaround cleanup: filter by query="" to find the fix that replaces a local patch • Library-scoped review: ui5_library="sap.m" to focus on a single library • Combine with @ui5/mcp-server tools (run_ui5_linter, run_manifest_validation, get_api_reference) for code-level follow-up
EXAMPLES: ui5_version_diff(from_version="1.108.0", to_version="1.130.0", types=["DEPRECATED"]) ui5_version_diff(version="1.130.0", ui5_library="sap.m") ui5_version_diff(library="OpenUI5", from_version="1.120.0", to_version="1.130.0", ui5_library="sap.m") ui5_version_diff(from_version="1.96.0", to_version="1.120.0", query="ObjectStatus")
Inputs: query, types, library, version, +3 more. Returns: meta, mode, counts, entries, +9 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools target clearly distinct resources (BTP service catalog, ABAP released objects, UI5 release diffs, ABAP feature matrix, docs), and the descriptions explicitly resolve the trickiest overlap between `search` and `sap_community_search` ('use this dedicated tool only when...'). The `sap_discovery_center_search`/`sap_discovery_center_service` and `sap_search_objects`/`sap_get_object_details` search-vs-detail pairs are clearly delineated, leaving only mild potential confusion between the general `search` and the specialized search tools.
All names use snake_case, which is consistent, but the prefixing and verb placement are mixed: some tools carry a `sap_` domain prefix (`sap_search_objects`, `sap_get_object_details`), others carry a sub-domain prefix (`ui5_version_diff`, `abap_feature_matrix`), and the core `search`/`fetch` have no prefix at all. The conventions remain readable but there is no single predictable pattern.
Nine tools is well within the ideal 3-15 range and each earns its place: coherent search+detail pairs for BTP services and ABAP objects, a docs search+fetch workflow, plus two self-contained reference tools (UI5 diff, ABAP feature matrix). No obvious redundancy or filler.
Core workflows are complete: docs use a search→fetch pattern, and both the BTP service catalog and ABAP object lookup have matching search + detail tools. Minor gaps exist (the standalone `ui5_version_diff` and `abap_feature_matrix` have no complementary tools, and there's no source/listing/browse operation), but agents can work around these.
Maintenance
Related MCP Connectors
Get up-to-date, version-specific documentation and code examples from official sources directly in…
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Search and read Apple developer documentation, HIG, and WWDC transcripts as Markdown.
Provides tools for searching Google Workspace documentation and much more.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides unified ABAP and RAP documentation search, document retrieval, and ABAP feature matrix lookups. It also enables local ABAP linting to streamline development and documentation workflows via the Model Context Protocol.-
- FlicenseNot gradedqualityDmaintenanceProvides programmatic access to SAP Fiori Jetpack Compose UI SDK documentation, including API references and feature guides. It enables users to list, search, and retrieve content from over 6,000 documentation files to support Android development.-
- AlicenseNot gradedqualityBmaintenanceProvides ABAP developers with unified search, document retrieval, feature matrix lookup, SAP Community search, and local ABAP linting capabilities via MCP.99Apache 2.0
- AlicenseAqualityDmaintenanceEnables searching and browsing ABAP keyword documentation from SAP's official help site, including keyword lookup, glossary terms, and topic exploration.6MIT