@cap-js/mcp-server

中文文档
0.1.0发布于 2026/10/26Apache-2.0ES Module构建来源已验证近 30 天下载 23.8万

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

原始使用文档
文档目录19 节
  1. About This Project
  2. Table of Contents
  3. Requirements
  4. Setup
  5. Usage in Claude Code
  6. Usage in VS Code
  7. Usage in OpenAI Codex
  8. Usage in opencode
  9. Environment Variables
  10. Rules
  11. CLI Usage
  12. Available Tools
  13. search_docs
  14. search_model
  15. Support, Feedback, Contributing
  16. Security / Disclosure
  17. Code of Conduct
  18. Licensing
  19. Acknowledgments

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):

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

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

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

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

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

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

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:

{
  "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.

{
  "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:

"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:

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

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

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:

{
  "$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:

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

To set an environment variable:

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:

- 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.

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:

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

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

# Search CAP documentation
cds-mcp search_docs "how to add columns to a select statement in CAP Node.js" 1

# Search for CDS model definitions
cds-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.

版本与发布记录

@cap-js/mcp-server 共发布 9 个版本,首次发布于 2025/09/03;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.0latest2026/10/2613 天前
0.0.82026/10/1525 天前
0.0.72026/10/0930 天前
0.0.62026/09/211 个月前
0.0.52026/04/276 个月前
0.0.42026/03/068 个月前

关于 @cap-js/mcp-server 的常见问题

@cap-js/mcp-server 是什么?

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

如何安装 @cap-js/mcp-server?

在项目目录运行 npm install @cap-js/mcp-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cds-mcp,可以用 npx cds-mcp 直接运行。

@cap-js/mcp-server 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/cap-js__mcp-server 是否存在。

@cap-js/mcp-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cap-js/mcp-server 可以商用吗?

@cap-js/mcp-server 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cap-js/mcp-server 的下载量有多少?

根据 npm 官方下载统计,@cap-js/mcp-server 在 2026/10/09 – 2026/11/07 这 30 天内被下载 238,309 次,日均约 7,944 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cap-js/mcp-server 还在维护吗?

最新版本 0.1.0 发布于 2026/10/26(13 天前);至今共发布 9 个版本,其中过去 12 个月发布了 6 个;首次发布于 2025/09/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。