SuccessFactors MCP服务器
MCP(模型上下文协议)服务器,用于与SAP SuccessFactors OData API交互以检索和更新员工/用户数据。
特性
- 获取用户数据:检索所有指定字段的员工数据
- post_user_data:更新员工/用户信息
- 用户统计:获取所有用户的汇总统计信息
- 搜索_用户_邮箱:通过电子邮件查找用户并返回userId/firstName/lastName/email
- manage_user_fields:获取或更新所有47个标准用户字段(全面的字段管理)
- get_complete_employee_data:使用所有导航属性检索完整的员工数据(完整的OData条目)
- get_manager _ hr:检索经理和/或人力资源信息
- update_user_odata:使用具有精确OData格式的upstart端点更新用户数据(camelCase字段)。
警告:此操作将修改SAP SuccessFactors系统中的员工数据。更改不能自动撤消。
- update_manager_hr:更新经理和/或人力资源分配。
警告:此操作将修改SAP SuccessFactors系统中的员工数据。更改不能自动撤消。
设置
- 安装依赖项:
npm install- 构建项目:
npm run build- 运行服务器:
npm start对于自动重新加载的开发:
npm run dev配置
所有敏感配置(API URL、用户名和密码)都存储在 .env 文件。
- 复制示例文件:
copy .env.example .env- 编辑
.env使用您的凭据文件:
SF_API_URL=https://apisalesdemo2.successfactors.eu/odata/v2
SF_USERNAME=your-username-here
SF_PASSWORD=your-password-here重要提示: 这 .env 文件已在 .gitignore 并且不会致力于版本控制。始终确保您的凭据安全!
MCP客户端配置
要将此服务器与MCP客户端(如Claude Desktop)一起使用,请将其添加到MCP配置文件中:
{
"mcpServers": {
"successfactors": {
"command": "node",
"args": ["C:\\Users\\Desktop\\SF-MCP-01\\dist\\index.js"]
}
}
}可用工具
获取用户数据
搜索_用户_邮箱
通过电子邮件搜索用户并返回基本身份信息。
参数:
email(必填):要搜索的电子邮件地址(完全匹配)
退货: 匹配数组 userId, firstName, lastName,以及 email.
示例请求(OData): GET /odata/v2/User?$filter=email eq 'user.email@example.com'
从SuccessFactors检索员工/用户数据。
参数:
userId(必填):用户ID(USERID)、员工ID(EMPID)或电子邮件地址fields(可选):要检索的特定字段数组。如果未提供,则返回所有标准字段。
退货: 包含用户数据的JSON对象,包括:
- 状态、用户ID、用户名、名字、姓氏、MI、性别、电子邮件
- 经理、人力资源、部门、职位代码、部门、地点、时区
- 受雇者、雇员、头衔、商务电话、传真
- ADDR1、ADDR2、城市、州、邮政编码、国家
- REVIEW_FREQ,LAST_REVIEW_DATE
- CUSTOM01至CUSTOM15
- MATRIX_MANAGER,默认缩放,代理
- 定制经理、二级经理、登录方法
- PERSON_guide、PERSON_ID_EXTERNAL
post_user_data
更新SuccessFactors中的员工/用户数据。
参数:
userId(必填):要更新的用户IDdata(必填):包含要更新的字段键值对的对象
退货: 确认已成功更新字段列表。
实施细节: 此操作使用SuccessFactors追加销售端点: POST /upsert?purgeType=record.
用户统计
检索所有用户的聚合统计信息。
参数:
filters(可选):带有统计过滤器的对象
退货: 统计数据包括:
- 用户总数
- 活跃/非活跃用户
- 按性别、部门、地点和地位分列
get_manager _ hr
检索特定用户的经理和/或人力资源信息。
参数:
userId(必填):要查询的用户ID(USERID)、员工ID(EMPID)或电子邮件地址getManager(可选):是否检索经理信息(默认值:true)getHR(可选):是否检索人力资源信息(默认:true)
退货: JSON对象:
- 用户ID信息
- 经理详细信息(用户ID、用户名、名字、姓氏、电子邮件)(如果需要)
- 人力资源详细信息(用户ID、用户名、名字、姓氏、电子邮件)(如有要求)
- 如果未分配经理/HR,则为空值
update_manager_hr
更新用户的经理和/或人力资源分配。
参数:
userId(必填):要更新的用户IDmanagerId(可选):要分配的新管理员用户ID(可以是用户ID、EMPID或电子邮件)hrId(可选):要分配的新HR用户ID(可以是用户ID、EMPID或电子邮件)
注: 至少一个 managerId 或 hrId 必须提供。
退货: 确认已成功更新分配的经理/HR ID。
manage_user_fields
获取或更新SuccessFactors中的所有标准用户字段。这是一个全面的工具,支持所有47个标准字段。
参数:
action(必填):要么"get"检索字段或"update"修改字段userId(必填):用户ID(USERID)、员工ID(EMPID)或电子邮件地址fields(可选):
- 对于 "get" action:指定要检索哪些字段的对象(键是字段名)。如果未提供,则返回所有字段。 - 对于 "update" 动作: 必需 -包含要更新的字段名称和值的对象(例如。, {"FIRSTNAME": "John", "LASTNAME": "Doe"})
支持的字段(共47个字段): 状态、用户ID、用户名、公司名称、姓氏、MI、性别、电子邮件、经理、人力资源、部门、JOBCODE、部门、位置、时区、HIREDATE、EMPID、头衔、BIZ_PHONE、传真、地址1、地址2、城市、州、邮政编码、国家、审核_FREQ、LAST_REVIEW_DATE、CUSTOM01到CUSTOM15、MATRIX_MANAGER、默认\_ ALE、代理、CUSTOM_MANAGER、SECON_MANAGER,LOGIN_METHOD、PERSON_GUID、PERSON_ID_Exportional
退货:
- 对于
"get":所有请求的字段及其当前值(如果未设置,则为空),加上所有可用字段的列表 - 对于
"update":使用更新字段及其新值列表进行确认
实施细节: 这 update 该操作使用SuccessFactors追加销售端点: POST /upsert?purgeType=record.
get_complete_employee_data
检索包含所有字段和导航属性的完整员工数据。这将返回SuccessFactors API返回的完整OData条目,类似于获取 User('empId') 直接。有助于获取全面的员工信息,包括所有可用的导航链接和扩展属性。
参数:
userId(必填):用户ID(USERID)、员工ID(EMPID)或电子邮件地址expandProperties(可选):要扩展的导航属性数组(例如。,["personKeyNav", "manager", "hr", "empInfo"]).如果未提供,则默认为常用属性:personKeyNav、manager、hr、empInfo、secondManager、matrixManager、customManager。format(可选):响应格式-"json"(默认)或"xml".XML格式返回原始OData XML条目。
退货:
- 完整的员工数据结构,包括所有字段和导航属性
- 对于JSON格式:具有completeData字段的结构化对象,其中包含所有员工信息
- 对于XML格式:原始OData XML条目(类似于提供的示例)
update_user_odata
使用具有与SuccessFactors API匹配的精确OData格式的SuccessFactor追加启动终结点更新用户数据。接受camelCase格式的字段(名字、姓氏、电子邮件、状态、时区等),并自动使用适当的元数据结构格式化经理和人力资源部。
参数:
userId(必填):要更新的用户ID(内部用户ID)username(可选):用户名(如果未提供,则默认为userId)status(可选):用户状态(例如,“t”表示活动)firstName(可选):名字lastName(可选):姓氏gender(可选):性别(男/女)email(可选):电子邮件地址department(可选):部门timeZone(可选):时区(例如,“美国/东部”、“亚洲/耶路撒冷”)managerId(可选):管理器用户ID,或“NO_Manager”删除管理器hrId(可选):HR用户ID,或“NO_HR”删除HRadditionalFields(可选):具有camelCase格式附加字段的对象
退货: 使用已发送的完整有效负载和API响应进行确认。
实施细节: 此工具执行 POST /upsert?purgeType=record 带着一个 SFOData.User 有效载荷。
备注
- 警告-仅用于演示目的
- 此代码不是生产相关代码,仅用于演示和测试目的。
- 请勿在实时生产环境中使用此功能。
- 在部署到生产环境之前,确保正确的开发、测试、安全审查,并符合所有相关标准和法规。
- 警告:此操作将修改SAP SuccessFactors系统中的员工数据。更改不能自动撤消。
- 服务器使用提供的凭据进行基本身份验证
