| name | sap-cap-capire |
| description | 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.
|
| license | GPL-3.0 |
| metadata | {"version":"2.1.2","last_verified":"2026-02-22","cap_version":"@sap/cds 9.7.x","mcp_version":"@cap-js/mcp-server 0.0.3+","lsp_version":"@sap/cds-lsp 9.7.x"} |
SAP CAP-Capire Development Skill
Related Skills
- sap-fiori-tools: Use for UI layer development, Fiori Elements integration, and frontend application generation
- sapui5: Use for custom UI development, advanced UI patterns, and freestyle application building
- sap-btp-cloud-platform: Use for deployment options, Cloud Foundry/Kyma configuration, and BTP service integration
- sap-hana-cli: Use for database management, schema inspection, and HDI container administration
- sap-abap: Use for ABAP system integration, external service consumption, and SAP extensions
- sap-btp-best-practices: Use for production deployment patterns and architectural guidance
- sap-ai-core: Use when adding AI capabilities to CAP applications or integrating with SAP AI services
- sap-api-style: Use when documenting CAP OData services or following API documentation standards
- dependency-upgrade: Use for secure dependency, lockfile, and supply-chain upgrade controls in CAP service repos
Table of Contents
Quick Start
Project Initialization
npm i -g @sap/cds-dk @sap/cds-lsp
cds init <project-name>
cds init <project-name> --add sample,hana
cds watch
cds add hana
cds add sqlite
cds add xsuaa
cds add mta
cds add multitenancy
cds add typescript
Basic Entity Example
using { cuid, managed } from '@sap/cds/common';
namespace my.bookshop;
entity Books : cuid, managed {
title : String(111) not null;
author : Association to Authors;
stock : Integer;
price : Decimal(9,2);
}
entity Authors : cuid, managed {
name : String(111);
books : Association to many Books on books.author = $self;
}
Basic Service
using { my.bookshop as my } from '../db/schema';
service CatalogService @(path: '/browse') {
@readonly entity Books as projection on my.Books;
@readonly entity Authors as projection on my.Authors;
@requires: 'authenticated-user'
action submitOrder(book: Books:ID, quantity: Integer) returns String;
}
MCP Integration
This skill integrates with the official CAP MCP (Model Context Protocol) server, providing AI agents with live access to your project's compiled CDS model and CAP documentation.
Available MCP Tools:
search_model - Fuzzy search for CDS entities, services, actions, and relationships in your compiled CSN model
search_docs - Semantic search through CAP documentation for syntax, patterns, and best practices
Key Benefits:
- Instant Model Discovery: Query your project's entities, associations, and services without reading files
- Context-Aware Documentation: Find relevant CAP documentation based on semantic similarity, not keywords
- Zero Configuration: No credentials or environment variables required
- Offline-Capable: All searches are local (model) or cached (docs)
Setup: See MCP Integration Guide for configuration with Claude Code, opencode, or GitHub Copilot.
Use Cases: See MCP Use Cases for real-world examples with quantified ROI (~$131K/developer/year time savings).
Agent Integration: The specialized agents (cap-cds-modeler, cap-service-developer, cap-project-architect, cap-performance-debugger) automatically use these MCP tools as part of their workflows.
Project Structure
project/
├── app/ # UI content (Fiori, UI5)
├── srv/ # Service definitions (.cds, .js/.ts)
├── db/ # Data models and schema
│ ├── schema.cds # Entity definitions
│ └── data/ # CSV seed data
├── package.json # Dependencies and CDS config
└── .cdsrc.json # CDS configuration (optional)
Core Concepts
CDS Built-in Types
| CDS Type | SQL Mapping | Common Use |
|---|
UUID | NVARCHAR(36) | Primary keys |
String(n) | NVARCHAR(n) | Text fields |
Integer | INTEGER | Whole numbers |
Decimal(p,s) | DECIMAL(p,s) | Monetary values |
Boolean | BOOLEAN | True/false |
Date | DATE | Calendar dates |
Timestamp | TIMESTAMP | Date/time |
Common Aspects
using { cuid, managed, temporal } from '@sap/cds/common';
// cuid = UUID key
// managed = createdAt, createdBy, modifiedAt, modifiedBy
// temporal = validFrom, validTo
Event Handlers (Node.js)
module.exports = class CatalogService extends cds.ApplicationService {
init() {
const { Books } = this.entities;
this.before('CREATE', Books, req => {
if (!req.data.title) req.error(400, 'Title required');
});
this.on('submitOrder', async req => {
const { book, quantity } = req.data;
return { success: true };
});
return super.init();
}
}
Basic CQL Queries
const { Books } = cds.entities;
const books = await SELECT.from(Books)
.where({ stock: { '>': 0 } })
.orderBy('title');
await INSERT.into(Books)
.entries({ title: 'New Book', stock: 10 });
await UPDATE(Books, bookId)
.set({ stock: { '-=': 1 } });
Database Setup
Development (SQLite)
{
"cds": {
"requires": {
"db": {
"[development]": {
"kind": "sqlite",
"credentials": { "url": ":memory:" }
},
"[production]": { "kind": "hana" }
}
}
}
}
Production (SAP HANA)
cds add hana
cds deploy --to hana
Initial Data (CSV)
- File location:
db/data/my.bookshop-Books.csv
- Format:
<namespace>-<EntityName>.csv
- Auto-loaded on deployment
Deployment
Cloud Foundry
cds add hana,xsuaa,mta,approuter
npm install --package-lock-only
mbt build
cf deploy mta_archives/<project>_<version>.mtar
Multitenancy (SaaS)
cds add multitenancy
Configuration:
{
"cds": {
"requires": {
"multitenancy": true
}
}
}
Authorization Examples
// Service-level
@requires: 'authenticated-user'
service CatalogService { ... }
// Entity-level
@restrict: [
{ grant: 'READ' },
{ grant: 'WRITE', to: 'admin' }
]
entity Books { ... }
Bundled Resources
Reference Documentation (22 files)
- references/annotations-reference.md - Complete UI annotations reference (10K lines)
- references/cdl-syntax.md - Complete CDL syntax reference (503 lines)
- references/cql-queries.md - CQL query language guide
- references/csn-cqn-cxn.md - Core Schema Notation and query APIs
- references/data-privacy-security.md - GDPR and security implementation
- references/databases.md - Database configuration and deployment
- references/deployment-cf.md - Cloud Foundry deployment details
- references/event-handlers-nodejs.md - Node.js event handler patterns
- references/extensibility-multitenancy.md - SaaS multitenancy implementation
- references/fiori-integration.md - Fiori Elements and UI integration
- references/java-runtime.md - Java runtime support
- references/localization-temporal.md - i18n and temporal data
- references/nodejs-runtime.md - Node.js runtime reference
- references/plugins-reference.md - CAP plugins and extensions
- references/tools-complete.md - Complete CLI tools reference
- references/consuming-services-deployment.md - Service consumption patterns
- references/service-definitions.md - Service definition patterns
- references/event-handlers-patterns.md - Event handling patterns
- references/cql-patterns.md - CQL usage patterns
- references/cli-complete.md - Complete CLI reference
- references/mcp-integration.md - MCP server setup and usage guide (new)
- references/mcp-use-cases.md - Real-world MCP scenarios with quantified ROI (new)
Templates (8 files)
- templates/bookshop-schema.cds - Complete data model example
- templates/catalog-service.cds - Service definition template
- templates/fiori-annotations.cds - UI annotations example
- templates/mta.yaml - Multi-target application descriptor
- templates/package.json - Project configuration template
- templates/service-handler.js - Node.js handler template
- templates/service-handler.ts - TypeScript handler template
- templates/xs-security.json - XSUAA security configuration
Quick References
Common CLI Commands
cds init [name]
cds add <feature>
cds watch
cds serve
cds compile <model>
cds deploy --to hana
cds build
cds env
cds repl
cds version
Best Practices
DO ✓
- Use
cuid and managed aspects from @sap/cds/common
- Keep domain models in
db/, services in srv/, UI in app/
- Use managed associations (let CAP handle foreign keys)
- Design single-purpose services per use case
- Start with SQLite, switch to HANA for production
DON'T ✗
- Don't use SELECT * - be explicit about projections
- Don't bypass CAP's query API with raw SQL
- Don't create microservices prematurely
- Don't hardcode credentials in config files
- Don't write custom OData providers
Version Information
- Skill Version: 2.1.2
- CAP Version: @sap/cds 9.7.x
- MCP Version: @cap-js/mcp-server 0.0.3+
- LSP Version: @sap/cds-lsp 9.7.x
- Last Verified: 2026-02-22
- License: GPL-3.0