Cap JS

io.github.cap-js由 GitHub 帳號 cap-js 發布v0.1.0更新於 Oct 26, 2026

Model Context Protocol (MCP) server for AI-assisted development of CAP applications.

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

供 SAP CAP 開發使用的本機 MCP 伺服器,讓助理檢索專案編譯後的 CDS 模型與官方 CAP 文件。

可以做什麼
  • 檢索編譯後的 CDS 模型(CSN),查找定義、元素、註解、參數、檔案位置與 HTTP 端點,支援模糊名稱比對
  • 檢索 SAP CAP 官方文件(capire),涵蓋 CDS、Node.js 與 Java 執行環境、指南、工具、部署、安全、資料庫與整合
  • 全域安裝後可透過 cds-mcp 指令在命令列直接呼叫這兩個工具
適用情境
適合在助理協助開發或修改 SAP CAP 應用時使用:需要了解專案定義了哪些服務與實體、它們在哪裡對外提供,或在提出程式碼前確認某個 CAP API 或 CLI 的用法。
執行需求
以 stdio 在本機執行,透過 npx -y @cap-js/mcp-server 啟動(需要 Node.js),或全域安裝以取得 cds-mcp 命令列。不需帳號或 API 金鑰。可選的實驗性環境變數用於設定離線模式、嵌入與重排序模型、逾時與結果數量上限。
安裝前請注意
文件檢索使用向量嵌入,可能下載模型或資料包,除非啟用離線模式,否則需要網路並受逾時限制。README 建議的代理規則要求助理在修改 CDS 模型前先查詢此伺服器,加入專案前請自行審閱。工具明確不構成穩定 API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Cap JS,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Welcome to @cap-js/mcp-server

[REUSE status]

About This Project

A Model Context Protocol (MCP) server for the SAP Cloud Application Programming Model (CAP). Use it for AI-assisted development of CAP applications (agentic coding).

The server helps AI models answer questions such as:

  • Which CDS services are in this project, and where are they served?
  • What are the entities about and how do they relate?
  • How do I add columns to a select statement in CAP Node.js?

Table of Contents

Requirements

See Getting Started on how to jumpstart your development and grow as you go with SAP Cloud Application Programming Model.

Setup

Configure your MCP client (Cline, opencode, Claude Code, GitHub Copilot, etc.) to start the server using the command npx -y @cap-js/mcp-server as in the following examples.

Usage in Claude Code

Register the server with Claude Code.

For all projects (user scope):

sh
claude mcp add --scope user cds-mcp -- npx -y @cap-js/mcp-server

For the current project only (local scope, not committed):

sh
claude mcp add cds-mcp -- npx -y @cap-js/mcp-server

For the current project only (committed to the repository):

sh
claude mcp add --scope project cds-mcp -- npx -y @cap-js/mcp-server

To set an environment variable, add --env before the server name:

sh
claude mcp add --scope user --env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 cds-mcp -- npx -y @cap-js/mcp-server

Usage in VS Code

Example for VS Code extension Cline:

json
{  "mcpServers": {    "cds-mcp": {      "command": "npx",      "args": ["-y", "@cap-js/mcp-server"],      "env": {}    }  }}

Example for VS Code global mcp.json:

Note: GitHub Copilot uses the mcp.json file as source for it's Agent mode.

json
{  "servers": {    "cds-mcp": {      "command": "npx",      "args": ["-y", "@cap-js/mcp-server"],      "env": {},      "type": "stdio"    },    "inputs": []  }}

To set an environment variable, replace the server's empty env object with:

json
"env": {  "CDS_MCP_MODEL": "nomic-ai/nomic-embed-text-v1.5"}

See VS Code Marketplace for more agent extensions.

Usage in OpenAI Codex

Register the server with OpenAI Codex:

sh
codex mcp add cds-mcp -- npx -y @cap-js/mcp-server

To set an environment variable, add --env before the command:

sh
codex mcp add cds-mcp --env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 -- npx -y @cap-js/mcp-server

Usage in opencode

Add to opencode.jsonc in your project, or to ~/.config/opencode/opencode.jsonc for global use:

jsonc
{  "$schema": "https://opencode.ai/config.json",  "mcp": {    "cds-mcp": {      "type": "local",      "command": ["npx", "-y", "@cap-js/mcp-server"],      "environment": {        "CDS_MCP_MODEL": "nomic-ai/nomic-embed-text-v1.5"      },      "enabled": true    }  }}

This is the opencode v1 format. In opencode v2, use the same config but nest the server under "servers" — "mcp": { "servers": { "cds-mcp": { ... } } } — or use the CLI instead:

sh
opencode mcp add --global cds-mcp -- npx -y @cap-js/mcp-server

To set an environment variable:

sh
opencode mcp add --global cds-mcp \  --env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 \  -- npx -y @cap-js/mcp-server

Environment Variables

[!WARNING] The following environment variables are still experimental.

