mcpField
M
mcp-sap-docs

mcp-sap-docs

ローカル
github.com/marianfoo開発ツール2495 日前に更新

mcp-sap-docs について

mcp-sap-docsは、SAP技術を扱う開発者やAIアシスタント向けのMCPサーバーです。索引化された文書検索と取得に任意のライブソースを組み合わせ、プロファイルごとにSAPやABAPの専用ツールを提供します。

主な機能

  1. 01BM25検索と任意のセマンティックランキング
  2. 02検索結果から文書全文を取得
  3. 03オフラインとライブの文書ソースを検索
  4. 04ABAP機能の対応状況とSAPオブジェクトを確認
  5. 05SAP Discovery CenterとUI5バージョン用ツール
  6. 06ABAPプロファイルでの静的コード解析

活用シーン

  1. 01SAPUI5、CAP、BTP、ABAPの文書検索
  2. 02SAP Communityのトラブルシューティング記事検索
  3. 03ABAP機能のリリース対応状況の確認
  4. 04SAPオブジェクトのclean-core詳細の確認

MCP 対応

MCPツールとして文書検索、取得、SAP固有の機能を公開します。クライアントはstreamable HTTPで接続でき、stdioでの実行にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"marianfoo-mcp-sap-docs": {
"command": "npx",
"args": [
"-y",
"mcp-sap-docs"
]
}
}
}
起動コマンドnpx -y mcp-sap-docs

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-sap-docs0.3.9

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP SAP Docs(上流)

AI アシスタント(Claude、Cursor、ChatGPT など)が、統合された検索・取得インターフェースを通じて SAP のドキュメントにアクセスできる MCP サーバーです。Git でクローンした SAP ドキュメントを対象とするローカル全文検索と、オプションのセマンティックランキングを組み合わせ、さらに SAP Help、SAP Community、Software Heroes へのオプションのライブクエリも提供します。これらすべてを MCP ツールとして公開します。

インストール

Werkbank に追加

また、ストリーミング可能な HTTP に対応する任意の MCP クライアントにも追加できます。

{
  "mcpServers": {
    "sap-docs": {
      "type": "http",
      "url": "https://mcp-sap-docs.marianzeis.de/mcp"
    }
  }
}

API キーやログインは不要です。サーバーは公開されており、読み取り専用です。

公開ホスト型エンドポイント

すぐに利用できます — セットアップは不要です

バリアントURL
SAP Docshttp://mcp-sap-docs.marianzeis.de/mcp
ABAPhttps://mcp-abap.marianzeis.de/mcp

バリアント

mcp-sap-docs は、1 つのコードベースを共有し、設定(MCP_VARIANT / .mcp-variant)が異なる 2 つの MCP サーバーバリアントの上流リポジトリです。

バリアント対象範囲追加ツール
sap-docs幅広い SAP ドキュメント:UI5、CAP、Cloud SDK、ABAP、BTP、AI、TerraformDiscovery Center ツール
abapABAP に特化:ABAP キーワードドキュメント、RAP、チートシート、スタイルガイドabap_lint

ドキュメントソース

オフラインソース(ローカルインデックス、常に利用可能)
ソース説明
abap-docs-standard公式 ABAP キーワードドキュメント — オンプレミス/完全な構文
abap-docs-cloud公式 ABAP キーワードドキュメント — ABAP Cloud/BTP(制限付き構文)
abap-cheat-sheets実践的な ABAP/RAP のコードスニペットと例
abap-fiori-showcaseアノテーション駆動型の RAP + OData V4 + Fiori Elements の機能紹介
abap-platform-rap-opensapopenSAP「Building Apps with RAP」コースのサンプル
cloud-abap-rapABAP Cloud + RAP のサンプルプロジェクト
abap-platform-reuse-servicesRAP 再利用サービスの例(番号範囲、メール、Adobe Forms など)
sap-styleguidesSAP Clean ABAP スタイルガイドとベストプラクティス
dsag-abap-leitfadenDSAG ABAP Leitfaden(ドイツ語)の開発ガイドライン
btp-cloud-platformSAP BTP の概念、開発、セキュリティ、管理
sap-artificial-intelligenceSAP AI Core および SAP AI Launchpad のドキュメント
ui5SAPUI5/OpenUI5 フレームワークのドキュメント
capSAP Cloud Application Programming Model(CAP)のドキュメント
cloud-sdkSAP Cloud SDK のドキュメント
terraform-provider-btpBTP 向け SAP Terraform Provider — リソースとデータソース
architecture-centerSAP Architecture Center のリファレンスアーキテクチャとガイダンス
wdi5wdi5(WebdriverIO + UI5)テストフレームワークのドキュメント
SAP Docs の追加ソース

