SAP RFC MCP Server
SAP RFC MCP Server
Model Context Protocol (MCP) に基づくエンタープライズ向けSAP RFCコネクタです。本プロジェクトは、AIエージェント(Claude Desktop、GPT-4、Cursorなど)に対し、安全かつ効率的でコンテキストを認識したSAPシステムへのアクセス能力を提供することを目的としています。標準化されたMCPプロトコルを通じて、エージェントはローカル関数を呼び出すかのようにSAP RFCを実行し、ビジネスデータを取得できます。
🌟 プロジェクトのハイライト
エンタープライズレベルのセキュリティ:マスターキー管理アーキテクチャをサポートし、動的トークン(Dynamic Tokens)の生成、有効期限管理、およびワンクリックでの取り消し機能を備えています。
フルリンク追跡:ID認識型のログシステムを採用。各ログにはクライアントIPとエージェントIDが含まれ、毎日深夜に自動分割されます。
インテリジェントなテーブル読み取り:データバッファ保護メカニズムを内蔵し、
DATA_BUFFER_EXCEEDEDエラーを自動処理。大規模データの反復的かつ安全な読み取りをサポートします。AI最適化メタデータ:詳細な関数インターフェース定義とパラメータ記述を提供し、RAG(検索拡張生成)に適した形式でのナレッジベースのエクスポートをサポートします。
高可用性セッション:インテリジェントなセッション再利用をサポート。エージェントは手動でセッションIDを管理する必要がなく、システムがトークンに基づいてアクティブなセッションを自動的に復元します。
🚀 コア機能 (Tools)
本サーバーは、システム探索からデータ操作までの全プロセスをカバーする以下のツールセットをMCPクライアントに公開しています:
1. コアRFCインタラクション
call_rfc_function: 任意のSAP RFC関数を動的に呼び出し、複雑なネスト構造のパラメータ受け渡しをサポートします。rfc_system_info: SAPシステムのバージョン、プロトコル、カーネル、データベースタイプなどのメタデータを取得します。get_rfc_functions: あいまい検索を使用して、SAPシステム内で利用可能なリモート呼び出し関数をクエリします。
2. 安全なデータ読み取り
read_table: 自動オーバーフロー保護機能を備えたテーブル読み取りツール。RFCの512バイト制限に基づき、フィールドを自動的に選択します。read_table_complete: 反復読み取りモード。バッファ制限を超える大量のフィールドリクエストをサポートし、自動的にバッチ処理を行います。get_table_structure: フィールドの技術属性や多言語記述を含む、SAPテーブルの詳細定義を取得します。test_table_access: 特定のテーブルに対する現在のユーザーの読み取り権限とデータ接続性を迅速に検証します。
3. メタデータ管理
get_function_metadata: パラメータの方向、型、長さ、多言語コメントを含む、関数の完全な「取扱説明書」を取得します。search_rfc_functions: 関数名と説明に対して全文検索を行い、エージェントが適切なインターフェースを見つけるのを支援します。export_metadata_for_rag: SAPインターフェースのナレッジをJSONとしてエクスポートし、エージェントのオフラインナレッジベース構築に使用します。
⚙️ 実行モード
プロジェクトは、異なるシナリオでの統合ニーズを満たすために3つの実行モードをサポートしています:
HTTPモード (デフォルト):FastAPIが提供するStreamable HTTPトランスポートに基づき、ストリーミング (SSE) レスポンスをサポート。リモートエージェントからのアクセスに適しています。
STDIOモード:標準入出力を介した通信。Claude DesktopなどのローカルにインストールされたMCPクライアントに適しています。
デュアルモード (Dual):HTTPとSTDIOを同時に有効にし、ローカルデバッグとリモートサービスの両方に対応します。
📦 クイックデプロイ
1. 環境要件
Python: 3.9以上。
SAP NW RFC SDK: SAP公式SDKをインストールし、
SAPNWRFC_HOME環境変数を設定する必要があります。
2. インストール
git clone <repo_url>
cd sap-rfc-mcp-server
python -m venv .venv
source .venv/bin/activate # Windows 使用 .venv\Scripts\activate
pip install -e .3. 設定
.env.example を .env にコピーし、SAP接続パラメータとセキュリティキーを入力してください:
# SAP 连接
SAP_ASHOST=192.168.1.100
SAP_SYSNR=00
SAP_CLIENT=100
SAP_USER=YOUR_USER
SAP_PASSWD=YOUR_PASSWD
# 安全密钥
MCP_MASTER_KEY=admin-secret-key-2026🔐 認証ガイド
サーバーは2層認証アーキテクチャを採用しています:
管理層 (Master):
MCP_MASTER_KEYを使用して/auth/*インターフェースにアクセスし、トークン発行を実行します。ビジネス層 (Agent):生成された動的トークンを使用して
/mcp/*インターフェースにアクセスし、SAP機能を呼び出します。
トークン生成の例 (マスターキーを使用):
POST /auth/token/generate
X-API-Key: admin-secret-key-2026
Body: {"agent_name": "Finance_Agent", "ttl_hours": 48}📂 プロジェクト構造
sap_rfc_mcp_server/
├── auth.py # 动态 Token 管理与持久化
├── server.py # MCP 工具定义与处理核心逻辑
├── sap_client.py # 底层 pyrfc 连接管理与池化
├── rfc_table_reader.py # 增强型表数据安全读取逻辑
├── streamable_http_server.py # HTTP/SSE 传输层实现
├── logger.py # 身份感知的自动切分日志系统
└── metadata_manager.py # SAP 元数据分析与 RAG 优化📖 その他のドキュメント
QUICKSTART.md:5分でわかるクイックスタートガイド。
DEPLOY.md:本番環境でのSystemdおよびDockerデプロイ。
© 2026 SAP RFC MCP Server Team. Licensed under MIT.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.