TM技能MCP服务器v2
一 主控程序 服务器,将人才管理技能API(包括流失预测)公开为人工智能助手(如SAP BTP上的Joule代理)的工具、资源和提示。
运作原理
AI Assistant (Joule / Claude / etc.)
|
| MCP protocol (Streamable HTTP)
v
+---------------------+
| TM Skills MCP | <-- This project
| Server v2 |
+--------+------------+
| HTTP + API key
v
+---------------------+
| TM Skills API | <-- Separate FastAPI service
| (REST) |
+--------+------------+
|
v
PostgreSQLMCP服务器是一个薄包装器,它将MCP工具调用转换为对TM Skills API的HTTP请求。身份验证、速率限制和输入验证都发生在API层。
项目结构
server.py Main server: MCP tools, resources, prompts, UI view, audit REST
audit.py SQLite-backed audit logger (lazy init, WAL mode)
config.py Configuration via pydantic-settings (.env + env vars)
resources/
tm_schema.sql TM database schema (served as MCP resource)
business_questions.md Business questions catalog (served as MCP resource)
deploy.sh Automated CF deployment with secret management
manifest.yml CF app config (memory, health check, env vars)
Procfile CF start command
requirements.txt Production deps for CF Python buildpack
runtime.txt Python version pin for CF
pyproject.toml Project metadata and dependencies
.env.example Environment variable template设置
先决条件: Python 3.10+,访问TM Skills API
pip install -e .
cp .env.example .env # Set TM_API_BASE_URL and TM_API_KEY
python server.py # Starts on http://localhost:8080| URL | 什么 |
|---|---|
http://localhost:8080/ | UI视图--列出所有工具、资源和提示 |
http://localhost:8080/mcp | MCP端点(用于AI客户端) |
http://localhost:8080/audit/summary | 审计统计数据(JSON) |
部署(Cloud Foundry—SAP BTP)
使用 deploy.sh
./deploy.sh脚本:
- 从中读取API密钥
../talent-management-app/.api-key - 跑
cf push --no-start(部署时不启动) - 通过以下方式注入密钥
cf set-env TM_API_KEY - 启动应用程序
这就把秘密保密了 manifest.yml 以及版本控制。如果密钥文件不存在,则提示手动输入。
手动部署
cf push --no-start
cf set-env tm-skills-mcp-v2 TM_API_KEY "your-api-key"
cf start tm-skills-mcp-v2重要说明
manifest.yml不得包含TM_API_KEY—cf push在每个部署上重新应用manifest-env-vars,这将覆盖以下设置的值cf set-env.$PORT由CF设置 --服务器会自动从环境中读取它。- 256M内存足够MCP SDK+httpx堆栈使用。
- 审计SQLite数据库是短暂的——每次重新部署时都会重置。
实时网址
| URL | 什么 |
|---|---|
| https://tm-skills-mcp-v2.cfapps.ap10.hana.ondemand.com/ | UI视图 |
| https://tm-skills-mcp-v2.cfapps.ap10.hana.ondemand.com/mcp | MCP端点 |
| https://tm-skills-mcp-v2.cfapps.ap10.hana.ondemand.com/audit/summary | 审计统计数据 |
| https://tm-skills-mcp-v2.cfapps.ap10.hana.ondemand.com/audit/recent | 最近的工具调用 |
CF组织/空间: SEAIO_dial-3-0-zme762l7 / dev
MCP工具、资源和提示
服务器暴露 21工具 (18 TM API+3审核), 2资源,以及 5个提示.
访问 UI视图 获取带有描述和参数的实时列表,或运行 python server.py 本地和开放 http://localhost:8080/.
连接AI客户端: 将任何MCP客户端指向 /mcp 终点。在Joule Studio中,将URL添加为MCP工具服务器。
配置
所有设置都来自环境变量(或 .env 本地文件):
| 变量 | 默认值 | 描述 |
|---|---|---|
HOST | 0.0.0.0 | 服务器绑定地址 |
PORT | 8080 | 服务器端口(CF会自动设置此端口) |
TM_API_BASE_URL | http://localhost:8000 | TM技能API URL |
TM_API_KEY | *(空)* | 用于TM技能的API密钥API |
TM_API_TIMEOUT | 30.0 | HTTP请求超时(秒) |
AUDIT_DB_PATH | audit.db | SQLite审计数据库文件路径 |
CORS_ORIGINS | http://localhost:5173,... | 逗号分隔的CORS源(用于监控仪表板) |
ID格式
这些由API进行验证,可用于测试:
- 员工ID:
EMP+6位数字(例如。EMP000001) - 组织ID:
ORG+1-4位数字+可选字母(例如。ORG030,ORG031B) - 技能ID: 数字(例如。
1,42) - 类别:
technical,functional,leadership,domain,tool,other