sap-docs プロファイルでは、以下の公式ドキュメントもインデックス化されます。これらのソースでは既存の Markdown/MDX パイプラインを使用し、上流のファイルへのリンクを掲載しています。

ソース ID対象範囲
btp-connectivityDestination、Cloud Connector、プリンシパル伝播、HTTP/RFC
cloud-sdk-python、cloud-sdk-ai-pythonPython BTP および AI SDK のドキュメントとサンプル
odata-vocabulariesOData のアノテーション用語と型。実験的なラベルはそのまま保持されます
btp-job-scheduling-service、btp-cloud-loggingアプリケーションジョブとオブザーバビリティ
btp-cloud-identity-services、btp-cloud-identity-integrationIdentity Authentication、Identity Provisioning、およびシステム統合
btp-integration-suite、btp-event-mesh統合と API の統合ガイド、および Event Mesh
btp-business-application-studio開発スペース、開発、トラブルシューティング
btp-continuous-integration-and-delivery、btp-cloud-transport-managementマネージドパイプラインとクラウドトランスポート

Integration Suite は docs/ISuite_Integrations_APIs と docs/ISuite_Event_Mesh をインデックス化します。重複コンテンツやナビゲーション用語の混在を避けるため、Cloud Integration/API Management ガイドの並行コピーは対象外です。Python SDK のソースには最新の docs-python コンテンツが含まれ、過去のバージョンフォルダーは対象外です。

SAP-docs の各リポジトリには CC-BY-4.0 の告知があり、SAP Cloud SDK、AI SDK、OData vocabularies には Apache-2.0 の告知があります。ソースのチェックアウトには上流のライセンスファイルが保持され、検索結果と取得結果には元のドキュメントへのリンクが含まれます。検証と対象範囲については、ソース拡張計画を参照してください。

オンラインソース(ライブクエリ、デフォルトで有効)
ソース説明
SAP Help PortalSAP 製品の公式ドキュメント(幅広い対象範囲)
SAP Communityコミュニティのブログ、Q&A、トラブルシューティングの投稿
Software HeroesABAP/RAP の記事とチュートリアル(EN + DE、重複排除済み)

利用可能なツール

共通ツール(両方のバリアント)
ツール説明
searchオフラインドキュメントと任意のオンラインソースを対象にした統合検索(BM25 と任意のセマンティックランキング)。query、k、includeOnline、includeSamples、abapFlavor、sources パラメーターに対応しています。
fetchsearch が返した ID を指定して、ドキュメントの全文を取得します。
abap_feature_matrixSoftware Heroes の機能マトリックスを使用して、SAP リリース(7.40–LATEST)における ABAP 機能の利用可否を確認します。
sap_community_searchKhoros LiQL API を使用した専用の SAP Community 検索。上位の投稿の全文を返します。特定のエラーや回避策について、search の結果が不十分な場合に使用してください。
sap_search_objects公式の SAP/abap-atc-cr-cv-s4hc リリース状態リポジトリから、名前、コンポーネント、型で SAP のリリース済みオブジェクト(クラス、インターフェイス、テーブル、CDS ビューなど)を検索します。クリーンコア準拠の調査に役立ちます。
sap_get_object_details特定の SAP オブジェクトについて、クリーンコアレベル(A/B/C/D)、後継オブジェクト、任意の準拠判定を含む、リリース状態の詳細を取得します。
sap-docs バリアントのみ
ツール説明
sap_discovery_center_searchSAP Discovery Center のサービスカタログを、キーワード、カテゴリ、またはライセンスモデルで検索し、BTP サービスを探します。
sap_discovery_center_serviceBTP サービスの料金プラン、製品ロードマップ、ドキュメントへのリンク、主な機能など、包括的な詳細を取得します。サービスの UUID または名前を指定できます。
ui5_version_diffローカルの変更履歴バンドル(dist/data/ui5-lib-diff/all-changes.json)から、バージョンまたは範囲に一致する FEATURE/FIX/DEPRECATED の変更と SAPUI5 What's New の項目をすべて一覧表示します。npm run setup で自動的に更新されます。手動で更新する場合は、セットアップまたは再ビルド中に npm run download:ui5-lib-diff を使用してください。完全なアップグレードワークフローには、ui5-version-upgrade スキルと @ui5/mcp-server を併用してください。
abap バリアントのみ
ツール説明
abap_lintabaplint を使用して ABAP ソースコードの静的コード解析を実行します。コードパターンからファイルの種類を自動検出し、行番号、重大度、ルールキーを含む検出結果を返します。

