SkillSkilltypeA procedure an agent follows. Indexed here, never written here.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

SAP-samples/joule-a2a-agent-toolkit

Four skills for building an agent that talks to SAP Joule over A2A and getting it onto Cloud Foundry — the agent itself, and the three CLIs the deployment goes through.

Connecting a custom agent to Joule is a protocol problem wrapped in a landscape problem, and the landscape part is three command-line tools nobody remembers the flags for. **joule-a2a-agent** scaffolds a LangGraph agent with A2A support on Express or CAP, configuration included; **btp-cli**, **cf-cli** and **joule-cli** generate the commands for global accounts, subaccounts, services and security, for pushing and binding on Cloud Foundry, and for compiling and deploying digital assistant capabilities. A2A itself is JSON-RPC 2.0 over HTTPS between Joule and the agent you deployed. Installed by pointing Claude Code at the plugin directory, after which the repository separates the four auto-triggered skills from the user-invoked commands, among them deploy-agent, which deploys what was scaffolded.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Provides
Agent guidanceBTPAgent 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.
Requires
SAP Destination serviceSAP Destination serviceartifacta SAP BTP destination through which Joule reaches the deployed agent@sap/joule-studio-cli@sap/joule-studio-cliartifactcompiling and deploying Joule digital assistant capabilities via the Joule CLISAP BTP, Cloud Foundry RuntimeSAP BTP, Cloud Foundry Runtimeartifactrunning the deployed agent on SAP BTP, Cloud Foundry RuntimeSAP AI CoreSAP AI Coreartifactcalling SAP GenAI Hub models through SAP AI Core
Optional
SAP Authorization and Trust Management serviceSAP Authorization and Trust Management serviceartifactsecuring the agent with OAuth2 via XSUAA@sap/cds-dk@sap/cds-dkartifactcompiling the CDS service before the MTA build for CAP agents

Who is behind it

SAP SamplesSAP SamplesOrganisationMaintains this
In the atlas: maintains 222
@SAP-samples
maintainerArthurPersonContributes to this
In the atlas: contributes to 1
@arthurliebhardtSAP
Mathias KemeterPersonContributes to this
In the atlas: contributes to 1, wrote 1
@mkemeter
2 contributors

Before choosing this

Conditions

PracticalFunctional boundary

Skills that generate commands are not the commands: everything here still runs against a real BTP account with real entitlements, and the deployment path assumed is Cloud Foundry, with cf login and joule login done before the toolkit is used. Three of the four skills are CLI knowledge rather than anything Joule-specific, which is worth knowing if you only wanted the agent part.

What it declares

Every artifact

Type
Skill
Origin
By SAP

As a skill

Distributed through
Agent plugin marketplace

For agent guidance

Installs into
Claude Code

Tasks this contributes to1Beta

Change a BTP service from an agent sessionA developer working with an agent wants the change made in their own BTP account or service, a Command deployed, an agent pushed, a deployment created, rather than a command to copy out and run themselves.Covers, under conditionsgenerates the commands, and deploys through one of its own
What it does

Its four skills generate the btp, cf and Joule commands rather than running them. Beside them the Quick Start uses a user-invoked command, deploy-agent, on the scaffolded agent, and the Getting Started step is to start Claude Code with the plugin and then log in to Cloud Foundry and Joule.

Conditions

cf login and joule login done before the toolkit is used, which the Getting Started step states; A BTP Cloud Foundry account with the entitlements the generated commands act on

Remaining work

Run the two logins, then read what the generated commands would do against the account they are pointed at: what the skills hand over is text until something runs it.

All options on the Agent guidance page →

Connections8

