TM技能MCP服务器
一 主控程序 公开人才管理技能API作为人工智能助手工具的服务器。专为 焦耳 SAP BTP上的代理,但可与任何兼容MCP的客户端配合使用。
运作原理
AI Assistant (Joule / Claude / etc.)
│
│ MCP protocol (Streamable HTTP)
▼
┌─────────────────────┐
│ TM Skills MCP │ ← This project
│ Server │
└────────┬────────────┘
│ HTTP + API key
▼
┌─────────────────────┐
│ TM Skills API │ ← Separate FastAPI service
│ (REST) │
└────────┬────────────┘
│
▼
PostgreSQLMCP服务器是一个薄包装器,它将MCP工具调用转换为对TM Skills API的HTTP请求。身份验证、速率限制和输入验证都发生在API层。
快速开始
pip install -e .
cp .env.example .env # Set TM_API_BASE_URL and TM_API_KEY
python server.py # Streamable HTTP server on http://localhost:8080/mcp对于与MCP检查器的交互式测试:
pip install mcp[cli] # Inspector tooling (not needed for production)
mcp dev server.py连接AI助手
将任何MCP客户端指向端点:
https://tm-skills-mcp.cfapps.ap10.hana.ondemand.com/mcp客户端将通过MCP握手自动发现13个工具、2个资源和3个提示模板。
在焦耳工作室: 在构建Joule Agent时,将上述URL添加为MCP工具服务器。
工具
13个只读工具,每个API端点一个。人工智能助手会让他们回答人才问题——例如, browse_skills("Python") 要获取技能ID,则 get_top_experts(skill_id=1) 寻找专家。
员工工具
| 工具 | 它的答案 |
|---|---|
get_employee_skills | 这个人有什么技能? |
get_top_skills | 他们最强的技能是什么? |
get_evidence_inventory | 他们所有的技能都有什么证据? |
get_skill_evidence | 为什么我们认为他们精通某项特定技能? |
技能工具
| 工具 | 它的答案 |
|---|---|
browse_skills | 目录中有哪些技能?(从这里开始查找ID) |
get_top_experts | 谁最适合这项技能? |
get_skill_coverage | 熟练程度在整个组织中是如何分布的? |
get_evidence_backed_candidates | 谁有这种技能和强有力的证据来证明这一点? |
get_stale_skills | 谁的技能记录需要重新验证? |
get_cooccurring_skills | 除了这个技能,还有什么其他技能? |
search_talent | 谁拥有所有这些技能?(多技能和搜索) |
组织工具
| 工具 | 它的答案 |
|---|---|
get_org_skill_summary | 这个组织单位的顶尖技能是什么? |
get_org_skill_experts | 这个组织中谁有特定的技能? |
资源和提示
资源 提供AI可以参考的静态上下文:
| URI | 内容 |
|---|---|
tm://schema | 数据库架构DDL |
tm://business-questions | 带有API映射的业务问题目录 |
提示 是可重复使用的模板,用于编写多步骤工具链的脚本:
| 提示 | 示例使用 |
|---|---|
find_experts(skill_name) | “找到顶尖的Python专家并展示他们的证据” |
analyze_employee(employee_id) | “为EMP000001建立全面的人才档案” |
org_talent_review(org_unit_id) | “评估ORG030的人才格局” |
配置
所有设置都来自环境变量(或 .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请求超时(秒) |
部署到Cloud Foundry
./deploy.sh脚本从中读取API密钥 ../tm_app/.api-key,在不启动应用程序的情况下推送应用程序,通过以下方式注入密钥 cf set-env,然后启动应用程序。这就把秘密保密了 manifest.yml 以及版本控制。
手动部署
cf push --no-start
cf set-env tm-skills-mcp TM_API_KEY "your-api-key"
cf start tm-skills-mcp实时部署
|| URL| |-|-----| | MCP端点 | https://tm-skills-mcp.cfapps.ap10.hana.ondemand.com/mcp | | TM技能API | https://tm-skills-api.cfapps.ap10.hana.ondemand.com | | CF空间 | SEAIO_dial-3-0-zme762l7 / dev |
ID格式
这些由API验证:
- 员工ID:
EMP+6位数字(例如。EMP000001) - 组织ID:
ORG+1-4位数字+可选字母(例如。ORG030,ORG031B) - 技能ID: 数字(例如。
1,42) - 类别:
technical,functional,leadership,domain,tool,other