アーキテクチャの概要

  • 上流の信頼できる情報源:mcp-sap-docs
  • 一方向の同期先:abap-mcp-server
  • 検索では BM25 キーワードランキングがデフォルトで使用されます。セマンティックスコアはオプションで、Reciprocal Rank Fusion(RRF)によって組み合わせられます。
  • 埋め込みモデル:Xenova/all-MiniLM-L6-v2(約 90 MB、dist/models/ にキャッシュ)

バリアントの選択

解決順序:

  1. MCP_VARIANT 環境変数
  2. リポジトリルートの .mcp-variant ファイル
  3. フォールバック:sap-docs

例:

# Run as full sap-docs profile
MCP_VARIANT=sap-docs npm run setup
MCP_VARIANT=sap-docs npm run build
MCP_VARIANT=sap-docs npm run start:streamable

# Run as ABAP profile
MCP_VARIANT=abap npm run setup
MCP_VARIANT=abap npm run build
MCP_VARIANT=abap npm run start:streamable

検索の動作

search は、以下を対象に統合検索を実行します。

  • オフライン FTS インデックス(ローカルのサブモジュールのコンテンツ)
  • オプションのオンラインソース(includeOnline=true):
    • SAP Help
    • SAP Community
    • Software Heroes のコンテンツ検索(EN/DE を統合し、重複を除去)

ランキングとフィルタリングの主な機能:

  • オプションのセマンティックランキングを備えた BM25 検索 — キーワードと意味を RRF で統合
  • オフラインソースとオンラインソースを横断する Reciprocal Rank Fusion(RRF)
  • メタデータに基づくソースレベルのブースト
  • includeSamples でサンプルを多く含むソースを除外できます
  • abapFlavor(standard/cloud/auto)で、ABAP 以外のソースを保持しながら公式 ABAP ドキュメントライブラリをフィルタリングします
  • sources でオフラインライブラリを明示的に制限できます

コンテンツ取得の制限

Community の投稿本文は、コード、リンク、画像、表を含む Markdown として返されます。以前に Community の生 HTML を解析していたクライアントは、Markdown を処理する必要があります。ドキュメント ID、ソース URL、レスポンススキーマに変更はありません。 変換に失敗した場合、その投稿は通知とともに元の HTML のまま保持されます。同じバッチ内の他の投稿は引き続き返されます。

SAP Help と Community の取得では、デフォルトで 75,000 文字が上限です。短縮された結果には、正確な欠落数を示す metadata.truncation が含まれます。セルフホスト可能なサーバーでは、起動前に MAX_CONTENT_LENGTH を設定できます。コンテンツサイズの制限を参照してください。

ハイブリッド検索

オフライン検索では、BM25 キーワードランキングがデフォルトで使用されます。オプションのセマンティックランキングでは、Xenova/all-MiniLM-L6-v2 を使用して語彙的な候補の順序を変更します。候補プール外は検索しません。ドキュメントとセクションの埋め込みをすべて作成し、独自のクエリで評価したうえで、EMBEDDING_WEIGHT=0.7 を明示的に設定して有効にしてください。

埋め込みは docs.sqlite に保存され、モデルは dist/models/ にキャッシュされます。古い、または不完全な埋め込みアーティファクトがある場合は、再構築の警告とともに語彙的ランキングへフォールバックします。セットアップ、制限事項、コストについては docs/HYBRID-SEARCH.md を参照してください。

オフライン専用モード

search はデフォルトでオンラインソースを含みます。オフライン専用で実行するには、次のようにします。

  • ローカルインデックス/サブモジュールのみを使用します(npm run setup + npm run build)
  • 各 search リクエストで includeOnline=false を指定します

search リクエスト本文の例:

{
  "query": "RAP draft",
  "k": 8,
  "includeOnline": false
}
Docker(オフラインのみ)

