Skip to main content
Glama
Time-90

SAP RFC MCP Server

by Time-90

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層認証アーキテクチャを採用しています:

  1. 管理層 (Master)MCP_MASTER_KEY を使用して /auth/* インターフェースにアクセスし、トークン発行を実行します。

  2. ビジネス層 (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分でわかるクイックスタートガイド。

  • MODES_GUIDE.md:実行モードと設定の詳細解説。

  • DEPLOY.md:本番環境でのSystemdおよびDockerデプロイ。


© 2026 SAP RFC MCP Server Team. Licensed under MIT.

A
license - permissive license
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

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/Time-90/sap-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server