{"ref":"content:expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2","page":"/content/expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2","json":"/content/expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js-2","title":"Expose S/4HANA Cloud OData API as an MCP Server via CAP Node.js","url":"https://community.sap.com/t5/technology-blog-posts-by-sap/expose-s-4hana-cloud-odata-api-as-an-mcp-server-via-cap-node-js/ba-p/14451399","content_type":"blog","published_on":"source:sap-community","explains":[{"ref":"capability:mcp-servers","applies_to":{"ecosystems":["cap"]}},"artifact:cap-js-mcp"],"summary":"A CAP Node.js service imports the S/4HANA Cloud Outbound Delivery OData v2 API's EDMX metadata with `cds import`, proxies its reads and a custom `createDelivery` action against it, and annotates the service `@protocol: ['odata-v4', 'mcp']` with [@cap-js/mcp](artifact:cap-js-mcp)'s `per_action_tool` setting on, so the custom action gets its own MCP tool rather than one generic call_action. It tests the result with raw JSON-RPC `tools/list` and `tools/call` requests before deploying to [SAP BTP, Cloud Foundry Runtime](artifact:btp-cloud-foundry-runtime).","short":"Proxying an S/4HANA Cloud OData API in CAP and serving it over MCP","author":"Jacky Liu","published":"2026-07-29","provenance":{"discovered_via":[{"source":"source:sap-community","channel":"btp-tag"}],"first_seen":"2026-09-21"},"drafted_with_ai":true},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"good","evidence":"published 3 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"good","evidence":"no recorded change after 2026-07-29"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":704,"unit":"views"},{"value":0,"unit":"comments"},{"value":2,"unit":"likes"}]},"signals":{"views":704,"likes":2,"comments":0,"metrics_at":"2026-10-25"},"series":null,"edges":{"authors":[]}}