SAP SuccessFactors MCP服务器
Watsonx Orchestrate从SAP SuccessFactors创建用户帐户MCP服务器
项目简介
此项目包括:Model Context Protocol (MCP)来修改标记元素的显示属性Watsonx Orchestrate和SAP SuccessFactors进行动态观察时的轴心点。远程MCP作为服务器运行SAP SuccessFactors OData API v2中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
机能
- ✅ SAP SuccessFactors创建用户帐户
- ✅ 新 IBM自动添加到管理员权限组
- ✅ 保留现有成员的增量添加方法
- ✅ Basic认证安全API连接
- ✅ Watsonx Orchestrate无缝集成
- ✅ IBM Cloud Code Engine免费部署
安装过程
1.克隆存储库
git clone
cd sap-successfactors-mcp2. Python创建虚拟环境
# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activate3.安装依赖包
pip install -r requirements.txt4.设置环境变量
.env.example复制.env创建文件,然后单击SAP设置凭据:
# Windows
copy .env.example .env
# macOS/Linux
cp .env.example .env.env编辑文件并设置以下信息:
SAP_API_URL=https://api68sales.successfactors.com
SAP_COMPANY_ID=YOUR_COMPANY_ID
SAP_USER_ID=YOUR_USER_ID
SAP_PASSWORD=YOUR_PASSWORD
MCP_AUTH_TOKEN=your-secure-random-token5.确认权限组
SAP SuccessFactors中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。如果不存在SAP在管理画面中制作user_management.py的,之ADMIN_ROLE_NAME将条目添加到文档注册表。
6. API连接测试
python test_sap_connection.py如果成功,将显示以下输出:
============================================================
SAP SuccessFactors API接続テスト
============================================================
============================================================
1. 環境変数の確認
============================================================
✓ SAP_API_URL: https://api68sales.successfactors.com
✓ SAP_COMPANY_ID: SFCPART001687
✓ SAP_USER_ID: yoshio.imura@ibm.com
✓ SAP_PASSWORD: ***********
✅ すべての環境変数が設定されています
============================================================
2. Basic認証ヘッダーの作成
============================================================
認証文字列形式: SFCPART001687\yoshio.imura@ibm.com:***********
Base64エンコード完了: U0ZDUEFSV...
✅ Basic認証ヘッダーを作成しました
============================================================
3. SAP SuccessFactors API接続テスト
============================================================
エンドポイント: https://api68sales.successfactors.com/odata/v2/User
パラメータ: {'$top': 1, '$format': 'json'}
APIリクエストを送信中...
ステータスコード: 200
✅ API接続成功!项目结构
sap-successfactors-mcp/
├── src/
│ ├── __init__.py
│ ├── server.py # MCPサーバーのメインエントリーポイント
│ ├── sap_client.py # SAP SuccessFactors APIクライアント
│ ├── tools/
│ │ ├── __init__.py
│ │ └── user_management.py # ユーザー管理ツール
│ └── config/
│ ├── __init__.py
│ └── settings.py # 設定管理
├── tests/
│ ├── __init__.py
│ └── test_sap_client.py
├── .github/
│ └── workflows/
│ └── keepalive.yml # GitHub Actions自動ウェイクアップ
├── deployment/
│ ├── Dockerfile
│ └── ibm-code-engine.yaml # IBM Code Engine設定
├── requirements.txt
├── .env.example
├── .env # ← Gitにコミットしない
├── .gitignore
├── test_sap_connection.py # API接続テストスクリプト
└── README.mdSAP获取凭据
详细步骤SAP_CREDENTIALS_GUIDE.md来修改标记元素的显示属性。
所需信息
- 数据中心URL: SAP SuccessFactors的,之API服务器URL
- 公司编号: 会社ID
- API用户ID: API访问用户ID
- API用户密码: API用户密码
所需权限
API用户必须具有以下权限:
- ☑ 用户管理
- ☑ OData API访问
- ☑ 创建用户
- ☑ 编辑用户
- ☑ 查看用户
故障排除
401 Unauthorized 错误
原因:认证信息错误
解决方法:
.env检查文件凭据- Company ID和User ID确认格式(
CompanyID\UserID) - 确认密码包含特殊字符时是否正确转义
403 Forbidden 错误
原因: API用户没有必要的权限
解决方法:
- SAP在管理画面中API验证用户权限
- Permission Role中所述修改相应参数的值
- API Center确认用户是否已添加到分配用户
404 Not Found 错误
使用方法
创建用户并添加到权限组
方法1:在创建用户的同时添加到权限组(建议)
from src.tools.user_management import create_sap_user_with_admin_role
result = create_sap_user_with_admin_role(
user_id='NEW001',
username='newuser',
first_name='New',
last_name='User',
email='new.user@example.com',
locale='ja_JP',
timezone='Asia/Tokyo'
)
if result['success']:
print(f"✅ {result['message']}")
print(f"ユーザー作成: {result['user_creation']['message']}")
print(f"権限追加: {result['role_assignment']['message']}")
else:
print(f"❌ {result['message']}")方法2:将现有用户添加到权限组
from src.tools.user_management import add_user_to_admin_role
result = add_user_to_admin_role(user_id='EXISTING_USER_ID')
if result['success']:
print(f"✅ {result['message']}")
else:
print(f"❌ {result['message']}")运行测试脚本
集成测试(全部功能)
python test_integration.py测试权限组功能
python test_permission_role.py在此测试中:
- 确认权限组“IBM管理员用权限组”的存在
- 获取当前成员列表
- 确认向权限组添加用户功能的行为
权限组功能详细信息
实现的功能
- 获取权限组:
get_permission_role(role_name)
- 搜索并检索具有指定名称的权限组
- 检索成员列表:
get_permission_role_members(role_name)
- 获取权限组的当前成员列表
- 添加用户:
add_user_to_permission_role(user_id, role_name)
- 在保留现有成员的情况下添加新用户 - 带重复检查功能
- 添加到管理员权限组:
add_user_to_admin_role(user_id)
- 将用户添加到固定权限组“IBM管理员权限组”
- 集成用户创建和权限添加:
create_sap_user_with_admin_role(...)
- 同时创建用户并将其添加到权限组
增量机制
此实现将添加新用户而不删除现有成员:
- 获取当前权限组成员
- 检查新用户是否已存在
- 现有成员+创建新用户列表
- 更新权限组
这样可以防止错误删除现有成员。
Watson Orchestrate与集成
Watsonx Orchestrate中描述的相应参数的值create_sap_user_with_admin_role函数允许您同时创建用户并将其添加到权限组。
Slack → Watson Orchestrate → MCP Server → SAP SuccessFactors
↓
1. ユーザー作成
2. 権限グループに追加原因: API URL错误的
解决方法:
- 数据中心URL重新确认
- OData API v2检查端点:
/odata/v2/
下一步
- ✅ API如果连接测试成功MCP继续实施服务器
- ✅ 在本地MCP测试服务器
- ✅ IBM Cloud Code Engine部署到
- ✅ Watsonx Orchestrate合并
许可证
MIT许可证
支持
如果出现问题,请检查:
- SAP_CREDENTIALS_GUIDE.md -如何获取凭据
- 实施_计划.md -实施计划详细信息
- GitHub Issues - 错误报告和功能请求
