abap-ai/mcp
An MCP server SDK written in ABAP to run natively on the ABAP stack, so an ABAP system can expose its own prompts, resources and tools to an agent from inside itself.
Every other entry on this capability reaches into a system from outside over ADT. This inverts it: the server runs in the system, in ABAP, and what it exposes is what you write. It implements prompts, resources, tools with optional output schemas, long-running tasks with client polling, completions for prompt and resource-template arguments, and DDIC-based schema generation with a JSON schema builder and validator. It builds on ajsonajsonA JSON parser and serialiser for ABAP that parses into a flexible, unstructured node tree rather than a fixed target structure, converting to one only when asked through to_abap.independent, abap, is downported to 7.02 with abaplintabaplintStatic analysis for ABAP that runs outside a system on serialised source in a repository, so ABAP checks run in a pull request and in CI before the code ever reaches a system.community org, abap's help, and installs through abapGit.
Facts
Where it sits
Who is behind it
In the atlas: maintains 3@abap-aimaintainerGARCIA GuillaumeContributes to this
In the atlas: contributes to 2@guillaumegarcia13Lars HvamContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1@larshpBastianContributes to this
In the atlas: contributes to 3@wommel03 contributors
Before choosing this
Conditions
PracticalFunctional boundary
Server side only, and deliberately: the author states there is no realistic way to support the SSE streaming a client needs, so there are no notifications, no listChanged, no subscribe and no logging. It is also frozen — protocol versions up to 2025-11-25 and no further, with everything after that in a separate V2 SDK, so starting here today is starting on a closed branch.
PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Serve your application over MCPAn MCP server exposes an SAP API, or 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
- inside the SAP system
- Authentication
- OAuth / OIDC
Connections
Exposing application data and operations to agents over MCP
Git client written in ABAP that runs inside the system
Download
Architecture
Download
README
quoted from abap-ai/mcp under MIT, readABAP Model Context Protocol Server SDK
Discord - for all ABAP-AI repos.
Overview
ABAP implementation of the Model Context Protocol, supporting up to version 2025-11-25.
Note that this is only a server implementation as I currently see no realistic way to support SSE streaming which is mandatory for the client.
Supported protocol versions: 2025-03-26, 2025-06-18, 2025-11-25
Important: This SDK version will only support up to 2025-11-25 and is frozen except for error corrections. 2026-07-28 and further are implemented in the new ABAP MCP SDK V2. The vast number of breaking changes and different approaches made it challenging to properly support all versions. As especially the complex session support is gone I decided to make a clear cut and create a V2 SDK. The new SDK will support on best effort basis old MCP versions down to 2025-03-26 as long as no sessions are required.
Documentation
See Overview in docs folder.
Used ABAP OpenSource projects
Special thanks to:
- ajson integrated as zmcp_ajson
- abaplint for review and more important 7.02 downport
- abapGit for source code control
Find more awesome projects at dotabap.
Features & Limitations
Currently implemented:
- Prompts
- Resources
- Tools (incl. optional output schemas and task-augmented execution)
- Tasks - long-running background work with client polling
- Completions - autocomplete for prompt and resource-template arguments
- DDIC-based schema generation plus a JSON schema builder and validator
No SSE support --> no notifications and therefore no support of listChanged, subscribe and logging.\
Not implemented:
- Sampling - considered for the future, open an issue if you have a use case that would benefit from it
- Elicitation - without SSE I see no proper way to implement this
- Roots - likely irrelevant for ABAP
- Further notifications not relevant without SSE: Cancellation, Progress, Logging
Authorization
Implement the standard Authorization in ABAP via custom code is not feasible, we have to rely on ABAP features.
An overview of likely options is outlined in Authentication Documentation.
Authentication
OAuth is suggested but outside of newer S/4HANA releases challenging, for options see Authentication. Further suggestions are welcome.
Roadmap
See currently open issues for the next planned steps. Longer term I intend to add features to create modular MCP servers based on reusable implementations.
FAQ
See FAQ.
Contributing
Feel free to:
- Open issues for bug reports
- Use Discord for discussions
- Suggest improvements
- Pull requests are welcome but ensure they are tested and follow the overall style, if in doubt open an issue first
GenAI Notice
Part of the coding was generated using AI, mostly with Sonnet 3.7/4 and GitHub Copilot. Detailed documentation is largely AI generated - only high-level reviewed.
History
Breaking 4, Features 7, Changed 4
Notes
- Support for 2025-11-25 protocol version
- Tasks: background task lifecycle with tasks/list, tasks/get, tasks/result, and tasks/cancel
- ZCL_MCP_TASKS persists tasks in new ZMCP_TASKS table
- ZIF_MCP_TASK_EXECUTOR connects tools to background jobs/RFCs
- ZMCP_CLEAR_MCP_TASKS deletes expired task records
- Completion: completion/complete endpoint for prompt and resource-template argument autocomplete
- DDIC Schema Builder: ZCL_MCP_SCHEMA_BUILDER_DDIC auto-generates JSON schemas from DDIC structures
- Tools: optional output_schema declaration and task_support execution mode on tool definitions
- Prompts, resources, tools, and server info now support 2025-11-25 metadata additions such as titles, annotations, and icons
- New demos: ZCL_MCP_DEMO_SERVER_DDIC and ZMCP_DEMO_BG_TASK
! BREAKING (MCP-managed sessions only): MCP sessions are now bound to the creating user (new CREATED_BY column in ZMCP_SESSIONS). This only affects servers using ZCL_MCP_SESSION-based session management; stateless and ICF-session servers are unaffected. Existing session records will have an empty CREATED_BY after table conversion and will be rejected. Run ZMCP_CLEAR_MCP_SESSIONS before activating the new code to prevent unexpected session errors for connected clients.
! BREAKING: ZCL_MCP_RESP_INITIALIZE capabilities structure changed. The PROMPTS, RESOURCES, and TOOLS fields in the CAPABILITIES type changed from ABAP_BOOL to nested structs (PROMPTS_CAPABILITY, RESOURCES_CAPABILITY, TOOLS_CAPABILITY). Replace direct boolean assignments such as CAPABILITIES-PROMPTS = ABAP_TRUE with CAPABILITIES-PROMPTS-ENABLED = ABAP_TRUE.
! BREAKING: Local ANNOTATIONS types removed from response classes. ZCL_MCP_RESP_CALL_TOOL=>ANNOTATIONS, ZCL_MCP_RESP_GET_PROMPT=>ANNOTATIONS, ZCL_MCP_RESP_LIST_RESOURCES=>ANNOTATIONS, and ZCL_MCP_RESP_LIST_RES_TMPL=>ANNOTATIONS have been removed. Replace any references with ZIF_MCP_TYPES=>ANNOTATIONS (structure is identical).
! BREAKING: Batch JSON-RPC API removed from ZCL_MCP_JSONRPC. PARSE_BATCH_REQUEST, SERIALIZE_BATCH_RESPONSE, and the REQUESTS/RESPONSES table types have been removed. Batch processing was never part of the MCP specification and is not supported by clients.
Removed 7
Notes
- Extended Schema Builder with min/max, etc.
- Added Schema Validator to simplify validation based on the Schema Builder Schema
- Added a report to cleanup MCP sessions
- Added demo configuration as tabu entries
- Removed tests and moved them into their own repo mcp_tests
- Changed the origins table to avoid the key length warning - table conversion might be required
- Moved DDIC content into it's own package
Removed 2
Notes
- Added OAuth documentation
- Added an OAuth handler for pre-S/4HANA OAuth support using the "old" approach enabling e.g. OAuth SAML Bearer Assertion flows
Removed 3
Notes
- Initial version - early release, bugs and breaking changes possible
- Model Context Protocol Server SDK supporting 2025-03-26 Protocol:
- Non-Streaming only (no SSE upgrade of connections)
- Authorization only based on ABAP capabilities --> spec deviation
- Stateless and either custom or ICF based sessions possible
- Tools, Prompts, Resources
- Roadmap: See open issues for the next planned topics
Others providing
Compare all 15 on the Serve your application over MCP page →- abap-ai/mcp2abap-ai/mcp2A stateless rewrite of the ABAP MCP server SDK: one ABAP server contract answering both the 2026-07-28 protocol draft and the legacy 2025 versions, with no sessions and no SSE.independent, abapStateless ABAP MCP server SDK for the 2026-07-28 protocol draftfrom ABAP
- abap-agent-runtimeabap-agent-runtimeAn ABAP-native MCP endpoint inside the SAP system: an agent reads the screen of an opted-in abap2UI5 app as structured data, fills its fields and fires its events as the logged-on SAP user.community org, abapABAP-native MCP endpoint that drives opted-in abap2UI5 appsfrom ABAP
- API ManagementAPI ManagementAPI proxies in front of backend services, with security and traffic management policies attached to them, and Developer Hub where consumers subscribe.sap official, btpAPI proxies with security and traffic policies and Developer Hubfrom BTP/BAIP
- com.sap.cds:cds-adapter-mcpcom.sap.cds:cds-adapter-mcpThe MCP protocol adapter for CAP Java, serving an @mcp-annotated Application Service as an MCP server with three generated tools, describe, query and call, and data changes only through unbound actions.sap official, capMCP adapter turning a CAP Java service into an MCP serverfrom CAP
- @cap-js/mcp@cap-js/mcpA CAP plugin that serves an @mcp-annotated service over MCP with three generated tools, describe, query and call_action, and writes its endpoint into the local agent's configuration in development.sap official, capExposes CAP services as MCP servers for AI agentsfrom CAP
- @gavdi/cap-mcp@gavdi/cap-mcpGenerates an MCP server from the CDS model — annotated entities become resources and annotated actions become tools, so an agent reaches the service without a second server being written.independent, capGenerates an MCP server from annotated CDS entities and actionsfrom CAP
- btp-cf-mcpbtp-cf-mcpAn MCP server over an SAP BTP account and its Cloud Foundry runtime that acts as the person who logged in, so their own global-account and space roles decide what an agent can see.independent, btpMCP server for SAP BTP and Cloud Foundry acting as the logged-in userfrom BTP/BAIP
- MarkWuRY168/SAP_MCPMarkWuRY168/SAP_MCPPublishes SAP system functions as MCP tools from configuration tables held inside the SAP system, so adding a tool is a configuration change rather than a code change.independent, abapMCP server publishing SAP functions as tools from config tablesfrom ABAP
- @neoimpulse/cap-js-mcp@neoimpulse/cap-js-mcpAn MCP server inside a CAP application, with default tools that read the running model and query entities, plus configurable application tools, prompts and resources.independent, capMCP server inside a CAP application with model and query toolsfrom CAP
- @odatano/core-mcp@odatano/core-mcpMCP server exposing ODATANO — the Cardano-to-OData bridge built on CAP — to an agent, so the chain is reachable as tools rather than as a REST client.independent, capMCP server exposing the ODATANO Cardano-to-OData bridge as toolsfrom CAP
- @odatano/nightgate-mcp@odatano/nightgate-mcpMCP server exposing NIGHTGATE, the Midnight blockchain attestation layer, as agent tools — the companion to the CAP indexer plugin of the same name.independent, capMCP server exposing the NIGHTGATE Midnight attestation layerfrom CAP
- @shahid.la/cds-db-nlquery-mcp@shahid.la/cds-db-nlquery-mcpMCP server that answers plain-English questions against the entities in db/schema.cds — it discovers the schema, generates CQN-backed SQL with real joins, and returns rows.independent, capMCP server answering plain-English questions against a CDS schemafrom CAP
- 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
- cap-mcp-plugincap-mcp-pluginGenerates an MCP server from a CDS model: annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates. A fork of @gavdi/cap-mcp that adds an OAuth proxy, IAS client registration and draft-lifecycle tools.independent, capMCP server generated from a CDS model, forked from @gavdi/cap-mcpfrom CAP
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
abaplint
Flavors
“SAP NetWeaver 7.52 or higher for the main branch” — Model Context Protocol Server - ABAP SDK
Contributors
History in the atlas
- 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:abap-ai-mcp- JSON
- /artifacts/abap-ai-mcp.json
- MCP
- Connecting an agent