SAP Commerce MCP Server
SAP Commerce MCP Server
このプロジェクトは、ASM従業員のワークフロー(顧客検索、なりすまし、カートのバインドまたは管理、OCCベースのコマースアクションの実行)に焦点を当てたSAP Commerce Cloud用のMCPサーバーを提供します。
このリポジトリは現在ローカルファーストとして扱われています。デフォルトのターゲットは https://localhost:9002 であり、SAP_BASE_URL で実際のホストを制御します。リモートテナントも引き続き使用可能ですが、ドキュメント、テスト、および検証フローは、ローカルのSAP Commerceランタイムを真実のソースとすることを前提としています。
このサーバーの現在の機能
ASMファーストの顧客アクション: 顧客の検索、顧客へのなりすまし、および顧客に代わっての操作
セッション対応のカート管理: 手動でのカート操作なしで、カートの作成、確認、更新、削除、クリアが可能
チェックアウトフロー: 配送先住所、配送モード、ゲストメールアドレス、注文確定
製品および検索ツール: 製品検索、詳細取得、在庫確認、ベースサイト/ストア/カタログ/カテゴリの閲覧
2つのツールレイヤー: エージェントフレンドリーな高レベルツールと、低レベルのOCC/ASMラッパー
セッション指向:
get_session_statusにより、エージェントは現在のカート/ユーザー/ベースサイトのコンテキストを把握可能FastMCPトランスポート: ローカルまたはリモートのMCPクライアント向けのstdioおよびSSEトランスポート
リクエストの流れ
1. アーキテクチャの概要

ソース: docs/diagrams/architecture.mmd
2. リクエストのスイムレーン例
これは「エージェントが顧客になりすまし、その顧客に代わって買い物を続ける」という典型的なパスです。

ソース: docs/diagrams/example-request.mmd
MCPツール
高レベルツール
これらはASM従業員ワークフローの主要なインターフェースです。
検索と製品
search_products— キーワードによる製品検索get_product— 製品詳細の取得get_session_status— 現在のセッション状態の確認
顧客 / ASM
search_customer— 顧客の迅速な検索impersonate_customer— 顧客になりすまして操作を開始end_impersonation— 匿名モードに戻る
カートとチェックアウト
add_to_cart— 製品の追加get_cart— 現在のカートの読み取りupdate_cart_entry— エントリ数量の変更remove_from_cart— エントリの削除clear_cart— カートを空にするset_delivery_address— 配送先住所の登録set_delivery_mode— 配送方法の選択get_delivery_modes— 配送オプションの一覧表示set_guest_email— ゲストチェックアウト用メールアドレスの設定place_order— 注文の確定
低レベルツール
これらは、正確な制御のために、より限定的なOCC / ASMプリミティブを公開します。
basesites.list— 利用可能なベースサイトの一覧表示catalogs.list— サイトのカタログ一覧表示catalogs.get— カタログの取得catalogVersions.get— カタログバージョンの取得categories.products— カテゴリ別の製品閲覧stores.list— サイトのストア一覧表示stores.get— ベースストアの取得products.get— OCC製品の取得products.stock— 在庫データの確認products.stockCount— 在庫場所のカウントasm.customer360— 顧客360フラグメントの取得asm.customers.create— 顧客の作成asm.customers.search— ASM顧客検索の実行asm.customers.suggest— 顧客候補の取得carts.list— カートの一覧表示carts.create— カートの作成または復元carts.get— カートの取得carts.delete— カートの削除cartEntries.list— カートエントリの一覧表示cartEntries.add— エントリの追加cartEntries.get— エントリの取得cartEntries.update— エントリペイロードの置換cartEntries.patch— エントリの部分更新cartEntries.delete— エントリの削除
設定
依存関係のインストール:
uv sync環境テンプレートのコピー:
cp .env.example .envローカルのSAP Commerceインスタンスに対して、以下を設定します:
SAP_BASE_URL=https://localhost:9002SAPのデプロイメントが異なる場合は、これらのパスフラグメントを維持または調整してください:
OCC_API_PATH=/occ/v2OAUTH_PATH=/authorizationserver/oauth/tokenASM_PATH=/assistedservicewebservices
ローカルテナントまたは検証対象のリモートテナントのOAuth認証情報を設定します。 標準のローカルサンプルデータセットアップでは、以下のデフォルト値が想定されています:
OAUTH_CLIENT_ID=mobile_android OAUTH_CLIENT_SECRET=secret OAUTH_USERNAME=asmagent OAUTH_PASSWORD=nimda OAUTH_SCOPE=basic
実行
Stdio:
python -m app.serverSSE:
fastmcp serve app/server.py --sse :8080
テスト
完全な検証スイート:
uv run ruff check app tests uv run mypy app uv run pytest -qスモークチェック:
uv run pytest tests/integration/test_smoke.py -qライブ検索フロー:
uv run pytest tests/integration/test_integration_live.py -s
注 ライブテストは、現在の契約を実際のSAP Commerceランタイムに対して検証することを目的としています。
SAP_BASE_URL=https://localhost:9002の場合、ローカルのOCC/ASMインスタンスが主要な検証ターゲットとなります。OAuthまたはASMデータの設定が誤っている場合は、範囲を広げる前にローカルで診断してください。
ローカルSAPの注意点 一部のSAP 2211ローカルスタックには
messagecentercsoccが含まれており、その遅延実行されるOauth2UserFilterが、/users/{customerId}の代理コンテキストを認証済みエージェントで上書きしてしまうことがあります。asmagentのカート呼び出しでEmployeeModel -> CustomerModelキャストエラーが発生する場合は、現在のOCCユーザーがOAuthプリンシパルと異なる場合に、既に一致している顧客を保持するようにそのフィルターにパッチを当ててください。
品質ゲート
Ruff: リンティングおよびインポートの衛生管理
Mypy:
app/全体に対する実用的な静的型チェックPytest + coverage.xml: CIで使用されるのと同じローカルエビデンスをSonarQubeが利用可能
ローカルのSonarQube分析は以下で公開できます:
uv run pytest -q
sonar-scannersonar-project.properties はチェックインされているため、ローカルスキャンとCIスキャンで同じプロジェクトキー/ソースレイアウトが使用されます。
ドキュメント
Workflows — 実用的なツール呼び出しシーケンス
Architecture Mermaid — システム図のソース
Request Mermaid — スイムレーン図のソース
MCPマニフェストおよびツール登録:
app/server.py貢献ガイド:
AGENTS.md
今後の改善点
プロジェクトで将来的にマルチプロセスや水平スケーリングされたセッション永続性が必要になった場合にのみ、オプションの外部バッキングストアを追加する
サポートされているOCC / ASMカバレッジ
現在のサーバーは、ベースサイト、カタログ、ストア、製品、カート、カートエントリ、チェックアウトの住所/配送操作、注文確定、およびASM顧客検索/顧客360/カートバインドスタイルの操作など、上記のフローに必要なエンドポイントをカバーしています。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/commerce-cloud-integrations/sap-commerce-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server