SAP-samples/joule-a2a-agent-toolkit connectionsSAP-samples/joule-a2a-agent-toolkitPROVIDES→ provides1provides stated Four auto-triggered skills covering the A2A agent itself and the btp, cf and joule command lines its deployment goes through. SAP-samples/joule-a2a-agent-toolkit — README: https://github.com/SAP-samples/joule-a2a-agent-toolkit SAP-samples/joule-a2a-agent-toolkit — README, the btp-cli skill: https://github.com/SAP-samples/joule-a2a-agent-toolkit SAP-samples/joule-a2a-agent-toolkit — README, Quick Start: https://github.com/SAP-samples/joule-a2a-agent-toolkitAgent guidanceNEEDS→ connects to1connects to stated the A2A protocol traffic between the deployed agent and [SAP Joule](artifact:sap-joule) joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkitSAP Joule→ needs4needs stated compiling and deploying Joule digital assistant capabilities via the [Joule CLI](artifact:sap-joule-studio-cli) joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkit@sap/joule-studio-clineeds stated calling SAP GenAI Hub models through [SAP AI Core](artifact:btp-ai-core) joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkitSAP AI Coreneeds stated running the deployed agent on [SAP BTP, Cloud Foundry Runtime](artifact:btp-cloud-foundry-runtime) joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkitSAP BTP, Cloud Foundry Runtimeneeds stated a [SAP BTP](artifact:btp-destination) destination through which Joule reaches the deployed agent joule-a2a-agent-toolkit README: https://github.com/sap-samples/joule-a2a-agent-toolkitSAP Destination service→ optionally needs2optionally needs stated If: the CAP framework option is used compiling the CDS service before the MTA build for [CAP](artifact:sap-cds-dk) agents joule-a2a-agent-toolkit: skills/joule-a2a-agent/references/cf-deployment-cap-typescript.md: https://raw.githubusercontent.com/SAP-samples/joule-a2a-agent-toolkit/main/skills/joule-a2a-agent/references/cf-deployment-cap-typescript.md@sap/cds-dkifoptionally needs stated If: the agent needs OAuth2 authentication securing the agent with OAuth2 via XSUAA joule-a2a-agent-toolkit: skills/joule-a2a-agent/references/cf-deployment-cap-typescript.md: https://raw.githubusercontent.com/SAP-samples/joule-a2a-agent-toolkit/main/skills/joule-a2a-agent/references/cf-deployment-cap-typescript.mdSAP Authorization and Trust Managementserviceif

README

quoted from SAP-samples/joule-a2a-agent-toolkit under Apache-2.0, read
SAP-samples/joule-a2a-agent-toolkit/README.mdOn GitHub

REUSE status

SAP A2A Agent Toolkit Plugin

Build, deploy, and connect AI agents to SAP Joule via the A2A (Agent-to-Agent) protocol on BTP Cloud Foundry — all from Claude Code.

What's Included

Skills (auto-triggered by context)
SkillTriggers OnWhat It Does
joule-a2a-agent"build an agent for Joule", "create A2A agent", "deploy agent to BTP", "CAP agent"Scaffolds a complete LangGraph agent with A2A support (Express or CAP), CF manifest/MTA, and Joule capability YAML
btp-cli"btp", "BTP CLI", subaccount management, entitlementsGenerates correct btp commands for managing BTP global accounts, subaccounts, services, and security
cf-cli"cf push", "Cloud Foundry", app deployment, service bindingGenerates correct cf commands for deploying apps, managing services, routes, and spaces
joule-cli"joule deploy", "joule compile", capability deploymentGenerates correct Joule CLI commands for compiling and deploying digital assistant capabilities
Commands (user-invoked)
CommandUsageWhat It Does
/sap-a2a-agent-toolkit:create-agent/sap-a2a-agent-toolkit:create-agent po-assistant --lang typescript --framework cap --landscape eu10Scaffolds a new agent project in your working directory
/sap-a2a-agent-toolkit:create-destination/sap-a2a-agent-toolkit:create-destination po-assistant POAssistant_A2A eu10Creates a BTP HTTP destination connecting Joule to your CF agent
/sap-a2a-agent-toolkit:deploy-agent/sap-a2a-agent-toolkit:deploy-agent ./po-assistantFull deployment: CF push/MTA deploy + destination + Joule capability in one command

Prerequisites

  • cf CLI v8 installed and logged in (cf login )
  • Joule CLI installed (npm install -g @sap/joule-studio-cli) and logged in (joule login)
    • Joule App2App IAS flow must be configured for Joule Studio CLI (assign roles)
  • BTP subaccount with Cloud Foundry runtime, AI Core service, and Destination service
  • Node.js v24.x (for TypeScript agents and Joule CLI)
  • Python 3.12+ (for Python agents only)
  • mbt (MTA Build Tool, for CAP agents only): npm install -g mbt
  • MTA CF CLI Plugin (for CAP agents only): cf install-plugin multiapps — required for cf deploy to work with .mtar files

Getting Started

Start Claude Code with the toolkit plugin, then log in to CF and Joule:

# 1. Start Claude Code with the plugin
claude --plugin-dir <path-to-sap-a2a-agent-toolkit>

# 2. Log in to Cloud Foundry
cf login -a https://api.cf.<landscape>.hana.ondemand.com 

# 3. Log in to Joule
joule login

Quick Start

# 1. Scaffold an agent (TypeScript + Express, default)
/sap-a2a-agent-toolkit:create-agent po-assistant

# 1b. TypeScript + CAP (enterprise, MTA deploy)
/sap-a2a-agent-toolkit:create-agent po-assistant --framework cap

