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

cap-mcp-bridge

Points at a running CAP or OData V4 service, reads its $metadata, and turns what it finds into MCP tools — list, describe, query with validated filters, expand, and invoke functions and actions.

It sits outside the service rather than inside it, so nothing in the CDS model has to be annotated and the target does not have to be CAP at all — any OData V4 endpoint that serves $metadata works. That is the trade against the plugins that generate a server from the model: no per-service code, but also no model-level control over what is exposed.

Facts

Latestv0.1.0ReleasedLast pushLicenceMIT

Where it sits

Lives in
Provides
Agent access to your systemsCAPAgent access to your systemscapabilityGiving an AI agent access to the business data, configuration or operations of systems you run through an MCP server. [Serving your application over MCP](capability:mcp-servers) exposes your own service contract; system access reaches the systems behind it, and one implementation may do both. Development assistance belongs to [agent access to your code](capability:agent-code-access).
Flavors
Node.jsfrom its runtime

Who is behind it

SanoberSanoberPersonMaintains this
In the atlas: maintains 1, contributes to 1
@SanoberRehman
maintainer

Before choosing this

Conditions

PolicySAP API Policy 4.2026a§ 1.1, 1.2, 2.2.2from Agent access to your systemsAn MCP server uses SAP APIs to supply tools, resources or data to an agent.
  • § 1.1 Published APIs. Published APIs are made available for the documented purposes identified by SAP, including integration, extensions and data exchange.
  • § 1.2 Non-Published APIs. Customer and third-party applications must not access non-published APIs except where documentation permits it or SAP otherwise authorizes it.
  • § 2.2.2 AI call sequences and data extraction. Outside SAP-endorsed architectures, data services or expressly identified pathways, the policy prohibits specified agentic API use and systematic or large-scale extraction.

MCP does not replace the API's documented-use boundary. Check that every endpoint is published for the intended use and whether the policy's AI-call or extraction provisions apply to the design.

SAP API Policy 4.2026a →
LicenceSAP Developer License Agreement 3.2 CAP§ 1, 3from Agent access to your systemsAn MCP server uses SAP APIs to supply tools, resources or data to an agent.
  • § 1 License. Productive customer applications are limited to SAP BTP or another SAP-licensed platform, and mass extraction to a non-SAP product is restricted except where solely required for SAP interoperability.
  • § 3 Artificial Intelligence Training. The agreement prohibits use of the covered materials and customer applications for training artificial-intelligence models or systems.

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.

SAP Developer License Agreement 3.2 CAP →

What it declares

Every artifact

Type
MCP server
Origin
Independently maintained
Runtime
Node.js

Tasks this contributes to6Beta

Access an external system through an application MCP serviceAn AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.Java, Node.js4 scopes
CAP JavaCovers, under conditions

Dated assessment history · last accepted 2026-10-12. Excluded from the current connected answer.

What it does

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.

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.

Remaining work

Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.

All options on the Serve your application over MCP page →
CAP JavaAssessed, not known

Dated assessment history · last accepted 2026-10-12. Excluded from the current connected answer.

What it does

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.

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.

Remaining work

Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.

All options on the Serve your application over MCP page →
CAP Node.jsCovers, under conditions

Dated assessment history · last accepted 2026-10-12. Excluded from the current connected answer.

What it does

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.

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.

Remaining work

Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.

All options on the Serve your application over MCP page →
CAP Node.jsAssessed, not known

Dated assessment history · last accepted 2026-10-12. Excluded from the current connected answer.

What it does

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.

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.

Remaining work

Operate the separate MCP process and implement, configure and test the CAP application contract and remote handlers.

All options on the Serve your application over MCP page →
Change application records from an agentCreate or update application records through an MCP client.Node.jsCovers, under conditionsexternal OData bridge
What it does

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.

All options on the Serve your application over MCP page →
Expose an application service to an AI agentLet an MCP client discover and query application data and invoke selected business operations.Node.jsCovers, under conditionsexternal OData bridge

Dated assessment history · last accepted 2026-10-12. Excluded from the current connected answer.

What it does

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.

All options on the Serve your application over MCP page →
Invoke a business operation from an agentInvoke a selected application business operation through an MCP tool.Node.jsCovers, under conditionsexternal OData bridge
What it does

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.

All options on the Serve your application over MCP page →
Provide application context as MCP resourcesLet an MCP client retrieve application data or schema context through resource URIs.Node.jsCovers, under conditionsschema resource server
What it does

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.

All options on the Serve your application over MCP page →
Query application data from an agentRetrieve selected application records through MCP without changing those records.Node.jsCovers, under conditionsexternal OData bridge
What it does

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.

All options on the Serve your application over MCP page →

Connections3

Install

npm add cap-mcp-bridge

Derived from the package name. No recipe recorded; the README has the configuration.

README

quoted from SanoberRehman/cap-mcp-bridge under MIT, read
SanoberRehman/cap-mcp-bridge/README.mdOn GitHub

cap-mcp-bridge

npm CI node license

Point it at any SAP CAP / OData v4 service. It reads the service's $metadata and turns it into MCP tools an LLM can call: list, describe, query with validated filters, expand across associations, invoke functions and actions. No per-service code, no hand-written tool definitions. One config, and the service is queryable in natural language.

demo

60-second quickstart

Against the public Northwind service (no auth):

npx cap-mcp-bridge --url https://services.odata.org/V4/Northwind/Northwind.svc

That starts an MCP server on stdio. Wire it into Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "northwind": {
      "command": "npx",
      "args": ["-y", "cap-mcp-bridge", "--url", "https://services.odata.org/V4/Northwind/Northwind.svc"]
    }
  }
}

Or Claude Code:

claude mcp add northwind -- npx -y cap-mcp-bridge --url https://services.odata.org/V4/Northwind/Northwind.svc

Then ask: "Which German customers have orders shipped to Berlin? Include the company name."

Against your own CAP service running locally with cds watch:

npx cap-mcp-bridge --url http://localhost:4004/odata/v4/catalog

To see what the bridge understood about a service without starting the server:

npx cap-mcp-bridge --url http://localhost:4004/odata/v4/catalog --print-model

Add --json for the same thing as JSON. It leaves out the fetch timestamp, so saving it before a redeploy and diffing afterwards shows exactly which entities, fields and capabilities changed.

What the model gets

A fixed set of tools whose schema is discoverable, rather than four tools per entity set (a real CAP service has 40+ entity sets, which would blow any tool budget):

ToolPurpose
list_entity_setsNames, labels, record counts, draft flag, write capabilities, navigations
describe_entityFull schema of one entity set: properties, types, keys, navigations, filterable/sortable fields
query_entityThe workhorse: filter, select, expand, orderBy, paging, $count
get_entityOne record by key
invoke_functionCall a read-only OData function (unbound or bound)
invoke_actionCall an action. Write mode only
create_entity / update_entity / delete_entityWrite mode only
refresh_metadataRe-read $metadata after a redeploy; re-registers tools if entities changed

Every entity schema is also an MCP resource at cap://entity/{name} (and cap://service for the overview), so a client can pull schemas into context without spending a tool call.

Typed per-entity tools. With toolMode: "auto" (the default), a service with ≤ 12 entity sets gets query_Books, get_Orders, ... instead, with select / expand / orderBy as enums of the real property names. Easier for a model to call correctly, and affordable at that size. Set toolMode to generic or per-entity to force either.