ホストバインドを指定してコンテナーを実行し、includeOnline=false を指定して search を呼び出します。

docker run --rm -p 3122:3122 \
  -e MCP_VARIANT=sap-docs \
  -e MCP_PORT=3122 \
  -e MCP_HOST=0.0.0.0 \
  mcp-sap-docs

厳密なエアギャップ環境で実行するには、コンテナーネットワークを無効にします。

docker run --rm --network none -p 3122:3122 \
  -e MCP_VARIANT=sap-docs \
  -e MCP_PORT=3122 \
  -e MCP_HOST=0.0.0.0 \
  mcp-sap-docs

注意事項:

  • --network none を指定すると、実行時の隔離によってオンラインでの取得が不可能になります。
  • 起動時にオンラインでの事前取得を試みた警告(ABAP 機能マトリックスなど)がログに記録される場合がありますが、オフラインでの search の使用には影響しません。

クイックスタート(ローカル)

npm ci
npm run setup
npm run build

npm run setup は、選択したバリアントのドキュメントソースを設定済みのブランチ先端に更新し、埋め込みを含むインデックスを構築します。ネストされたサブモジュールは、これらのソースに記録されたコミットのままになります。任意のネストされたリポジトリを省略するには(たとえば、上流の URL で SSH 認証情報が必要な場合)、Bash(Windows の Git Bash を含む)で SKIP_NESTED_SUBMODULES=1 npm run setup を使用します。

npm run setup:submodules は代わりに、リポジトリに記録されたソースコミットをチェックアウトします。最新のドキュメントを取得したり、バリアントのフィルタリングを適用したりはしません。既存のインストールを更新する場合は、npm run setup を実行してください。

サーバーモードを起動します:

# MCP stdio
npm start

# HTTP status/dev server
npm run start:http

# MCP streamable HTTP
npm run start:streamable

バリアントごとのデフォルトポート:

  • sap-docs:HTTP 3001、ストリーム可能 3122
  • abap:HTTP 3002、ストリーム可能 3124

ヘルスチェック:

curl -sS http://127.0.0.1:3122/health | jq .
curl -sS http://127.0.0.1:3001/status | jq .

abap プロファイルの実行時は、バリアント固有のポートを使用してください。

ビルドおよびセットアップスクリプト

スクリプト名は共通です(setup、build、start、start:streamable)。 動作はバリアント設定によって変わります。

  • setup.sh は、バリアントで許可されたサブモジュールのみを初期化します
  • build-index は、バリアントで許可されたライブラリのみを含めます
  • build-fts は、バリアントで許可されたライブラリのみをインデックス化します

これにより、個別のビルドスクリプト群を維持することなく、abap の処理を高速化し、規模を小さくできます。

Docker

バリアント用のイメージをビルドします:

# sap-docs image
docker build --build-arg MCP_VARIANT=sap-docs -t mcp-sap-docs .

# abap image
docker build --build-arg MCP_VARIANT=abap -t abap-mcp-server .

ストリーム可能サーバーを実行します:

# sap-docs
docker run --rm -p 3122:3122 \
  -e MCP_VARIANT=sap-docs \
  -e MCP_PORT=3122 \
  mcp-sap-docs

# abap
docker run --rm -p 3124:3124 \
  -e MCP_VARIANT=abap \
  -e MCP_PORT=3124 \
  abap-mcp-server

SAP BTP Cloud Foundry

BTP CF では、推奨される sap-docs の方法は、保守されている ghcr.io/marianfoo/mcp-sap-docs:sap-docs イメージを MTA でデプロイすることです。Cloud Foundry は、埋め込みアーティファクトを含む準備済みイメージを取得して実行するだけです。正の EMBEDDING_WEIGHT が明示的に設定されない限り、ランキングは語彙ベースのままです。

公開情報を優先したデプロイガイドについては、docs/BTP-CF-DEPLOYMENT.md を参照してください。MTA、直接の cf push、カスタムレジストリイメージ、更新セットアップから選択するには、 デプロイオプションとトレードオフから始めてください。

abap-mcp-server への一方向同期

このリポジトリには、直接同期するための自動化が含まれています。

  • ワークフロー:.github/workflows/sync-to-abap-main.yml
  • スクリプト:scripts/sync-to-abap.sh