# 1c. Python agent
/sap-a2a-agent-toolkit:create-agent po-assistant --lang python

# 2. Customize tools, then deploy everything
/sap-a2a-agent-toolkit:deploy-agent ./po-assistant
create-agent Arguments
ArgumentValuesDefaultDescription
<agent-name>any kebab-case name(required)Name of the agent project folder
--langtypescript, pythontypescriptProgramming language
--frameworkexpress, capexpressServer framework (CAP is TypeScript-only)
--landscapeeu10, us10, ap10, …eu10SAP BTP CF landscape
--namespaceany stringjoule.extCapability namespace — must be joule.ext for Joule deployment

Or just describe what you want:

"Build me a Joule A2A agent in TypeScript using CAP that checks purchase order status from S/4HANA, deploy it to eu10"

Claude will use the skills automatically.

Architecture

User prompt in Joule
        |
        v
+----------------+     A2A (JSON-RPC 2.0)     +----------------------+
|  SAP Joule     | --------------------------> |  Your Agent          |
|  (BTP)         | <-------------------------- |  (Cloud Foundry)     |
+-------+--------+     Protocol v0.3.0         +---------+------------+
        |                                                |
  capability.sapdas.yaml                     LangGraph + Tools
  functions/call_agent.yaml                  SAP GenAI Hub (AI Core)
  BTP Destination                            OrchestrationClient
Framework Options
Express TS (default)CAP TSPython + Express
ServerExpress + A2AExpressAppCAP + cds.on("bootstrap")Starlette + A2AStarletteApplication
Deploycf push (manifest.yml)mbt build + cf deploy (mta.yaml)cf push (manifest.yml)
AuthManual XSUAA setupBuilt-in CAP authManual XSUAA setup
ServicesManual bindingsCDS service definitionsManual bindings
Best forLightweight agents, quick prototypingEnterprise agents, complex service bindingsTeams preferring Python

Supported Stack

  • Framework: LangGraph (Python) / LangGraph.js (TypeScript) on Express or CAP
  • LLM: SAP GenAI Hub via @sap-ai-sdk/langchain OrchestrationClient
  • Protocol: A2A v0.3.0 — JSON-RPC 2.0 over HTTPS (@a2a-js/sdk 0.3.10)
  • Deployment: SAP BTP Cloud Foundry (manifest.yml or MTA)
  • Languages: TypeScript (default), Python
  • Node.js: 24.x

Known Issues

How to obtain support

Create an issue in this repository if you find a bug or have questions about the content.

For additional support, ask a question in SAP Community.

Contributing

If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.

License

Copyright (c) 2026 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.

