cap-js について
@cap-js/mcp-serverは、SAP Cloud Application Programming Model(CAP)アプリのAI支援開発に使えます。コーディングエージェントからCAPドキュメントを意味検索し、コンパイル済みCDSモデルをあいまい検索できます。
主な機能
- 01CAPドキュメントの意味検索
- 02CDS定義のあいまい検索
- 03モデルの関係とアノテーションの確認
- 04HTTPエンドポイントの検索
- 05コマンドラインから検索ツールを利用
活用シーン
- 01プロジェクト変更前のCAP API確認
- 02CDSモデル内のエンティティやサービスの特定
- 03モデル定義間の関係の把握
MCP 対応
MCPクライアントに`search_docs`と`search_model`ツールを公開します。CAPドキュメントのローカル検索と、コンパイル済みCDSモデルの定義検索に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| kind | string | いいえ | フィルターする定義の種類(例:service、entity、action) |
| name | string | いいえ | 定義名(あいまい検索。正規表現や特殊文字は使用できません) |
| topN | number | いいえ | 結果の最大件数 |
| namesOnly | boolean | いいえ | true の場合、定義名のみを返します(概要用) |
| projectPath | string | はい | プロジェクトのルートパス |
詳細
@cap-js/mcp-server へようこそ
このプロジェクトについて
SAP Cloud Application Programming Model(CAP)向けの Model Context Protocol(MCP)サーバーです。 CAP アプリケーションの AI 支援開発(エージェント型コーディング)に使用できます。
このサーバーは、AI モデルが次のような質問に回答するのを支援します。
- このプロジェクトにはどの CDS サービスがあり、どこで提供されていますか?
- エンティティは何を表し、どのように関連していますか?
- CAP Node.js で select 文に列を追加するにはどうすればよいですか?
目次
要件
SAP Cloud Application Programming Model を使った開発を始め、進めながら成長していく方法については、はじめにをご覧ください。
セットアップ
次の例のように、npx -y @cap-js/mcp-server コマンドを使用してサーバーを起動するように、MCP クライアント(Cline、opencode、Claude Code、GitHub Copilot など)を設定します。
Claude Code での使用
Claude Code にサーバーを登録します。
すべてのプロジェクト対象(ユーザースコープ):
claude mcp add --scope user cds-mcp -- npx -y @cap-js/mcp-server
現在のプロジェクトのみ対象(ローカルスコープ、コミットされません):
claude mcp add cds-mcp -- npx -y @cap-js/mcp-server
現在のプロジェクトのみ対象(リポジトリにコミットされます):
claude mcp add --scope project cds-mcp -- npx -y @cap-js/mcp-server
環境変数を設定するには、サーバー名の前に --env を追加します。
claude mcp add --scope user --env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 cds-mcp -- npx -y @cap-js/mcp-server
VS Code での使用
VS Code 拡張機能 Cline の例:
{
"mcpServers": {
"cds-mcp": {
"command": "npx",
"args": ["-y", "@cap-js/mcp-server"],
"env": {}
}
}
}
VS Code のグローバルな mcp.json の例:
注:GitHub Copilot は、Agent モードのソースとして
mcp.jsonファイルを使用します。
{
"servers": {
"cds-mcp": {
"command": "npx",
"args": ["-y", "@cap-js/mcp-server"],
"env": {},
"type": "stdio"
},
"inputs": []
}
}
環境変数を設定するには、サーバーの空の env オブジェクトを次の内容に置き換えます。
"env": {
"CDS_MCP_MODEL": "nomic-ai/nomic-embed-text-v1.5"
}
その他のエージェント拡張機能については、VS Code Marketplace をご覧ください。
OpenAI Codex での使用
OpenAI Codex にサーバーを登録します。
codex mcp add cds-mcp -- npx -y @cap-js/mcp-server
環境変数を設定するには、コマンドの前に --env を追加します。
codex mcp add cds-mcp --env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 -- npx -y @cap-js/mcp-server
opencode での使用
プロジェクト内の opencode.jsonc、またはグローバルに使用する場合は ~/.config/opencode/opencode.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
}
}
}
これは opencode v1 の形式です。opencode v2 では、同じ設定を使用してサーバーを "servers" の下にネストします — "mcp": { "servers": { "cds-mcp": { ... } } } — または CLI を使用します。
opencode mcp add --global cds-mcp -- npx -y @cap-js/mcp-server
環境変数を設定するには:
opencode mcp add --global cds-mcp \
--env CDS_MCP_MODEL=nomic-ai/nomic-embed-text-v1.5 \
-- npx -y @cap-js/mcp-server
環境変数
警告
以下の環境変数は、まだ実験段階です。
| 変数 | 説明 |
|---|---|
CDS_MCP_OFFLINE | 更新を確認せず、ローカルにキャッシュされた埋め込みを使用するには、true に設定します。true または false を指定できます。 |
CDS_MCP_MODEL | 空でない埋め込みモデル名です。 |
CDS_MCP_MANIFEST_TIMEOUT | マニフェストリクエストのタイムアウトを、正の整数のミリ秒で指定します。デフォルトは 15000 です。 |
CDS_MCP_DOWNLOAD_TIMEOUT | バンドルのレスポンスヘッダーのタイムアウトを、正の整数のミリ秒で指定します。デフォルトは 30000 です。 |
CDS_MCP_GENERIC_EMBEDDINGS | ランタイムフィルターをスキップして、すべてのランタイムを検索するには、true に設定します。デフォルトでは、search_docs は検出されたプロジェクトのランタイム(Node.js または Java)に対応するチャンクと、ランタイムに依存しないチャンクのみを検索します。 |
CDS_MCP_MAX_RESULTS | search_docs の結果数の上限を、正の整数で指定します。呼び出しごとの maxResults に上限を設定します。 |
CDS_MCP_RERANK_ENABLED | ローカルのクロスエンコーダーモデルで search_docs の結果を再ランキングするには、true に設定します。true または false を指定できます。デフォルトでは無効です。 |
CDS_MCP_RERANK_MODEL | 再ランキング時に使用する、空でないクロスエンコーダーモデル名です。デフォルトは Xenova/ms-marco-MiniLM-L-6-v2 です。 |
CDS_MCP_RERANK_DTYPE | 再ランキングモデルの読み込みに使用する、空でないデータ型です。デフォルトは q8 です。model_quantized.onnx がないモデルの場合は、fp32 に設定してください。 |
CDS_MCP_RERANK_EXTERNAL_DATA | ONNX の重みが外部の .onnx_data ファイルに保存されている再ランキングモデルには、true に設定します。true または false を指定できます。 |
CDS_MCP_RERANK_BATCH_SIZE | 各再ランキングバッチで処理する結果数を、正の整数で指定します。デフォルトは 1 です。 |
ルール
以下のルールは、LLM がサーバーを正しく使用するのに役立ちます。
- 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.
これらのルールを既存のグローバルまたはプロジェクト固有の AGENTS.md に追加してください(詳細は MCP クライアントによって異なる場合があります)。
CLI の使用方法
ツールはコマンドラインから直接使用することもできます。
npm i -g @cap-js/mcp-server
警告
パッケージをグローバルにインストールしている場合、
npxは npm から最新バージョンをダウンロードせず、インストール済みのバージョンを使用します。パッケージは手動で更新する必要があります。npm update -g @cap-js/mcp-server
これにより cds-mcp コマンドが利用可能になり、次のようにツールを直接呼び出せます。
# 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
利用可能なツール
メモ
ツールは AI モデルによる使用を想定しており、安定した API を構成するものではありません。
このサーバーは、CAP 開発向けに以下のツールを提供します。
search_docs
このツールは、埋め込みとして保存された、前処理済みの CAP ドキュメントをベクトル埋め込みによってローカルで検索します。処理は次のとおりです。
- クエリの処理: 検索クエリを埋め込みベクトルに変換します。
- 類似性検索: システムが、クエリとの意味的な類似性が最も高いドキュメントのチャンクを検索します。
この意味検索方式により、クエリにドキュメント内の正確なキーワードが含まれていなくても、関連するドキュメントをすべてローカルで検索できます。
search_model
このツールは、コンパイル済み CDS モデル(Core Schema Notation)内の定義名をあいまい検索します。
CDS は、すべての .cds ファイルを次の内容を含む統合モデル表現にコンパイルします。
- すべての定義とその関係
- アノテーション
- HTTP エンドポイント
あいまい検索アルゴリズムは定義名を照合し、部分一致も許可するため、「book」を検索して「Books」のようなエンティティを簡単に見つけられます。
サポート、フィードバック、コントリビューション
このプロジェクトでは、機能のリクエストや提案、バグ報告などを GitHub issues で受け付けています。コントリビューションやフィードバックを歓迎します。コントリビューション方法、プロジェクトの構成、およびその他のコントリビューションに関する情報については、コントリビューションガイドラインをご覧ください。
セキュリティ/脆弱性の報告
セキュリティ上の問題となる可能性のあるバグを見つけた場合は、報告方法についてセキュリティポリシーの手順に従ってください。セキュリティに関する疑問や問題について、GitHub の issue を作成しないでください。
行動規範
私たちは、コミュニティに参加するメンバー、貢献者、リーダーとして、誰もがハラスメントを受けることなく参加できる環境を作ることを誓います。このプロジェクトに参加することで、常に行動規範を遵守することに同意したものとみなされます。
ライセンス
Copyright 2025 SAP SE or an SAP affiliate company and @cap-js/cds-mcp contributors. 著作権およびライセンスに関する情報については、LICENSEをご覧ください。サードパーティ製コンポーネントとそのライセンス/著作権情報を含む詳細については、REUSE toolで確認できます。
謝辞
- onnxruntime-web は、ローカルでエンベディングを作成するために使用されています。
- @huggingface/transformers.js は、WordPiece トークナイザーの出力を比較するために使用されています。
- @modelcontextprotocol/sdk は、MCP 用の SDK を提供しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。