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 分