PersonIndependent

Wouter Lemaire

GitHub@lemaiwolast push
Provides 12
Account provisioningBTPAccount provisioningcapabilitySetting up cloud accounts, their organisational structure, resource entitlements, subscriptions and access assignments so the setup can be repeated from code. [Deployment](capability:deployment) puts an application onto a runtime that this account structure makes available.Agent access to your systemsBTPABAPCAPAgent 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).Agent guidanceCAPUI5BTPABAPAgent guidancecapabilityPackaged knowledge you hand a coding agent so it gets a framework right unprompted — skills, rule files, instruction packs. Distinct from agent tooling, which is about building agentic features into your application, and from [agent access to your code](capability:agent-code-access), where the agent reads the real project instead of being handed a file about it.Agent toolingCAPBTPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.Architecture diagramsBTPArchitecture diagramscapabilityDrawing the architecture and components of a solution so another person can understand their responsibilities and connections. Shared notation makes diagrams readable across teams.Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.Custom controls and librariesUI5Custom controls and librariescapabilityExtending the set of controls an app is built from: a control of its own, a wrapper around a third-party widget, or an icon font registered with the framework, packaged so another app can reuse it. Distinct from [Web Components interop](capability:ui5-web-components), which brings in standard custom elements, and from [generators](capability:generators), which scaffold a control project rather than being one.GeneratorsCAPABAPUI5GeneratorscapabilityGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.Importing and exporting table dataABAPUI5CAPImporting and exporting table datacapabilityGetting a file somebody supplies, a spreadsheet, a CSV or a JSON dump, into tables with its columns mapped and its values checked, and getting table content back out as a file. Data shipped with an application for development and demonstration is [seed data](capability:seed-data).LLM integrationCAPUI5BTPABAPLLM integrationcapabilityCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.Server-side renderingCAPUI5Server-side renderingcapabilityRendering a UI on the server before it reaches the browser — first paint without waiting for a client framework to boot, and markup a crawler can read.TypeScript patternsCAPTypeScript patternscapabilityHow an application is arranged once it is written in TypeScript — where handlers live, what registers them, and how business logic is kept apart from persistence. Distinct from typing, which is about the model being visible to the compiler; this is about the shape of the code around it.
Demonstrates 4
Agent toolingCAPBTPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.Database connectorsCAPBTPABAPDatabase connectorscapabilityConnecting an application’s data model and queries to a database, including the differences in supported queries, types and schema management between database implementations. Changing an existing schema belongs to [schema evolution](capability:schema-evolution).LLM integrationCAPUI5BTPABAPLLM integrationcapabilityCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.Web Components interopUI5Web Components interopcapabilityUsing standards-based custom elements inside an app, and the question of which control set an app should be built from at all, two concerns that are often answered as one.
Contributes to 3
Agent access to your codeCAPABAPUI5BTPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.Integrated frontend dev serverCAPUI5Integrated frontend dev servercapabilityServing a frontend and its backend services together during development, so they can be reached through one local origin. Serving prebuilt files and integrating a frontend toolchain that assembles resources on demand are different requirements.TypeScript supportUI5TypeScript supportcapabilityWriting apps and libraries in TypeScript — the type definitions, the module syntax the loader expects, and the build step that gets from one to the other.

Entries39

Group by39 of 39 entries
EntrySignals
Maintains18
AI Core MCP Server
Functional boundary

SAP AI Core APIs as MCP tools from one JSON config file

BTP CF MCP Server
Functional boundary

Cloud Foundry V3 API on SAP BTP as MCP tools

BTP MCP Server
Functional boundary

BTP Core Services as MCP tools with in-chat dashboards

btp-sap-odata-to-mcp-serverv1.0.1
Functional boundary

Exposes S/4HANA or ECC OData services as MCP tools

btp-solution-diagram-generator
none

Claude plugin writing BTP solution diagrams as .drawio files

cap-agent-ui5-webuiv0.2.0
Functional boundary

UI5 web interface for an agent built in a CAP service

cds-plugin-handlersv1.0.3
none

One handler file per entity in CAP services

