Observed since 20 Oct, 16:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A02 职业资源检索 Mock MCP Server:课程检索 / 职位检索 / 天气查询(演示数据,职位已标注)
N5「执行」环节的 MCP 主轨(E8 评分核心)。一个 Server 暴露 3 个工具,百宝箱插件层注册后,由 N5 的两个「插件」节点调用。
| 文件 | 作用 |
|---|---|
mock_server.py | MCP Server 本体 v0.3(fetch_courses / fetch_jobs / fetch_weather;三传输可切) |
test_client.py | 联调自测:拉起 Server → 完整 MCP 握手 → 逐工具调用 → 结构校验 |
requirements.txt | 依赖(mcp 包,钉死 <2:2.x 改名 MCPServer 不兼容,实测踩坑) |
README.md | 本文件:启动 / 自测 / 平台接入三条路线 |
# ① 建虚拟环境(首次)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
# ② 装依赖
pip install -r requirements.txt
# ③ 体检(不联网)
python mock_server.py --selftest
# 期望最后一行:selftest ALL PASS(7 用例 + 2 结构红线)
# 联调(拉起 Server 走完整 MCP 协议链,= 平台将来干的事)
python test_client.py
# 期望最后一行:ALL PASS:MCP 全链路(握手/列工具/调用/结构)通过
test_client 通过 = Server 侧无问题。百宝箱注册后仍连不上,问题必在"平台→你机器"这一段网络(见下面平台接入),不在代码。
| 变量 | 默认 | 说明 |
|---|---|---|
MCP_TRANSPORT | streamable-http | sse → 挂 /sse;stdio → 标准输入输出(一键部署用,无端口) |
MCP_HOST | 0.0.0.0 | 对外可访问 |
MCP_PORT | 8000 | 端口冲突时换(实测:本机 8000 被残留静态服务占用) |
三种传输均已 test_client 全链路验证(2026-09-18)。
路径:百宝箱 → 插件 → 新建插件 → 左侧「创建 MCP 服务」。面板「MCP 创建方式」两条路,对应三种玩法:
/mcp;平台报协议错换 MCP_TRANSPORT=sse → /sse)ngrok http 8000)或免费云部署(Render/HF Space)pyproject.toml 已落库并本机验证:pip install . → 入口 mock-career-mcp 可拉起 stdio 服务;剩 python -m build + twine upload,步骤见 docs/15 附录 D.2),本机先 uvx a02-mock-career-mcp 验证{
"mcpServers": {
"a02-career": {
"command": "uvx",
"args": ["a02-mock-career-mcp"],
"env": {}
}
}
}
踩坑实录(test_client 联调发现):mcp SDK 的 stdio_client 拉子进程不继承自定义环境变量——StdioServerParameters 必须显式传 env={...},否则子进程拿不到 MCP_TRANSPORT 跑错模式。
python mock_server.py --selftest ALL PASSpython test_client.py ALL PASS{status:"success", data:[...], latency_ms} 骨架——N5 A.2 归一化按此取数只改 mock_server.py 里 COURSES/JOBS 的取数逻辑(本地列表 → HTTP 请求合规公开 API),工具签名与返回结构不变——插件层、N5 工作流层零改动。「Server 端替换、插件层不动」的解耦设计,答辩讲这个。
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.0 | 17 Sept 2026 | 2 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 16:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c95a12ff73641debc80a823af78b05e05b70c3d3df7b38aae1ddc15037f64267