Apache-2.0, read
Agent guidance
  1. abap2UI5 for VS CodeVS Code extension to preview, activate and lint abap2UI5 appsfrom ABAP
  2. sap-cx-developer-companionAgent skill for SAP Customer Experience APIs, CDS and errorsfrom SAP Commerce
  3. sap-basis-opsRunbook skills for Basis operations at the OS and database layerfrom ABAP
  4. abap-offstack-aunitAgent skill for off-stack ABAP Unit tests and an abaplint gatefrom ABAP
  5. ARC-1 SkillsTwenty-two agent skills shipped with arc-1from ABAP
  6. sapskillsAgent skills for Clean ABAP, ADT in VS Code and guardrailsfrom ABAP
  7. SuperClaude for SAPClaude Code plugin with an ABAP MCP server and write guardsfrom ABAP
  8. sap-dm-pod2-mcp-serverMCP server for SAP Digital Manufacturing POD 2.0 extensionsfrom SAP Digital Manufacturing
  9. capire/skillsAgent skills for CAP development, each a SKILL.md with referencesfrom CAP
  10. sap-cloud-integration-pipeline-assistantAgent skill for the Pipeline Concept in SAP Cloud Integrationfrom BTP/BAIP
  11. claude-abap-devFive ABAP workflows for Claude Code on existing MCP serversfrom ABAP
  12. DanKromp/skillOverflowCollection of 41 agent skills, 37 for SAP development tasksfrom CAP
  13. sap-commerce-skillAgent skill for SAP Commerce Cloud 2211-jdk21.1 and laterfrom SAP Commerce
  14. ARC-DRAWMCP server drawing BTP solution diagrams on a draw.io canvasfrom BTP/BAIP
  15. cap-mtx-scaffoldAgent skill for CAP multitenancy scaffoldingfrom CAP
  16. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP systemfrom ABAP
  17. scaffold-fiori-ai-bridgeAgent skill generating a Joule Frontend Actions bridge for UI5 appsfrom UI5
  18. sapcli Claude Code PluginAgents and skills that drive sapcli instead of ADTfrom ABAP
  19. CAP GuardianCAP review skill for coding agents with gates and prohibitionsfrom CAP
  20. sap-odata-explorerRust CLI and desktop app for exploring SAP OData servicesfrom BTP/BAIP
  21. btp-solution-diagram-generatorClaude plugin writing BTP solution diagrams as .drawio filesfrom BTP/BAIP
  22. abap-skillsSeventeen agent skills for ABAP developmentfrom ABAP
  23. drawio-skill-sapGitHub Copilot skill writing BTP solution diagrams as draw.io XMLfrom BTP/BAIP
  24. sap-mdk-appsAgent skill for Mobile Development Kit projectsfrom BTP/BAIP
  25. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  26. sap-architectureClaude Code plugin and skill drawing validated BTP diagramsfrom BTP/BAIP
  27. WerkbankLocal desktop workspace for AI conversations with SAP connectorsfrom Across stacks
  28. SAP Datasphere Plugin for ClaudeEighteen Datasphere skills over a bundled MCP serverfrom BTP/BAIP
  29. claude-abap-skillsClaude Code plugins with Clean ABAP rules and templatesfrom ABAP
  30. SAP Power for KiroSAP skills for the Kiro IDEfrom BTP/BAIP
  31. drawio-btp-diagram-skillsClaude Code skills for BTP architecture diagrams in draw.iofrom BTP/BAIP
  32. @patimweb/pi-cap-bestpracticesSAP's capire/skills packaged for the pi coding agentfrom CAP
  33. pod2-configAn agent skill that turns a described POD change into an importable [SAP Digital Manufacturing](external:sap-digital-manufacturing) POD 2.0 export, built from standard plugins and actions only.from SAP Digital Manufacturing
  34. aicore-skillsFour agent skills for SAP AI Core in SAP's AI Skills Libraryfrom BTP/BAIP
  35. SAP/automation-pilot-agent-skillsEight skills for writing and operating SAP Automation Pilot contentfrom BTP/BAIP
  36. SAP Developers MCPHosted MCP server of developers.sap.com tutorials and missionsfrom Across stacks
  37. sap-fiori-guidelinesAgent skill built from the Fiori Design Guidelinesfrom UI5
  38. sap-fiori-iosAgent skill mapping Fiori iOS UI Kit nodes in Figma to SwiftUIfrom BTP/BAIP
  39. SAP/leanix-ai-pluginsClaude Code plugin with two skills for SAP LeanIX scriptingfrom BTP/BAIP
  40. SAP-samples/html5-applications-migration-skills-for-sap-btpClaude Code plugin with skills migrating HTML5 apps to appFrontfrom BTP/BAIP
  41. SAP-samples/sap-devs-cliCLI adding SAP developer knowledge and MCP servers to AI coding toolsfrom BTP/BAIP
  42. sap-tutorials-contentAgent skill mapping the developers.sap.com content APIfrom BTP/BAIP
  43. SAP/ui-theme-designer-plugins-for-coding-agentsAgent plugin on the SAP Design System and theming parametersfrom UI5
  44. secondsky/sap-skillsForty SAP development plugins for coding agentsfrom BTP/BAIP
  45. claude-sap-kitClaude Code plugin adding Custom_* tools to arc-1from ABAP
  46. UI5/plugins-coding-agentsUI5 plugins for coding agentsfrom UI5
  47. UI5 Web Components agent skillsTwo agent skills for accessibility and styling of web componentsfrom UI5
  48. rap-skillsRAP skills delivered branch-per-target for each deploymentfrom ABAP
  49. KlystronMCP server in ABAP inside the application server, with agent skillsfrom ABAP

Details

Sources3
sap-ai-mcp-serversdiscovered herechecked
github.com/SAP-samples/joule-a2a-agent-toolkittree, 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
discovered viasap-ai-mcp-servers
first seen in the atlas
ecosystem and domainbtp, ai-and-agents
Contributors2

From the repository’s contributor list, .

History in the atlas4
  1. Claude Code
  2. The same, plus the split between the four auto-triggered skills and the user-invoked commands, among them deploy-agent; and the two logins moved into when_not_to_use.
  3. Entered from the sap-ai-mcp-servers catalogue, which is credited as the source; written from the repository's own README rather than from the catalogue's line about it. Hard rule 7: skills are indexed, never authored here.
  4. First seen.
For your agent
Ref
artifact:sap-samples-joule-a2a-agent-toolkit
JSON
/artifacts/sap-samples-joule-a2a-agent-toolkit.json
MCP
Connecting an agent