cds-spreadsheetimporter-pluginv1.1.0
none

Spreadsheet upload into a CDS entity, parsed on the server

CI MCP Server
Functional boundary

SAP Cloud Integration OData APIs as MCP tools

generator-ui5-ts-app-fcl
none

Generator for a TypeScript UI5 FlexibleColumnLayout app on OData

generator-ui5-ts-library
none

Easy-UI5 generator scaffolding a TypeScript UI5 library

odata-mcp-proxyv1.4.0
Functional boundary

Config-driven proxy turning OData and REST endpoints into MCP tools

ui5-cap-ai-featuresv1.0.2
Functional boundary

CDS plugin and UI5 controls for AI text features via SAP AI Core

ui5-cap-serverside-rendering-pluginv1.0.8
Functional boundary

CAP plugin rendering UI5 views with entity data on the server

ui5-control-generatorv1.0.6
Quiet

Command line generator of UI5 custom controls from html

ui5-middleware-route-proxyv1.0.10
Quiet

UI5 server middleware proxying route prefixes to a backend

ui5-task-cachebuster-indexingv1.0.2
Quiet

UI5 builder task preparing build output for the cachebuster

ui5-task-transpile-genv1.0.4
Quiet

UI5 builder task transpiling ES6 to ES5 with Babel

Maintains: samples, sketches and references7
btp-agent
No license

LangGraph agent and UI5 chat screen over four BTP MCP servers

btpvulnerabilityreport
No license

CAP and Fiori app showing BTP Application Vulnerability Report data

cap-agent-ui5-webui-sample
No license

Worked example of the cap-agent-ui5-webui plugin

ui5-ai-features-demo
No license

Product-review screen consuming ui5-cap-ai-features on CAP

ui5-cap-serverside-rendering-demo
No license+1

Demo CAP bookshop with server-rendered UI5 views

ui5-space-webcomponent-library
none

UI5 library wrapping a UI5 Web Components package, step by step

ui5-space-webcomponent-package
none

Step-by-step UI5 Web Components package in TypeScript

Contributes to14
@ui5/tooling-webcv0.3.1
Archived

Deprecated UI5 Tooling extensions for UI5 Web Components wrappers

arc-1v1.9.0
none

MCP server over the ADT REST API for ABAP objects

cds-plugin-ui5v0.17.4
Functional boundary

UI5 CLI middlewares running inside the CDS server

generator-ui5-appv1.0.8
none

Easy-UI5 generator scaffolding a new UI5 application

generator-ui5-library-webc
Quiet

Yeoman generator for UI5 libraries wrapping UI5 Web Components

hacking-away-sampleapp
none

UI5con 2022 demo of an end-to-end TypeScript UI5 setup with CAP

spreadsheetimporter/sample-full-btp
none

CAP Risks and Mitigations project with a Spreadsheet Upload button

ui5-cc-spreadsheetimporterv2.4.0
none

UI5 component adding a spreadsheet upload dialog to Fiori apps

ui5-middleware-livereloadv3.4.0
none

Live reload middleware for the UI5 dev server

ui5-middleware-simpleproxyv3.9.0
none

Dev-server middleware proxying requests to a backend system

ui5-middleware-ui5v3.5.2
none

UI5 middleware including one UI5 application in another

ui5-task-transpilev0.5.1
none

UI5 Tooling task transpiling TypeScript and ES modules

ui5-task-zipperv3.7.0
none

Build task packaging the UI5 build result as a zip archive

ui5-tooling-modulesv3.41.2
none

UI5 tooling extensions loading npm packages as UI5 modules

Writing and topics13

