{"ref":"capability:mcp-servers","page":"/capabilities/mcp-servers","json":"/capabilities/mcp-servers.json","generated":"2026-10-27","drafted_with_ai":true,"entity":{"id":"mcp-servers","name":"Serve your application over MCP","domain":"protocols-and-apis","ecosystems":["cap","btp","abap"],"universal":false,"description":"Exposing 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).","short":"Exposing application data and operations to agents over MCP","core_coverage":{"state":"core-and-community","what_core_does":"SAP publishes [@cap-js/mcp](artifact:cap-js-mcp) for [Node.js](external:nodejs) and [com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) for Java as optional application adapters. An `@mcp` service exposes model descriptions, queries and unbound actions/functions through generated tools.","where_it_stops":"Generated tools are not stable APIs and may change; data changes require unbound actions, and out-of-the-box XSUAA PKCE authorisation is not fully implemented. The adapter supplies no automatic rate limiting, agent-action audit logging, approval workflows or policy enforcement for [tool governance](capability:tool-governance), performs no prompt-injection input/output validation, and must not be used as a gateway or proxy for SAP Application APIs, including when a CAP application wraps those APIs.","sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"or the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to read data from the service.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"while any data changes need to be implemented via unbound actions for now.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"gavdilabs/cap-mcp-plugin — README","quote":"Expose CAP entities as MCP resources with OData v4 query capabilities","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"gavdilabs/cap-mcp-plugin — README","quote":"Expose CAP entities as tools (`query`, `get`, and optionally `create`, `update`) for LLM tool use while keeping resources intact","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"gavdilabs/cap-mcp-plugin — README","quote":"Define reusable prompt templates for AI interactions","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"sleibach/cap-mcp-plugin — README","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"sleibach/cap-mcp-plugin — README","quote":"`draft-activate` — publish the pending draft to the active row.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"sleibach/cap-mcp-plugin — README","quote":"When an entity has `@mcp.wrap.tools` **and** Fiori UI annotations, the plugin registers two `ui://` HTML resources","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"**MCP Resources**: File and data resource access (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — README","quote":"**MCP Prompts**: Template-based prompt system (extensible)","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The MCP adapter does not perform any input validation or output validation to prevent prompt injection attacks.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/","title":"Native AI — CAP","quote":"CAP provides intrinsic support for integrating native AI capabilities, including the use of MCP services, CAP-level Agents, and Vector Embeddings.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@odatano/core-mcp","title":"@odatano/core-mcp — package description","quote":"MCP server exposing ODATANO (Cardano OData bridge, SAP CAP) to AI agents: reads, unsigned tx builds, signing handoff, submit","checked":"2026-10-12"},{"url":"https://github.com/ODATANO/NIGHTGATE-MCP","title":"ODATANO/NIGHTGATE-MCP — README and repository description","quote":"MCP server that lets AI agents use NIGHTGATE, the Midnight blockchain attestation layer: anchor documents, prove zero-knowledge predicates over hidden fields, manage disclosure grants, verify everything against live contract state, and poll async jobs.","checked":"2026-10-12"},{"url":"https://github.com/shahidla/cds-db-nlquery-mcp","title":"shahidla/cds-db-nlquery-mcp — README and repository description","quote":"MCP server for natural language queries against **CDS db-layer entities** (`db/schema.cds`).","checked":"2026-10-12"}],"assessed_at":"2026-10-12","relationship":"narrow-by-design","community_adds":"Community implementations add model-derived entity resources and prompt templates, optional entity write wrappers, draft lifecycle operations and interactive UI resources. Other implementations expose application-specific blockchain operations or natural-language queries against CDS database entities; these capabilities vary by provider."},"history":[{"date":"2026-08-31","field":"core_coverage.state","from":"left-open-on-purpose","to":"core-and-community","reason":"States renamed to describe who is present rather than to interpret intent. left-open-on-purpose asserted a motive; core-and-community states a fact, with relationship carrying the intent separately."},{"date":"2026-09-07","field":"core_coverage","from":"TODO","to":"assessed","reason":"Assessed against the capire MCP adapter page and the June 2026 release notes. The boundary is unusually explicit for a beta feature: capire enumerates the governance it does not provide and forbids gateway use outright, which is what the community plugins here are answering."},{"date":"2026-09-09","field":"domain","from":"ai-and-agents","to":"protocols-and-apis","reason":"Filed under ai-and-agents, the domain acted as a magnet: anything agent-shaped landed here and the acronym did the rest. Its actual siblings are odata, graphql and openapi — serving your model over a protocol — and @cap-js/mcp's own what_it_solves says a service annotated with @mcp is served over MCP the same way @odata serves it over OData."},{"date":"2026-09-09","field":"description","from":"Exposing what an application already does to an AI agent through the Model Context Protocol, so the agent can discover and call it without bespoke glue. Two unrelated things get filed under this name and the package names do not help: serving your own service to an agent ([@cap-js/mcp](artifact:cap-js-mcp)), and running an MCP server that helps an agent write CAP code ([@cap-js/mcp-server](artifact:cap-js-mcp-server)). The first is a protocol adapter on your application; the second is a development tool, and neither substitutes for the other.","to":"Exposing what an application already does to an AI agent through the Model Context Protocol, so the agent can discover and call it without bespoke glue — the same job [OData](capability:odata) and [GraphQL](capability:graphql) do for other clients, over the protocol an agent speaks. A server that helps somebody *write* code is a different concern and lives in [agent access to your code](capability:agent-code-access): this one is a protocol adapter on your own running service, and the two do not substitute for each other.","reason":"The old text warned the reader that two unrelated things were filed here. A description that has to explain what its own capability contains is a bucket; the development-tool half moved to capability:agent-code-access and the warning is no longer needed."},{"date":"2026-09-09","field":"ecosystems","from":"cap","to":"cap, btp","reason":"An SAP-published MCP server entered from the sap-ai-mcp-servers catalogue answers this concern on the BTP door, and the door had no tile for it to sit under."},{"date":"2026-09-10","field":"ecosystems","from":"cap, btp","to":"cap, btp, abap","reason":"An MCP server SDK written in ABAP entered from the sap-ai-mcp-servers sweep. Everything else on the ABAP door reaches into a system from outside; this one is the system answering, which is what this capability has always been about."},{"date":"2026-09-10","field":"ecosystems","from":"cap, btp, abap","to":"cap, btp, abap, integration","reason":"A configuration exposing Cloud Integration's OData APIs entered from the sap-ai-mcp-servers sweep; the integration door had no tile for it."},{"date":"2026-09-10","field":"ecosystems","from":"cap, btp, abap, integration","to":"cap, btp, abap","reason":"Added a day earlier for a CPI configuration that has moved to the BTP door. A capability listing an ecosystem with no door produces an \"also in\" link to a 404, which is how this was caught."},{"date":"2026-09-12","field":"coverage_by_ecosystem.btp","from":"core-only, what_core_does empty — no page checked that stated an intent","to":"core-only, what_core_does written from the Integration Suite MCP gateway documentation","reason":"The BTP slot said no page had been checked that states an intent, and where_it_stops read 'nothing here serves an application you built'. The MCP Server page in the Integration Suite documentation states the opposite intent in its first sentence, and the gateway creates a server from a managed API artifact, an HTTP endpoint or an RFC destination."},{"date":"2026-09-12","field":"framing_by_ecosystem.btp.description","from":"On BTP the thing exposed over MCP is usually SAP's own product rather than an application you wrote. [MCP Server for SAP BTP Administration](artifact:sap-btp-administration-mcp) puts account, security, service and connectivity operations behind one hosted endpoint, and [SAP LeanIX](artifact:sap-leanix-mcp-server) does the same for enterprise-architecture data. Both are hosted by SAP and act under the caller's own authorisation.","to":"On BTP the thing exposed over MCP is usually SAP's own product rather than an application you wrote. [MCP Server for SAP BTP Administration](artifact:sap-btp-administration-mcp) puts account, security, service and connectivity operations behind one hosted endpoint, and [SAP LeanIX](artifact:sap-leanix-mcp-server) does the same for enterprise-architecture data. Both are hosted by SAP and act under the caller's own authorisation. [SAP Integration Suite](artifact:btp-integration-suite) is the other half of this door: its MCP gateway serves whatever API Management already fronts, which is where an API of your own reaches an agent without a server being written for it.","reason":"The framing said what is exposed on BTP is usually SAP's own product. That still holds for the hosted servers, and the Integration Suite gateway is the case it did not cover."},{"date":"2026-09-14","field":"coverage_by_flavor.abap-cloud","from":null,"to":"unmapped","reason":"SAP's Sapphire 2026 ABAP MCP Server announcement, checked against its own documentation, turned out to answer agent-code-access, not this capability. None of the ABAP door's three providers of this capability states ABAP Cloud as a flavor; abap-ai/mcp names SAP NetWeaver 7.52, a classic-ABAP requirement, and the concern is not one of the classic-only kinds ABAP Cloud excludes, so it reads as unmapped rather than not-applicable."},{"date":"2026-09-27","field":"core_coverage.sources","from":"without the Native AI page","to":"cites it","reason":"capire audit 2026-09-27, link-only pages read a fourth time: MCP services are one of the three things SAP frames as CAP's native AI support, in the one sentence the section's index says of its own."},{"date":"2026-10-09","field":"ecosystems","from":"cap, btp, abap","to":"cap, btp, abap, commerce","reason":"SAP Commerce opened as a product door (docs/concepts/product-doors.md, ADR-0033) and [hybris-mcp-lite](artifact:andreescocard-hybris-mcp-lite), a read-only server over a local instance's HAC, entered behind it with no tile to sit under. The concern is the same one the node has always held — the system answering an agent — and the Commerce slot is a reading of the corpus, not a claim about what SAP ships."},{"date":"2026-10-09","field":"ecosystems","from":"cap, btp, abap, commerce","to":"cap, btp, abap, commerce, successfactors","reason":"Restored: the slot entered by hand in the morning and the Commerce intake's staged revision, drafted from the older file, replaced it on accept. SF-MCP is on the SuccessFactors door and the map needs the slot."},{"date":"2026-10-09","field":"name","from":"MCP servers","to":"Serve your application over MCP","reason":"The name said the protocol and not the concern, and the capability carried two: this one, exposing what you built to agents through a protocol adapter on your own service, the job OData and GraphQL do for other clients, and reaching into an SAP system you run, which left for agent access to your systems with thirty providers and the Commerce and SuccessFactors slots."},{"date":"2026-10-09","field":"ecosystems","from":"cap, btp, abap, commerce, successfactors","to":"cap, btp, abap","reason":"The Commerce and SuccessFactors providers reach into a system from outside and moved to agent access to your systems with their slots."},{"date":"2026-10-12","field":"core_coverage, coverage_by_ecosystem.btp and facets","from":"CAP Node.js and Java adapter coverage, with no MCP comparison facets","to":"Updated CAP stability boundary, BTP source and authentication limits, and three CAP/BTP comparison facets","reason":"The current guides distinguish model-derived application adapters from configured gateway source paths. Exposure source, operations and context delivery describe differences that affect an implementation choice."},{"date":"2026-10-12","field":"core_coverage.sources and framing_by_ecosystem.btp","from":"MCP guide references under /guides/protocols/mcp and BTP framing naming providers moved by the October 9 split","to":"Current /guides/ai/cap-mcp reference, retained Native AI citation, and BTP framing around the remaining gateway provider","reason":"The adapter guide now lives under Native AI. BTP framing follows the gateway source paths that remain within application-service exposure after the existing-system providers moved to their separate capability."},{"date":"2026-10-12","field":"core_coverage.where_it_stops","from":"Generated tools are not stable APIs and may change; data changes require unbound actions, and out-of-the-box XSUAA PKCE authorisation is not fully implemented. The adapter supplies no automatic rate limiting, agent-action audit logging, approval workflows or policy enforcement for [tool governance](capability:tool-governance), performs no prompt-injection input/output validation, and must not be used as a gateway or proxy for SAP application APIs.","to":"Generated tools are not stable APIs and may change; data changes require unbound actions, and out-of-the-box XSUAA PKCE authorisation is not fully implemented. The adapter supplies no automatic rate limiting, agent-action audit logging, approval workflows or policy enforcement for [tool governance](capability:tool-governance), performs no prompt-injection input/output validation, and must not be used as a gateway or proxy for SAP Application APIs, including when a CAP application wraps those APIs.","reason":"Clarify the official CAP MCP adapter restriction: wrapping SAP Application APIs in CAP does not remove the documented gateway/proxy prohibition. Preserve all other implementation limits and the existing assessment date."},{"date":"2026-10-12","field":"description","from":"Exposing what an application already does to an AI agent through the Model Context Protocol, so the agent can discover and call it without bespoke glue — the same job [OData](capability:odata) and [GraphQL](capability:graphql) do for other clients, over the protocol an agent speaks. A server that helps somebody *write* code is a different concern and lives in [agent access to your code](capability:agent-code-access): this one is a protocol adapter on your own running service, and the two do not substitute for each other.","to":"Exposing selected application data and business operations to an AI agent through the Model Context Protocol, alongside protocols such as [OData](capability:odata) and [GraphQL](capability:graphql). A CAP application can integrate remote services through [service integration](capability:service-integration) and expose its own service contract over MCP, connecting this concern with [Agent access to your systems](capability:agent-systems-access); the chosen MCP implementation determines which uses are supported. Development assistance belongs to [Agent access to your code](capability:agent-code-access).","reason":"Maintainer requested complementary boundaries so a CAP bridge can connect system access and application MCP exposure, while implementation restrictions remain explicit. Domains, providers and task classifications are unchanged."},{"date":"2026-10-12","field":"facets","from":"Exposure source, exposed operations and context delivery","to":"Existing three questions plus execution path and exposure control, scoped to CAP/BTP","reason":"Requested MCP comparison refinement: distinguish the execution boundary and the configured exposure surface. Answers remain sourced provider-edge facts; runtime and target restrictions remain implementation-specific."},{"date":"2026-10-12","field":"facets","from":"Text values for exposure source, context delivery, execution path and exposure control","to":"Controlled multi-value vocabularies for those four comparison questions","reason":"The comparison separates exposed contracts, context mechanisms, execution paths and surface selection; provider explanations retain conditions and restrictions. The capability definition and all nine provider conversions must be published together; accepting only the vocabulary leaves legacy provider strings incompatible."},{"date":"2026-10-17","field":"description","from":"Exposing selected application data and business operations to an AI agent through the Model Context Protocol, alongside protocols such as [OData](capability:odata) and [GraphQL](capability:graphql). A CAP application can integrate remote services through [service integration](capability:service-integration) and expose its own service contract over MCP, connecting this concern with [Agent access to your systems](capability:agent-systems-access); the chosen MCP implementation determines which uses are supported. Development assistance belongs to [Agent access to your code](capability:agent-code-access).","to":"Exposing 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).","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.cap. Maintainer-requested scope audit."},{"date":"2026-10-26","field":"coverage_by_ecosystem.btp.state, coverage_by_ecosystem.btp.relationship, coverage_by_ecosystem.btp.community_adds","from":"core-only","to":"core-and-community, relationship unassessed, community_adds added","reason":"Reassessed against the graph (check:capabilities): an independent provider, btp-cf-mcp, now provides this capability on the BTP door, so the door is no longer core only. The relationship has no documentary evidence yet and stays unassessed."},{"date":"2026-10-26","field":"coverage_by_ecosystem.abap.note","from":"One provider and it is independent, so community-only is a assessment of the corpus. SAP's own ABAP MCP work is on the other side of this concern ...","to":"Names the kinds that run inside the ABAP system (SDK, stateless rewrite, add-on exposing tables and CDS views, abap2UI5 endpoint); the count is gone.","reason":"Reassessed against the graph (check:capabilities): the note counted providers and three newer ones went unnamed. The community-only state is unchanged."},{"date":"2026-10-26","field":"coverage_by_flavor.abap-cloud.note","from":"None of the three ABAP-door providers of this capability states ABAP Cloud: abap-ai/mcp names SAP NetWeaver 7.52 ..., and sap-security-mcp and SAP_MCP say nothing about which development model they need.","to":"abap-ai/mcp names SAP NetWeaver 7.52 as its requirement, and SAP_MCP says nothing about which development model it needs; the count and the sap-security-mcp mention are gone.","reason":"Reassessed against the graph (check:capabilities): the note counted providers, and sap-security-mcp no longer provides this capability. The unmapped state is unchanged."}],"changed_in":[{"version":"@cap-js/mcp 1.1.0","date":"2026-07-03","what_changed":"The core gained an MCP protocol adapter. Before it, exposing a CAP service to an agent meant writing and maintaining a separate MCP server that restated the model; after it, @mcp on the service is the whole of it.","invalidates":"Guidance that you must hand-write an MCP server to put a CAP service in front of an agent. That was true until mid-2026 and is not now — what is left to build is governance and anything that writes data.","source":{"url":"https://cap.cloud.sap/docs/releases/2026/jun26","title":"CAP release notes, June 2026 — New MCP Protocol Adapter","checked":"2026-09-07","quote":"This release includes an initial implementation of a generic MCP adapter for both CAP Node.js (also CAP Java, but not released to public yet)."},"applies_to":{"ecosystems":["cap"]}}],"coverage_by_ecosystem":{"btp":{"state":"core-and-community","assessed_at":"2026-10-12","relationship":"unassessed","what_core_does":"[API Management](artifact:btp-api-management) creates MCP server artifacts from API artifacts, API proxies, HTTP/OpenAPI endpoints or RFC backends and runs them through the Integration Suite MCP gateway. Servers can expose tools, URI-addressed resources and parameterised prompts.","where_it_stops":"Availability depends on the Integration Suite service plan, with [API Management](artifact:btp-api-management) and Integration Cell activation required for the assessed creation paths. The HTTP/OpenAPI path accepts OpenAPI 3.0.0–3.0.3. The API-artifact path accepts only OAuth-authenticated source APIs; MCP client access requires OAuth and mandatory Authentication and Authorization policies.","sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"An MCP server supports three primary primitives: Tools, Resources, and Prompts.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Create an MCP Server from an API Artifact","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-proxy-40b31a0.md","title":"Create an MCP Server from an API Proxy","quote":"You can create an MCP server directly from an existing API proxy deployed on the classic API Management runtime.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-by-referring-to-an-rfc-based-backend-cbb8b78.md","title":"Create an MCP Server by Referring to an RFC-Based Backend","quote":"Create an MCP server by connecting to an RFC-based backend system and exposing selected RFC operations as MCP tools.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Create an MCP Server from an API Artifact","quote":"Only APIs with OAuth-based authentication can be used to create an MCP server.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"The Authentication policy must always be the first policy in the request flow. Only OAuth-based authentication is supported for an MCP server.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"These policies are mandatory and cannot be deleted.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Create an MCP Server from an API Artifact","quote":"Each MCP server supports up to 30 tools.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"Each MCP server supports up to 30 tools.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"Each MCP server supports up to 50 tools.","checked":"2026-10-12"}],"community_adds":"[btp-cf-mcp](artifact:marianfoo-btp-cf-mcp) is a server that exposes an SAP BTP account and its Cloud Foundry runtime to an agent as read and write tools under the caller's own identity.","note":"The API-artifact and HTTP creation guides state a 30-tool limit; the live HTTP configuration page states 50. The applicable limit for a deployment needs confirmation."},"abap":{"state":"community-only","assessed_at":"2026-09-10","where_it_stops":"At the server half. The SDK's author states there is no realistic way to support the SSE streaming a client needs, so an ABAP system can answer an agent and cannot notify one.","note":"The servers run inside the ABAP system: an SDK for writing them in ABAP ([abap-ai/mcp](artifact:abap-ai-mcp) and its stateless rewrite [abap-ai/mcp2](artifact:abap-ai-mcp2)), an add-on that turns tables and CDS views into tools ([Skybuffer AI MCP server](artifact:skybuffer-ai-mcp-server)) and an endpoint that drives opted-in abap2UI5 apps ([abap-agent-runtime](artifact:abap2ui5-addons-abap-agent-runtime)). SAP's own ABAP MCP work reaches into a system from outside and lives in [agent access to your code](capability:agent-code-access)."}},"framing_by_ecosystem":{"btp":{"description":"On BTP, serving an application over MCP can be configured as an MCP server artifact in [API Management](artifact:btp-api-management), deployed on Integration Cell within [SAP Integration Suite](artifact:btp-integration-suite). The documented source paths start from an API artifact, a classic API proxy, an HTTP endpoint with OpenAPI or an RFC backend."},"abap":{"description":"Here the question is whether the system can be the server rather than the thing being read. [abap-ai/mcp](artifact:abap-ai-mcp) implements the protocol in ABAP itself — prompts, resources, tools, long-running tasks and DDIC-derived schemas — installed with [abapGit](actor:abapgit)(artifact:abapgit-abapgit) and running inside the system, so what an agent sees is what you chose to expose rather than whatever ADT happens to reach."},"cap":{"description":"Exposing selected application data and business operations to an AI agent through the Model Context Protocol, alongside protocols such as [OData](capability:odata) and [GraphQL](capability:graphql). A CAP application can integrate remote services through [service integration](capability:service-integration) and expose its own service contract over MCP, connecting this concern with [Agent access to your systems](capability:agent-systems-access); the chosen MCP implementation determines which uses are supported. Development assistance belongs to [Agent access to your code](capability:agent-code-access)."}},"coverage_by_flavor":{"abap-cloud":{"state":"unmapped","assessed_at":"2026-09-14","note":"SAP's own ABAP MCP Server, generally available from Q2 2026, answers the other direction of this concern: it runs inside ABAP Development Tools for VS Code and lets an agent perform ABAP development tasks against the system, which is [agent access to your code](capability:agent-code-access) rather than the system serving its own business tools. [abap-ai/mcp](artifact:abap-ai-mcp) names SAP NetWeaver 7.52 as its requirement, a classic-ABAP version number, and [SAP_MCP](artifact:markwury168-sap-mcp) says nothing about which development model it needs."}},"normative_relevance":[{"instrument":"instrument:sap-api-policy-v4-2026a","prominence":"prominent","sections":["1.1","1.2","2.2.2"],"applies_when":"An MCP server exposes an SAP API, or uses SAP APIs to supply tools, resources or data to an agent.","note":"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.","sources":[{"url":"https://help.sap.com/doc/sap-api-policy/latest/en-US/API_Policy_latest.pdf","title":"SAP API Policy v.4.2026a","checked":"2026-09-16","quote":"verify that each endpoint for Documented Use is a Published API"}]},{"instrument":"instrument:sap-developer-license-3-2-cap","prominence":"prominent","sections":["1","3"],"applies_when":"A covered CAP plugin or application exposes SAP product data or covered customer-application functionality through MCP.","note":"The CAP developer agreement can apply alongside the API Policy. Ordinary agent inference is not automatically AI training; section 3 becomes relevant when covered materials or applications are used to train, develop or refine a model or system.","applies_to":{"ecosystems":["cap"]},"sources":[{"url":"https://cap.cloud.sap/resources/license/developer-license-3_2_CAP.txt","title":"SAP Developer License Agreement 3.2 CAP","checked":"2026-09-16","quote":"for the purpose of training (developing) artificial intelligence models or systems"}]}],"drafted_with_ai":true,"facets":[{"key":"mcp_exposure_source","label":"Exposure source","kind":"many","ecosystems":["cap","btp"],"values":["CAP service contract","Compiled CDS model","CDS database schema","API artifact","API proxy","HTTP/OpenAPI endpoint","RFC backend","Domain-specific backend"]},{"key":"mcp_operations","label":"Exposed operations","kind":"text","ecosystems":["cap","btp"]},{"key":"mcp_context","label":"Context delivery","kind":"many","ecosystems":["cap","btp"],"values":["MCP resources","MCP prompts","Model descriptions via tools","Server instructions","Schema hints","Interactive UI resources","Tool input/output schemas"]},{"key":"mcp_execution_path","label":"Execution path","kind":"many","ecosystems":["cap","btp"],"values":["CAP service calls","CDS query fallback","Direct database queries","Remote backend calls","Custom tool handlers","Local transaction building"]},{"key":"mcp_exposure_control","label":"Exposure control","kind":"many","ecosystems":["cap","btp"],"values":["Service selection","Entity/operation annotations","Wrapper configuration","Tool module configuration","Entity allowlist","Output filtering","API operation selection","Target feature discovery","Feature opt-in","CAP service authorization bypassed"]}]},"sap_delivery":{"door":"cap","all":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-mcp","name":"@cap-js/mcp","json":"/artifacts/cap-js-mcp.json"},{"ref":"artifact:cap-java-cds-adapter-mcp","name":"com.sap.cds:cds-adapter-mcp","json":"/artifacts/cap-java-cds-adapter-mcp.json"}]},"by_flavor":{"node":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-js-mcp","name":"@cap-js/mcp","json":"/artifacts/cap-js-mcp.json"}]},"java":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-java-cds-adapter-mcp","name":"com.sap.cds:cds-adapter-mcp","json":"/artifacts/cap-java-cds-adapter-mcp.json"}]}}},"edges":{"use_cases":[{"id":"access-external-system-through-mcp-service-cap-java-custom-api","task_ref":"task:access-external-system-through-mcp-service","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"scope_note":"CAP Java application bridge for custom external APIs outside SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","assessed_at":"2026-10-12","drafted_with_ai":true,"paths":[{"key":"official","name":"CAP integration with the official MCP adapter for custom external APIs"},{"key":"external-odata","name":"CAP integration exposed through an external OData MCP process for custom external APIs"}],"contributions":[{"ref":"artifact:cap-java-cds-feature-remote-odata","role":"application integration layer","state":"conditional","description":"[com.sap.cds:cds-feature-remote-odata](artifact:cap-java-cds-feature-remote-odata) consumes configured OData V2 or V4 APIs through CAP Java Remote Services; application handlers must call them explicitly.","remaining_work":"Implement the application service contract and remote-service handlers, restrict operations, configure backend credentials and tenant mapping, and test the selected target. No runtime integration was executed by the Atlas.","remaining_kinds":["configuration","application-code"],"conditions":["Model and configure the remote service, supported protocol, connectivity and backend credentials.","Implement the application handlers that call the remote service; limit the exposed contract and allowed operations.","Add com.sap.cds:cds-feature-remote-odata for an OData V2 or V4 target and configure its CDS definition plus destination or service binding.","Explicitly invoke Remote Services from application handlers; combine local database and remote data through custom code."],"sources":[{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project:","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"CAP doesn't automatically forward CQN queries to these services.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"In case data from Remote Services should be combined with data from the database custom coding is required.","checked":"2026-10-12"}],"paths":["official","external-odata"]},{"ref":"artifact:cap-java-cds-adapter-mcp","role":"MCP application adapter","state":"conditional","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) exposes the custom application service for discovery, data queries and unbound operations; it does not implement the remote-system integration.","remaining_work":"Implement and test the custom service handlers and remote calls, and configure client access and productive controls.","remaining_kinds":["configuration","application-code"],"conditions":["Expose a custom CAP application service with @mcp; SAP Application API gateway/proxy scenarios are excluded.","Use reading queries and unbound actions/functions; changes require unbound actions.","Provide deployment authorization; out-of-the-box XSUAA PKCE support is not fully implemented.","Supply prompt-injection mitigation and governance controls; the adapter supplies no automatic rate limiting, agent-action audit logging, approval workflows or policy layer.","Treat generated tools as a changing interface; validate the application handlers and selected remote API separately.","Add cds-adapter-mcp with runtime scope; enable model doc comments in the Java application and MTX sidecar when using that context."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter is intended only for exposing custom CAP application services.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"the plugin automatically creates an MCP server per CAP service, each serving three generic tools","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"any data changes need to be implemented via unbound actions for now.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The MCP adapter does not perform any input validation or output validation to prevent prompt injection attacks.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"}],"paths":["official"]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external MCP process","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) derives MCP tools from the CAP application service's OData V4 metadata; it is outside the application and does not implement its outbound integration.","remaining_work":"Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.","remaining_kinds":["configuration","application-code","own-component"],"conditions":["Expose the CAP application-owned service as a reachable OData V4 endpoint with $metadata; the CAP application still implements remote integration.","Run cap-mcp-bridge as a separate Node.js process and configure its HTTP access and backend credentials; this process does not change the CAP application runtime.","Read-only is the default. Write tools, including actions, require explicit writeEnabled/--write configuration and appropriate backend permissions.","Retain backend authorization and validate the chosen target; the bridge does not supply the application service or its remote handlers."],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"Point it at any SAP CAP / OData v4 service.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"`invoke_action` | Call an action. **Write mode only**","checked":"2026-10-12"}],"paths":["external-odata"]}],"unknowns":["The application integration and MCP contributions are assessed separately; no captured source shows these complete generic bridge paths working against a chosen external system.","The selected target API, client and backend permissions, tenant mapping and remote error behavior need a project-specific assessment.","A compatible component does not establish an endorsed architecture or permission to expose an SAP Application API.","The external MCP process is assessed against the exposed OData V4 contract, not as a Java library; no Java in-process community adapter was established in this bounded inventory."],"name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.\n\nScoped boundary: CAP Java application bridge for custom external APIs outside SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"access-external-system-through-mcp-service-cap-java-sap-api","task_ref":"task:access-external-system-through-mcp-service","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"scope_note":"CAP Java application bridge for SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","assessed_at":"2026-10-12","drafted_with_ai":true,"paths":[{"key":"official","name":"CAP integration with the official MCP adapter for SAP Application APIs"},{"key":"external-odata","name":"CAP integration exposed through an external OData MCP process for SAP Application APIs"}],"contributions":[{"ref":"artifact:cap-java-cds-feature-remote-odata","role":"application integration layer","state":"conditional","description":"[com.sap.cds:cds-feature-remote-odata](artifact:cap-java-cds-feature-remote-odata) consumes configured OData V2 or V4 APIs through CAP Java Remote Services; application handlers must call them explicitly.","remaining_work":"Implement the application service contract and remote-service handlers, restrict operations, configure backend credentials and tenant mapping, and test the selected target. No runtime integration was executed by the Atlas.","remaining_kinds":["configuration","application-code"],"conditions":["Model and configure the remote service, supported protocol, connectivity and backend credentials.","Implement the application handlers that call the remote service; limit the exposed contract and allowed operations.","Confirm the target API and intended agent use against its applicable published API documentation and policy; remote-service consumption alone establishes no MCP exposure permission.","Add com.sap.cds:cds-feature-remote-odata for an OData V2 or V4 target and configure its CDS definition plus destination or service binding.","Explicitly invoke Remote Services from application handlers; combine local database and remote data through custom code."],"sources":[{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project:","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"CAP doesn't automatically forward CQN queries to these services.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","quote":"In case data from Remote Services should be combined with data from the database custom coding is required.","checked":"2026-10-12"}],"paths":["official","external-odata"]},{"ref":"artifact:cap-java-cds-adapter-mcp","role":"MCP application adapter","state":"explicitly-unsupported","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) must not be used as a gateway or proxy for SAP Application APIs; placing a CAP application service in front of the API does not remove that prohibition.","remaining_work":"Choose a separately assessed exposure design; no workaround is established by wrapping or renaming the target API.","conditions":["This assessment targets SAP Application APIs, including an application service that proxies those APIs."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter is intended only for exposing custom CAP application services.","checked":"2026-10-12"}],"paths":["official"]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external MCP process","state":"unknown","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) documents CAP/OData V4 endpoint access, but these sources do not establish a supported or endorsed CAP bridge to the chosen SAP Application API.","remaining_work":"Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.","remaining_kinds":["configuration","application-code","own-component"],"conditions":["Expose the CAP application-owned service as a reachable OData V4 endpoint with $metadata; the CAP application still implements remote integration.","Run cap-mcp-bridge as a separate Node.js process and configure its HTTP access and backend credentials; this process does not change the CAP application runtime.","Read-only is the default. Write tools, including actions, require explicit writeEnabled/--write configuration and appropriate backend permissions.","Retain backend authorization and validate the chosen target; the bridge does not supply the application service or its remote handlers.","Assess the exact SAP target, published API use and architecture separately; the README's generic SAP endpoint claim is not permission or an endorsement."],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"Point it at any SAP CAP / OData v4 service.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"`invoke_action` | Call an action. **Write mode only**","checked":"2026-10-12"}],"paths":["external-odata"]}],"unknowns":["The application integration and MCP contributions are assessed separately; no captured source shows these complete generic bridge paths working against a chosen external system.","The selected target API, client and backend permissions, tenant mapping and remote error behavior need a project-specific assessment.","A compatible component does not establish an endorsed architecture or permission to expose an SAP Application API.","The official CAP MCP adapter is explicitly unsupported for this target scope. The community MCP implementations remain unknown for the complete SAP Application API bridge; their general service exposure does not establish that result.","The external MCP process is assessed against the exposed OData V4 contract, not as a Java library; no Java in-process community adapter was established in this bounded inventory."],"name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.\n\nScoped boundary: CAP Java application bridge for SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"access-external-system-through-mcp-service-cap-node-custom-api","task_ref":"task:access-external-system-through-mcp-service","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"scope_note":"CAP Node.js application bridge for custom external APIs outside SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","assessed_at":"2026-10-12","drafted_with_ai":true,"paths":[{"key":"official","name":"CAP integration with the official MCP adapter for custom external APIs"},{"key":"gavdi","name":"CAP integration with @gavdi/cap-mcp for custom external APIs"},{"key":"sleibach","name":"CAP integration with cap-mcp-plugin for custom external APIs"},{"key":"neoimpulse","name":"CAP integration with custom @neoimpulse/cap-js-mcp tools for custom external APIs"},{"key":"external-odata","name":"CAP integration exposed through an external OData MCP process for custom external APIs"}],"contributions":[{"ref":"artifact:sap-cds","role":"application integration layer","state":"conditional","description":"[@sap/cds](artifact:sap-cds) consumes remote services through CAP service APIs; the application supplies the contract and handlers that bridge the external system.","remaining_work":"Implement the application service contract and remote-service handlers, restrict operations, configure backend credentials and tenant mapping, and test the selected target. No runtime integration was executed by the Atlas.","remaining_kinds":["configuration","application-code"],"conditions":["Model and configure the remote service, supported protocol, connectivity and backend credentials.","Implement the application handlers that call the remote service; limit the exposed contract and allowed operations."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","quote":"Remote services represented as CAP services, which you can consume as if they were local","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","quote":"Remote services are proxied by CAP services","checked":"2026-10-12"}],"paths":["official","gavdi","sleibach","neoimpulse","external-odata"]},{"ref":"artifact:cap-js-mcp","role":"MCP application adapter","state":"conditional","description":"[@cap-js/mcp](artifact:cap-js-mcp) exposes the custom application service for discovery, data queries and unbound operations; it does not implement the remote-system integration.","remaining_work":"Implement and test the custom service handlers and remote calls, and configure client access and productive controls.","remaining_kinds":["configuration","application-code"],"conditions":["Expose a custom CAP application service with @mcp; SAP Application API gateway/proxy scenarios are excluded.","Use reading queries and unbound actions/functions; changes require unbound actions.","Provide deployment authorization; out-of-the-box XSUAA PKCE support is not fully implemented.","Supply prompt-injection mitigation and governance controls; the adapter supplies no automatic rate limiting, agent-action audit logging, approval workflows or policy layer.","Treat generated tools as a changing interface; validate the application handlers and selected remote API separately."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter is intended only for exposing custom CAP application services.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"the plugin automatically creates an MCP server per CAP service, each serving three generic tools","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"any data changes need to be implemented via unbound actions for now.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The MCP adapter does not perform any input validation or output validation to prevent prompt injection attacks.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"}],"paths":["official"]},{"ref":"artifact:gavdi-cap-mcp","role":"MCP application adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) — The inspected source dispatches resource queries and tool calls through the CAP application service; the application can supply remote-service handlers.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Current upstream prerequisites are Node.js 18+, CAP 10+ and Express 5+.","Annotate the application entities/actions and configure inherited CAP authentication; the application owns outbound credentials and remote handlers.","Entity write wrappers require deliberate configuration and still depend on application-side authorization."],"sources":[{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/src/mcp/resources.ts","quote":"const response = await service.tx({ user: accessRights }).run(query);","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/src/mcp/tools.ts","quote":"const response = await service.tx({ user: accessRights }).send({","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/README.md","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/README.md","quote":"Uses your CAP application's existing authentication system:","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/README.md","quote":"When `wrap_entities_to_actions` is enabled (globally or via `@mcp.wrap.tools: true`), you will see tools named like:","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/README.md","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/README.md","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"}],"paths":["gavdi"],"version_scope":"Inspected upstream commit 1f3a97e1c0733d97c0cabea53d6d31767508daed; prerequisite statement from the current README."},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"MCP application adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) — The inspected source dispatches queries and operations through the CAP application service, leaving remote integration to its handlers.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Install from source; the README requires Node.js 18+, @sap/cds 9+ and Express 4+.","Annotate the application contract and configure authentication, deployment and session storage.","@mcp.omit filters output only; omitted fields remain queryable in the underlying service and can still be supplied to writes.","Implement outbound handlers and backend authorization; the server does not configure remote APIs."],"sources":[{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/lib/mcp/resources.js","quote":"const response = await service.tx({ user: accessRights }).run(query);","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/lib/mcp/tools.js","quote":"service.tx({ user: accessRights }).send({","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"`@mcp.omit` filters MCP output only.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"There is **no npm registry package yet**.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"Auth modes: `inherit`","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"Where MCP session state lives.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/README.md","quote":"`express` 4+","checked":"2026-10-12"}],"paths":["sleibach"],"version_scope":"Inspected fork commit 5359398d0662f452d31529509c67634f8eb5406d; separate upstream and fork prerequisites."},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom MCP tools","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) — The documentation shows a custom tool connecting to an application service and sending an operation; implementing the remote-system bridge remains application work.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Implement and configure custom application tools that call the selected CAP application service; the shipped product CRUD example uses in-memory data.","Configure MCP access and application/backend authorization independently of the demo.","Implement remote calls and their restrictions in the application; the custom-tool example does not establish a specific external-system bridge."],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"const srv = await cds.connect.to('OrderService');","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"return await srv.send('processOrder', args);","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"}],"paths":["neoimpulse"],"version_scope":"Current npm documentation; no universal remote-target compatibility claim."},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external MCP process","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) derives MCP tools from the CAP application service's OData V4 metadata; it is outside the application and does not implement its outbound integration.","remaining_work":"Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.","remaining_kinds":["configuration","application-code","own-component"],"conditions":["Expose the CAP application-owned service as a reachable OData V4 endpoint with $metadata; the CAP application still implements remote integration.","Run cap-mcp-bridge as a separate Node.js process and configure its HTTP access and backend credentials; this process does not change the CAP application runtime.","Read-only is the default. Write tools, including actions, require explicit writeEnabled/--write configuration and appropriate backend permissions.","Retain backend authorization and validate the chosen target; the bridge does not supply the application service or its remote handlers."],"sources":[{"url":"https://raw.githubusercontent.com/SanoberRehman/cap-mcp-bridge/0006d47ddcfe0291160ddc5f7c1e02007ee8cf7a/README.md","quote":"Point it at any SAP CAP / OData v4 service.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SanoberRehman/cap-mcp-bridge/0006d47ddcfe0291160ddc5f7c1e02007ee8cf7a/README.md","quote":"**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SanoberRehman/cap-mcp-bridge/0006d47ddcfe0291160ddc5f7c1e02007ee8cf7a/README.md","quote":"`invoke_action` | Call an action. **Write mode only**","checked":"2026-10-12"}],"paths":["external-odata"]}],"unknowns":["The application integration and MCP contributions are assessed separately; no captured source shows these complete generic bridge paths working against a chosen external system.","The selected target API, client and backend permissions, tenant mapping and remote error behavior need a project-specific assessment.","A compatible component does not establish an endorsed architecture or permission to expose an SAP Application API."],"name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.\n\nScoped boundary: CAP Node.js application bridge for custom external APIs outside SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"access-external-system-through-mcp-service-cap-node-sap-api","task_ref":"task:access-external-system-through-mcp-service","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"scope_note":"CAP Node.js application bridge for SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","assessed_at":"2026-10-12","drafted_with_ai":true,"paths":[{"key":"official","name":"CAP integration with the official MCP adapter for SAP Application APIs"},{"key":"gavdi","name":"CAP integration with @gavdi/cap-mcp for SAP Application APIs"},{"key":"sleibach","name":"CAP integration with cap-mcp-plugin for SAP Application APIs"},{"key":"neoimpulse","name":"CAP integration with custom @neoimpulse/cap-js-mcp tools for SAP Application APIs"},{"key":"external-odata","name":"CAP integration exposed through an external OData MCP process for SAP Application APIs"}],"contributions":[{"ref":"artifact:sap-cds","role":"application integration layer","state":"conditional","description":"[@sap/cds](artifact:sap-cds) consumes remote services through CAP service APIs; the application supplies the contract and handlers that bridge the external system.","remaining_work":"Implement the application service contract and remote-service handlers, restrict operations, configure backend credentials and tenant mapping, and test the selected target. No runtime integration was executed by the Atlas.","remaining_kinds":["configuration","application-code"],"conditions":["Model and configure the remote service, supported protocol, connectivity and backend credentials.","Implement the application handlers that call the remote service; limit the exposed contract and allowed operations.","Confirm the target API and intended agent use against its applicable published API documentation and policy; remote-service consumption alone establishes no MCP exposure permission."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","quote":"Remote services represented as CAP services, which you can consume as if they were local","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","quote":"Remote services are proxied by CAP services","checked":"2026-10-12"}],"paths":["official","gavdi","sleibach","neoimpulse","external-odata"]},{"ref":"artifact:cap-js-mcp","role":"MCP application adapter","state":"explicitly-unsupported","description":"[@cap-js/mcp](artifact:cap-js-mcp) must not be used as a gateway or proxy for SAP Application APIs; placing a CAP application service in front of the API does not remove that prohibition.","remaining_work":"Choose a separately assessed exposure design; no workaround is established by wrapping or renaming the target API.","conditions":["This assessment targets SAP Application APIs, including an application service that proxies those APIs."],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","quote":"The CAP MCP adapter is intended only for exposing custom CAP application services.","checked":"2026-10-12"}],"paths":["official"]},{"ref":"artifact:gavdi-cap-mcp","role":"MCP application adapter","state":"unknown","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) — The documented CAP service dispatch/custom-tool mechanism is relevant, but the captured evidence does not establish this implementation as a supported bridge to the selected SAP Application API.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Current upstream prerequisites are Node.js 18+, CAP 10+ and Express 5+.","Annotate the application entities/actions and configure inherited CAP authentication; the application owns outbound credentials and remote handlers.","Entity write wrappers require deliberate configuration and still depend on application-side authorization.","No SAP Application API agent-access endorsement or deployment-specific permission was established by these sources."],"sources":[{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/src/mcp/resources.ts","quote":"const response = await service.tx({ user: accessRights }).run(query);","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/gavdilabs/cap-mcp-plugin/1f3a97e1c0733d97c0cabea53d6d31767508daed/src/mcp/tools.ts","quote":"const response = await service.tx({ user: accessRights }).send({","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"}],"paths":["gavdi"],"version_scope":"Inspected upstream commit 1f3a97e1c0733d97c0cabea53d6d31767508daed; prerequisite statement from the current README."},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"MCP application adapter","state":"unknown","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) — The documented CAP service dispatch/custom-tool mechanism is relevant, but the captured evidence does not establish this implementation as a supported bridge to the selected SAP Application API.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Install from source; the README requires Node.js 18+, @sap/cds 9+ and Express 4+.","Annotate the application contract and configure authentication, deployment and session storage.","@mcp.omit filters output only; omitted fields remain queryable in the underlying service and can still be supplied to writes.","Implement outbound handlers and backend authorization; the server does not configure remote APIs.","No SAP Application API agent-access endorsement or deployment-specific permission was established by these sources."],"sources":[{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/lib/mcp/resources.js","quote":"const response = await service.tx({ user: accessRights }).run(query);","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/sleibach/cap-mcp-plugin/5359398d0662f452d31529509c67634f8eb5406d/lib/mcp/tools.js","quote":"service.tx({ user: accessRights }).send({","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","quote":"`@mcp.omit` filters MCP output only.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","quote":"There is **no npm registry package yet**.","checked":"2026-10-12"}],"paths":["sleibach"],"version_scope":"Inspected fork commit 5359398d0662f452d31529509c67634f8eb5406d; separate upstream and fork prerequisites."},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom MCP tools","state":"unknown","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) — The documented CAP service dispatch/custom-tool mechanism is relevant, but the captured evidence does not establish this implementation as a supported bridge to the selected SAP Application API.","remaining_work":"Implement and test the application and remote handlers, enforce client/backend permissions and confirm target-specific use.","remaining_kinds":["application-code"],"conditions":["Implement and configure custom application tools that call the selected CAP application service; the shipped product CRUD example uses in-memory data.","Configure MCP access and application/backend authorization independently of the demo.","Implement remote calls and their restrictions in the application; the custom-tool example does not establish a specific external-system bridge.","No SAP Application API agent-access endorsement or deployment-specific permission was established by these sources."],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"const srv = await cds.connect.to('OrderService');","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"return await srv.send('processOrder', args);","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"}],"paths":["neoimpulse"],"version_scope":"Current npm documentation; no universal remote-target compatibility claim."},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external MCP process","state":"unknown","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) documents CAP/OData V4 endpoint access, but these sources do not establish a supported or endorsed CAP bridge to the chosen SAP Application API.","remaining_work":"Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.","remaining_kinds":["configuration","application-code","own-component"],"conditions":["Expose the CAP application-owned service as a reachable OData V4 endpoint with $metadata; the CAP application still implements remote integration.","Run cap-mcp-bridge as a separate Node.js process and configure its HTTP access and backend credentials; this process does not change the CAP application runtime.","Read-only is the default. Write tools, including actions, require explicit writeEnabled/--write configuration and appropriate backend permissions.","Retain backend authorization and validate the chosen target; the bridge does not supply the application service or its remote handlers.","Assess the exact SAP target, published API use and architecture separately; the README's generic SAP endpoint claim is not permission or an endorsement."],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"Point it at any SAP CAP / OData v4 service.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","quote":"`invoke_action` | Call an action. **Write mode only**","checked":"2026-10-12"}],"paths":["external-odata"]}],"unknowns":["The application integration and MCP contributions are assessed separately; no captured source shows these complete generic bridge paths working against a chosen external system.","The selected target API, client and backend permissions, tenant mapping and remote error behavior need a project-specific assessment.","A compatible component does not establish an endorsed architecture or permission to expose an SAP Application API.","The official CAP MCP adapter is explicitly unsupported for this target scope. The community MCP implementations remain unknown for the complete SAP Application API bridge; their general service exposure does not establish that result."],"name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.\n\nScoped boundary: CAP Node.js application bridge for SAP Application APIs. The [Service integration](capability:service-integration) contribution reaches the remote target; the [Serve your application over MCP](capability:mcp-servers) contribution exposes the application contract, enabling [Agent access to your systems](capability:agent-systems-access). Each state applies only to the named contribution in this target scope.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"change-application-records-from-agent-btp","task_ref":"task:change-application-records-from-agent","capability":"capability:mcp-servers","ecosystem":"btp","contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, exposes selected API write operations as MCP tools.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination."],"remaining_work":"Select the source API operations, configure the destination, tools/resources/prompts and security policies, deploy on Integration Cell and arrange client access.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — MCP server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP source","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Integration Suite — runtime","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — plan availability","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP OpenAPI versions","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — tool operations","quote":"They are derived from API operations and can represent actions such as retrieving, creating, updating, or deleting data.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource configuration","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource method restriction","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — prompt configuration","quote":"To add and define an MCP prompt:","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official description of gateway responsibilities and the tools, resources and prompts primitives."},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Change application records from an agent","outcome":"Create or update application records through an MCP client.","boundary":"Active-record changes through business actions or entity write tools; draft lifecycle is assessed separately.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["write mechanism","runtime","authorization","validation","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"change-application-records-from-agent-cap-java","task_ref":"task:change-application-records-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"contributions":[{"ref":"artifact:cap-java-cds-adapter-mcp","role":"business-action adapter","state":"conditional","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) can invoke unbound actions that perform application data changes; the documented adapter does not generate direct entity CREATE, UPDATE or DELETE tools.","conditions":["Add the cds-adapter-mcp runtime dependency to the CAP Java application.","Annotate the custom application service with @mcp; choose the exposed entities and operations.","Implement each required record change through an unbound business action.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly.","Enable model doc comments in the Java application and MTX sidecar when supplying that context through describe."],"remaining_work":"Own action logic, validation and authorization; this does not establish draft lifecycle support.","remaining_kinds":["application-code"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — service exposure","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — call","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — operation boundary","quote":"while any data changes need to be implemented via unbound actions for now.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — Java installation","quote":"or the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — XSUAA PKCE limitation","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — model descriptions","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — Java model context","quote":"You must enable doc comments in the Java application and in the MTX sidecar.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Change application records from an agent","outcome":"Create or update application records through an MCP client.","boundary":"Active-record changes through business actions or entity write tools; draft lifecycle is assessed separately.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["write mechanism","runtime","authorization","validation","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"change-application-records-from-agent-cap-node","task_ref":"task:change-application-records-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:cap-js-mcp","role":"business-action adapter","state":"conditional","description":"[@cap-js/mcp](artifact:cap-js-mcp) can invoke unbound actions that perform application data changes; the documented adapter does not generate direct entity CREATE, UPDATE or DELETE tools.","conditions":["Install @cap-js/mcp into the CAP Node.js application.","Annotate the custom application service with @mcp. Use a dedicated MCP service to restrict the exposed entities and operations.","Implement each required record change through an unbound business action.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly.","Connect only trusted MCP agents and use deployment controls to mitigate prompt injection.","Generated tools are not stable APIs; supply application governance controls before productive use.","Use this adapter only for custom CAP application services, not as a gateway or proxy for SAP application APIs."],"remaining_work":"Own action logic, validation and authorization; this does not establish draft lifecycle support.","remaining_kinds":["application-code"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"while any data changes need to be implemented via unbound actions for now.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"npm add @cap-js/mcp","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.","checked":"2026-10-12"}]},{"ref":"artifact:gavdi-cap-mcp","role":"entity wrapper adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) can expose create/update entity tools when those wrapper modes are enabled.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and annotate the entities or operations to expose.","Enable the required create/update modes through entity wrapper configuration."],"remaining_work":"Validate and authorize changes in the application; output omission does not block write inputs.","remaining_kinds":["application-code"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Expose CAP entities as tools (`query`, `get`, and optionally `create`, `update`) for LLM tool use while keeping resources intact","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"they can still be provided as inputs for create/update operations","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"entity wrapper adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) exposes configured active-record create, update and delete wrapper tools.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","Enable the required wrapper modes; draft roots require the separately documented draft lifecycle unless draft bypass is configured.","The README requires Node.js 18+, @sap/cds 9+ and Express 4+."],"remaining_work":"Own application validation, permissions and deployment; @mcp.omit filters output only.","sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`create` — insert a new active row.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`update` — patch an active row by key(s).","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@mcp.omit` filters MCP output only.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"- Node.js 18+\n- `@sap/cds` 9+\n- `express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`delete` — remove a row by key(s).","checked":"2026-10-12"}]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external OData bridge","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) exposes create/update/delete entity tools in write mode.","conditions":["Configure a reachable custom CAP/OData V4 service and its credentials; run the separate Node.js bridge process.","Enable write mode and ensure the backend permits the selected operations."],"remaining_work":"Configure entity/field exposure and backend permissions; this is not an assessed draft lifecycle.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"| `create_entity` / `update_entity` / `delete_entity` | **Write mode only** |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"`cap-mcp-bridge` runs\n**outside** the service and consumes `$metadata` over HTTP.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"That starts an MCP server on stdio.","checked":"2026-10-12"}]},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom application tool server","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) documents demo product CRUD and extension modules, but the demo operations use in-memory storage.","conditions":["Install @neoimpulse/cap-js-mcp in a CAP Node.js application and configure its component module paths.","Choose the configurable authentication setting; when enabled, configure API-key access as described in the README.","Implement custom tool modules that invoke the real application service and its authorised operations; the stock product CRUD tools do not persist application records."],"remaining_work":"Implement actual application service writes and permission checks in custom modules; the stock demo is not a production record-write implementation.","remaining_kinds":["application-code"],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"In a real application, you would implement tools that interact with your actual CAP services and data models.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Authentication**: Configurable API key authentication","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"They use in-memory data storage and are not intended for production use.","checked":"2026-10-12"}]},{"ref":"artifact:shahid-la-cds-db-nlquery-mcp","role":"database-query server","state":"explicitly-unsupported","description":"[@shahid.la/cds-db-nlquery-mcp](artifact:shahid-la-cds-db-nlquery-mcp) executes SELECT queries only; its documented interface does not create or update application records.","remaining_work":"Use a separately assessed write-capable path for this outcome.","sources":[{"url":"https://github.com/shahidla/cds-db-nlquery-mcp","title":"shahidla/cds-db-nlquery-mcp — README","quote":"**Read-only.** This package only executes SELECT queries. No INSERT, UPDATE, or DELETE.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Change application records from an agent","outcome":"Create or update application records through an MCP client.","boundary":"Active-record changes through business actions or entity write tools; draft lifecycle is assessed separately.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["write mechanism","runtime","authorization","validation","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"edit-draft-records-from-agent-cap-node","task_ref":"task:edit-draft-records-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:sleibach-cap-mcp-plugin","role":"draft lifecycle adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) exposes draft-new, draft-edit, draft-patch, draft-activate and draft-discard tools for draft-enabled roots.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","Use draft-enabled roots and a consistent authenticated principal across draft calls."],"remaining_work":"Implement application validation and authorization and account for draft locking and activation failures.","remaining_kinds":["application-code"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — draft lifecycle","quote":"For draft-enabled roots (annotated with `@odata.draft.enabled` or `@fiori.draft.enabled`), the wrapper:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — draft activation","quote":"`draft-activate` — publish the pending draft to the active row.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — discard","quote":"`draft-discard` — drop the pending draft without touching the active row.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Node.js prerequisite","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — CAP prerequisite","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Express prerequisite","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — installation","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass.","BTP support for this specific outcome is not established by the reviewed sources."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Edit and activate draft records from an agent","outcome":"Create or edit a draft record and activate or discard the pending change through MCP.","boundary":"Draft-enabled application records; active-record writes and UI rendering are separate outcomes.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["draft lifecycle","principal identity","runtime","validation","locking"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"expose-service-to-agent-btp","task_ref":"task:expose-service-to-agent","capability":"capability:mcp-servers","ecosystem":"btp","origin":"Maintainer-requested connected MCP pilot; source-backed assessment for intake review.","requirement_dimensions":["runtime","transport","authorization","deployment","tenancy"],"contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, creates an MCP server from a custom application HTTP endpoint and its OpenAPI specification.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination.","MCP client access uses OAuth. Authentication and Authorization policies are mandatory and cannot be deleted; Authentication must be first in the request flow."],"remaining_work":"Select the source API operations, configure the destination, tools/resources/prompts and security policies, deploy on Integration Cell and arrange client access.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Create an MCP Server from an API Artifact","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"They are derived from API operations and can represent actions such as retrieving, creating, updating, or deleting data.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"To add and define an MCP prompt:","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"The Authentication policy must always be the first policy in the request flow. Only OAuth-based authentication is supported for an MCP server.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"These policies are mandatory and cannot be deleted.","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official MCP gateway, source types and primitives overview."},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["The Atlas has not executed this scoped integration or verified a production deployment.","Compatibility of the caller's identity provider, source-endpoint permissions, service-plan entitlement and tenant isolation with a particular deployment remains unverified; other providers are unassessed."],"assessed_at":"2026-10-12","drafted_with_ai":true,"scope_note":"Custom application API exposure through Integration Suite; SAP application API eligibility and development-assistance servers are outside this assessment.","name":"Expose an application service to an AI agent","outcome":"Let an MCP client discover and query application data and invoke selected business operations.","boundary":"Application-service exposure to MCP clients. Development-assistance tools and SAP application API gateway scenarios are outside this task.\n\nScoped boundary: Custom application API exposure through Integration Suite; SAP application API eligibility and development-assistance servers are outside this assessment.","omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"expose-service-to-agent-cap-java","task_ref":"task:expose-service-to-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"origin":"Maintainer-requested connected MCP pilot; source-backed assessment for intake review.","requirement_dimensions":["runtime","transport","authorization","deployment","tenancy"],"contributions":[{"ref":"artifact:cap-java-cds-adapter-mcp","role":"application adapter","state":"conditional","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) exposes an annotated custom service for model discovery, querying and invocation of unbound actions and functions.","conditions":["Add the cds-adapter-mcp runtime dependency to the CAP Java application.","Annotate the custom application service with @mcp. Use a dedicated MCP service to restrict the exposed entities and operations.","Provide deployment authorization; the guide records incomplete out-of-the-box XSUAA PKCE support.","Enable model doc comments in the Java application and MTX sidecar when supplying that context through describe.","Connect only trusted MCP agents and use deployment controls to mitigate prompt injection.","Generated tools are not stable APIs; supply application governance controls before productive use.","Use this adapter only for custom CAP application services, not as a gateway or proxy for SAP application APIs."],"remaining_work":"Configure the client, application descriptions and governance; no runtime deployment was tested by the Atlas.","remaining_kinds":["configuration"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to read data from the service.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"or the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"You must enable doc comments in the Java application and in the MTX sidecar.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.","checked":"2026-10-12"}]}],"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"unknowns":["The Atlas has not executed this scoped integration or verified a production deployment.","Other providers and user-specific entitlement, authorization and tenancy requirements remain unassessed."],"assessed_at":"2026-10-12","drafted_with_ai":true,"scope_note":"Custom CAP Java application services; Node.js plugins and development-assistance servers are outside this assessment.","name":"Expose an application service to an AI agent","outcome":"Let an MCP client discover and query application data and invoke selected business operations.","boundary":"Application-service exposure to MCP clients. Development-assistance tools and SAP application API gateway scenarios are outside this task.\n\nScoped boundary: Custom CAP Java application services; Node.js plugins and development-assistance servers are outside this assessment.","omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"expose-service-to-agent-cap-node","task_ref":"task:expose-service-to-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"origin":"Maintainer-requested connected MCP pilot; source-backed assessment for intake review.","requirement_dimensions":["runtime","transport","authorization","deployment","tenancy"],"contributions":[{"ref":"artifact:cap-js-mcp","role":"application adapter","state":"conditional","description":"[@cap-js/mcp](artifact:cap-js-mcp) exposes an annotated custom service for model discovery, querying and invocation of unbound actions and functions.","conditions":["Install @cap-js/mcp into the CAP Node.js application.","Annotate the custom application service with @mcp. Use a dedicated MCP service to restrict the exposed entities and operations.","Provide deployment authorization; the guide records incomplete out-of-the-box XSUAA PKCE support.","Connect only trusted MCP agents and use deployment controls to mitigate prompt injection.","Generated tools are not stable APIs; supply application governance controls before productive use.","Use this adapter only for custom CAP application services, not as a gateway or proxy for SAP application APIs."],"remaining_work":"Configure the client, application descriptions and governance; no runtime deployment was tested by the Atlas.","remaining_kinds":["configuration"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to read data from the service.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"npm add @cap-js/mcp","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.","checked":"2026-10-12"}]},{"ref":"artifact:gavdi-cap-mcp","role":"application plugin","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) exposes annotated entities as resources and functions/actions as tools.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and annotate the entities or operations to expose."],"remaining_work":"Choose the service surface and operations, configure client access and deployment governance.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Expose CAP entities as MCP resources with OData v4 query capabilities","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Convert CAP functions and actions into executable MCP tools","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"}]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external OData bridge","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) queries a custom application OData V4 endpoint and invokes its exposed operations.","conditions":["Configure a reachable custom CAP/OData V4 service and its credentials; run the separate Node.js bridge process.","Enable write mode for action invocation."],"remaining_work":"Operate the bridge and configure backend credentials and exposure.","remaining_kinds":["configuration","own-component"],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"| `query_entity` | The workhorse: filter, select, expand, orderBy, paging, `$count` |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"| `invoke_action` | Call an action. **Write mode only** |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"`cap-mcp-bridge` runs\n**outside** the service and consumes `$metadata` over HTTP.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"That starts an MCP server on stdio.","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"application plugin","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) derives MCP resources and tools from annotated CDS entities and operations.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","The README requires Node.js 18+, @sap/cds 9+ and Express 4+."],"remaining_work":"Choose annotations, configure authorization and session handling and validate the selected application operations.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"- Node.js 18+\n- `@sap/cds` 9+\n- `express` 4+","checked":"2026-10-12"}]}],"readings":[{"ref":"content:sap-tutorial-add-mcp-capabilities-to-a-cap-service","relevance":"Walkthrough of exposing a CAP Node.js service with [@cap-js/mcp](artifact:cap-js-mcp) and connecting a local coding agent. It does not assess the independent implementations."},{"ref":"content:sap-tutorial-cap-examine-mcp-startup","relevance":"Inspects startup, tool discovery and queries through the official adapter. The tutorial’s CatalogService has no actions or functions, so it does not demonstrate operation invocation."},{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"unknowns":["The four contributions are separate alternatives; no combined design is asserted or executed by the Atlas.","Other providers on this capability page remain unassessed for the complete service-exposure outcome.","Transport, authentication, tenancy and production behavior have not been tested by the Atlas.","CAP Java and BTP have separate proposed assessments; draft lifecycle, prompts, resources and interactive UI have outcome-specific assessments."],"assessed_at":"2026-10-12","drafted_with_ai":true,"scope_note":"Custom CAP Node.js application-service exposure through MCP. CAP Java, ABAP, development-assistance tools and SAP application API gateway scenarios are outside this assessment.","name":"Expose an application service to an AI agent","outcome":"Let an MCP client discover and query application data and invoke selected business operations.","boundary":"Application-service exposure to MCP clients. Development-assistance tools and SAP application API gateway scenarios are outside this task.\n\nScoped boundary: Custom CAP Node.js application-service exposure through MCP. CAP Java, ABAP, development-assistance tools and SAP application API gateway scenarios are outside this assessment.","omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"invoke-business-operation-from-agent-btp","task_ref":"task:invoke-business-operation-from-agent","capability":"capability:mcp-servers","ecosystem":"btp","contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, exposes selected application API operations as MCP tools.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination."],"remaining_work":"Select the source API operations, configure the destination, tools/resources/prompts and security policies, deploy on Integration Cell and arrange client access.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — MCP server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP source","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Integration Suite — runtime","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — plan availability","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP OpenAPI versions","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — tool operations","quote":"They are derived from API operations and can represent actions such as retrieving, creating, updating, or deleting data.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource configuration","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource method restriction","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — prompt configuration","quote":"To add and define an MCP prompt:","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official description of gateway responsibilities and the tools, resources and prompts primitives."},{"ref":"content:building-mcp-servers-with-sap-integration-suite","relevance":"Explains intent-shaped business tools and orchestration responsibilities; its conceptual create_customer example is not a verified implementation."},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Invoke a business operation from an agent","outcome":"Invoke a selected application business operation through an MCP tool.","boundary":"Calling application operations; generating business logic or orchestrating a complete multi-system process is outside this task.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["bound or unbound operation","runtime","authorization","transport"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"invoke-business-operation-from-agent-cap-java","task_ref":"task:invoke-business-operation-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"contributions":[{"ref":"artifact:cap-java-cds-adapter-mcp","role":"application adapter","state":"conditional","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) generates a call tool for unbound application actions and functions.","conditions":["Add the cds-adapter-mcp runtime dependency to the CAP Java application.","Annotate the custom application service with @mcp. Use a dedicated MCP service to restrict the exposed entities and operations.","Implement and expose the unbound action or function and its required parameters.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly.","Enable model doc comments in the Java application and MTX sidecar when supplying that context through describe.","Connect only trusted MCP agents and use deployment controls to mitigate prompt injection.","Generated tools are not stable APIs; supply application governance controls before productive use.","Use this adapter only for custom CAP application services, not as a gateway or proxy for SAP application APIs."],"remaining_work":"Implement business rules, validation and authorization in the application.","remaining_kinds":["application-code"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"or the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"You must enable doc comments in the Java application and in the MTX sidecar.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Invoke a business operation from an agent","outcome":"Invoke a selected application business operation through an MCP tool.","boundary":"Calling application operations; generating business logic or orchestrating a complete multi-system process is outside this task.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["bound or unbound operation","runtime","authorization","transport"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"invoke-business-operation-from-agent-cap-node","task_ref":"task:invoke-business-operation-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:cap-js-mcp","role":"application adapter","state":"conditional","description":"[@cap-js/mcp](artifact:cap-js-mcp) generates a call tool for unbound application actions and functions.","conditions":["Install @cap-js/mcp into the CAP Node.js application.","Annotate the custom application service with @mcp. Use a dedicated MCP service to restrict the exposed entities and operations.","Implement and expose the unbound action or function and its required parameters.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly.","Connect only trusted MCP agents and use deployment controls to mitigate prompt injection.","Generated tools are not stable APIs; supply application governance controls before productive use.","Use this adapter only for custom CAP application services, not as a gateway or proxy for SAP application APIs."],"remaining_work":"Implement business rules, validation and authorization in the application.","remaining_kinds":["application-code"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This tool is used to call unbound actions or functions.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"npm add @cap-js/mcp","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"Model Context Protocol Adapter | capire","quote":"Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.","checked":"2026-10-12"}]},{"ref":"artifact:gavdi-cap-mcp","role":"model-derived tool adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) turns annotated functions and actions into executable MCP tools.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and annotate the entities or operations to expose."],"remaining_work":"Implement business logic and choose the operation parameters and caller permissions.","remaining_kinds":["configuration","application-code"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Convert CAP functions and actions into executable MCP tools","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"model-derived tool adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) turns annotated application functions and actions into tools.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","The README requires Node.js 18+, @sap/cds 9+ and Express 4+."],"remaining_work":"Implement and authorize the operation; elicitation is limited to direct tools, not entity wrappers.","remaining_kinds":["application-code"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Elicitation is supported for direct tools only, not entity wrappers.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"- Node.js 18+\n- `@sap/cds` 9+\n- `express` 4+","checked":"2026-10-12"}]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external OData bridge","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) invokes operations described by the backend OData metadata.","conditions":["Configure a reachable custom CAP/OData V4 service and its credentials; run the separate Node.js bridge process.","Action invocation requires write mode to be enabled."],"remaining_work":"Operate the bridge and choose the action allowlist; backend logic and permissions remain in the service.","remaining_kinds":["configuration","own-component"],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"| `invoke_action` | Call an action. **Write mode only** |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"| `invoke_function` | Call a read-only OData function (unbound or bound) |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"`cap-mcp-bridge` runs\n**outside** the service and consumes `$metadata` over HTTP.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"That starts an MCP server on stdio.","checked":"2026-10-12"}]},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom application tool server","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) lets the application supply custom business tools through configured modules.","conditions":["Install @neoimpulse/cap-js-mcp in a CAP Node.js application and configure its component module paths.","Choose the configurable authentication setting; when enabled, configure API-key access as described in the README.","Implement custom tool modules that invoke the real application service and its authorised operations; the stock product CRUD tools do not persist application records."],"remaining_work":"Implement the business operation and its authorization against real application services; built-in product tools are demonstrations.","remaining_kinds":["application-code"],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"In a real application, you would implement tools that interact with your actual CAP services and data models.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Authentication**: Configurable API key authentication","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-tools\"","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"They use in-memory data storage and are not intended for production use.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Invoke a business operation from an agent","outcome":"Invoke a selected application business operation through an MCP tool.","boundary":"Calling application operations; generating business logic or orchestrating a complete multi-system process is outside this task.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["bound or unbound operation","runtime","authorization","transport"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"provide-application-context-as-mcp-resources-btp","task_ref":"task:provide-application-context-as-mcp-resources","capability":"capability:mcp-servers","ecosystem":"btp","contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, supports URI-addressed resources for application data and context.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination.","Only GET API resources can be listed as MCP resources; the HTTP configuration guide states a limit of 15 resources per server.","MCP client access uses OAuth. Authentication and Authorization policies are mandatory and cannot be deleted; Authentication is first in the request flow."],"remaining_work":"Choose eligible GET resources, configure their URI templates and schemas, secure access and deploy the MCP server on Integration Cell.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Create an MCP Server from an API Artifact","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Create an MCP Server from an HTTP Endpoint","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"MCP Server","quote":"They represent information that agents can retrieve and use as context when performing tasks or generating responses.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"Each MCP server supports up to 15 resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"The Authentication policy must always be the first policy in the request flow. Only OAuth-based authentication is supported for an MCP server.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Configure an MCP Server Created from an HTTP Endpoint","quote":"These policies are mandatory and cannot be deleted.","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official description of gateway responsibilities and the tools, resources and prompts primitives."},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source resource selection, GET and resource-count restrictions, URI templates and mandatory client-access policies."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Provide application context as MCP resources","outcome":"Let an MCP client retrieve application data or schema context through resource URIs.","boundary":"The MCP resources primitive; a tool returning text or a document merely mentioning MCP is not a resource implementation.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["resource type","resource handler","runtime","authorization"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"provide-application-context-as-mcp-resources-cap-node","task_ref":"task:provide-application-context-as-mcp-resources","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:gavdi-cap-mcp","role":"entity resource adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) exposes annotated entity data through MCP resources.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and annotate the entities or operations to expose.","Dynamic resource queries require all declared query parameters because of the documented SDK limitation."],"remaining_work":"Choose resource entities and supported query parameters and enforce caller permissions.","remaining_kinds":["configuration","application-code"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Expose CAP entities as MCP resources with OData v4 query capabilities","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SDK Bug**: Dynamic resource queries require all query parameters due to `@modelcontextprotocol/sdk` RFC template string issue","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"entity resource adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) derives resources from annotated CDS entities.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","The README requires Node.js 18+, @sap/cds 9+ and Express 4+.","Dynamic resource queries must supply all declared query parameters because of the documented SDK limitation."],"remaining_work":"Choose the exposed data, fields and permissions; interactive UI resources are a separate task.","sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"- Node.js 18+\n- `@sap/cds` 9+\n- `express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Dynamic resource queries must supply all declared query parameters (SDK limitation).","checked":"2026-10-12"}]},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom resource module server","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) loads extensible file/data resource handlers from configured application modules.","conditions":["Install @neoimpulse/cap-js-mcp in a CAP Node.js application and configure its component module paths.","Choose the configurable authentication setting; when enabled, configure API-key access as described in the README."],"remaining_work":"Implement resource handlers and access controls for the desired application context.","remaining_kinds":["application-code"],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Resources**: File and data resource access (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Authentication**: Configurable API key authentication","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-resources\"","checked":"2026-10-12"}]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"schema resource server","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) exposes service and entity schemas as MCP resources.","conditions":["Configure a reachable custom CAP/OData V4 service and its credentials; run the separate Node.js bridge process."],"remaining_work":"Choose the backend service and permissions; schema resources do not establish arbitrary document-file hosting.","sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"Every entity schema is also an MCP **resource** at `cap://entity/{name}`","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"`cap-mcp-bridge` runs\n**outside** the service and consumes `$metadata` over HTTP.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"SanoberRehman/cap-mcp-bridge — README","quote":"That starts an MCP server on stdio.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Provide application context as MCP resources","outcome":"Let an MCP client retrieve application data or schema context through resource URIs.","boundary":"The MCP resources primitive; a tool returning text or a document merely mentioning MCP is not a resource implementation.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["resource type","resource handler","runtime","authorization"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"publish-reusable-mcp-prompts-btp","task_ref":"task:publish-reusable-mcp-prompts","capability":"capability:mcp-servers","ecosystem":"btp","contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, supports parameterized MCP prompt templates.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination."],"remaining_work":"Select the source API operations, configure the destination, tools/resources/prompts and security policies, deploy on Integration Cell and arrange client access.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — MCP server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP source","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Integration Suite — runtime","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — plan availability","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP OpenAPI versions","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — prompt parameters","quote":"Prompts can accept arguments that dynamically customize their content.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource configuration","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource method restriction","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — prompt configuration","quote":"To add and define an MCP prompt:","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official description of gateway responsibilities and the tools, resources and prompts primitives."},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Publish reusable MCP prompts","outcome":"Let an MCP client discover and retrieve reusable, parameterized interaction templates.","boundary":"Server-published MCP prompts; arbitrary application instructions and complete automated workflows are separate concerns.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["template arguments","prompt handler","runtime","client support"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"publish-reusable-mcp-prompts-cap-node","task_ref":"task:publish-reusable-mcp-prompts","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:gavdi-cap-mcp","role":"prompt template adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) publishes prompt templates declared on the service.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and declare prompt templates on the service with @mcp.prompts."],"remaining_work":"Author templates and arguments and check client support; a prompt does not implement business logic.","remaining_kinds":["application-code"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"Define reusable prompt templates for AI interactions","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"CAP MCP Plugin — gavdilabs/cap-mcp-plugin README","quote":"annotate CatalogService with @mcp.prompts: [{","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"prompt template adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) publishes reusable prompt templates declared on the service.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","The README requires Node.js 18+, @sap/cds 9+ and Express 4+."],"remaining_work":"Author template inputs and content and arrange client access.","remaining_kinds":["configuration","application-code"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"CAP MCP Plugin — sleibach/cap-mcp-plugin README","quote":"- Node.js 18+\n- `@sap/cds` 9+\n- `express` 4+","checked":"2026-10-12"}]},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"custom prompt module server","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) loads extensible prompt-template modules from the application.","conditions":["Install @neoimpulse/cap-js-mcp in a CAP Node.js application and configure its component module paths.","Choose the configurable authentication setting; when enabled, configure API-key access as described in the README."],"remaining_work":"Implement template modules and arguments and verify the selected client can retrieve them.","remaining_kinds":["application-code"],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**MCP Prompts**: Template-based prompt system (extensible)","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"**Authentication**: Configurable API key authentication","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"@neoimpulse/cap-js-mcp — published npm README","quote":"\"path\": \"./srv/lib/mcp-prompts\"","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Publish reusable MCP prompts","outcome":"Let an MCP client discover and retrieve reusable, parameterized interaction templates.","boundary":"Server-published MCP prompts; arbitrary application instructions and complete automated workflows are separate concerns.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["template arguments","prompt handler","runtime","client support"],"readings":[],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"query-application-data-from-agent-btp","task_ref":"task:query-application-data-from-agent","capability":"capability:mcp-servers","ecosystem":"btp","contributions":[{"ref":"artifact:btp-api-management","role":"managed MCP gateway","state":"conditional","description":"[API Management](artifact:btp-api-management), on the assessed HTTP/OpenAPI source path, exposes selected application API retrieval operations as MCP tools.","conditions":["Activate API Management and the Integration Cell runtime; assign PI_Integration_Developer and create an integration package.","The selected Integration Suite service plan must include this feature.","For the assessed HTTP source path, supply OpenAPI 3.0.0–3.0.3 and a reachable custom application endpoint or supported destination."],"remaining_work":"Select the source API operations, configure the destination, tools/resources/prompts and security policies, deploy on Integration Cell and arrange client access.","remaining_kinds":["configuration"],"sources":[{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — MCP server","quote":"An MCP Server is an artifact you create in SAP Integration Suite to expose your enterprise APIs and data to AI agents in a structured, governed way.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP source","quote":"Create an MCP Server from any HTTP endpoint by providing its OpenAPI specification.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-api-artifact-9f18140.md","title":"Integration Suite — runtime","quote":"The MCP server can be only deployed and managed over Integration Cell runtime profile.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — plan availability","quote":"Availability of this feature depends upon the SAP Integration Suite service plan that you use.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/create-an-mcp-server-from-an-http-endpoint-b59f141.md","title":"Integration Suite — HTTP OpenAPI versions","quote":"The OpenAPI specification must be a version between 3.0.0 and 3.0.3. Swagger 2.0 and earlier versions are not supported.","checked":"2026-10-12"},{"url":"https://raw.githubusercontent.com/SAP-docs/btp-integration-suite/main/docs/ISuite_Integrations_APIs/mcp-server-9eb9239.md","title":"Integration Suite — tool operations","quote":"They are derived from API operations and can represent actions such as retrieving, creating, updating, or deleting data.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource configuration","quote":"You can expose API resources as MCP resources, allowing AI agents to access data and context from your API.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — resource method restriction","quote":"Only the API resources with GET method will be listed for MCP resources.","checked":"2026-10-12"},{"url":"https://help.sap.com/docs/integration-suite/isuite-integrations-and-apis/f58f7b04b86246419563fba744f073bd","title":"Integration Suite — prompt configuration","quote":"To add and define an MCP prompt:","checked":"2026-10-12"}]}],"readings":[{"ref":"content:integration-suite-mcp-server","relevance":"Official description of gateway responsibilities and the tools, resources and prompts primitives."},{"ref":"content:from-sap-integration-suite-iflow-to-mcp-tools-exposing-odata-apis-to-ai-agents","relevance":"Published Northwind/iFlow walkthrough of exposing and invoking retrieval tools; its trial/client-credentials setup is specific to the example.","shows":["artifact:btp-api-management"]},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Query application data from an agent","outcome":"Retrieve selected application records through MCP without changing those records.","boundary":"Querying application data; exposing other write tools and granting write permissions are separate requirements.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["permitted operations","runtime","authorization","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"query-application-data-from-agent-cap-java","task_ref":"task:query-application-data-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["java"],"contributions":[{"ref":"artifact:cap-java-cds-adapter-mcp","role":"application adapter","state":"conditional","description":"[com.sap.cds:cds-adapter-mcp](artifact:cap-java-cds-adapter-mcp) generates describe and query tools for entities exposed by an annotated service.","conditions":["Add the cds-adapter-mcp runtime dependency to the CAP Java application.","Annotate the custom application service with @mcp; choose the exposed entities and operations.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly.","Enable model doc comments in the Java application and MTX sidecar when supplying that context through describe."],"remaining_work":"Shape the service projection and caller permissions; configure the client and deployment authorization.","remaining_kinds":["configuration"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — service exposure","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — query","quote":"This tool is used to read data from the service.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — Java installation","quote":"or the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — XSUAA PKCE limitation","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — model descriptions","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — Java model context","quote":"You must enable doc comments in the Java application and in the MTX sidecar.","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Query application data from an agent","outcome":"Retrieve selected application records through MCP without changing those records.","boundary":"Querying application data; exposing other write tools and granting write permissions are separate requirements.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["permitted operations","runtime","authorization","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"query-application-data-from-agent-cap-node","task_ref":"task:query-application-data-from-agent","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:cap-js-mcp","role":"application adapter","state":"conditional","description":"[@cap-js/mcp](artifact:cap-js-mcp) generates describe and query tools for entities exposed by an annotated service.","conditions":["Install @cap-js/mcp into the CAP Node.js application.","Annotate the custom application service with @mcp; choose the exposed entities and operations.","The guide records incomplete out-of-the-box XSUAA authorization with PKCE; choose and validate deployment authorization accordingly."],"remaining_work":"Shape the service projection and caller permissions; configure the client and deployment authorization.","remaining_kinds":["configuration"],"sources":[{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — service exposure","quote":"Simply add the @mcp annotation to a service definition to expose it via MCP.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — query","quote":"This tool is used to read data from the service.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — XSUAA PKCE limitation","quote":"out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — model descriptions","quote":"This information is included in the output of the describe tool","checked":"2026-10-12"},{"url":"https://cap.cloud.sap/docs/guides/ai/cap-mcp","title":"CAP MCP adapter — Node.js installation","quote":"npm add @cap-js/mcp","checked":"2026-10-12"}]},{"ref":"artifact:gavdi-cap-mcp","role":"model-derived resource/tool adapter","state":"conditional","description":"[@gavdi/cap-mcp](artifact:gavdi-cap-mcp) exposes annotated entities as queryable MCP resources and optional query/get tools.","conditions":["Node.js 18+, SAP CAP 10+ and Express 5+, as stated in the README.","Install @gavdi/cap-mcp, configure cds.mcp and annotate the entities or operations to expose."],"remaining_work":"Select entities and query modes; restrict caller permissions separately from output-field omission.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"GAVDI — resources","quote":"Expose CAP entities as MCP resources with OData v4 query capabilities","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"GAVDI — optional entity wrappers","quote":"Expose CAP entities as tools (`query`, `get`, and optionally `create`, `update`) for LLM tool use while keeping resources intact","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"GAVDI — Node.js prerequisite","quote":"**Node.js**: Version 18 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"GAVDI — CAP prerequisite","quote":"**SAP CAP**: Version 10 or higher","checked":"2026-10-12"},{"url":"https://github.com/gavdilabs/cap-mcp-plugin","title":"GAVDI — Express prerequisite","quote":"**Express**: Version 5 or higher","checked":"2026-10-12"}]},{"ref":"artifact:sleibach-cap-mcp-plugin","role":"model-derived resource/tool adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) exposes annotated entities as resources and query/get wrapper tools.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations."],"remaining_work":"Select the model surface and read modes, configure authorization and choose session handling.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — model-derived primitives","quote":"Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — querying","quote":"`query` — list/search rows","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Node.js prerequisite","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — CAP prerequisite","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Express prerequisite","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — installation","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"}]},{"ref":"artifact:neoimpulse-cap-js-mcp","role":"application module server","state":"conditional","description":"[@neoimpulse/cap-js-mcp](artifact:neoimpulse-cap-js-mcp) includes execute_odata_query and lets an application extend its configured tool modules.","conditions":["Install @neoimpulse/cap-js-mcp in a CAP Node.js application and configure its component module paths.","Configure the API-key authentication described in the published README."],"remaining_work":"Select the entity/service and implement any additional application tools; its product CRUD tools use demo in-memory data.","remaining_kinds":["application-code"],"sources":[{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"Neoimpulse published npm README — query tool","quote":"**`execute_odata_query`** - Execute OData queries","checked":"2026-10-12"},{"url":"https://www.npmjs.com/package/@neoimpulse/cap-js-mcp","title":"Neoimpulse — demo tool boundary","quote":"The built-in product catalog tools are for demonstration and testing purposes only.","checked":"2026-10-12"}]},{"ref":"artifact:sanoberrehman-cap-mcp-bridge","role":"external OData bridge","state":"conditional","description":"[cap-mcp-bridge](artifact:sanoberrehman-cap-mcp-bridge) queries entity data and follows associations from the service metadata.","conditions":["Configure a reachable custom CAP/OData V4 service and its credentials; run the separate Node.js bridge process."],"remaining_work":"Configure entity exposure, client access and the separate process; backend permissions are still required.","remaining_kinds":["configuration","own-component"],"sources":[{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"cap-mcp-bridge — querying","quote":"| `query_entity` | The workhorse: filter, select, expand, orderBy, paging, `$count` |","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"cap-mcp-bridge — external process","quote":"`cap-mcp-bridge` runs\n**outside** the service and consumes `$metadata` over HTTP.","checked":"2026-10-12"},{"url":"https://github.com/SanoberRehman/cap-mcp-bridge","title":"cap-mcp-bridge — client transport","quote":"That starts an MCP server on stdio.","checked":"2026-10-12"}]},{"ref":"artifact:shahid-la-cds-db-nlquery-mcp","role":"database-query server","state":"conditional","description":"[@shahid.la/cds-db-nlquery-mcp](artifact:shahid-la-cds-db-nlquery-mcp) translates natural-language questions into SELECT queries against CDS database-layer entities; it does not query the OData service layer.","conditions":["A CAP project with @sap/cds >= 7 and a configured CDS database, plus an LLM provider API key.","For production, configure the dedicated read-only database user described in the README."],"remaining_work":"Check database access against application authorization requirements; service-layer handlers and permissions are not established by this database route.","sources":[{"url":"https://github.com/shahidla/cds-db-nlquery-mcp","title":"cds-db-nlquery-mcp — read-only database queries","quote":"**Read-only.** This package only executes SELECT queries. No INSERT, UPDATE, or DELETE.","checked":"2026-10-12"},{"url":"https://github.com/shahidla/cds-db-nlquery-mcp","title":"cds-db-nlquery-mcp — database boundary","quote":"**Targets the `db/` layer, not OData services.**","checked":"2026-10-12"},{"url":"https://github.com/shahidla/cds-db-nlquery-mcp","title":"cds-db-nlquery-mcp — prerequisite","quote":"A CAP project with `@sap/cds >= 7`","checked":"2026-10-12"}]}],"readings":[{"ref":"content:sap-tutorial-add-mcp-capabilities-to-a-cap-service","relevance":"Shows the official Node.js adapter exposing a sample Books service and querying it from OpenCode.","shows":["artifact:cap-js-mcp"]},{"ref":"content:sap-tutorial-cap-examine-mcp-startup","relevance":"Explains startup, discovery and queries; its sample contains no actions/functions."},{"ref":"content:natural-language-queries-for-sap-cap-via-mcp","relevance":"Explains the separate database-layer query path and its schema annotations; it does not establish service-layer authorization.","shows":["artifact:shahid-la-cds-db-nlquery-mcp"]},{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Query application data from an agent","outcome":"Retrieve selected application records through MCP without changing those records.","boundary":"Querying application data; exposing other write tools and granting write permissions are separate requirements.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["permitted operations","runtime","authorization","deployment"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"query-related-data-across-apis-from-agent-btp","task_ref":"task:query-related-data-across-apis-from-agent","capability":"capability:mcp-servers","ecosystem":"btp","paths":[{"key":"composed-api-mcp","name":"Compose the data API, then expose it through MCP","sources":[{"url":"https://developers.sap.com/tutorials/integration-suite-mcp-server.html","title":"MCP server tutorial — composed graph exposure","quote":"Wrap a composed Business Data Graph as an MCP Server in SAP Integration Suite","checked":"2026-10-12"},{"url":"https://developers.sap.com/tutorials/integration-suite-mcp-server.html","title":"MCP server tutorial — prerequisite composition","quote":"You have completed Build a Supply Risk API with API Composition and have the OData URL and downloaded OpenAPI Specification","checked":"2026-10-12"},{"url":"https://developers.sap.com/tutorials/api-composition-supply-risk.html","title":"Supply risk tutorial — mock backend boundary","quote":"All these APIs are mock APIs publicly hosted for trial.","checked":"2026-10-12"}]}],"contributions":[{"ref":"artifact:btp-api-composition","role":"data API composition","state":"conditional","paths":["composed-api-mcp"],"description":"[API Composition](artifact:btp-api-composition) joins the tutorial’s plant, address-risk and stock sources into a Business Data Graph queried over OData.","conditions":["Activate API Composition, configure the four destinations and model extension, then activate the Business Data Graph.","The published scenario uses publicly hosted mock APIs; actual backend permissions and semantics require application-specific configuration."],"remaining_work":"Define the source APIs, relationships and fields for the actual application and obtain the generated OData URL/OpenAPI specification.","sources":[{"url":"https://developers.sap.com/tutorials/api-composition-supply-risk.html","title":"Supply risk tutorial — composed API","quote":"How to create a Business Data Graph composing four backend APIs into a single unified OData endpoint","checked":"2026-10-12"},{"url":"https://developers.sap.com/tutorials/api-composition-supply-risk.html","title":"Supply risk tutorial — mock backend boundary","quote":"All these APIs are mock APIs publicly hosted for trial.","checked":"2026-10-12"}]},{"ref":"artifact:btp-api-management","role":"MCP gateway","state":"conditional","paths":["composed-api-mcp"],"description":"[API Management](artifact:btp-api-management) exposes selected operations from the composed graph through an Integration Suite MCP server.","conditions":["Activate API Management and Integration Cell and use a service plan supporting the MCP server artifact.","Provide the composed OData URL/OpenAPI file, select retrieval tools and configure the client subscription/credentials described in the tutorial."],"remaining_work":"Configure policies, publish/subscribe through Developer Hub and connect the intended client; the Atlas has not executed this sequence.","remaining_kinds":["configuration"],"sources":[{"url":"https://developers.sap.com/tutorials/integration-suite-mcp-server.html","title":"MCP server tutorial — composed graph exposure","quote":"Wrap a composed Business Data Graph as an MCP Server in SAP Integration Suite","checked":"2026-10-12"},{"url":"https://developers.sap.com/tutorials/integration-suite-mcp-server.html","title":"MCP server tutorial — prerequisite composition","quote":"You have completed Build a Supply Risk API with API Composition and have the OData URL and downloaded OpenAPI Specification","checked":"2026-10-12"}]}],"readings":[{"ref":"content:sap-tutorial-api-composition-supply-risk","relevance":"First part: builds and queries the composed mock data API.","shows":["artifact:btp-api-composition"]},{"ref":"content:sap-tutorial-integration-suite-mcp-server","relevance":"Second part: wraps that composed endpoint, deploys and invokes its retrieval tools.","shows":["artifact:btp-api-management"]},{"ref":"content:integration-suite-mcp-http-configuration","relevance":"HTTP-source MCP configuration, including GET-derived resources, optional prompt arguments/messages and policies."}],"unknowns":["Published mock-backend scenario, not Atlas runtime verification or evidence of actual customer-system API eligibility.","No equivalent CAP Node.js or CAP Java composed-data path was assessed in this pass."],"assessed_at":"2026-10-12","drafted_with_ai":true,"name":"Query related data across APIs from an agent","outcome":"Retrieve related data from several application APIs through one composed interface exposed to an MCP client.","boundary":"Composed data retrieval; cross-system write transactions and orchestration of a complete business process are separate outcomes.","origin":"Maintainer-requested MCP content completion; grounded in the two-part published supply-risk tutorial.","requirement_dimensions":["source APIs","entity joins","backend permissions","deployment","client authorization"],"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"show-application-ui-in-mcp-client-cap-node","task_ref":"task:show-application-ui-in-mcp-client","capability":"capability:mcp-servers","ecosystem":"cap","flavors":["node"],"contributions":[{"ref":"artifact:sleibach-cap-mcp-plugin","role":"MCP Apps resource adapter","state":"conditional","description":"[cap-mcp-plugin](artifact:sleibach-cap-mcp-plugin) registers interactive list/detail HTML resources for wrapped entities with Fiori UI annotations.","conditions":["Install cap-mcp-plugin from its GitHub source into a CAP Node.js application; no npm package is declared.","Configure the MCP endpoint and the model annotations.","Use an MCP host that supports the MCP Apps extension and annotate the entity with @mcp.wrap.tools and Fiori UI metadata."],"remaining_work":"Configure host rendering/CSP and permitted writes; read-only UI settings do not disable the underlying write tools.","remaining_kinds":["configuration"],"sources":[{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — interactive UI resources","quote":"When an entity has `@mcp.wrap.tools` **and** Fiori UI annotations, the plugin registers two `ui://` HTML resources","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — UI write setting","quote":"`apps.write`","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — UI/backend distinction","quote":"the write tools themselves are unaffected","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Node.js prerequisite","quote":"Node.js 18+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — CAP prerequisite","quote":"`@sap/cds` 9+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — Express prerequisite","quote":"`express` 4+","checked":"2026-10-12"},{"url":"https://github.com/sleibach/cap-mcp-plugin","title":"cap-mcp-plugin — installation","quote":"There is **no npm registry package yet**. Install straight from GitHub:","checked":"2026-10-12"}]}],"unknowns":["Source-read assessment; the Atlas has not executed these implementations or verified a combined production deployment.","Options not named here remain unassessed for this outcome; missing evidence is not unsupported behavior.","No corresponding CAP Java assessment is established by this source pass.","BTP support for this specific outcome is not established by the reviewed sources."],"assessed_at":"2026-10-12","drafted_with_ai":true,"readings":[{"ref":"content:cap-mcp-adapter-guide","relevance":"Baseline guide for the official CAP service adapters, runtime configuration and documented tool/operation boundaries."}],"name":"Show an application view inside an MCP client","outcome":"Render an interactive application list or detail view inside a supporting MCP client.","boundary":"MCP UI resources; a normal browser application or generic text tool result does not establish this outcome.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["client extension support","UI annotations","runtime","permitted writes"],"omitted_contributions":0,"assessment_kind":"documented-contributions"}],"shared_tasks":[{"id":"access-external-system-through-mcp-service","name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","aliases":["CAP as a bridge to an external system","wrap an external service in CAP and expose it through MCP","give an AI agent access to remote data through CAP","CAP MCP facade"],"requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true,"related_capabilities":[{"ref":"capability:agent-systems-access","role":"Reach external system data and operations through the application."},{"ref":"capability:service-integration","role":"Connect the application service to the external system."}]},{"id":"change-application-records-from-agent","name":"Change application records from an agent","aliases":["create application records through MCP","update application data with an AI agent"],"outcome":"Create or update application records through an MCP client.","boundary":"Active-record changes through business actions or entity write tools; draft lifecycle is assessed separately.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["write mechanism","runtime","authorization","validation","deployment"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"edit-draft-records-from-agent","name":"Edit and activate draft records from an agent","aliases":["edit a draft through MCP","activate or discard a draft from an AI agent"],"outcome":"Create or edit a draft record and activate or discard the pending change through MCP.","boundary":"Draft-enabled application records; active-record writes and UI rendering are separate outcomes.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["draft lifecycle","principal identity","runtime","validation","locking"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"expose-service-to-agent","name":"Expose an application service to an AI agent","aliases":["Expose my application to an AI agent","Expose my CAP application to an AI agent","MCP service exposure","serve my application over MCP"],"outcome":"Let an MCP client discover and query application data and invoke selected business operations.","boundary":"Application-service exposure to MCP clients. Development-assistance tools and SAP application API gateway scenarios are outside this task.","origin":"Maintainer-requested connected knowledge pilot.","requirement_dimensions":["runtime","transport","authorization","deployment"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"invoke-business-operation-from-agent","name":"Invoke a business operation from an agent","aliases":["call a business action through MCP","submit an order from an AI agent"],"outcome":"Invoke a selected application business operation through an MCP tool.","boundary":"Calling application operations; generating business logic or orchestrating a complete multi-system process is outside this task.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["bound or unbound operation","runtime","authorization","transport"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"provide-application-context-as-mcp-resources","name":"Provide application context as MCP resources","aliases":["serve MCP resources","give an agent application context resources"],"outcome":"Let an MCP client retrieve application data or schema context through resource URIs.","boundary":"The MCP resources primitive; a tool returning text or a document merely mentioning MCP is not a resource implementation.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["resource type","resource handler","runtime","authorization"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"publish-reusable-mcp-prompts","name":"Publish reusable MCP prompts","aliases":["serve prompt templates through MCP","publish reusable prompts for AI clients"],"outcome":"Let an MCP client discover and retrieve reusable, parameterized interaction templates.","boundary":"Server-published MCP prompts; arbitrary application instructions and complete automated workflows are separate concerns.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["template arguments","prompt handler","runtime","client support"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"query-application-data-from-agent","name":"Query application data from an agent","aliases":["query application data through MCP","read application records with an AI agent"],"outcome":"Retrieve selected application records through MCP without changing those records.","boundary":"Querying application data; exposing other write tools and granting write permissions are separate requirements.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["permitted operations","runtime","authorization","deployment"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"query-related-data-across-apis-from-agent","name":"Query related data across APIs from an agent","aliases":["query composed APIs through MCP","give an agent a unified view of multiple APIs"],"outcome":"Retrieve related data from several application APIs through one composed interface exposed to an MCP client.","boundary":"Composed data retrieval; cross-system write transactions and orchestration of a complete business process are separate outcomes.","origin":"Maintainer-requested MCP content completion; grounded in the two-part published supply-risk tutorial.","requirement_dimensions":["source APIs","entity joins","backend permissions","deployment","client authorization"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true},{"id":"show-application-ui-in-mcp-client","name":"Show an application view inside an MCP client","aliases":["MCP Apps for application data","show application UI inside an AI client"],"outcome":"Render an interactive application list or detail view inside a supporting MCP client.","boundary":"MCP UI resources; a normal browser application or generic text tool result does not establish this outcome.","origin":"Maintainer-requested MCP content completion across CAP Node.js, CAP Java and BTP, before page alignment; derived from the retrieved official and maintainer documentation.","requirement_dimensions":["client extension support","UI annotations","runtime","permitted writes"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true}],"related_tasks":[],"options":[{"ref":"artifact:cap-js-mcp","name":"@cap-js/mcp","json":"/artifacts/cap-js-mcp.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:gavdi-cap-mcp","name":"@gavdi/cap-mcp","json":"/artifacts/gavdi-cap-mcp.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:neoimpulse-cap-js-mcp","name":"@neoimpulse/cap-js-mcp","json":"/artifacts/neoimpulse-cap-js-mcp.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:odatano-core-mcp","name":"@odatano/core-mcp","json":"/artifacts/odatano-core-mcp.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:odatano-nightgate-mcp","name":"@odatano/nightgate-mcp","json":"/artifacts/odatano-nightgate-mcp.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:shahid-la-cds-db-nlquery-mcp","name":"@shahid.la/cds-db-nlquery-mcp","json":"/artifacts/shahid-la-cds-db-nlquery-mcp.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:abap2ui5-addons-abap-agent-runtime","name":"abap-agent-runtime","json":"/artifacts/abap2ui5-addons-abap-agent-runtime.json","ecosystem":"abap","origin_ring":"community-org"},{"ref":"artifact:abap-ai-mcp","name":"abap-ai/mcp","json":"/artifacts/abap-ai-mcp.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:abap-ai-mcp2","name":"abap-ai/mcp2","json":"/artifacts/abap-ai-mcp2.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:btp-api-management","name":"API Management","json":"/artifacts/btp-api-management.json","ecosystem":"btp","origin_ring":"sap-official"},{"ref":"artifact:marianfoo-btp-cf-mcp","name":"btp-cf-mcp","json":"/artifacts/marianfoo-btp-cf-mcp.json","ecosystem":"btp","origin_ring":"independent"},{"ref":"artifact:sleibach-cap-mcp-plugin","name":"cap-mcp-plugin","json":"/artifacts/sleibach-cap-mcp-plugin.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-adapter-mcp","name":"com.sap.cds:cds-adapter-mcp","json":"/artifacts/cap-java-cds-adapter-mcp.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:markwury168-sap-mcp","name":"MarkWuRY168/SAP_MCP","json":"/artifacts/markwury168-sap-mcp.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:skybuffer-ai-mcp-server","name":"Skybuffer AI MCP server","json":"/artifacts/skybuffer-ai-mcp-server.json","ecosystem":"abap","origin_ring":"independent"}],"samples":[{"ref":"artifact:sap-samples-ai-enabled-integrations-codejam","name":"ai-enabled-integrations-codejam","json":"/artifacts/sap-samples-ai-enabled-integrations-codejam.json"},{"ref":"artifact:capire-xtravels","name":"xtravels","json":"/artifacts/capire-xtravels.json"}],"explained_by":[{"ref":"content:cap-in-the-age-of-ai-7-vector-embeddings-wrap-up","name":"CAP in the age of AI #7 - vector embeddings wrap-up","json":"/content/cap-in-the-age-of-ai-7-vector-embeddings-wrap-up.json"},{"ref":"content:devtoberfest-2026-cap-mcp-ui5-webmcp","name":"SAP Meets the Agentic Web: CAP MCP - UI5 WebMCP","json":"/content/devtoberfest-2026-cap-mcp-ui5-webmcp.json"},{"ref":"content:devtoberfest-2026-int-31-agentic-ai-integration-suite","name":"Powering Enterprise-Ready Agentic AI with SAP Integration Suite","json":"/content/devtoberfest-2026-int-31-agentic-ai-integration-suite.json"},{"ref":"content:devtoberfest-2026-daniel-hutzel-brain","name":"What's in Daniel Hutzel's brain?","json":"/content/devtoberfest-2026-daniel-hutzel-brain.json"},{"ref":"content:devtoberfest-2026-int23-agent-calls-sap","name":"🔴 Your Agent Wants to Call SAP. Now What?","json":"/content/devtoberfest-2026-int23-agent-calls-sap.json"},{"ref":"content:devtoberfest-2026-cap-the-road-ahead","name":"CAP: The Road Ahead - Simplicity in an AI Era","json":"/content/devtoberfest-2026-cap-the-road-ahead.json"},{"ref":"content:expose-rfcs-as-mcp-tools-in-integration-suite","name":"Expose RFCs as MCP Tools in Integration Suite","json":"/content/expose-rfcs-as-mcp-tools-in-integration-suite.json"},{"ref":"content:what-s-new-in-sap-cloud-application-programming-model-september-2026","name":"What's new in SAP Cloud Application Programming Model – September 2026","json":"/content/what-s-new-in-sap-cloud-application-programming-model-september-2026.json"},{"ref":"content:devtoberfest-2026-from-apis-to-agent-tools-mcp-gateway","name":"From APIs to Agent Tools: How MCP Gateway changes what Integration means","json":"/content/devtoberfest-2026-from-apis-to-agent-tools-mcp-gateway.json"},{"ref":"content:devtoberfest-2026-int-13-joule-desktop-mcp-gateway","name":"Supercharge Joule Desktop: Connect Any SAP API in Minutes with MCP Gateway","json":"/content/devtoberfest-2026-int-13-joule-desktop-mcp-gateway.json"},{"ref":"content:sap-tutorial-integration-suite-mcp-server","name":"Create an MCP Server for Enterprise AI Agents","json":"/content/sap-tutorial-integration-suite-mcp-server.json"},{"ref":"content:governance-at-scale-why-a-clean-core-is-what-makes-agent-governance-enforceable","name":"Governance at Scale: Why a Clean Core Is What Makes Agent Governance Enforceable","json":"/content/governance-at-scale-why-a-clean-core-is-what-makes-agent-governance-enforceable.json"},{"ref":"content:no-code-mcp-servers-with-sap-integration-suite-from-rest-api-to-ai-agent","name":"No-Code MCP Servers with SAP Integration Suite: From REST API to AI Agent","json":"/content/no-code-mcp-servers-with-sap-integration-suite-from-rest-api-to-ai-agent.json"},{"ref":"content:september-15th-what-s-new-on-developers-sap-com","name":"September 15th: What's New on developers.sap.com","json":"/content/september-15th-what-s-new-on-developers-sap-com.json"},{"ref":"content:building-and-consuming-an-mcp-server-in-sap-integration-suite-connecting-it-to-c","name":"Building and Consuming an MCP Server in SAP Integration Suite - Connecting it to Claude and Joule","json":"/content/building-and-consuming-an-mcp-server-in-sap-integration-suite-connecting-it-to-c.json"},{"ref":"content:sap-just-became-ai-agent-ready-here-s-a-step-by-step-mcp-walkthrough","name":"SAP Just Became AI-Agent Ready — Here's a Step-by-Step MCP Walkthrough","json":"/content/sap-just-became-ai-agent-ready-here-s-a-step-by-step-mcp-walkthrough.json"},{"ref":"content:sap-integration-suite-mcp-a-practical-architecture-for-ai-agents-and-sap","name":"SAP Integration Suite + MCP: A Practical Architecture for AI Agents and SAP","json":"/content/sap-integration-suite-mcp-a-practical-architecture-for-ai-agents-and-sap.json"},{"ref":"content:from-sap-sales-and-service-cloud-v2-apis-to-ai-building-an-mcp-server-with-cap-n","name":"From SAP Sales and Service Cloud V2 APIs to AI: Building an MCP Server with CAP Node.js","json":"/content/from-sap-sales-and-service-cloud-v2-apis-to-ai-building-an-mcp-server-with-cap-n.json"},{"ref":"content:sap-s-api-policy-on-ai-agents-what-it-prohibits-allows-and-leaves-open","name":"SAP's API Policy on AI Agents: What It Prohibits, Allows, and Leaves Open","json":"/content/sap-s-api-policy-on-ai-agents-what-it-prohibits-allows-and-leaves-open.json"},{"ref":"content:running-ai-agents-against-sap-ecc-6-0-lessons-from-building-an-in-system-mcp-ser","name":"Running AI agents against SAP ECC 6.0: lessons from building an in-system MCP server","json":"/content/running-ai-agents-against-sap-ecc-6-0-lessons-from-building-an-in-system-mcp-ser.json"},{"ref":"content:ac-agentic-ai-and-ai-agents","name":"Agentic AI & AI Agents","json":"/content/ac-agentic-ai-and-ai-agents.json"},{"ref":"content:from-dashboard-to-conversational-ai-in-minutes-adding-mcp-to-an-existing-cap-app","name":"From Dashboard to Conversational AI in Minutes: Adding MCP to an Existing CAP Application","json":"/content/from-dashboard-to-conversational-ai-in-minutes-adding-mcp-to-an-existing-cap-app.json"},{"ref":"content:cap-in-the-age-of-ai-3-from-mcp-to-a2a","name":"CAP in the age of AI #3 - from MCP to A2A","json":"/content/cap-in-the-age-of-ai-3-from-mcp-to-a2a.json"},{"ref":"content:mcp-servers-are-the-new-z-tables","name":"MCP Servers are the New Z-Tables","json":"/content/mcp-servers-are-the-new-z-tables.json"},{"ref":"content:connecting-a-custom-mcp-server-to-joule-work-desktop-a-seamless-and-secure-authe","name":"Connecting a Custom MCP Server to Joule Work Desktop: A Seamless and Secure Authentication Flow","json":"/content/connecting-a-custom-mcp-server-to-joule-work-desktop-a-seamless-and-secure-authe.json"},{"ref":"content:cap-in-the-age-of-ai-2-more-on-the-mcp-adapter","name":"CAP in the age of AI #2 - more on the MCP adapter","json":"/content/cap-in-the-age-of-ai-2-more-on-the-mcp-adapter.json"},{"ref":"content:sap-tutorial-add-mcp-capabilities-to-a-cap-service","name":"Add MCP capabilities to a CAP service","json":"/content/sap-tutorial-add-mcp-capabilities-to-a-cap-service.json"},{"ref":"content:cap-in-the-age-of-ai-1-the-mcp-adapter","name":"CAP in the age of AI #1 - the MCP adapter","json":"/content/cap-in-the-age-of-ai-1-the-mcp-adapter.json"},{"ref":"content:cap-in-the-age-of-ai","name":"CAP in the age of AI","json":"/content/cap-in-the-age-of-ai.json"},{"ref":"content:expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2","name":"Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.js","json":"/content/expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2.json"},{"ref":"content:expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js","name":"Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.js","json":"/content/expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js.json"},{"ref":"content:rfc-bapis-meet-ai-agents-why-sap-integration-suite-mcp-server-matters","name":"RFC/BAPIs Meet AI Agents: Why SAP Integration Suite MCP Server Matters","json":"/content/rfc-bapis-meet-ai-agents-why-sap-integration-suite-mcp-server-matters.json"},{"ref":"content:api-composition-seamless-enterprise-data-access-for-developers-and-ai-agents","name":"API Composition: Seamless Enterprise Data Access for Developers and AI Agents","json":"/content/api-composition-seamless-enterprise-data-access-for-developers-and-ai-agents.json"},{"ref":"content:integration-suite-building-an-mcp-server-for-a-sap-ci-monitoring-assistant","name":"Integration Suite: Building an MCP Server for a SAP CI Monitoring Assistant","json":"/content/integration-suite-building-an-mcp-server-for-a-sap-ci-monitoring-assistant.json"},{"ref":"content:mcp-server-for-sap-incentive-management","name":"MCP Server for SAP Incentive Management","json":"/content/mcp-server-for-sap-incentive-management.json"},{"ref":"content:mcp-servers-on-sap-integration-suite-build-your-first-mcp-server-from-an-api","name":"MCP Servers on SAP Integration Suite : Build Your First MCP Server from an API","json":"/content/mcp-servers-on-sap-integration-suite-build-your-first-mcp-server-from-an-api.json"},{"ref":"content:from-sap-integration-suite-iflow-to-mcp-tools-exposing-odata-apis-to-ai-agents","name":"From SAP Integration Suite iFlow to MCP Tools: Exposing OData APIs to AI Agents","json":"/content/from-sap-integration-suite-iflow-to-mcp-tools-exposing-odata-apis-to-ai-agents.json"},{"ref":"content:turn-sap-apis-into-mcp-tools-for-ai-agents-using-sap-integration-suite-free-tria","name":"Turn SAP APIs into MCP Tools for AI Agents using SAP Integration Suite Free Trial","json":"/content/turn-sap-apis-into-mcp-tools-for-ai-agents-using-sap-integration-suite-free-tria.json"},{"ref":"content:ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap","name":"UI5 Has Entered the Chat: Building Interactive MCP Apps for SAP","json":"/content/ui5-has-entered-the-chat-building-interactive-mcp-apps-for-sap.json"},{"ref":"content:building-mcp-servers-with-sap-integration-suite","name":"Building MCP Servers with SAP Integration Suite: What to Design, Not Just How to Connect","json":"/content/building-mcp-servers-with-sap-integration-suite.json"},{"ref":"content:the-easiest-way-to-expose-a-cap-nodejs-project-as-an-mcp-server","name":"The Easiest Way to Expose a CAP Node.js Project as an MCP Server","json":"/content/the-easiest-way-to-expose-a-cap-nodejs-project-as-an-mcp-server.json"},{"ref":"content:natural-language-queries-for-sap-cap-via-mcp","name":"Natural Language Queries for SAP CAP via MCP: The LLM Translates, CDS Executes","json":"/content/natural-language-queries-for-sap-cap-via-mcp.json"},{"ref":"content:ac-hana-ai-toolkit-local-mcp-server","name":"HANA AI Toolkit — Local MCP Server","json":"/content/ac-hana-ai-toolkit-local-mcp-server.json"},{"ref":"content:abap-development-tools-for-visual-studio-code-is-now-available-on-the-vs-code-ma","name":"ABAP development tools for Visual Studio Code is now available on the VS Code marketplace!","json":"/content/abap-development-tools-for-visual-studio-code-is-now-available-on-the-vs-code-ma.json"},{"ref":"content:ac-ai-native-north-star-architecture","name":"AI-native North Star architecture — Platform Layer","json":"/content/ac-ai-native-north-star-architecture.json"},{"ref":"content:agentic-ai-on-btp-a-multi-agent-app-with-pydantic-ai","name":"Agentic AI on BTP: a Multi‑Agent App with Pydantic AI","json":"/content/agentic-ai-on-btp-a-multi-agent-app-with-pydantic-ai.json"},{"ref":"content:agentic-ai-on-btp-a-single-agent-with-langgraph","name":"Agentic AI on BTP: a Single Agent with LangGraph","json":"/content/agentic-ai-on-btp-a-single-agent-with-langgraph.json"},{"ref":"content:btp-audit-log-mcp-server-security-monitoring-with-ai-assistants","name":"BTP Audit Log MCP Server: Security Monitoring with AI Assistants","json":"/content/btp-audit-log-mcp-server-security-monitoring-with-ai-assistants.json"},{"ref":"content:btp-cloud-foundry-mcp-server-managing-cf-environments-with-ai","name":"BTP Cloud Foundry MCP Server: Managing CF Environments with AI","json":"/content/btp-cloud-foundry-mcp-server-managing-cf-environments-with-ai.json"},{"ref":"content:ui5-mcp-server-got-extended-for-ui-integration-cards-generation","name":"UI5 MCP Server Got Extended for UI Integration Cards Generation","json":"/content/ui5-mcp-server-got-extended-for-ui-integration-cards-generation.json"},{"ref":"content:ac-third-party-mcp-server-access-to-sap-solutions-on-btp","name":"Third-Party MCP Server Access to SAP Solutions on BTP","json":"/content/ac-third-party-mcp-server-access-to-sap-solutions-on-btp.json"},{"ref":"content:btp-ai-bp-mcp","name":"Model Context Protocol (MCP)","json":"/content/btp-ai-bp-mcp.json"},{"ref":"content:cap-mcp-adapter-guide","name":"Model Context Protocol Adapter — CAP guide","json":"/content/cap-mcp-adapter-guide.json"},{"ref":"content:cap-node-js-expert-session-6-the-mcp-adapter","name":"CAP Node.js Expert Session #6 - The MCP Adapter","json":"/content/cap-node-js-expert-session-6-the-mcp-adapter.json"},{"ref":"content:integration-suite-mcp-http-configuration","name":"Configure an MCP Server Created from an HTTP Endpoint","json":"/content/integration-suite-mcp-http-configuration.json"},{"ref":"content:integration-suite-mcp-server","name":"MCP Server — SAP Integration Suite","json":"/content/integration-suite-mcp-server.json"},{"ref":"content:sap-tutorial-cap-examine-mcp-startup","name":"Examine the details of the Model Context Protocol on startup","json":"/content/sap-tutorial-cap-examine-mcp-startup.json"},{"ref":"content:teched-2026-ad262","name":"Agentic CAP: Build MCP servers and enterprise AI agents","json":"/content/teched-2026-ad262.json"}],"normative_context":[{"ref":"instrument:sap-api-policy-v4-2026a","name":"SAP API Policy","json":"/instruments/sap-api-policy-v4-2026a.json","prominence":"prominent","sections":["1.1","1.2","2.2.2"]},{"ref":"instrument:sap-developer-license-3-2-cap","name":"SAP Developer License Agreement","json":"/instruments/sap-developer-license-3-2-cap.json","prominence":"prominent","sections":["1","3"]}]}}