Every description is generated from the service's CDS annotations (@title, @Core.Description, @readonly, @mandatory, @Capabilities.*, @PersonalData.*). Nothing is written per service.

There is prior art in the CAP ecosystem, and the difference is architectural rather than a feature list. Versions and descriptions below are from the npm registry at the time of writing.

PackageWhat it isWhere it runsWhat it reads
@gavdi/cap-mcp (1.8.0)CAP plugin. Scans your service definitions for @mcp annotations and exposes annotated entities as MCP resources with OData v4 query capabilities, functions and actions as tools, plus prompt templates; optional entity wrappers add query / get / create / update tools. Serves MCP from the CAP app itself at /mcp, inheriting the app's authentication.Inside the CAP application (npm install into the CAP project)CAP's compiled model and your @mcp annotations
@neoimpulse/cap-js-mcp (1.0.6)CAP plugin with API-key authentication and configurable directories for your own tools, prompts and resources. Its default tools are search_model and search_docs, described as a generic implementation based on the SAP server below, using cds.model from the running app. The README marks search_docs as a placeholder, and the npm description is unrelated boilerplate.Inside the CAP applicationThe running app's cds.model
@cap-js/mcp-server (0.0.5)SAP's own MCP server, aimed at developers building CAP apps ("AI-assisted development of CAP applications"): search_model over a project's compiled CDS definitions and search_docs over the CAP documentation. It does not query a running service's data.As a separate process (npx -y @cap-js/mcp-server) against a CAP project on diskThe project's CDS sources and the CAP docs
cap-mcp-bridge (this project)A generic OData v4 client exposed as MCP tools: query, get, expand, functions, actions, with schema-validated filters and safety rails.As a separate process, anywhere with HTTP access to the service$metadata over HTTP, nothing else