VariableDescription
CDS_MCP_OFFLINESet to true to use locally cached embeddings without checking for updates. Accepts true or false.
CDS_MCP_MODELNon-empty embedding model name.
CDS_MCP_MANIFEST_TIMEOUTManifest request timeout in positive integer milliseconds. Defaults to 15000.
CDS_MCP_DOWNLOAD_TIMEOUTBundle response-header timeout in positive integer milliseconds. Defaults to 30000.
CDS_MCP_GENERIC_EMBEDDINGSSet to true to skip the runtime filter and search all runtimes. By default search_docs keeps only the chunks of the detected project runtime (Node.js or Java) plus the runtime-agnostic chunks.
CDS_MCP_MAX_RESULTSUpper limit on the number of search_docs results, as a positive integer. Caps the per-call maxResults.
CDS_MCP_RERANK_ENABLEDSet to true to rerank search_docs results with a local cross-encoder model. Accepts true or false; disabled by default.
CDS_MCP_RERANK_MODELNon-empty cross-encoder model name used when reranking. Defaults to Xenova/ms-marco-MiniLM-L-6-v2.
CDS_MCP_RERANK_DTYPENon-empty data type used to load the reranking model. Defaults to q8; set to fp32 for models without model_quantized.onnx.
CDS_MCP_RERANK_EXTERNAL_DATASet to true for reranking models whose ONNX weights are stored in external .onnx_data files. Accepts true or false.
CDS_MCP_RERANK_BATCH_SIZEPositive integer number of results to process in each reranking batch. Defaults to 1.

Rules

The following rules help the LLM use the server correctly:

markdown
- You MUST search for CDS definitions, like entities, fields and services (which include HTTP endpoints) with cds-mcp, only if it fails you MAY read \*.cds files in the project.- You MUST search for CAP docs with cds-mcp EVERY TIME you create, modify CDS models or when using APIs or the `cds` CLI from CAP. Do NOT propose, suggest or make any changes without first checking it.

Add these rules to your existing global or project-specific AGENTS.md (specifics may vary based on respective MCP client).

CLI Usage

You can also use the tools directly from the command line.

sh
npm i -g @cap-js/mcp-server

[!WARNING] When the package is installed globally, npx uses the installed version instead of downloading the latest from npm. You must update the package manually:

sh
npm update -g @cap-js/mcp-server

This will provide the command cds-mcp, with which you can invoke the tools directly as follows.

sh
# Search CAP documentationcds-mcp search_docs "how to add columns to a select statement in CAP Node.js" 1
# Search for CDS model definitionscds-mcp search_model . Books entity

Available Tools

[!NOTE] Tools are meant to be used by AI models and do not constitute a stable API.

The server provides these tools for CAP development:

search_docs

This tool uses vector embeddings to locally search through preprocessed CAP documentation, stored as embeddings. The process works as follows:

  1. Query processing: Your search query is converted to an embedding vector.
  2. Similarity search: The system finds documentation chunks with the highest semantic similarity to your query.

This semantic search approach enables you to find relevant documentation even when your query does not use the exact keywords found in the docs, all locally on your machine.

search_model

This tool performs fuzzy searches against names of definitions from the compiled CDS model (Core Schema Notation). CDS compiles all your .cds files into a unified model representation that includes:

  • All definitions and their relationships
  • Annotations
  • HTTP endpoints

The fuzzy search algorithm matches definition names and allows for partial matches, making it easy to find entities like "Books" even when searching for "book".

Support, Feedback, Contributing

This project is open to feature requests/suggestions, bug reports, and so on, via GitHub issues. Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our Contribution Guidelines.

Security / Disclosure

If you find any bug that may be a security problem, please follow our instructions at in our security policy on how to report it. Please don't create GitHub issues for security-related doubts or problems.

Code of Conduct

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.

Licensing

Copyright 2025 SAP SE or an SAP affiliate company and @cap-js/cds-mcp contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.

Acknowledgments

  • onnxruntime-web is used for creating embeddings locally.
  • @huggingface/transformers.js is used to compare the output of the WordPiece tokenizer.
  • @modelcontextprotocol/sdk provides the SDK for MCP.

來源:README.md,提交 657bd80

工具

2

search_model

Search for CDS definitions

Returns CDS model definitions (CSN), including elements, annotations, parameters, file locations and HTTP endpoints. Useful for building queries, OData URLs, or understanding model structure.

輸入參數kindnametopNnamesOnlyprojectPath必填

search_docs

Search in CAP Documentation

Search the official SAP CAP (Cloud Application Programming Model) documentation (capire) — covering CDS (CDL, CQL, CSN), the Node.js runtime (`@sap/cds`), the Java runtime (`com.sap.cds`), guides, tools, plugins, deployment, security, databases, protocols, integration, messaging, multitenancy and native AI integration. Prefer this tool over manual research to learn about CAP syntax, APIs, annotations, configuration, guides, and supported features. The tool returns up to `maxResults` documentation chunks. It ranks the chunks by semantic similarity.

輸入參數query必填maxResults

版本歷史

4
  1. v0.1.0最新Oct 26, 2026
  2. v0.0.8Oct 14, 2026
  3. v0.0.6Sep 22, 2026
  4. v1.0.0Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分