フロー:

  1. Release Please は、リリース PR のマージ後に mcp-sap-docs のリリースを公開します
  2. リリースワークフローが ABAP 同期ワークフローを明示的に起動します
  3. 同期ワークフローが abap-mcp-server をクローンします
  4. 追跡対象の上流ファイルを(除外ルールを適用して)同期し、その後 ABAP オーバーレイを適用します
  5. .mcp-variant を abap に強制設定し、ABAP パッケージの識別情報をパッチします
  6. 同期コミットが abap-mcp-server/main にプッシュされます
  7. そのプッシュによって ABAP デプロイワークフローが起動します

同期ワークフローは、ドライランやカスタムターゲットブランチを含む手動実行にも対応しています。 下流の main ブランチへのプッシュのみが、自動デプロイを起動します。

mcp-sap-docs リポジトリで必要なシークレット:

  • ABAP_REPO_SYNC_TOKEN:abap-mcp-server にコードとワークフローの変更をプッシュできる、専用のアクセストークン。以降のワークフローを起動しない GITHUB_TOKEN とは分けてください。

デプロイモデル

  • mcp-sap-docs:リリースバージョンを管理し、リリース作成時にデプロイと ABAP 同期を実行します
  • abap-mcp-server:アップストリームの同期コミットを含む main へのプッシュ時、または workflow_dispatch によってデプロイします

ダウンストリームリポジトリでは GitHub リリースを公開しません。そのため、デプロイは release: published ではなく、同期によるプッシュをトリガーとして実行する必要があります。アップストリームのリリースによって、自動同期のタイミングが決まります。

ABAP のデプロイワークフローは sync/abap.overlay/.github/workflows/deploy-abap-mcp-server.yml で管理されています。今後の同期後も修正が維持されるよう、アップストリームのオーバーレイを変更してください。

デプロイ修正をマージした後、次のアップストリームリリースを公開するか、アップストリームの main を対象に sync-to-abap-main.yml を手動で実行してください。ダウンストリームのデプロイ実行が成功すること、および https://mcp-abap.marianzeis.de/health が同期された ABAP の package.json 内のバージョンを報告することを確認してください。同期の成功だけでは、デプロイが完了したことを確認できません。

PM2 ランタイム

ecosystem.config.cjs はバリアントに対応しており、以下を解決します。

  • プロセス名
  • ポート
  • デプロイパス

config/variants/*.json から取得します。

検証コマンド

npm run build:tsc
npm run test:url-generation
npm run test:integration
npm run test:software-heroes
npm run test:discovery-center # mocked Discovery Center REST contract tests
npm run test:discovery-center:live # opt-in live API smoke test
npm run test:sap-objects       # SAP Released Objects unit tests

# Variant-specific build checks
MCP_VARIANT=sap-docs npm run build:index
MCP_VARIANT=abap npm run build:index
MCP_VARIANT=sap-docs npm run build:fts
MCP_VARIANT=abap npm run build:fts

追加ドキュメント

  • docs/ARCHITECTURE.md
  • docs/DEV.md
  • docs/TESTS.md
  • docs/UPSTREAM-ONE-WAY-SYNC-IMPLEMENTATION.md
  • REMOTE_SETUP.md
厳選された SAP チュートリアル

SAP Docs プロファイルには、sap-tutorials-ai、sap-tutorials-hana、sap-tutorials-integration にある公式チュートリアルが 32 件追加されています。 AI Core のオーケストレーション V2 とグラウンディング、HANA Cloud の SQLScript と CAP、Integration Suite MCP Gateway、Cloud Transport Management が含まれます。既存の Fiori OPA ガイドも引き続き別途利用できます。

たとえば、SAP HANA Cloud SQLScript stored procedure tutorial や SAP Integration Suite MCP Gateway tutorial のように、製品名とタスク名を使ってください。検索対象を絞り込むには sources を指定し、複数のソースを横断して検索する場合は指定しないでください。チュートリアルでは実例を用いて解説し、前提条件も保持しています。詳細な API の動作については、製品ドキュメントと SDK ドキュメントを参照してください。

明示的な選択は config/tutorials.json に記載されています。取得されたチュートリアルには、読みやすいオプションラベル、絶対パスのアセット/前提条件へのリンク、および公開ページの URL が含まれています。未公開のトランスポート概要は、公式の GitHub ソースにリンクしています。ソースの内容と元の帰属表示は保持されます。元のチュートリアルリポジトリのライセンスが引き続き適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。