12 of 12 pieces
Piece, what it offersStill applies
Building Code-Based AI Agents on the BAIP
YouTube — SAP Developers playlists, Wouter Lemaire
nothing recorded
UI5 AI Features library is now an npm Package
SAP Community, Wouter LemaireThe reasoningRunnable code
Version drift
Agentic AI on BTP: a Multi‑Agent App with Pydantic AI
SAP Community, Wouter Lemaire
nothing recorded
Agentic AI on BTP: a Single Agent with LangGraph
SAP Community, Wouter Lemaire
nothing recorded
BTP Audit Log MCP Server: Security Monitoring with AI Assistants
SAP Community, Wouter Lemaire
nothing recorded
BTP Cloud Foundry MCP Server: Managing CF Environments with AI
SAP Community, Wouter Lemaire
nothing recorded
UI for the BTP Application Vulnerability Report
SAP Community, Wouter Lemaire
nothing recorded
Consume ABAP RFC Function Modules in CAP
SAP Community, Wouter LemaireThe reasoningRunnable code
nothing recorded
CAP multitenancy with Work Zone
SAP Community, Wouter Lemaire
nothing recorded
Create your first CAP plugin
SAP Community, Wouter Lemaire
nothing recorded
Upload attachments in a Freestyle UI5 and CAP app
SAP Community, Wouter LemaireThe reasoning
nothing recorded
How to add OData v2 adapter proxy to your CAP project
SAP Community, Wouter LemaireThe reasoningRunnable code
Core changed

IN TOPICS

The atlas is now in betaTopic, edition 1names arc-1

onedevatlas is open for browsing. Find tools for SAP development, compare their documented capabilities, ask your AI assistant, and join a flight during TechEd week.

Details

