S4MCPDEMO.git について
S4MCPDEMO.gitは、Cursorなどとの連携を想定したSAP品目マスタ照会用のデモサービスです。HTTP APIとstdioに対応していますが、READMEでは本番環境での使用は想定されていません。
主な機能
- 01品目基本情報の照会
- 02説明文による品目検索
- 03多言語の品目説明の照会
- 04HTTPとstdioの両モード
- 05OpenAPIドキュメントの提供
活用シーン
- 01品目番号による属性の検索
- 02説明文から品目を検索
- 03指定言語の品目説明の確認
MCP 対応
stdioモードでMCPツールとして利用でき、HTTP APIモードにも対応します。クライアントにSAP品目マスタの照会機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
品目マスタデータ MCP
バージョン: 1.0.1
作成者: ORBIS Consulting Shanghai Co.,Ltd
ライセンス: MIT
最終更新日: 2025年4月11日
制限事項: この機能はデモンストレーション専用であり、本番環境では使用できません。必要な場合は、作成者([email protected])までお問い合わせください。
品目マスタデータ MCP(Master Control Program)は、SAP システムと連携してマスタデータを照会するサービスです。このサービスは HTTP API サーバー、または標準入力/出力モードのツールとして実行でき、Cursor などのスマートアシスタントとの連携をサポートします。
機能
- 2つの実行モード:HTTP API モードと標準入力/出力(stdio)モードの両方をサポートします
- 品目基本情報の照会:品目の詳細な属性や特性を取得します
- 品目テキスト検索:テキストの説明に基づいて関連する品目を検索します
- 多言語サポート:異なる言語(中国語、英語、ドイツ語など)の品目テキストを照会できます
- 型安全性:入力検証に Pydantic モデルを使用します
- 充実した API ドキュメント:OpenAPI 仕様を使用した API ドキュメントを内蔵しています
- MCP.so ホスティングのサポート:クラウドベースのアクセス用に MCP.so へデプロイできます
- API キー認証:安全な認証に JWT を使用します
インストール
要件
- Python 3.7+
- SAP S/4HANA システムへのアクセス
インストール手順
- このリポジトリをクローンします:
git clone https://github.com/SHENRUIYANG/S4MCPDEMO.git
cd S4MCPDEMO
- 依存関係をインストールします:
pip install -r requirements.txt
- SAP 接続を設定します(任意。環境変数も使用できます):
プロジェクトのルートディレクトリに .env ファイルを作成し、次の内容を記述します:
SAP_HOST=your_sap_host
SAP_PORT=your_sap_port
SAP_USER=your_sap_username
SAP_PASSWORD=your_sap_password
JWT_SECRET=your-secret-key # 用于生成和验证 API Key 的密钥
- API キーを生成します:
セキュリティ上の理由から、API キー生成スクリプトは公開リポジトリに含まれていません。このサービスの API キーを生成する必要がある場合は、作成者に直接お問い合わせください。
API キーは JWT 形式を使用し、次の情報を含みます:
- ユーザーのメールアドレス
- SAP 接続情報(ホスト、ポート、ユーザー名、パスワード)
- 有効期限
注:API キーには機密性の高い接続情報が含まれているため、安全に保管してください。
使用方法
HTTP サーバーとして起動する
python MM03_MCP.py --mode=http --host=0.0.0.0 --port=5003
これにより FastAPI サーバーが起動し、指定したポート(デフォルトは 5003)でリッスンします。
標準入力/出力(stdio)ツールとして起動する
python MM03_MCP.py --mode=stdio
これによりプログラムが起動し、標準入力からのコマンドを待ち受けます。Cursor などのスマートアシスタントとの連携に適しています。
REST サーバーとして起動する(MCP.so 用)
python MM03_MCP.py --mode=rest --host=0.0.0.0 --port=5003 --endpoint=/rest
これにより、MCP.so でのホスティングに適した REST サーバーが起動します。
API エンドポイント
HTTP サーバーの起動後、次の API エンドポイントを利用できます:
- GET /.well-known/mcp-manifest.json:API マニフェストを取得します
- POST /mcp_MM03_BasicData:品目の基本情報を取得します
- POST /mcp_MM03_DescToMaterial:品目テキストから品目を検索します
- POST /mcp_MM03_Description_Search:指定した言語の品目テキストを取得します
- GET /health:ヘルスチェックエンドポイント
API ドキュメント
HTTP サーバーの起動後、http://localhost:5003/docs にアクセスすると、API ドキュメント全体を確認できます。
使用例
品目の基本情報を取得する
curl -X POST "http://localhost:5003/mcp_MM03_BasicData" \
-H "Content-Type: application/json" \
-d '{"material": "FG126"}' \
-H "Authorization: Bearer your-api-key"
品目テキストから品目を検索する
curl -X POST "http://localhost:5003/mcp_MM03_DescToMaterial" \
-H "Content-Type: application/json" \
-d '{"description": "serial", "language": "EN"}' \
-H "Authorization: Bearer your-api-key"
指定した言語の品目テキストを取得する
curl -X POST "http://localhost:5003/mcp_MM03_Description_Search" \
-H "Content-Type: application/json" \
-d '{"material": "FG126", "language": "EN"}' \
-H "Authorization: Bearer your-api-key"
MCP.so との連携
このプロジェクトは MCP.so ホスティングとの互換性を考慮して設計されています。リポジトリには必要なファイルがすべて含まれています:
- chatmcp.yaml:MCP.so 連携用の設定
- Dockerfile:デプロイ用のコンテナイメージ定義
- LICENSE:商用利用に適したデプロイに必要な MIT ライセンス
このサービスを MCP.so にデプロイするには:
- GitHub リポジトリの URL を MCP.so プラットフォームに送信します
- MCP.so チームがサービスを審査し、デプロイします
- 承認されると、MCP Playground で利用できるようになります
Docker によるデプロイ
Docker コンテナでサービスを実行することもできます:
# Build the Docker image
docker build -t mcp/mm03-mcp .
# Run the container
docker run -i --rm -e SAP_USER=your_username -e SAP_PASSWORD=your_password mcp/mm03-mcp
API の詳細
BasicData
品目の基本情報を取得します。
入力パラメーター:
material:品目番号(例:「FG126」)
戻り値のフィールド:
- 品目タイプ(ProductType)
- 作成日(CreationDate)
- 総重量(GrossWeight)
- 基本数量単位(BaseUnit)
- 品目グループ(ProductGroup)
- その他、多数の SAP 品目マスターデータフィールド
DescToMaterial
説明テキストで品目を検索します。
入力パラメーター:
description:説明テキスト(例:「valve」)max_results:結果の最大数(デフォルト:50)language:言語コード(例:「EN」は英語、「ZH」は中国語、「ALL」はすべての言語。デフォルトは「ZH」です)
戻り値のフィールド:
material:品目番号description:品目の説明language:言語コード
Description_Search
指定した言語で、特定の品目の説明情報を取得します。
入力パラメーター:
material:品目番号(例:「FG126」)language:言語コード(例:「EN」は英語、「ZH」は中国語。デフォルトは「EN」です)
戻り値のフィールド:
material:品目番号description:品目の説明language:言語コード
依存関係
- FastAPI:Web フレームワーク
- Uvicorn:ASGI サーバー
- httpx:非同期 HTTP クライアント
- python-dotenv:環境変数の管理
- Pydantic:データ検証
- FastMCP:MCP コアライブラリ
セキュリティに関する考慮事項
- 本番環境では、HTTPS を有効にすることを推奨します
- 認証情報をコードにハードコードせず、環境変数または安全な認証情報管理ソリューションを使用してください
- API にアクセスできるのが認証済みユーザーのみであることを確認してください
ライセンス
貢献
イシューやプルリクエストを歓迎します!
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。