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

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 ajson, is downported to 7.02 with abaplint's help, and installs through abapGit.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Serve your application over MCPABAPServe your application over MCPcapabilityExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through [service integration](capability:service-integration), connecting its exposed contract with [agent access to your systems](capability:agent-systems-access). Development assistance belongs to [agent access to your code](capability:agent-code-access).
Requires
abapGitabapGitartifactabapGit is the stated mechanism to import the SDK objects into the target ABAP system

Who is behind it

ABAP-AIABAP-AIOrganisationMaintains this
In the atlas: maintains 3
@abap-ai
maintainerGARCIA GuillaumePersonContributes to this
In the atlas: contributes to 2
@guillaumegarcia13
Lars HvamPersonContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1
@larshp
BastianPersonContributes to this
In the atlas: contributes to 3
@wommel0
3 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

Connections2

Inside the SAP systemBy its type: an MCP server is called by an MCP clientcallsdocumentedrequiresYour MCP client, actorYour MCP clientabap-ai/mcp, moduleabap-ai/mcpabapGit, moduleabapGit
SAPnot SAP's, or the project's ownstated in the documentdocumented only

README

quoted from abap-ai/mcp under MIT, read
abap-ai/mcp/README.mdOn GitHub

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

MIT, read

History

Latest

v1.0dated in the atlas

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.

  1. v0.2

    Features 1

    Notes
    • Support for 2025-06-18 protocol version
  2. v0.1

    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
  3. v0.0.3

    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
  4. v0.0.1

    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
Serve your application over MCP
  1. abap-ai/mcp2Stateless ABAP MCP server SDK for the 2026-07-28 protocol draftfrom ABAP
  2. abap-agent-runtimeABAP-native MCP endpoint that drives opted-in abap2UI5 appsfrom ABAP
  3. API ManagementAPI proxies with security and traffic policies and Developer Hubfrom BTP/BAIP
  4. com.sap.cds:cds-adapter-mcpMCP adapter turning a CAP Java service into an MCP serverfrom CAP
  5. @cap-js/mcpExposes CAP services as MCP servers for AI agentsfrom CAP
  6. @gavdi/cap-mcpGenerates an MCP server from annotated CDS entities and actionsfrom CAP
  7. btp-cf-mcpMCP server for SAP BTP and Cloud Foundry acting as the logged-in userfrom BTP/BAIP
  8. MarkWuRY168/SAP_MCPMCP server publishing SAP functions as tools from config tablesfrom ABAP
  9. @neoimpulse/cap-js-mcpMCP server inside a CAP application with model and query toolsfrom CAP
  10. @odatano/core-mcpMCP server exposing the ODATANO Cardano-to-OData bridge as toolsfrom CAP
  11. @odatano/nightgate-mcpMCP server exposing the NIGHTGATE Midnight attestation layerfrom CAP
  12. @shahid.la/cds-db-nlquery-mcpMCP server answering plain-English questions against a CDS schemafrom CAP
  13. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  14. cap-mcp-pluginMCP server generated from a CDS model, forked from @gavdi/cap-mcpfrom CAP

Details

Sources3
sap-ai-mcp-serversdiscovered herechecked
github.com/abap-ai/mcptree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viasap-ai-mcp-servers
first seen in the atlas
ecosystem and domainabap, ai-and-agents
abaplint
issues under its own abaplint configuration0
lines15,504
statements10,048
objects91
files123
analysed, main
abaplint version2.120.84
Flavors1
Standard ABAP
“SAP NetWeaver 7.52 or higher for the main branch” — Model Context Protocol Server - ABAP SDKchecked
Contributors3

From the repository’s contributor list, .

History in the atlas2
  1. 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.
  2. First seen.
For your agent