The two plugins run inside the CAP application: you add them to the CAP project's package.json, and they read CAP's runtime model after the app compiles. cap-mcp-bridge runs outside the service and consumes $metadata over HTTP. That cuts both ways:

  • Where the bridge is the better fit: services you do not own, cannot modify, or cannot redeploy. Third-party SAP systems, locked-down production landscapes, and any non-CAP OData v4 service. It is the reason the Northwind example works at all: there is no CAP application to install a plugin into.
  • Where the plugins are the better fit: if you own the CAP application and can add a dependency. In-process access to the compiled CDS model gives them richer semantics than an EDMX document exposes (CAP-specific annotations that never reach $metadata, custom handlers, the app's own authentication and authorisation applied per user), and there is no second process to run or secure. @gavdi/cap-mcp in particular lets you curate exactly what is exposed through @mcp annotations, which is a more deliberate surface than "everything in the metadata".

If you are writing the CAP service yourself, look at the plugins first. If you are pointed at someone else's OData endpoint, this is the tool.

Filters that self-correct

$filter as a raw string is where LLM-driven OData goes wrong: quoting, date literals, eq null, function syntax. So the preferred form is structured, and the bridge does the quoting:

{
  "entitySet": "Orders",
  "filter": {
    "and": [
      { "field": "ShipCountry", "op": "eq", "value": "Germany" },
      { "field": "Freight", "op": "gt", "value": "100" },
      { "field": "OrderDate", "op": "ge", "value": "1997-01-01" }
    ]
  },
  "select": ["OrderID", "ShipCity", "Freight"],
  "expand": ["Customer"],
  "orderBy": [{ "field": "Freight", "dir": "desc" }],
  "top": 20
}

becomes $filter=ShipCountry eq 'Germany' and Freight gt 100 and OrderDate ge 1997-01-01. Raw $filter strings are accepted too; they are parsed, validated against the schema, and re-serialised.

Both forms go through the same validator: every field must exist, be filterable/sortable per the service's Capabilities annotations, the operator must be legal for the type, and the literal must match it. On failure the model gets something it can act on, before anything reaches the network:

{
  "error": {
    "code": "not_filterable",
    "message": "\"Picture\" is not filterable on Categories. Filterable fields: CategoryID, CategoryName, Description",
    "target": "Picture",
    "validOptions": ["CategoryID", "CategoryName", "Description"]
  }
}

A model that gets this will self-correct on the next turn. A model that gets 400 Bad Request will not.

Drafts. For CAP draft-enabled entities the bridge injects IsActiveEntity eq true unless the caller passes includeDrafts: true, and key lookups default to the active record. Without this, every query on a draft entity returns duplicate rows.

Safety rails

This is what makes the bridge deployable rather than a toy. All on by default:

  • Read-only by default. Write tools only exist when writeEnabled: true (--write).
  • Forced pagination. $top defaults to 25, hard cap 200. $count is always requested. When there is more, the response says so and gives nextSkip.
  • Response size ceiling. ~50KB per response. Rows are dropped from the end with an explicit note saying how many and why. Never silently.
  • Entity allowlist / denylist by name or glob (entityAllow, entityDeny).
  • Field redaction. A configurable list of names/globs (redactFields), plus automatic redaction of anything annotated @PersonalData.IsPotentiallySensitive. Applied inside expanded navigations too.
  • Timeouts and retries. 30s timeout. Retry with backoff on 5xx and 429 only. Never a 4xx, never a write.
  • Logs go to stderr and never contain tokens, passwords, or URLs with filter values.

Configuration

Precedence: CLI flags > CAP_MCP_* environment > cap-mcp.config.json > defaults.

JSON keyEnv varDefaultMeaning
urlCAP_MCP_URLrequiredOData v4 service root
auth.kindCAP_MCP_AUTHnonenone | basic | bearer | oauth2-cc
auth.username / auth.passwordCAP_MCP_USERNAME / CAP_MCP_PASSWORDbasic auth
auth.tokenCAP_MCP_TOKENbearer token passed through
auth.tokenUrl / clientId / clientSecretCAP_MCP_TOKEN_URL / CAP_MCP_CLIENT_ID / CAP_MCP_CLIENT_SECRETXSUAA client credentials
CAP_MCP_SERVICE_KEY_FILEXSUAA service key JSON; fills the three above
transportCAP_MCP_TRANSPORTstdiostdio | http
host / portCAP_MCP_HOST / CAP_MCP_PORT127.0.0.1 / 3333HTTP bind address; port 0 picks a free one
toolModeCAP_MCP_TOOL_MODEautogeneric | per-entity | auto
perEntityThresholdCAP_MCP_PER_ENTITY_THRESHOLD12auto switches to generic above this many entity sets
writeEnabledCAP_MCP_WRITE_ENABLEDfalseregister write tools
defaultTop / maxTopCAP_MCP_DEFAULT_TOP / CAP_MCP_MAX_TOP25 / 200paging
maxResponseBytesCAP_MCP_MAX_RESPONSE_BYTES50000response ceiling
entityAllow / entityDenyCAP_MCP_ENTITY_ALLOW / CAP_MCP_ENTITY_DENYnames or globs, comma-separated in env
redactFieldsCAP_MCP_REDACT_FIELDSnames or globs
timeoutMs / maxRetriesCAP_MCP_TIMEOUT_MS / CAP_MCP_MAX_RETRIES30000 / 3
metadataTtlMsCAP_MCP_METADATA_TTL_MS900000metadata cache TTL (15 min)
logLevelCAP_MCP_LOG_LEVELinfodebug | info | warn | error | silent

Auth kind is inferred when omitted: a token implies bearer, a client id implies oauth2-cc, a username implies basic.

Auth against a BTP-deployed CAP service
export CAP_MCP_URL=https://<app>.cfapps.<region>.hana.ondemand.com/odata/v4/catalog
export CAP_MCP_SERVICE_KEY_FILE=./service-key.json   # XSUAA service key from the cockpit
npx cap-mcp-bridge

The token is cached, refreshed 60s before expiry, and fetched single-flight so concurrent tool calls never stampede the token endpoint. See examples/btp.

Streamable HTTP
npx cap-mcp-bridge --url ... --transport http --port 3333
# POST/GET/DELETE http://127.0.0.1:3333/mcp, health at /healthz

One MCP server per session, all sharing the metadata cache and auth provider.

Docker
docker build -t cap-mcp-bridge .
docker run --rm -p 3333:3333 -e CAP_MCP_URL=https://services.odata.org/V4/Northwind/Northwind.svc cap-mcp-bridge

The image runs the HTTP transport bound to 0.0.0.0:3333. Pass any CAP_MCP_* variable.

Examples

  • examples/northwind: public service, generic tools, deny list and redaction in use
  • examples/bookshop: a small CAP service with every annotation the bridge understands, drafts included. Also the local acceptance target.
  • examples/btp: XSUAA client credentials

How it works

$metadata ──► metadata/  parse EDMX → ServiceModel (annotations folded in, drafts detected)
                 │
                 ▼
             tools/      ServiceModel → MCP tools + resources (generic or typed per-entity)
                 │
                 ▼
             odata/      validate filter/select/expand/orderBy → build URL → auth, retry, paging
                 │
                 ▼
             server/     stdio or streamable HTTP

The ServiceModel is the only contract between layers. Adding support for a new CAP service requires zero code changes because the only input is XML. Design notes and the decisions behind them are in docs/ARCHITECTURE.md.

Type mapping worth knowing: Edm.Decimal is exposed as a string (CAP serialises decimals as strings to avoid float precision loss; the bridge also sends IEEE754Compatible=true). Field descriptions say so.

Development

npm install
npm run typecheck && npm run lint && npm test
npm run dev -- --url https://services.odata.org/V4/Northwind/Northwind.svc --print-model
npx tsx scripts/smoke.ts https://services.odata.org/V4/Northwind/Northwind.svc   # live, over stdio

The end-to-end tests run a real McpServer and Client over an in-memory transport with fetch stubbed to serve fixture metadata, plus real HTTP servers for the auth and transport suites. The bookshop under examples/bookshop provides the CAP fixture (npx cds compile srv --to edmx-v4).

Cutting a release

Releases are published by GitHub Actions (release.yml) through npm trusted publishing (OIDC). There is no NPM_TOKEN secret, and the package page carries a provenance badge linking the tarball to the exact commit and workflow run.

# 1. on main, bump the version and record the changes
npm version 0.2.0 --no-git-tag-version      # edits package.json + package-lock.json
#    add a 0.2.0 section to CHANGELOG.md, open a PR, merge it
# 2. tag the merged commit and push the tag; the workflow publishes
git checkout main && git pull
git tag v0.2.0 && git push origin v0.2.0

The workflow refuses to publish if the tag does not match package.json. One-time setup: npm only lets you register a trusted publisher for a package that already exists, so the very first version is published by hand (npm publish, with 2FA), after which the trusted publisher is added on npmjs.com under the package's Settings (GitHub Actions, repository SanoberRehman/cap-mcp-bridge, workflow release.yml). Provenance is requested only by the workflow (--provenance); a manual publish from a laptop cannot generate it, so it is not set in publishConfig.

Post-publish check
bash scripts/verify-published.sh            # cap-mcp-bridge@latest
bash scripts/verify-published.sh 0.1.0      # a specific version

It runs npx -y cap-mcp-bridge@<version> --print-model against Northwind from a fresh temp directory with a fresh npm cache, so nothing resolves from this repository. It is what catches a missing shebang, an unbuilt dist, or a files array that left something out.

License

MIT

MIT, read

History

Latest

v0.1.0

Features 6

Notes
Added
  • Metadata layer: fetches $metadata over plain HTTP and parses OData v4 EDMX into a ServiceModel, folding CDS annotations (labels, descriptions, readonly, mandatory, personal data, Capabilities) into plain fields, detecting draft-enabled entities, mapping Edm.Decimal to string, and rejecting OData v2 with a clear message.
  • Tool generation from the model: generic tools (list_entity_sets, describe_entity, query_entity, get_entity, invoke_function, refresh_metadata) or typed per-entity tools when a service has at most 12 entity sets; write tools only with writeEnabled; every entity schema as an MCP resource at cap://entity/{name}.
  • Filters: structured objects and raw $filter strings share one AST, validated against the schema (field exists, filterable/sortable, operator legal for the type, literal format) and serialised with type-driven quoting; errors name the field and list valid options; draft entities get IsActiveEntity eq true injected.
  • Auth (none, basic, bearer, oauth2-cc with cached single-flight XSUAA tokens and BTP service-key files) and transports (stdio, streamable HTTP with per-session servers sharing one metadata cache).
  • Safety rails: read-only by default, $top default 25 / cap 200 with $count and nextSkip, ~50KB response ceiling with explicit notes, entity allow/deny globs, field redaction, 30s timeout with retries only on 5xx/429 reads.
  • Packaging: CLI (npx cap-mcp-bridge --url ..., --print-model), Dockerfile, CI on Node 20/22 plus a Docker boot check, examples for Northwind, a local CAP bookshop and BTP, DEMO.md and a demo GIF rendered from a real session.
4downloads per week, npm
Weekly downloads for cap-mcp-bridge26 complete calendar weeks from 2026-04-20 to 2026-10-18; the latest total is 4.20 Apr – 26 Apr: 027 Apr – 3 May: 04 May – 10 May: 011 May – 17 May: 018 May – 24 May: 025 May – 31 May: 01 Jun – 7 Jun: 08 Jun – 14 Jun: 015 Jun – 21 Jun: 022 Jun – 28 Jun: 029 Jun – 5 Jul: 06 Jul – 12 Jul: 013 Jul – 19 Jul: 020 Jul – 26 Jul: 027 Jul – 2 Aug: 03 Aug – 9 Aug: 010 Aug – 16 Aug: 017 Aug – 23 Aug: 024 Aug – 30 Aug: 031 Aug – 6 Sept: 1437 Sept – 13 Sept: 1014 Sept – 20 Sept: 1021 Sept – 27 Sept: 528 Sept – 4 Oct: 35 Oct – 11 Oct: 212 Oct – 18 Oct: 4
Declared alternatives
  1. @gavdi/cap-mcpGenerates an MCP server from annotated CDS entities and actions
  2. @cap-js/mcpExposes CAP services as MCP servers for AI agents
Agent access to your systems
  1. mcp-integration-suiteMCP server for the general Integration Suite functionsfrom BTP/BAIP
  2. mcp-is-tpmJava MCP server for Integration Suite Trading Partner Managementfrom BTP/BAIP
  3. @abap2ui5/mcp-serverMCP server for the abap2UI5 check, deploy and run loopfrom ABAP
  4. abap2UI5 for VS CodeVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
  5. SF-MCPMCP server with 62 tools over SAP SuccessFactors OData APIsfrom SAP SuccessFactors
  6. hybris-mcp-liteRead-only MCP server over a local SAP Commerce Cloud's HACfrom SAP Commerce
  7. calmcpMCP server with read tools over the SAP Cloud ALM APIsfrom BTP/BAIP
  8. CostingGeek/sap-mcpPython MCP server fetching sales orders from SAP's business data graphfrom BTP/BAIP
  9. mcp-sap-focusedrunMCP tools over SAP Focused Run's Landscape Management Databasefrom BTP/BAIP
  10. abapsmithABAP MCP server over ADT with a local journal that can undo writesfrom ABAP
  11. cloud-alm-itsm-mcpMCP server querying installations via the SAP Cloud ALM ITSM APIfrom BTP/BAIP
  12. hana-mcp-serverMCP server for schema discovery and guarded SQL on SAP HANAfrom BTP/BAIP
  13. sap_analytics_cloud_mcpMCP server for the SAP Analytics Cloud REST APIfrom BTP/BAIP
  14. mcp-sap-cpiMCP server for Cloud Integration runtime: messages, logs, deploymentfrom BTP/BAIP
  15. AI Core MCP ServerSAP AI Core APIs as MCP tools from one JSON config filefrom BTP/BAIP
  16. BTP CF MCP ServerCloud Foundry V3 API on SAP BTP as MCP toolsfrom BTP/BAIP
  17. BTP MCP ServerBTP Core Services as MCP tools with in-chat dashboardsfrom BTP/BAIP
  18. btp-sap-odata-to-mcp-serverExposes S/4HANA or ECC OData services as MCP toolsfrom BTP/BAIP
  19. CI MCP ServerSAP Cloud Integration OData APIs as MCP toolsfrom BTP/BAIP
  20. odata-mcp-proxyConfig-driven proxy turning OData and REST endpoints into MCP toolsfrom BTP/BAIP
  21. sap-pi-mcp-serverMCP server for SAP PI and PO monitoring and directory metadatafrom BTP/BAIP
  22. sap-bdc-mcp-serverMCP server managing Delta shares in SAP Business Data Cloudfrom BTP/BAIP
  23. @mariodefe/sap-datasphere-mcpMCP server with forty-five tools across a Datasphere tenantfrom BTP/BAIP
  24. midasol/sap-mcp-serverPython MCP server for SAP Gateway OData operationsfrom BTP/BAIP
  25. odata_mcp_goGo binary bridging any OData v2 or v4 service to MCPfrom BTP/BAIP
  26. odata_mcpPython bridge generating MCP tools from OData v2 metadatafrom BTP/BAIP
  27. sap-bdc-mcpMCP tooling for SAP Business Data Cloud discovery and contractsfrom BTP/BAIP
  28. mcp-sap-datasphere-serverRead-only MCP server for exploring SAP Dataspherefrom BTP/BAIP
  29. sap-mcp-serverReads SAP ECC and S/4HANA for an agent over Gateway OData and RFC, with a Node bridge that speaks the RFC protocol without the proprietary SAP NetWeaver RFC SDK.from ABAP
  30. MCP Server for SAP BTP AdministrationSAP-hosted MCP endpoint for BTP account administrationfrom BTP/BAIP
  31. SAP LeanIX MCP ServerHosted MCP endpoint onto an SAP LeanIX instancefrom BTP/BAIP
  32. SAP-samples/hana-cli-claude-pluginClaude Code plugin registering hana-cli's MCP serverfrom BTP/BAIP
  33. SAP-samples/hana-developer-cli-tool-exampleDeveloper-centric command line for SAP HANAfrom BTP/BAIP
  34. Skybuffer AI MCP serverABAP add-on serving business data and transactions as MCP toolsfrom ABAP
  35. sap-security-mcpRead-only security analysis MCP server for SAP audits and SoD reviewfrom ABAP
  36. cpi-mcp-serverGo MCP server over Cloud Integration packages and integration flowsfrom BTP/BAIP
  37. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP
  38. pyrfc-mcpMCP server calling RFC-enabled function modules behind an allowlistfrom ABAP

Details

Connected knowledge — wider context5

Source connections explain where this sits. Implementation claims remain in their exact task assessment.

Expose an application service to an AI agent · Expose an application service to an AI agent

Editorially accepted assessment · assessed . No Atlas runtime testing.

Evidence changed · needs review · evidence captured 2026-10-12, 2026-10-26

Supporting evidence changed; this accepted claim needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Related knowledge

Model Context Protocol Adapter | capire

@cap-js/mcp exposes an annotated custom service for model discovery, querying and invocation of unbound actions and functions.

Why included: Dated assessment history; supporting evidence needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

CAP MCP Plugin — gavdilabs/cap-mcp-plugin README

@gavdi/cap-mcp exposes annotated entities as resources and functions/actions as tools.

Why included: Dated assessment history; supporting evidence needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

SanoberRehman/cap-mcp-bridge — README

cap-mcp-bridge queries a custom application OData V4 endpoint and invokes its exposed operations.

Why included: Dated assessment history; supporting evidence needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Add MCP capabilities to a CAP service

A fifteen-minute walkthrough of turning a plain CAP service into an MCP server: annotate the service with @mcp, install @cap-js/mcp, and it is served alongside OData at /mcp/<path>. The part worth reading it for is what happens next — cds watch writes the endpoint into the local agent's own configuration file, so OpenCode or Claude Code can call the service without anyone editing JSON by hand. It is built on the tiny-sample facet, so there is nothing to prepare, and it shows the protocol traffic rather than only the result. Written while the adapter was in beta, and it says so.

Why included: CAP Node.js setup, @mcp service exposure, local client discovery and querying through the official adapter.

Examine the details of the Model Context Protocol on startup

What the MCP adapter actually does when a CAP server boots, watched rather than described — the companion to the tutorial that switches it on.

Why included: CAP Node.js startup, tool discovery and query flow; the tutorial sample contains no actions or functions.

Model Context Protocol Adapter — CAP guide

Documents @cap-js/mcp and com.sap.cds:cds-adapter-mcp, service annotations, generated describe/query/call tools and local client setup. The guide records Java doc-comment configuration, unbound-action-based data changes, incomplete XSUAA PKCE support and the adapter’s governance boundaries.

Why included: CAP Node.js and Java adapter installation, service exposure, model context, tools and documented limitations.

CAP OData V4 Service Development

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

JSON-RPC Protocol

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

MCP (Model Context Protocol) Adapter for CAP

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

Connecting with AI Coding Agents

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

CAP Annotations

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

CAP Local Development Loop

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

MCP Servers

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

CAP for Node.js

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

MCP Inspector TUI Client

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

MCP Tools and Autonomous Multi-Step Workflows

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: Native relationship in the retained Developers snapshot; no runtime claim is inferred. · SAP Developers

Why this assessment is relevant
  1. Expose an application service to an AI agent → Expose an application service to an AI agent
Relationships and evidence (36)
  • @cap-js/mcp → provides → Serve your application over MCP

    Exposes an @mcp-annotated CAP Node.js application service through generated describe, query and unbound-action/function tools. The query and call tools invoke the exposed service without direct CRUD tools; data changes require application-defined unbound actions. The describe tool returns model descriptions, and the adapter sends generic and custom server instructions to clients. Whole-service opt-in with @mcp can be narrowed through a dedicated service with selected projections and actions.

    Basis: atlas-record

    Model Context Protocol Adapter | capire · checked 2026-10-12Simply add the @mcp annotation to a service definition to expose it via MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to read data from the service.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to call unbound actions or functions.

    Model Context Protocol Adapter | capire · checked 2026-10-12while any data changes need to be implemented via unbound actions for now.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12The adapter is not an SAP-endorsed architecture, data service, or service-specific pathway under section 2.2.2 of the SAP API Policy and is not an endorsed mechanism for exposing, proxying, or providing agentic access to SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter is intended only for exposing custom CAP application services.

    Model Context Protocol Adapter | capire · checked 2026-10-12This information is included in the output of the describe tool

    Model Context Protocol Adapter | capire · checked 2026-10-12The MCP Adapter automatically sends MCP instructions to MCP clients to help models understand how to interact with your services effectively.

    Model Context Protocol Adapter | capire · checked 2026-10-12Use the @mcp.instructions annotation on service level, entity level, or action level to specify such custom instructions.

    Model Context Protocol Adapter | capire · checked 2026-10-12Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12Within your project root run this to add the @cap-js/mcp plugin for Node.js projects

  • @gavdi/cap-mcp → provides → Serve your application over MCP

    Generates MCP resources and operation tools from annotated CAP Node.js services, with configured entity wrappers for query/get and optional create/update. The README requires Node.js 18+, CAP 10+ and Express 5+; resource reads and direct tools use service transactions in the pinned implementation. Output omission does not establish a field-access restriction. Annotations and wrapper modes select the exposed entities and operations. Entity resources, reusable prompt templates and @mcp.hint schema descriptions supply context; enable_model_description controls the model-description tool, and instructions configures server instructions. @mcp.omit filters output only: omitted fields remain queryable and can be supplied as write inputs.

    Basis: atlas-record

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12- **Node.js**: Version 18 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12- **SAP CAP**: Version 10 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12- **Express**: Version 5 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Omitted fields remain queryable in the CAP service - only MCP responses are filtered

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Annotate your CAP services with `@mcp` annotations:

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Convert CAP functions and actions into executable MCP tools

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Expose CAP entities as tools (`query`, `get`, and optionally `create`, `update`) for LLM tool use while keeping resources intact

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Define reusable prompt templates for AI interactions

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Hints are accessible in both resource queries and tool executions

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Expose CAP entities as MCP resources with OData v4 query capabilities

    gavdilabs/cap-mcp-plugin — resources.ts at 1f3a97e1c0733d97c0cabea53d6d31767508daed · checked 2026-10-12const response = await service.tx({ user: accessRights }).run(query);

    gavdilabs/cap-mcp-plugin — tools.ts at 1f3a97e1c0733d97c0cabea53d6d31767508daed · checked 2026-10-12const response = await service.tx({ user: accessRights }).send({

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Scans your CAP service definitions for `@mcp` annotations

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12When `wrap_entities_to_actions` is enabled (globally or via `@mcp.wrap.tools: true`)

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Omitted fields are **only excluded from outputs** - they can still be provided as inputs for create/update operations

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Determines whether the MCP server should include the model description tool

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12MCP server instructions for agents

  • cap-mcp-plugin → provides → Serve your application over MCP

    Generates MCP entity resources and bound/unbound operation tools for CAP Node.js, with configured CRUD wrappers, a draft lifecycle and optional Fiori-derived MCP Apps. The README requires Node.js 18+, CAP 9+ and Express 4+. Resource/tool annotations and wrapper modes select the exposed surface; resource reads and direct operation tools call CAP service transactions in the pinned implementation. Entity resources, prompt templates and @mcp.hint schemas supply context, instructions configures server instructions, and MCP Apps require @mcp.wrap.tools with Fiori annotations. @mcp.omit filters output only, and disabling app write buttons leaves tools callable.

    Basis: atlas-record

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- Node.js 18+

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- `@sap/cds` 9+

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- `express` 4+

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12`@mcp.omit` filters MCP output only.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12no Create/Edit/Delete buttons (the write tools themselves are unaffected)

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12CDS operations annotated with `@mcp.tool: true` become MCP tools.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Both **unbound** (service-level) and **bound** (entity-level) operations are supported

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- `delete` — remove a row by key(s).

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- `draft-activate` — publish the pending draft to the active row.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12**Short-circuits active-row `create`, `update`, and `delete`** with a `DRAFT_REQUIRED` error

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12entities annotated with `@odata.draft.bypass` (or the whole service with `cds.env.fiori.bypass_draft: true`) continue to accept direct active-row `create`/`update`/`delete`

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Declare reusable prompt templates.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Enrich schemas for AI agents via `@mcp.hint` on elements and parameters.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12When an entity has `@mcp.wrap.tools` **and** Fiori UI annotations, the plugin registers two `ui://` HTML resources

    sleibach/cap-mcp-plugin — resources.js at 5359398d0662f452d31529509c67634f8eb5406d · checked 2026-10-12const response = await service.tx({ user: accessRights }).run(query);

    sleibach/cap-mcp-plugin — tools.js at 5359398d0662f452d31529509c67634f8eb5406d · checked 2026-10-12service.tx({ user: accessRights }).send({

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12modes: ['query', 'get', 'create', 'update']

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Omitted fields can still be supplied as inputs on create / update operations and remain queryable in the underlying CAP service.

    cap-mcp-plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Server-level instructions surfaced to agents

  • Model Context Protocol Adapter — CAP guide → explains → Serve your application over MCP

    CAP Node.js and Java adapter installation, service exposure, model context, tools and documented limitations.

    Basis: atlas-record

  • Model Context Protocol Adapter — CAP guide → explains → @cap-js/mcp

    Node.js installation, service annotations, querying and unbound action/function invocation.

    Basis: atlas-record

  • Add MCP capabilities to a CAP service → explains → Serve your application over MCP

    CAP Node.js setup, @mcp service exposure, local client discovery and querying through the official adapter.

    Basis: atlas-record

  • Add MCP capabilities to a CAP service → explains → @cap-js/mcp

    Canonical Atlas relevance assertion.

    Basis: atlas-record

  • Examine the details of the Model Context Protocol on startup → explains → Serve your application over MCP

    CAP Node.js startup, tool discovery and query flow; the tutorial sample contains no actions or functions.

    Basis: atlas-record

  • Examine the details of the Model Context Protocol on startup → explains → @cap-js/mcp

    Canonical Atlas relevance assertion.

    Basis: atlas-record

  • Add MCP capabilities to a CAP service → teaches → CAP OData V4 Service Development

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → JSON-RPC Protocol

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → MCP (Model Context Protocol) Adapter for CAP

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → Connecting with AI Coding Agents

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → CAP Annotations

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → CAP Local Development Loop

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Add MCP capabilities to a CAP service → teaches → MCP Servers

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → JSON-RPC Protocol

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → CAP for Node.js

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → MCP (Model Context Protocol) Adapter for CAP

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → MCP Inspector TUI Client

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → MCP Servers

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Examine the details of the Model Context Protocol on startup → teaches → MCP Tools and Autonomous Multi-Step Workflows

    Native relationship in the retained Developers snapshot; no runtime claim is inferred.

    Basis: source-graph

    SAP Developers graph snapshot · checked 2026-10-05T00:55:43.720Z

  • Expose an application service to an AI agent → associatedWith → Serve your application over MCP

    Primary capability recorded by the accepted task.

    Basis: atlas-assessment

  • MCP (Model Context Protocol) Adapter for CAP → addressesPartOf → Expose an application service to an AI agent

    The retained source graph says the CAP tutorial teaches this adapter subject. The tutorial exposes a CAP Node.js service through @cap-js/mcp, which addresses the official-adapter part of this assessment.

    Basis: atlas-mapping

    Mapping: partial · accepted · Reviewed canonical mapping · checked 2026-10-12

    Evidence matches captured sources · evidence captured 2026-10-12

    Add MCP capabilities to a CAP service · checked 2026-10-12the implementation of MCP capabilities is provided by the MCP adapter plugin @cap-js/mcp

    Add MCP capabilities to a CAP service · checked 2026-10-12You will need a development environment for CAP Node.js.

  • MCP Servers → contextualizes → Serve your application over MCP

    The retained source graph says the CAP tutorial teaches MCP Servers. In CAP Node.js that tutorial supplies service-exposure context for Serve your application over MCP; this does not classify every tutorial under the broad source subject.

    Basis: atlas-mapping

    Mapping: about · accepted · Reviewed canonical mapping · checked 2026-10-12

    Evidence matches captured sources · evidence captured 2026-10-12

    Add MCP capabilities to a CAP service · checked 2026-10-12the implementation of MCP capabilities is provided by the MCP adapter plugin @cap-js/mcp

    Add MCP capabilities to a CAP service · checked 2026-10-12You will need a development environment for CAP Node.js.

  • Expose an application service to an AI agent → assesses → Expose an application service to an AI agent

    One shared outcome, one scoped assessment.

    Basis: atlas-assessment

  • @cap-js/mcp → previouslyContributedTo → Expose an application service to an AI agent

    Last accepted assessment (2026-10-12): @cap-js/mcp exposes an annotated custom service for model discovery, querying and invocation of unbound actions and functions.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    Model Context Protocol Adapter | capire · checked 2026-10-12Simply add the @mcp annotation to a service definition to expose it via MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to read data from the service.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to call unbound actions or functions.

    Model Context Protocol Adapter | capire · checked 2026-10-12there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.

    Model Context Protocol Adapter | capire · checked 2026-10-12out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.

    Model Context Protocol Adapter | capire · checked 2026-10-12This information is included in the output of the describe tool

    Model Context Protocol Adapter | capire · checked 2026-10-12npm add @cap-js/mcp

    Model Context Protocol Adapter | capire · checked 2026-10-12For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).

    Model Context Protocol Adapter | capire · checked 2026-10-12Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.

  • @gavdi/cap-mcp → previouslyContributedTo → Expose an application service to an AI agent

    Last accepted assessment (2026-10-12): @gavdi/cap-mcp exposes annotated entities as resources and functions/actions as tools.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Expose CAP entities as MCP resources with OData v4 query capabilities

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Convert CAP functions and actions into executable MCP tools

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**Node.js**: Version 18 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**SAP CAP**: Version 10 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**Express**: Version 5 or higher

  • cap-mcp-bridge → previouslyContributedTo → Expose an application service to an AI agent

    Last accepted assessment (2026-10-12): cap-mcp-bridge queries a custom application OData V4 endpoint and invokes its exposed operations.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12| `query_entity` | The workhorse: filter, select, expand, orderBy, paging, `$count` |

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12| `invoke_action` | Call an action. **Write mode only** |

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12`cap-mcp-bridge` runs **outside** the service and consumes `$metadata` over HTTP.

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12That starts an MCP server on stdio.

  • cap-mcp-plugin → previouslyContributedTo → Expose an application service to an AI agent

    Last accepted assessment (2026-10-12): cap-mcp-plugin derives MCP resources and tools from annotated CDS entities and operations.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Annotated entities become MCP resources, functions and actions become tools, and services can expose reusable prompt templates.

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12Node.js 18+

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12`@sap/cds` 9+

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12`express` 4+

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12There is **no npm registry package yet**. Install straight from GitHub:

    CAP MCP Plugin — sleibach/cap-mcp-plugin README · checked 2026-10-12- Node.js 18+ - `@sap/cds` 9+ - `express` 4+

  • Expose an application service to an AI agent → reading → Model Context Protocol Adapter | capire

    Curated supporting reading for this assessment.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    Model Context Protocol Adapter | capire · checked 2026-10-12Simply add the @mcp annotation to a service definition to expose it via MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to read data from the service.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to call unbound actions or functions.

    Model Context Protocol Adapter | capire · checked 2026-10-12there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.

    Model Context Protocol Adapter | capire · checked 2026-10-12out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.

    Model Context Protocol Adapter | capire · checked 2026-10-12This information is included in the output of the describe tool

    Model Context Protocol Adapter | capire · checked 2026-10-12npm add @cap-js/mcp

    Model Context Protocol Adapter | capire · checked 2026-10-12For any deployment ensure you use infrastructure and practices that mitigate prompt injection risks and connect only to trusted MCP agents (e.g., Joule).

    Model Context Protocol Adapter | capire · checked 2026-10-12Tools are meant to be used by LLMs and AI agents and do not constitute a stable API.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.

  • Expose an application service to an AI agent → reading → CAP MCP Plugin — gavdilabs/cap-mcp-plugin README

    Curated supporting reading for this assessment.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Expose CAP entities as MCP resources with OData v4 query capabilities

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12Convert CAP functions and actions into executable MCP tools

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**Node.js**: Version 18 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**SAP CAP**: Version 10 or higher

    CAP MCP Plugin — gavdilabs/cap-mcp-plugin README · checked 2026-10-12**Express**: Version 5 or higher

  • Expose an application service to an AI agent → reading → SanoberRehman/cap-mcp-bridge — README

    Curated supporting reading for this assessment.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12| `query_entity` | The workhorse: filter, select, expand, orderBy, paging, `$count` |

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12| `invoke_action` | Call an action. **Write mode only** |

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12`cap-mcp-bridge` runs **outside** the service and consumes `$metadata` over HTTP.

    SanoberRehman/cap-mcp-bridge — README · checked 2026-10-12That starts an MCP server on stdio.

  • Expose an application service to an AI agent → reading → Add MCP capabilities to a CAP service

    Curated supporting reading for this assessment.

    Basis: atlas-assessment

  • Expose an application service to an AI agent → reading → Examine the details of the Model Context Protocol on startup

    Curated supporting reading for this assessment.

    Basis: atlas-assessment

  • Expose an application service to an AI agent → reading → Model Context Protocol Adapter — CAP guide

    Curated supporting reading for this assessment.

    Basis: atlas-assessment

Shared resource identities

sap-developers:t:cap-add-mcp-capabilities → content:sap-tutorial-add-mcp-capabilities-to-a-cap-service

Same resource across graphs; this does not establish implementation compatibility.

Evidence matches captured sources · evidence captured 2026-10-12

sap-developers:t:cap-examine-mcp-startup → content:sap-tutorial-cap-examine-mcp-startup

Same resource across graphs; this does not establish implementation compatibility.

Evidence matches captured sources · evidence captured 2026-10-12

Gaps, source snapshot and retrieval limits
  • 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.
  • Evidence observations do not cover this accepted claim; it is retained as dated history.
  • Supporting evidence changed; this accepted claim needs review.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Access an external system through an application MCP service · CAP Node.js application bridge for custom external APIs outside SAP Application APIs

Editorially accepted assessment · assessed . No Atlas runtime testing.

Evidence changed · needs review · evidence captured 2026-10-12, 2026-10-15, 2026-10-26

Supporting evidence changed; this accepted claim needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Related knowledge

CAP Framework (Cloud Application Programming Model)

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility. · SAP Developers

Why this assessment is relevant
  1. Access an external system through an application MCP service → CAP Node.js application bridge for custom external APIs outside SAP Application APIs
Relationships and evidence (17)
Gaps, source snapshot and retrieval limits
  • 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.
  • Evidence observations do not cover this accepted claim; it is retained as dated history.
  • Supporting evidence changed; this accepted claim needs review.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Access an external system through an application MCP service · CAP Node.js application bridge for SAP Application APIs

Editorially accepted assessment · assessed . No Atlas runtime testing.

Evidence changed · needs review · evidence captured 2026-10-12, 2026-10-15, 2026-10-26

Supporting evidence changed; this accepted claim needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Related knowledge

CAP Framework (Cloud Application Programming Model)

Source subject or learning resource; applicability is established separately by the scoped assessment.

Why included: The CAP framework subject is broader than the Node.js runtime. This is a route to context, not package identity or compatibility. · SAP Developers

Why this assessment is relevant
  1. Access an external system through an application MCP service → CAP Node.js application bridge for SAP Application APIs
Relationships and evidence (17)
Gaps, source snapshot and retrieval limits
  • 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.
  • Evidence observations do not cover this accepted claim; it is retained as dated history.
  • Supporting evidence changed; this accepted claim needs review.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Access an external system through an application MCP service · CAP Java application bridge for custom external APIs outside SAP Application APIs

Editorially accepted assessment · assessed . No Atlas runtime testing.

Evidence changed · needs review · evidence captured 2026-10-12, 2026-10-15, 2026-10-26

Supporting evidence changed; this accepted claim needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Why this assessment is relevant
  1. Access an external system through an application MCP service → CAP Java application bridge for custom external APIs outside SAP Application APIs
Relationships and evidence (10)
  • com.sap.cds:cds-adapter-mcp → provides → Serve your application over MCP

    Exposes an @mcp-annotated CAP Java application service through generated describe, query and unbound-action/function tools. The query and call tools invoke the exposed service without direct CRUD tools; data changes require application-defined unbound actions. The describe tool returns model descriptions, and the adapter sends generic and custom server instructions to clients. Whole-service opt-in with @mcp can be narrowed through a dedicated service with selected projections and actions. Java doc comments require configuration in the application and MTX sidecar.

    Basis: atlas-record

    Model Context Protocol Adapter — capire · checked 2026-09-19the plugin automatically creates an MCP server per CAP service, each serving three generic tools

    Model Context Protocol Adapter — capire · checked 2026-09-19the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects

    com.sap.cds:cds-adapter-mcp — Maven POM · checked 2026-09-19MCP adapter for CDS Services Java

    Model Context Protocol Adapter | capire · checked 2026-10-12Simply add the @mcp annotation to a service definition to expose it via MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to read data from the service.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to call unbound actions or functions.

    Model Context Protocol Adapter | capire · checked 2026-10-12while any data changes need to be implemented via unbound actions for now.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12The adapter is not an SAP-endorsed architecture, data service, or service-specific pathway under section 2.2.2 of the SAP API Policy and is not an endorsed mechanism for exposing, proxying, or providing agentic access to SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12This information is included in the output of the describe tool

    Model Context Protocol Adapter | capire · checked 2026-10-12The MCP Adapter automatically sends MCP instructions to MCP clients to help models understand how to interact with your services effectively.

    Model Context Protocol Adapter | capire · checked 2026-10-12You must enable doc comments in the Java application and in the MTX sidecar.

    Model Context Protocol Adapter | capire · checked 2026-10-12Use the @mcp.instructions annotation on service level, entity level, or action level to specify such custom instructions.

    Model Context Protocol Adapter | capire · checked 2026-10-12Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.

  • com.sap.cds:cds-feature-remote-odata → provides → Service integration

    Serves a remote OData V2 or V4 API as a CAP Remote Service in CAP Java: configured with the service definition from the CDS model and a destination or service binding, a CQN query against it is translated into the OData request.

    Basis: atlas-record

    Remote Services (CAP Java) — capire · checked 2026-09-27To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project

    com.sap.cds:cds-feature-remote-odata — POM (5.1.1) · checked 2026-09-27Consuming remote OData V2/V4 services using SAP Cloud SDK

  • cap-mcp-bridge → provides → Agent access to your systems

    Canonical Atlas provides relationship.

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Serve your application over MCP

    Assessment home

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Agent access to your systems

    Reach external system data and operations through the application.

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Service integration

    Connect the application service to the external system.

    Basis: atlas-record

  • CAP Java application bridge for custom external APIs outside SAP Application APIs → assesses → Access an external system through an application MCP service

    One shared outcome, one scoped assessment.

    Basis: atlas-assessment

  • com.sap.cds:cds-feature-remote-odata → previouslyContributedTo → CAP Java application bridge for custom external APIs outside SAP Application APIs

    Last accepted assessment (2026-10-12): com.sap.cds:cds-feature-remote-odata consumes configured OData V2 or V4 APIs through CAP Java Remote Services; application handlers must call them explicitly.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project:

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12CAP doesn't automatically forward CQN queries to these services.

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12In case data from Remote Services should be combined with data from the database custom coding is required.

  • com.sap.cds:cds-adapter-mcp → previouslyContributedTo → CAP Java application bridge for custom external APIs outside SAP Application APIs

    Last accepted assessment (2026-10-12): com.sap.cds:cds-adapter-mcp exposes the custom application service for discovery, data queries and unbound operations; it does not implement the remote-system integration.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12The CAP MCP adapter is intended only for exposing custom CAP application services.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12the plugin automatically creates an MCP server per CAP service, each serving three generic tools

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12any data changes need to be implemented via unbound actions for now.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12out-of-the-box support for authorization with XSUAA, with PKCE, but it is not fully implemented yet.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12The MCP adapter does not perform any input validation or output validation to prevent prompt injection attacks.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12there is no automatic rate limiting, no specific audit logging of agent actions, no approval workflows for sensitive operations, and no policy enforcement layer.

  • cap-mcp-bridge → previouslyContributedTo → CAP Java application bridge for custom external APIs outside SAP Application APIs

    Last accepted assessment (2026-10-12): 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.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12Point it at any SAP CAP / OData v4 service.

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12`invoke_action` | Call an action. **Write mode only**

Gaps, source snapshot and retrieval limits
  • 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.
  • Evidence observations do not cover this accepted claim; it is retained as dated history.
  • Supporting evidence changed; this accepted claim needs review.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Access an external system through an application MCP service · CAP Java application bridge for SAP Application APIs

Editorially accepted assessment · assessed . No Atlas runtime testing.

Evidence changed · needs review · evidence captured 2026-10-12, 2026-10-15, 2026-10-26

Supporting evidence changed; this accepted claim needs review.

Evidence status not tracked

Evidence observations do not cover this accepted claim; it is retained as dated history.

Why this assessment is relevant
  1. Access an external system through an application MCP service → CAP Java application bridge for SAP Application APIs
Relationships and evidence (10)
  • com.sap.cds:cds-adapter-mcp → provides → Serve your application over MCP

    Exposes an @mcp-annotated CAP Java application service through generated describe, query and unbound-action/function tools. The query and call tools invoke the exposed service without direct CRUD tools; data changes require application-defined unbound actions. The describe tool returns model descriptions, and the adapter sends generic and custom server instructions to clients. Whole-service opt-in with @mcp can be narrowed through a dedicated service with selected projections and actions. Java doc comments require configuration in the application and MTX sidecar.

    Basis: atlas-record

    Model Context Protocol Adapter — capire · checked 2026-09-19the plugin automatically creates an MCP server per CAP service, each serving three generic tools

    Model Context Protocol Adapter — capire · checked 2026-09-19the cds-adapter-mcp dependency to your srv/pom.xml for CAP Java projects

    com.sap.cds:cds-adapter-mcp — Maven POM · checked 2026-09-19MCP adapter for CDS Services Java

    Model Context Protocol Adapter | capire · checked 2026-10-12Simply add the @mcp annotation to a service definition to expose it via MCP.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to read data from the service.

    Model Context Protocol Adapter | capire · checked 2026-10-12This tool is used to call unbound actions or functions.

    Model Context Protocol Adapter | capire · checked 2026-10-12while any data changes need to be implemented via unbound actions for now.

    Model Context Protocol Adapter | capire · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12The adapter is not an SAP-endorsed architecture, data service, or service-specific pathway under section 2.2.2 of the SAP API Policy and is not an endorsed mechanism for exposing, proxying, or providing agentic access to SAP Application APIs.

    Model Context Protocol Adapter | capire · checked 2026-10-12This information is included in the output of the describe tool

    Model Context Protocol Adapter | capire · checked 2026-10-12The MCP Adapter automatically sends MCP instructions to MCP clients to help models understand how to interact with your services effectively.

    Model Context Protocol Adapter | capire · checked 2026-10-12You must enable doc comments in the Java application and in the MTX sidecar.

    Model Context Protocol Adapter | capire · checked 2026-10-12Use the @mcp.instructions annotation on service level, entity level, or action level to specify such custom instructions.

    Model Context Protocol Adapter | capire · checked 2026-10-12Instead of annotating an existing service with @mcp and exposing all its entities and actions, simply create a dedicated service specifically for MCP.

  • com.sap.cds:cds-feature-remote-odata → provides → Service integration

    Serves a remote OData V2 or V4 API as a CAP Remote Service in CAP Java: configured with the service definition from the CDS model and a destination or service binding, a CQN query against it is translated into the OData request.

    Basis: atlas-record

    Remote Services (CAP Java) — capire · checked 2026-09-27To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project

    com.sap.cds:cds-feature-remote-odata — POM (5.1.1) · checked 2026-09-27Consuming remote OData V2/V4 services using SAP Cloud SDK

  • cap-mcp-bridge → provides → Agent access to your systems

    Canonical Atlas provides relationship.

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Serve your application over MCP

    Assessment home

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Agent access to your systems

    Reach external system data and operations through the application.

    Basis: atlas-record

  • Access an external system through an application MCP service → associatedWith → Service integration

    Connect the application service to the external system.

    Basis: atlas-record

  • CAP Java application bridge for SAP Application APIs → assesses → Access an external system through an application MCP service

    One shared outcome, one scoped assessment.

    Basis: atlas-assessment

  • com.sap.cds:cds-feature-remote-odata → previouslyContributedTo → CAP Java application bridge for SAP Application APIs

    Last accepted assessment (2026-10-12): com.sap.cds:cds-feature-remote-odata consumes configured OData V2 or V4 APIs through CAP Java Remote Services; application handlers must call them explicitly.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project:

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12CAP doesn't automatically forward CQN queries to these services.

    https://cap.cloud.sap/docs/java/cqn-services/remote-services · checked 2026-10-12In case data from Remote Services should be combined with data from the database custom coding is required.

  • com.sap.cds:cds-adapter-mcp → previouslyContributedTo → CAP Java application bridge for SAP Application APIs

    Last accepted assessment (2026-10-12): com.sap.cds: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.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12The CAP MCP adapter must not be used as a gateway or proxy for SAP Application APIs.

    https://cap.cloud.sap/docs/guides/ai/cap-mcp · checked 2026-10-12The CAP MCP adapter is intended only for exposing custom CAP application services.

  • cap-mcp-bridge → previouslyContributedTo → CAP Java application bridge for SAP Application APIs

    Last accepted assessment (2026-10-12): 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.

    Basis: atlas-assessment · dated relationship; evidence needs review

    Evidence status not tracked

    Evidence observations do not cover this accepted claim; it is retained as dated history.

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12Point it at any SAP CAP / OData v4 service.

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12**Read-only by default.** Write tools only exist when `writeEnabled: true` (`--write`).

    https://github.com/SanoberRehman/cap-mcp-bridge · checked 2026-10-12`invoke_action` | Call an action. **Write mode only**

Gaps, source snapshot and retrieval limits
  • 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.
  • Evidence observations do not cover this accepted claim; it is retained as dated history.
  • Supporting evidence changed; this accepted claim needs review.
  • Retrieval uses at most four typed steps within a bounded source index. Source relationships do not establish compatibility.

Developers snapshot checked 2026-10-05 · 33 indexed records from a 9,023-node source snapshot. This is a bounded retrieval view; absence is not evidence that no solution exists. Source relationships and proximity do not establish runtime compatibility.

Mapping version: connected-tasks-2026-10-06-v4+mcp-records-b256b58cfb844590. Task and mapping evidence remain separate from implementation evidence.

Sources4
npm registrydiscovered here, keywords:sap-capchecked
npm registry, cap-mcp-bridgeversion, releases, installschecked
github.com/git+https://github.com/SanoberRehman/cap-mcp-bridge.gittree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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

Compatibility and provenance
runtimesnode
latestv0.1.0
first release
releases and cadence1
discovered vianpm registry · keywords:sap-cap
first seen in the atlas
ecosystem and domaincap, ai-and-agents
History in the atlas2
  1. The concern it answers is reaching into an SAP system from outside, split out of MCP servers on this day; the sentence on the edge is unchanged.
  2. First seen.
For your agent
Ref
artifact:sanoberrehman-cap-mcp-bridge
JSON
/artifacts/sanoberrehman-cap-mcp-bridge.json
MCP
Connecting an agent