
sap-btp-service-manager
This skill provides comprehensive knowledge for SAP Service Manager on SAP Business Technology Platform (BTP). It should be used when managing service instances, bindings, brokers, and platforms across Cloud Foundry, Kyma, Kubernetes, and other environments. Use when provisioning services via SMCTL CLI, BTP CLI, or REST APIs, configuring OAuth2 authentication, working with the SAP BTP Service Operator in Kubernetes, troubleshooting service consumption issues, or implementing cross-environment service management. Keywords: SAP Service Manager, BTP, service instances, service bindings, SMCTL, service broker, OSBAPI, Cloud Foundry, Kyma, Kubernetes, service-manager, service-operator-access, subaccount-admin, OAuth2, X.509, service marketplace, service plans, rate limiting, cf create-service, btp create services/instance, ServiceInstance CRD, ServiceBinding CRD
- Installs
- 658
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/secondsky/sap-skills --skill sap-btp-service-manager- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads sap-btp-service-manager automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
SAP BTP Service Manager Skill
Related Skills
- sap-btp-cloud-platform: Use for platform fundamentals, service understanding, and BTP integration
- sap-btp-best-practices: Use for production deployment patterns and service management guidelines
- sap-btp-connectivity: Use for destination configuration when services require connectivity setup
- sap-cap-capire: Use for CAP service provisioning and binding management
Comprehensive skill for managing services across SAP BTP environments using SAP Service Manager.
Table of Contents
- When to Use This Skill
- Quick Start
- Core Concepts
- Cloud Foundry Operations
- Kubernetes Operations
- SMCTL CLI Reference
- API Reference
- Bundled Resources
When to Use This Skill
Use this skill when working on tasks involving:
Service Instance Management:
- Creating service instances in Cloud Foundry, Kyma, Kubernetes, or other environments
- Provisioning services via SAP BTP cockpit, SMCTL CLI, or BTP CLI
- Configuring service parameters and labels
- Deleting service instances and managing lifecycle
Service Binding Management:
- Creating bindings to deliver credentials to applications
- Binding service instances to Cloud Foundry applications
- Creating service keys for external client access
- Managing Kubernetes ServiceBinding CRDs
Platform & Broker Management:
- Registering platforms (OSBAPI-enabled systems)
- Registering service brokers
- Managing broker catalogs and offerings
- Updating and deleting platform/broker registrations
Authentication & Authorization:
- Configuring OAuth2 client credentials
- Working with X.509 certificate authentication
- Assigning Subaccount Service Administrator role
- Managing service manager plans and scopes
Kubernetes/Kyma Integration:
- Setting up SAP BTP Service Operator
- Creating ServiceInstance and ServiceBinding CRDs
- Migrating from Service Catalog (svcat) to SAP BTP Service Operator
- Installing cert-manager for operator communication
API & CLI Operations:
- Using SMCTL command-line interface
- Using BTP CLI for service management
- Working with Service Manager REST APIs
- Filtering and querying service resources
Troubleshooting:
- Debugging service provisioning failures
- Resolving binding credential issues
- Handling rate limiting (HTTP 429)
- Checking async operation status
Quick Start
1. Install SMCTL CLI
⚠️ Important: The SMCLI repository was archived on September 30, 2025. While the tool remains functional, consider migration strategies for long-term SAP BTP workflows.
Recommended Method (Go):
# Install via Go (preferred approach)
go install github.com/Peripli/service-manager-cli@latest
# Add to PATH (if not already)
export PATH=$PATH:$(go env GOPATH)/bin
smctl --version
Alternative Method (Prebuilt Binary):
# Download from: https://github.com/Peripli/service-manager-cli/releases/latest
tar -xzf smctl-*.tar.gz && chmod +x smctl
sudo mv smctl /usr/local/bin/ && smctl --version
Note: While the prebuilt binary method remains functional, the Go installation approach is officially recommended. Consider evaluating SAP's native BTP CLI as an alternative for new deployments.
2. Login
# Interactive login
smctl login -a https://service-manager.cfapps.<region>.hana.ondemand.com \
--param subdomain=<subdomain>
# Client credentials
smctl login -a https://service-manager.cfapps.<region>.hana.ondemand.com \
--param subdomain=<subdomain> --auth-flow client-credentials \
--client-id <id> --client-secret <secret>
3. Basic Operations
# Browse services
smctl marketplace
# Create instance (async)
smctl provision my-instance <service> <plan>
# Create binding
smctl bind my-instance my-binding
Core Concepts
Service Manager Architecture
SAP Service Manager is the central registry for service brokers and platforms in SAP BTP.
Primary Resources:
- Platforms - OSBAPI-enabled systems where applications run
- Service Brokers - Intermediaries advertising service catalogs
- Service Instances - Individual service instantiations
- Service Bindings - Access credentials for instances
- Service Plans - Capability sets offered by services
- Service Offerings - Service advertisements from brokers
Service Manager Plans
| Plan | Purpose | Scopes |
|---|---|---|
| subaccount-admin | Full management | 10 scopes (manage + read) |
| subaccount-audit | Read-only monitoring | 6 scopes |
| container | Isolated management | 7 scopes |
Roles
- Subaccount Service Administrator - Full CRUD on resources
- Subaccount Service Viewer - Read-only access (Feature Set B)
Cloud Foundry Operations
Service Instance & Binding
Via Cockpit: Services > Instances > Create > Select service/plan > Cloud Foundry runtime
Via CF CLI:
# Create instance
cf create-service <service> <plan> <instance-name>
# Bind to app
cf bind-service <app-name> <instance-name>
# Create service key (external access)
cf create-service-key <instance-name> <key-name>
Kubernetes Operations
Prerequisites
- Kubernetes cluster with kubectl v1.7+
- Helm v3.1.2+
- SMCTL v1.10.1+
Setup Service Operator
1. Install cert-manager:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0/cert-manager.yaml
2. Create Service Manager resources:
smctl provision sm-operator service-manager service-operator-access --mode sync
smctl bind sm-operator sm-operator-binding --mode sync
smctl get-binding sm-operator-binding -o json
3. Deploy operator:
helm repo add sap-btp-operator https://sap.github.io/sap-btp-service-operator/
helm install sap-btp-operator sap-btp-operator/sap-btp-operator \
--namespace sap-btp-operator --create-namespace \
--set manager.secret.clientid=<id> \
--set manager.secret.clientsecret=<secret>
Create Resources
ServiceInstance:
apiVersion: services.cloud.sap.com/v1alpha1
kind: ServiceInstance
metadata:
name: my-service-instance
spec:
serviceOfferingName: <service-offering>
servicePlanName: <plan-name>
ServiceBinding:
apiVersion: services.cloud.sap.com/v1alpha1
kind: ServiceBinding
metadata:
name: my-binding
spec:
serviceInstanceName: my-service-instance
Reference: See references/kubernetes-operator.md for complete guide.
BTP CLI Operations
Alternative to SMCTL using the unified BTP CLI:
# Create instance
btp create services/instance \
--subaccount <subaccount-id> \
--service <service-name> \
--plan <plan-id> \
--parameters '{"key":"value"}' \
--labels '{"env":["dev"]}'
# Get instance details
btp get services/instance <instance-id> \
--subaccount <subaccount-id> \
--show-parameters
# Create binding
btp create services/binding \
--subaccount <subaccount-id> \
--binding <binding-name> \
--service-instance <instance-id>
# Platform management
btp list services/platform --subaccount <id>
btp register services/platform --subaccount <id> --name <name> --type <type>
btp unregister services/platform <platform-id> --subaccount <id>
API Operations
Retrieve OAuth2 Token
curl '<uaa_url>/oauth/token' -X POST \
-H 'Accept: application/json' \
-d 'grant_type=client_credentials&client_id=<clientid>&client_secret=<clientsecret>'
Response:
{
"access_token": "<token>",
"token_type": "bearer",
"expires_in": 43199,
"scope": "<xsappname>.job.read <xsappname>.event.read"
}
API Base URI
https://service-manager.cfapps.<region>.hana.ondemand.com/v1/
Rate Limiting
Three concurrent tiers enforced:
- Level 1: All APIs - 10,000/hour, 1,000/minute
- Level 2: Resource-specific - 1,000-6,000/hour
- Level 3: Instance operations - 50-6,000/hour
HTTP 429 returned with Retry-After header when limits exceeded.
Filtering
Query parameters:
fieldQuery- Filter by resource attributeslabelQuery- Filter by resource labels- Operators:
eq,ne,in,contains, etc.
Reference: See references/rate-limiting-filtering.md for complete rate limits and filtering details.
SMCTL Command Reference
Key Commands
| Category | Commands | Description |
|---|---|---|
| Authentication | login, logout | Manage sessions |
| Instances | provision, deprovision, list-instances | Service instance lifecycle |
| Bindings | bind, unbind, list-bindings | Service binding management |
| Brokers | register-broker, update-broker | Service broker operations |
| Platforms | register-platform, list-platforms | Platform registration |
| Marketplace | marketplace | Browse service offerings |
Common Flags
--mode sync/async- Execution mode (default: async)-c, --parameters- JSON configuration-o, --output- Output format (json, yaml, text)-v, --verbose- Detailed output
Reference: See references/smctl-commands.md for complete command reference with all flags and examples.
Common Operations
Check Async Operation Status
# Get operation URL from provision/bind response
smctl status /v1/service_instances/<id>/operations/<op-id>
API:
GET /v1/{resourceType}/{resourceID}/operations/{operationID}
Response states: in progress, succeeded, failed
Delete Service Instance
Prerequisites:
- Remove all service bindings
- Remove all service keys
- Instance not bound to applications
# Force delete without confirmation
smctl deprovision my-instance -f
# Sync mode
smctl deprovision my-instance --mode sync
Note: Kyma/Kubernetes instances cannot be deleted from BTP cockpit.
Assign Administrator Role
- Navigate to subaccount > Security > Trust Configuration > SAP ID Service
- Enter user email
- Click Show Assignments > Add User
- Assign Role Collection > Select "Subaccount Service Administrator"
Troubleshooting
Issue: Cannot see service in marketplace
Check:
- Service entitlement added to subaccount?
- Quota assigned (enterprise accounts)?
- Correct region selected?
Issue: Instance creation fails
Check:
- Valid plan selected?
- Parameters JSON syntax correct?
- Quota not exceeded?
- Required dependencies provisioned?
Debug:
smctl get-instance <name> -o json
# Check "last_operation" for error details
Issue: Rate limit exceeded (HTTP 429)
Solution:
- Check
Retry-Afterheader - Implement exponential backoff
- Batch operations where possible
- Consider caching responses
Issue: Binding credentials missing
Check:
- Binding completed successfully?
- Correct binding name referenced?
- Secret created (Kubernetes)?
# SMCTL
smctl get-binding <name> -o json
# Kubernetes
kubectl get secrets <binding-name> -o yaml
Issue: X.509 authentication fails
Check:
- Certificate not expired?
- Correct certificate/key pair?
- Certificate chain complete?
- Client ID matches certificate?
Best Practices
1. Use Sync Mode for Scripts
smctl provision my-instance service plan --mode sync
2. Label Resources
smctl provision my-instance service plan \
-c '{}' \
--labels '{"environment":"production","team":"platform"}'
3. Use Service Keys for External Access
Instead of binding to apps, create service keys for external clients.
4. Implement Retry Logic
For async operations, poll status with exponential backoff.
5. Choose Appropriate Plans
subaccount-admin: Full managementsubaccount-audit: Read-only monitoringcontainer: Isolated per-instance access
6. Secure Credentials
- Rotate service keys periodically
- Use X.509 for production
- Store credentials in secret managers
Bundled Resources
Templates (5 files)
Ready-to-use templates in templates/ directory:
- service-instance-cf.json - Cloud Foundry instance parameters
- service-binding-cf.json - Cloud Foundry binding parameters
- service-instance-k8s.yaml - Kubernetes ServiceInstance CRD
- service-binding-k8s.yaml - Kubernetes ServiceBinding CRD
- oauth-token-request.sh - OAuth2 token retrieval script
Reference Documentation (7 files)
Detailed documentation in references/ directory:
- api-reference.md - Complete API endpoints, operations, and examples
- smctl-commands.md - Full SMCTL CLI reference with all flags and usage
- btp-cli-commands.md - Comprehensive BTP CLI command reference
- kubernetes-operator.md - Service Operator setup, CRDs, migration guide
- rate-limiting-filtering.md - Rate limits, filtering, and best practices
- roles-permissions.md - Plans, roles, scopes, and authorization details
- service-catalog-legacy.md - Legacy svcat and broker proxy setup (deprecated)
Quick Reference Templates
Official Documentation Links
Primary Resources
- GitHub Docs: https://github.com/SAP-docs/sap-btp-service-manager/tree/main/docs
- SAP Help Portal: https://help.sap.com/docs/service-manager
- SMCTL Releases: https://github.com/Peripli/service-manager-cli/releases
- Service Operator: https://github.com/SAP/sap-btp-service-operator
API Documentation
- Swagger UI:
https://service-manager.cfapps.<region>.hana.ondemand.com/swaggerui/swagger-ui.html - Regions: https://help.sap.com/docs/btp/sap-business-technology-platform/regions-and-api-endpoints-available-for-cloud-foundry-environment
Related Documentation
- BTP Cockpit: https://cockpit.btp.cloud.sap/
- cert-manager: https://cert-manager.io/docs/installation/kubernetes/
- Kyma Services: https://help.sap.com/docs/btp/sap-business-technology-platform/using-services-in-kyma-environment
Instructions for Claude
When using this skill:
- Identify the environment - Cloud Foundry, Kyma, Kubernetes, or Other
- Choose appropriate tool - SMCTL, BTP CLI, CF CLI, kubectl, or cockpit
- Use correct authentication - OAuth2, X.509, or interactive
- Check rate limits - Implement retry logic for bulk operations
- Verify async completion - Poll status for provision/bind operations
- Reference templates - Use provided templates for common operations
- Check reference files - Detailed information in references/ directory
For Cloud Foundry: Use cf CLI or cockpit
For Kubernetes: Use ServiceInstance/ServiceBinding CRDs
For Other environments: Use SMCTL or BTP CLI
For API access: Retrieve OAuth2 token first
When troubleshooting:
- Check operation status for async operations
- Verify credentials and permissions
- Review rate limits if getting 429 errors
- Check prerequisites (entitlements, quotas, dependencies)
License: GPL-3.0 Version: 1.1.1 Maintained by: Eduard Jiglau Email: hello@sap-ai-skills.com Website: https://sap-ai-skills.com Repository: https://github.com/secondsky/sap-skills
FAQ
What does the sap-btp-service-manager skill do?
This skill provides comprehensive knowledge for SAP Service Manager on SAP Business Technology Platform (BTP). It should be used when managing service instances, bindings, brokers, and platforms across Cloud Foundry, Kyma, Kubernetes, and other environments. Use when provisioning services via SMCTL CLI, BTP CLI, or REST APIs, configuring OAuth2 authentication, working with the SAP BTP Service Operator in Kubernetes, troubleshooting service consumption issues, or implementing cross-environment service management. Keywords: SAP Service Manager, BTP, service instances, service bindings, SMCTL, service broker, OSBAPI, Cloud Foundry, Kyma, Kubernetes, service-manager, service-operator-access, subaccount-admin, OAuth2, X.509, service marketplace, service plans, rate limiting, cf create-service, btp create services/instance, ServiceInstance CRD, ServiceBinding CRD
How do I install sap-btp-service-manager?
Run npx skills add https://github.com/secondsky/sap-skills --skill sap-btp-service-manager in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/sap-btp-service-manager/ (personal) or .claude/skills/sap-btp-service-manager/ (project).
Which AI agents can use sap-btp-service-manager?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is sap-btp-service-manager safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains sap-btp-service-manager?
It is published by secondsky in secondsky/sap-skills. It has 658 recorded installs.
More from secondsky/sap-skills
sap-abap
secondsky/sap-skills
Comprehensive ABAP development skill for SAP systems. Use when writing ABAP code, working with internal tables, structures, ABAP SQL, object-oriented programming, RAP (RESTful Application Programming Model), CDS views, EML statements, ABAP Cloud development, string processing, dynamic programming, RTTI/RTTC, field symbols, data references, exception handling, or ABAP unit testing. Covers both classic ABAP and modern ABAP for Cloud Development patterns.
sap-fiori-tools
secondsky/sap-skills
Develops SAP Fiori applications using SAP Fiori tools extensions for VS Code and SAP Business Application Studio. Use when: generating Fiori Elements or Freestyle SAPUI5 applications, configuring Page Editor for List Report or Object Page, working with annotations and Service Modeler, setting up deployment to ABAP or Cloud Foundry, creating adaptation projects, using Guided Development, previewing with mock data or live data, configuring SAP Fiori launchpad, or using AI-powered generation with Project Accelerator/Joule. Technologies: SAP Fiori Elements, SAPUI5, OData V2/V4, CAP, SAP BTP, ABAP, Cloud Foundry, fiori-mcp-server (MCP tools for AI-assisted generation).
sap-cap-capire
secondsky/sap-skills
SAP Cloud Application Programming Model (CAP) development skill using Capire documentation. Use when: building CAP applications, defining CDS models, implementing services, working with SAP HANA/SQLite/PostgreSQL databases, deploying to SAP BTP Cloud Foundry or Kyma, implementing Fiori UIs, handling authorization, multitenancy, or messaging. Covers CDL/CQL/CSN syntax, Node.js and Java runtimes, event handlers, OData services, and CAP plugins.
sap-btp-developer-guide
secondsky/sap-skills
Develops business applications on SAP Business Technology Platform (BTP) using CAP (Node.js/Java) or ABAP Cloud. Use when: building cloud applications on SAP BTP, deploying to Cloud Foundry or Kyma runtimes, integrating with SAP HANA Cloud, implementing SAP Fiori UIs, connecting to remote SAP systems, building multitenant SaaS applications, extending SAP S/4HANA or SuccessFactors, setting up CI/CD pipelines, implementing observability, or following SAP development best practices. Keywords: SAP BTP, Business Technology Platform, CAP, Cloud Application Programming Model, ABAP Cloud, Cloud Foundry, Kyma, SAP HANA Cloud, SAP Fiori, SAPUI5, CI/CD, observability, multitenant, SaaS, SAP BTP ABAP environment, SAP Business Application Studio, SAP Cloud SDK, SAP Integration Suite, SAP Event Mesh, SAP Connectivity Service, SAP Destination Service, XSUAA, OAuth, OpenID Connect, OData, CDS, Core Data Services, ABAP CDS, ABAP RESTful Application Programming Model, RAP, ABAP development, SAP BTP deve
sap-btp-best-practices
secondsky/sap-skills
SAP BTP best practices for enterprise architecture, account management, security, and operations, with verification evidence tracked in the repository ledger. Use when planning BTP implementations, setting up account hierarchies, configuring environments, implementing authentication, designing CI/CD pipelines, establishing governance, building Platform Engineering teams, implementing failover strategies, or managing application lifecycle on SAP BTP. Keywords: SAP BTP, account hierarchy, global account, directory, subaccount, Cloud Foundry, Kyma, ABAP, SAP Identity Authentication, CI/CD, governance, Platform Engineering, failover, multi-region, SAP BTP best practices
sap-btp-connectivity
secondsky/sap-skills
SAP BTP Connectivity skill covering Destination Service, Connectivity Service, Cloud Connector, Connectivity Proxy, and Transparent Proxy for Kubernetes. Use when configuring destinations (HTTP, RFC, LDAP, MAIL, TCP), setting up cloud-to-on-premise connectivity, implementing OAuth and principal propagation, deploying connectivity proxies in Kubernetes/Kyma, troubleshooting connectivity errors (405, 407, 503), or configuring multitenancy.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.