History29
  • BTP MCP Serverserves_ecosystems → removedThe tag came in with the entry on 2026-09-10 and nothing sourced it: the README names BTP Core Services and the proxy it runs on, never CAP. It read as a routing leftover from when the MCP servers capability lived on the CAP door; the entry stays on BTP, its home.
  • odata-mcp-proxyserves_ecosystems → removedThe tag came in with the entry on 2026-09-10 and nothing sourced it: the README describes a config-driven proxy on BTP Cloud Foundry and names no CAP stack. Removed with its sibling configs; the entry stays on BTP, its home.
  • btp-solution-diagram-generatorprovides.agent-guidance.facets.installs_into → Claude Code, Coworkcapability:agent-guidance declared the installs_into property on the BTP door, and the README's Install section names both hosts in one sentence. Cowork is the second host no other entry behind this door names.
  • btp-solution-diagram-generatorprovides.agent-guidance.what_it_does → The same, with what the plugin actually contains: the core SKILL.md, the six reference files and the bundled shape library.The edge said the rules are packaged and not what the package holds, which is the thing that separates this option from the other three skill sets behind the door that carry the same guideline. The README's own list was read on 2026-10-15 and its three lines are now the edge's sources.
  • cap-agent-ui5-webuidescription.what_it_solves, description.when_not_to_use, provides.agent-tooling, requires → a paragraph, two situations it is not for, a sourced provides edge with two property values, and a required edge on @cap-js/agentsThe README has grown well past what the page carried, and the entry stated the capability with no source at all. Read on 2026-10-15: it serves a freestyle SAPUI5 TypeScript chat client same-origin from the CDS server against the services carrying @agent, renders a picker for more than one agent where switching starts a new conversation, speaks nothing but A2A as @cap-js/agents serves it, pins that package to exactly 0.9.1 and says to expect breakage on upgrade, and ships a scripted LLM because the bundled mock can never call an action and leaves an @agent.hitl gate unreachable. The dependency on @cap-js/agents is what the plugin is written against, so it is a required edge rather than a sentence.
  • cds-plugin-handlersprovides[typescript-patterns] → what_it_does and two facet valuesThe edge carried no sentence. It now says how the plugin decides where a handler goes, which is by folder and file name rather than by a decorator, and states the handler_binding and layers values of the capability's comparison, each on the README sentence it rests on. dependency_injection and draft_events are left unstated: the README mentions neither.
  • ui5-cap-ai-featuresprovides[llm-integration].facets, sources → model_access: SAP AI Core, and the README sentence that names the service the AIService is backed bycapability:llm-integration declared two comparison properties on 2026-10-15. The edge rested on the npm README's sentence about server-side prompts, which says where the prompts live and not which service the call goes to; the package README, read the same day, names SAP AI Core's Orchestration Service outright, which is what the property states. response_streaming is left absent: the README says nothing about streaming, and absent is not no.
  • ui5-cap-ai-featuresrequires[sap-ai-sdk-orchestration] → conditional, with the README's optional-peer sentence quotedThe edge read as an unconditional prerequisite while this entry's own when_not_to_use already said the package is an optional peer. The README states it in one sentence, quoted now: a frontend-only install does not need it and a backend project installs it explicitly, which is the distinction a reader deciding what to add to package.json needs. The edge to the HTML5 Application Repository is untouched; nothing was read for it in this pass.
  • AI Core MCP Serverprovides → capability:agent-systems-accessThe 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.
  • BTP CF MCP Serverprovides → capability:agent-systems-accessThe 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.
  • BTP MCP Serverprovides → capability:agent-systems-accessThe 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.
  • btp-sap-odata-to-mcp-serverprovides → capability:agent-systems-accessThe 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.
  • CI MCP Serverprovides → capability:agent-systems-accessThe 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.
  • odata-mcp-proxyprovides → capability:agent-systems-accessThe 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.
  • BTP MCP Serverprovides → capability:account-provisioningThe README lists create, update and delete on subaccounts and directories and entitlement assignment; the only edge was to the MCP-server capability, so the account-provisioning page did not list it.
  • ui5-cap-serverside-rendering-plugindescription.one_line → CAP plugin that fills UI5 views and fragments with entity data on the server through Handlebars, and renders a Vue app to HTML on a route of its own.The old line said the plugin renders UI5 applications. Its README and cds-plugin.js describe two narrower things: Handlebars substitution into a single view or fragment, served as an entity's media content, and a separate Vue route that renders HTML.
  • ui5-cap-serverside-rendering-plugindescription.what_it_solves → written from the README, index.cds and cds-plugin.js on main, read 2026-09-22The entry carried a one-line index entry and nothing answering what it does, so the page opened on readings. The paragraph states where the views live, which aspect and annotations switch the behaviour on, what the handler returns, and that the Vue path is separate.
  • ui5-cap-serverside-rendering-plugindescription.when_not_to_use → the XML-not-HTML boundary, the duplicated view, and the stated CAP 8 floorWithout it the page left the reader to assume that server-side rendering here produces a page. It produces a data-filled UI5 XML view on the UI5 path, and the peer dependency puts CAP 7 out of range.
  • ui5-cap-serverside-rendering-plugindescription.to_build_on_it → the Vue path's REVISIT markers and its one-app-per-server configurationThe author marks the Vue state handling as unfinished in the source, and vueConfig is a module-level object, so the shape of that half is worth stating for anyone reading it further.
  • ui5-cap-serverside-rendering-pluginprovides → the same edge in object form, with what_it_does and two sourcesA bare ref said the plugin answers the capability without saying how. The object form carries the contribution and the files it was read from.
  • BTP CF MCP Serverconnects → btp-cloud-foundry-runtimeThe server required the Cloud Foundry runtime and the Destination service as two separate dependencies. The connection says how they relate: the calls go to the CF API and run through the destination.
  • AI Core MCP Serverentry → createdTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  • BTP MCP Serverentry → createdTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  • btp-sap-odata-to-mcp-serverentry → createdTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  • CI MCP Serverentry → createdTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  • CI MCP Serverecosystem → btpPlaced on integration, which is a classification in the schema enum and not a door — so its breadcrumb read INTEGRATION and linked to a page that 404s. Cloud Integration is an Integration Suite service and the Integration Suite is BTP, which is the reasoning the door list has carried since it was written.
  • odata-mcp-proxyentry → createdTriaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Written from the repository's own README; the catalogue is credited as where it was found and its words are not reused.
  • cap-agent-ui5-webuidescription.one_line → Gives a CAP agent a UI5 web interface out of the box, so an agent built in the service has somewhere to be talked to without a separate frontend project.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • First entry seenDiscovered via sap-ai-mcp-servers, Added by hand, GitHub API, GitHub API · lemaiwo, npm registry, The discovery pass, The discovery pass · npm, SAP Community.
For your agent