{"ref":"artifact:abap-ai-mcp2","page":"/artifacts/abap-ai-mcp2","json":"/artifacts/abap-ai-mcp2.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap-ai-mcp2","name":"abap-ai/mcp2","artifact_type":"mcp-server","ecosystem":"abap","domain":"ai-and-agents","secondary_domains":["protocols-and-apis"],"origin_ring":"independent","use_as":"dependency","description":{"one_line":"A 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.","short":"Stateless ABAP MCP server SDK for the 2026-07-28 protocol draft","what_it_solves":"A server implementation only, written in ABAP and installed with abapGit into a 7.5x system at the 7.52 language level or higher: you inherit from `zcl_mcp2_tool_server_base`, declare a tool catalog in `define_tools( )`, implement `call_tool( )`, add a row to the `zmcp2_servers` table, and the server answers at `POST /zmcp2/{AREA}/{SERVER}` under an ICF node whose own logon procedure is the only authentication. One `zif_mcp2_server` contract serves both protocol eras: the legacy `2025-03-26` to `2025-11-25` versions negotiated at `initialize`, and the `2026-07-28` draft negotiated per request through `_meta`, with the base class answering `client_supports_elicitation`, `client_supports_sampling` and `client_supports_tasks` for whichever client is in front of it. Tool arguments are validated before the handler runs, against schemas built with `zcl_mcp2_schema_builder` or derived from a DDIC structure. Beside tools it implements static resources and readable resource templates, prompts, argument completions, round-trips for elicitation and sampling, and a tasks extension whose rows live in `zmcp2_tasks` for background work. The package vendors [ajson](artifact:sbcgua-ajson) as `zmcp2_ajson` and keeps ICF and DDIC calls behind `zif_mcp2_http_*` and `zif_mcp2_ddic`, each with a 7.5x implementation; the distinct `mcp2` object prefix lets the session-based [abap-ai/mcp](artifact:abap-ai-mcp) stay installed in the same system, its core restarted here rather than patched.","when_not_to_use":"Stateless by design: with no `Mcp-Session-Id` and no SSE, notifications of any kind, `resources/subscribe` and stream-close cancellation are excluded, which the author states are protocol-level impossibilities on stateless ICF rather than gaps to be filled later within this design. ABAP Cloud is not supported and not planned, the stated reason being SAP pushing its own MCP strategy and features in BTP; the first iteration targets 7.5x classic, with 7.02 to 7.4x served from a separate generated downport repository. No authorization object and no default auth check are delivered, so a user who may call the ICF node may call every `AREA`/`SERVER` registered under it until `check_authorization` is redefined.","to_build_on_it":"A cloud port would start in `src/platform/`: `zif_mcp2_http_request`, `zif_mcp2_http_response` and `zif_mcp2_ddic` each have one 7.5x implementation behind them, and the maintainer puts the cost of cloud support at new implementations plus a factory change with no core change. Behaviour is checked from outside by a Jest suite in the sibling `mcp2_tests` repository run against a live ABAP system, while abaplint and the transpiler cover a subset locally."},"links":{"repo":"https://github.com/abap-ai/mcp2","docs":"https://github.com/abap-ai/mcp2/blob/main/docs/GettingStarted.md"},"maintainers":["actor:abap-ai"],"type_properties":{"transports":{"value":["http"],"sources":[{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/GettingStarted.md","title":"mcp2: docs/GettingStarted.md","checked":"2026-10-21","quote":"The server is now live at `POST /zmcp2/DEMO/GREETER`."}]}},"flavors":[{"key":"standard-abap","source":{"url":"https://github.com/abap-ai/mcp2","title":"abap-ai/mcp2 — README, Target / tooling","checked":"2026-10-21","quote":"ABAP **7.5x** classic (first iteration)."}}],"provides":[{"capability":"capability:mcp-servers","what_it_does":"Lets an ABAP system be the MCP server rather than the thing read from outside: the tool catalog, resources, prompts, completions, elicitation and the tasks extension are ABAP classes behind one stateless ICF endpoint, served to both the legacy protocol versions and the 2026-07-28 draft.","sources":[{"url":"https://github.com/abap-ai/mcp2","title":"abap-ai/mcp2 — README","checked":"2026-10-21","quote":"This is a **server** implementation only."},{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/Architecture.md","title":"mcp2: docs/Architecture.md","checked":"2026-10-21","quote":"`zif_mcp2_server` / `zcl_mcp2_server_base` — the stateless server contract SDK users implement."},{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/GettingStarted.md","title":"mcp2: docs/GettingStarted.md","checked":"2026-10-21","quote":"The server is now live at `POST /zmcp2/DEMO/GREETER`."}]}],"requires":[{"ref":"artifact:abapgit-abapgit","requirement":"required","basis":"binding","role":"installation","for":"the way the SDK objects get into the target ABAP system; the repository is pulled into a package with abapGit, online or offline","sources":[{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/GettingStarted.md","title":"mcp2: docs/GettingStarted.md, Install","checked":"2026-10-21","quote":"Pull this repository into your system with abapGit (online or offline)."},{"url":"https://github.com/abap-ai/mcp2","title":"abap-ai/mcp2 — README, Target / tooling","checked":"2026-10-21","quote":"Distributed via [abapGit](https://github.com/abapGit/abapGit)."}]}],"interfaces":[{"key":"icf-endpoint","kind":"api","protocol":"http","direction":"in","for":"An ICF service node with `ZCL_MCP2_HTTP_HANDLER` as handler class; the path below it selects the registered server, and the node's logon procedure authenticates before the SDK runs.","sources":[{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/GettingStarted.md","title":"mcp2: docs/GettingStarted.md, Create the ICF service","checked":"2026-10-21","quote":"The server is now live at `POST /zmcp2/DEMO/GREETER`."},{"url":"https://raw.githubusercontent.com/abap-ai/mcp2/main/docs/GettingStarted.md","title":"mcp2: docs/GettingStarted.md, Create the ICF service","checked":"2026-10-21","quote":"Authentication is plain ICF: whatever logon procedure the service node is configured with"}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-21"},"drafted_with_ai":true,"contributors":["actor:wommel0"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"1 contributor, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-07, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"SAP_BASIS 752 and up, in its abaplint config: not 750 (SAP Business Suite 7 on SAP NetWeaver 7.50, maintained to 2027-12)"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"poor","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"docs/ with 19 pages, docs site, README 8 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":14,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":14,"forks":3,"open_issues":0,"archived":false,"pushed_at":"2026-07-26","license_spdx":"MIT","org_owned":true,"default_branch":"main","created_at":"2026-07-19T19:44:39Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":8087,"docs_files":19,"changelog":true,"license_file":true,"dts_files":0,"first_commit":"2026-07-19","last_commit":"2026-07-26","commits":8,"contributors":1,"readme_path":"README.md","readme_sha":"0c265bd959107e1675424447eae77a28f9a1ecce","repo_read":"2026-10-26","abap_syntax":{"repo":"abap-ai/mcp2","file":"abaplint.json","url":"https://github.com/abap-ai/mcp2/blob/HEAD/abaplint.json","version":"v752","floor":"752","checked":"2026-10-26"}},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"repo","path":"CHANGELOG.md","ref":"main","url":"https://github.com/abap-ai/mcp2/blob/main/CHANGELOG.md"},"format":"headings","releases":[{"version":"1.0.0","date":"2026-07-26","date_source":"heading","heading":"1.0.0 - 2026-07-26","url":"https://github.com/abap-ai/mcp2/blob/main/CHANGELOG.md#100---2026-07-26","sections":[{"kind":"other","heading":"Protocol","items":3},{"kind":"fix","heading":"Fixed (downport only, 7.02 – 7.4x)","items":4}],"hash":"fd4d2e1f6a41beee"},{"version":"0.1.0","date":"2026-07-19","date_source":"heading","heading":"0.1.0 — first beta - 2026-07-19","url":"https://github.com/abap-ai/mcp2/blob/main/CHANGELOG.md#010--first-beta---2026-07-19","sections":[{"kind":"other","heading":"Protocol","items":5},{"kind":"other","heading":"Authoring","items":7},{"kind":"other","heading":"Structure","items":4},{"kind":"security","heading":"Security","items":1},{"kind":"other","heading":"Not implemented, by design","items":0},{"kind":"other","heading":"Known deviations","items":3},{"kind":"other","heading":"Differences from the v1 SDK","items":0}],"hash":"d0fa2eaadcc2614e"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:abap-ai","name":"ABAP-AI","json":"/actors/abap-ai.json"}],"contributors":[{"ref":"actor:wommel0","name":"Bastian","json":"/actors/wommel0.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}