SAP RFC MCP Server
SAP RFC MCP 서버
Model Context Protocol (MCP) 기반의 엔터프라이즈급 SAP RFC 커넥터입니다. 본 프로젝트는 AI 에이전트(Claude Desktop, GPT-4, Cursor 등)가 SAP 시스템에 안전하고 효율적이며 컨텍스트를 인식하는 방식으로 접근할 수 있도록 설계되었습니다. 표준화된 MCP 프로토콜을 통해 에이전트는 로컬 함수를 호출하듯 SAP RFC를 실행하고 비즈니스 데이터를 검색할 수 있습니다.
🌟 프로젝트 주요 특징
엔터프라이즈급 보안: Master Key 관리 아키텍처를 지원하며, 동적 토큰(Dynamic Tokens) 생성, 유효 기간 관리 및 원클릭 취소 기능을 갖추고 있습니다.
전 구간 추적: 신원 인식 로깅 시스템을 통해 모든 로그에 클라이언트 IP와 에이전트 신원이 포함되며, 매일 새벽 자동으로 로그가 분할됩니다.
지능형 테이블 읽기: 데이터 버퍼 보호 메커니즘이 내장되어
DATA_BUFFER_EXCEEDED오류를 자동으로 처리하며, 대규모 데이터의 반복적이고 안전한 읽기를 지원합니다.AI 최적화 메타데이터: 상세한 함수 인터페이스 정의와 매개변수 설명을 제공하며, RAG(검색 증강 생성) 친화적인 형식의 지식 베이스 내보내기를 지원합니다.
고가용성 세션: 지능형 세션 재사용을 지원하여 에이전트가 수동으로 Session 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으로 내보내어 에이전트의 오프라인 지식 베이스를 구축하는 데 사용합니다.
⚙️ 실행 모드
본 프로젝트는 다양한 시나리오의 통합 요구를 충족하기 위해 세 가지 실행 모드를 지원합니다:
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 기능을 호출합니다.
토큰 생성 예시 (Master Key 사용):
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.
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.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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