PeopleSoft MCP服务器
模型上下文协议(MCP)服务器,使AI助手能够查询和理解PeopleSoft HCM数据库。此服务器为人力资源、工资单、福利、绩效和PeopleTools元数据提供语义工具,允许用准确的SQL查询回答自然语言问题。
特性
- 41语义工具 涵盖所有主要PeopleSoft HCM模块
- 4文档资源 PeopleSoft概念和查询模式
- 直接数据库访问 通过Oracle瘦客户端(不需要JDBC)
- PeopleTools自省 了解系统架构
- 有效的约会支持 内置于所有查询中
快速开始
先决条件
- Python 3.11+
- Oracle数据库与PeopleSoft HCM 9.2实例的连接
- 紫外线 包管理器(推荐)
安装
# Clone the repository
git clone
cd peoplesoft-mcp
# Install dependencies
uv sync
配置
- 复制示例环境文件并添加您的凭据:
cp .env.example .env
- 编辑
.env 使用您的数据库凭据:
ORACLE_DSN=hostname:port/service_name
ORACLE_USER=your_username
ORACLE_PASSWORD=your_password
- 编辑
.cursor/mcp.json 并更新安装路径。
运行服务器
uv run peoplesoft_server.py
游标IDE集成
MCP配置(.cursor/mcp.json)应该看起来像:
{
"mcpServers": {
"peoplesoft": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp_ps/",
"run",
"peoplesoft_server.py"
]
}
}
}
凭据从加载 .env 自动-无需在MCP配置中包含它们。
可用工具
模式内省(5个工具)
| 工具 | 说明 |
|---|
describe_table | 获取表结构、字段和索引 |
list_tables | 按名称模式搜索表 |
get_translate_values | 解码字段代码(XLAT值) |
get_table_indexes | 查看性能的索引定义 |
get_table_relationships | 查找外键关系 |
人力资源模块(5个工具)
| 工具 | 说明 |
|---|
get_employee | 按EMPLID获取员工详细信息 |
search_employees | 按姓名、部门等搜索员工。 |
get_job_history | 查看员工的工作历史记录 |
get_org_chart | 获取组织层次结构 |
get_department_info | 获取部门详细信息和员工人数 |
工资模块(5个工具)
| 工具 | 说明 |
|---|
get_payroll_results | 查看工资计算结果 |
get_payroll_status | 检查工资处理状态 |
get_accumulator_balances | 获取年初至今/MTD余额 |
get_payment_info | 获取付款详细信息 |
list_calendar_runs | 列出工资日历运行 |
福利模块(4个工具)
| 工具 | 说明 |
|---|
get_benefit_elections | 查看福利计划选举 |
get_dependents | 获取依赖信息 |
get_beneficiaries | 获取受益人指定 |
get_benefit_costs | 计算福利成本 |
性能模块(3个工具)
| 工具 | 说明 |
|---|
get_performance_reviews | 列出绩效文件 |
get_review_details | 获取详细的审核信息 |
search_reviews | 按条件搜索评论 |
PeopleTools模块(18个工具)
| 工具 | 说明 |
|---|
get_record_definition | 带有字段和键的完整记录结构 |
search_records | 按名称或描述查找记录 |
get_component_structure | 组件页面和导航 |
get_page_fields | 具有记录绑定的页面上的字段 |
get_peoplecode | 在记录/字段中查找PeopleCode |
get_permission_list_details | 权限列表的安全访问 |
get_roles_for_permission_list | 包含权限列表的角色 |
get_process_definition | Process Scheduler作业定义 |
get_application_engine_steps | AE程序结构 |
get_integration_broker_services | IB服务运营 |
get_message_definition | IB消息结构 |
get_query_definition | PS查询记录和字段 |
get_sql_definition | 通过SQLID获取SQL文本(视图、应用引擎、PeopleCode) |
search_sql_definitions | 按文本搜索SQL对象 |
search_peoplecode | 在PeopleCode中搜索文本 |
get_field_usage | 影响分析-使用字段的情况 |
get_translate_field_values | 字段的所有XLAT值 |
explain_peoplesoft_concept | 解释有效约会、SetID等。 |
直接查询(1个工具)
| 工具 | 说明 |
|---|
query_peoplesoft_db | 执行自定义SQL查询 |
可用资源
| 资源URI | 描述 |
|---|
peoplesoft://schema-guide | 按模块划分的主要表格 |
peoplesoft://concepts | 有效前体、emplo、setid、xlat |
peoplesoft://query-examples | SQL查询模式 |
peoplesoft://peopletools-guide | PeopleTools架构指南 |
项目结构
peoplesoft-mcp/
├── peoplesoft_server.py # Main MCP server entry point
├── db.py # Database connection management
├── tools/ # Semantic tool modules
│ ├── introspection.py # Schema discovery tools
│ ├── hr.py # HR module tools
│ ├── payroll.py # Payroll module tools
│ ├── benefits.py # Benefits module tools
│ ├── performance.py # ePerformance tools
│ └── peopletools.py # PeopleTools metadata tools
├── tests/ # Test suites
│ ├── test_business_questions.py # HR business scenarios
│ └── test_peopletools_questions.py # Technical consultant scenarios
├── docs/ # Documentation resources
│ ├── peoplesoft_concepts.md
│ ├── peoplesoft_schema_guide.md
│ ├── peopletools_guide.md
│ ├── sql_query_examples.md
│ ├── peopletools-tables-by-tool.md # Tables required per tool
│ └── migration-analysis.md # Migration planning notes
└── pyproject.toml # Project configuration
运行测试
# Set environment variables
export ORACLE_DSN="hostname:port/service_name"
export ORACLE_USER="username"
export ORACLE_PASSWORD="password"
# Run all tests
uv run pytest tests/ -v -s
# Run specific test suite
uv run pytest tests/test_business_questions.py -v -s
uv run pytest tests/test_peopletools_questions.py -v -s
查询示例
MCP支持自然语言问题,如:
商务问题:
- “每家公司有多少在职员工?”
- “各部门的平均工资是多少?”
- “谁向X经理汇报?”
- “向我展示没有指定主管的员工”
技术问题:
- “PS_JOB有哪些字段?”
- “DEPTID字段在哪里使用?”
- “JOB记录上运行的PeopleCode是什么?”
- “HR_ABSV_JOB_EFFDT使用什么SQL?”
- “搜索引用PS_ABSV_REQUEST的SQL对象”
- “解释PeopleSoft中的有效约会”
发展
添加新工具
- 在中创建新模块
tools/ 或添加到现有模块 - 定义使用的异步函数
db.execute_query() - 添加一个
register_tools(mcp) 函数 - 导入并注册
peoplesoft_server.py
关键概念
- 有效约会:大多数PeopleSoft表使用EFFDT/EFFSEQ进行历史记录
- 设置 ID:控制跨业务部门的数据共享
- 翻译价值观:通过PSXLATITEM解码的短代码
- EMPLID/epl-RCD:员工ID+就业记录号
许可证
麻省理工学院
更新日志
v0.2.1(2026-03-02)
- 添加
get_sql_definition -通过SQLID从PSSQLTEXTDEFN获取SQL文本 - 添加
search_sql_definitions -按文本搜索SQL对象 - PeopleTools兼容性:针对不同PeopleTools版本的不同列名调整PSPNLGROUP、PSPNLFIELD、PSAEAPPLDEFN、PSAESTEPDEFN查询
- 添加
docs/peopletools-tables-by-tool.md -每个工具所需的表格
v0.2.0(2026-02-28)
- 添加了39个语义工具的模块化工具架构
- 新增PeopleTools自检模块(16个工具)
- 添加了全面的测试套件(42个测试)
- 将连接池替换为直接连接,以提高可靠性
- 新增4个文档资源
- 改进了所有查询中的有效约会模式