SAP-Claude Integration via MCP (Model Context Protocol) について
ClaudeからSAP Graph APIの受注データを取得するPython製MCPサーバーです。現在は1つの検索ツールを提供し、Claude DesktopとSAPデータを接続する用途に向いています。
主な機能
- 01SAP受注データの取得
- 02topによる取得件数の指定
- 03環境変数からのAPIキー読み込み
- 04Claude向けの受注情報整形
活用シーン
- 01最近のSAP受注の確認
- 02Claudeによる受注平均額の計算
MCP 対応
MCPクライアントにget_sales_ordersツールを公開します。このツールはSAP Graph APIを検索し、整形した受注情報を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SAP-Claude MCP(Model Context Protocol)統合
シームレスな MCP 統合により、Claude AI の機能を SAP システムに直接接続できます。
このリポジトリには、SAP Graph API を介して Claude(Anthropic の LLM)と SAP システム間の双方向通信を可能にする、Python ベースのソリューションが含まれています。Model Context Protocol(MCP)を活用することで、この統合により Claude は SAP の業務データをリアルタイムで取得し、処理できます。
特長
- 最小限のセットアップで Claude を SAP システムに接続
- Graph API を介して SAP からリアルタイムの受注データを取得
- SAP エンティティ(顧客、製品など)を追加して統合を拡張
- Claude の LLM の機能を最大限に活用して SAP データを処理
前提条件
- Python 3.8+
- SAP API キー(サンドボックスまたは本番環境)
- Claude Desktop
- MCP と SAP Graph API の基本的な理解
このドキュメントは、管理者権限を持つ Windows 環境向けに作成されています。
参考ドキュメント
インストール
- SAP API キーを取得する
SAP Graph Navigator にログインします。 API キーは、プロフィールの「Settings」>「API Settings」にあります。 その API キーをシステム環境変数「SAP_API_KEY」として保存します。 新しい環境変数を読み込むため、必ずマシンを再起動してください。
- 環境をセットアップする
サーバー開発者向けドキュメントに従って進めましょう。
まず、uvをインストールし、Python プロジェクトと環境をセットアップします。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
その後、uvコマンドを認識させるため、必ずターミナルを再起動してください。
次に、プロジェクトを作成してセットアップします。
# Create a new directory for our project
uv init saptools
cd saptools
# Create virtual environment and activate it
uv venv
.venv\Scripts\activate
# Install dependencies
uv add mcp[cli] httpx requests
# Create our server file
new-item saptools.py
- サーバーをビルドする
saptools.pyファイルを自分のファイルにコピーします。
- Claude Desktop を MCP サーバーに接続する
Claude Studio を開きます。「File」>「Settings」>「Developer」で、Edit Configをクリックします。
通常は %APPDATA%\Claude フォルダーにあるファイルclaude_desktop_config.jsonを編集します。
C:\\PATH\\TO\\PARENT\\FOLDERを自分のパスに置き換えてください。
{
"mcpServers": {
"saptools": {
"command": "uv",
"args": [
"--directory",
"C:\\PATH\\TO\\PARENT\\FOLDER",
"run",
"saptools.py"
]
}
}
}
設定を読み込むため、Claude Desktop を再起動します。 デフォルトでは、Claude ウィンドウを閉じてもシステムトレイに最小化されるだけです。 システムトレイのアイコンを右クリックし、「Quit」を選択して完全に終了する必要があります。 Claude を再起動すると、チャットウィンドウにハンマーアイコンが表示され、アクティブな MCP ツールの数を確認できます。 アイコンをクリックして情報ポップアップを表示すると、次の内容が表示されます。 get_sales_orders SAP Graph API サンドボックスから受注を取得します。 Args: 取得する受注の数(デフォルト:3)。 api_key: SAP API キー(省略可。指定しない場合は環境変数を使用します) Returns: 受注情報を整形した文字列
- MCP サーバーをテストする
次のようなプロンプトを使って、Claude から SAP システムとチャットする準備が整いました。
Give me the last 10 sales orders
What is the average amount of the last 5 sales orders
現時点ではもちろん機能が限られていますが、この概念実証を拡張すれば、特定の顧客の最新の受注を取得するなど、より複雑なやり取りに対応できます。
🛠️ 仕組み
このソリューションでは、Model Context Protocol(MCP)を使用して Claude と SAP システム間の双方向通信チャネルを構築します。
- FastMCP ライブラリを使用して MCP サーバーを初期化します
- サーバーは Claude が呼び出せる「ツール」として SAP の機能を公開します
- SAP データへのアクセスが必要になると、Claude は適切なツール関数を呼び出します
- 関数は SAP Graph API に接続し、整形した結果を返します
- Claude は返されたデータを処理し、関連するインサイトを生成します
📊 現在利用可能なツール
get_sales_orders
SAP Graph API から販売注文情報を取得します。
パラメーター:
top(int, optional): 取得する販売注文の数(デフォルト:3)api_key(str, optional): SAP API キー(指定されていない場合は環境変数を使用します)
応答例:
Found 3 sales orders:
Order ID: 123456
Display ID: SO-123456
Sold To Party: ACME Corp
Net Amount: 5000.00 USD
Created At: 2024-10-12T15:30:00Z
----------------------------------------
Order ID: 123457
Display ID: SO-123457
Sold To Party: TechInnovations
Net Amount: 7500.00 USD
Created At: 2024-10-13T09:15:00Z
----------------------------------------
Order ID: 123458
Display ID: SO-123458
Sold To Party: SampleCustomer
Net Amount: 2500.00 USD
Created At: 2024-10-14T09:15:00Z
----------------------------------------
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。