MCP tools for Changda Job Finder
Project description
chujobfinder-mcp
长大职通车 MCP 服务包,面向求职训练 Agent 暴露 4 个工具:
mock_job_searchmock_resume_loaderprofile_managerfluency_analyzer
本包通过环境变量读取阿里云 OSS 配置,不包含任何真实 AccessKey、Bucket、Endpoint、真实简历或用户隐私数据。JD、CV、Profile 均为 OSS JSON,所有 OSS 读写统一通过 oss_store.py 完成,数据格式清洗统一通过 schemas.py 完成。
Local Development
在项目目录安装:
cd C:\Users\PC\Desktop\chujobfinder\chujobfinder-mcp
python -m pip install -e ".[test]"
运行测试:
python -m pytest -q
启动 MCP stdio 服务:
chujobfinder-mcp
如果脚本目录不在 PATH,也可以用模块导入方式验证:
python -c "from chujobfinder_mcp.server import create_server; print(type(create_server()).__name__)"
Tools
mock_job_search
用于用户需要查找、推荐或匹配模拟岗位 JD 的场景。参数:
{
"keyword": "产品经理",
"city": "西安",
"job_category": "产品",
"page_size": 5
}
mock_resume_loader
用于用户选择示例简历、加载模拟 CV 或按求职方向筛选简历的场景。参数:
{
"resume_id": "cv_001",
"name": "",
"target_role": ""
}
profile_manager
用于读取或保存用户求职进度、目标岗位、面试记录等档案信息。用户档案路径统一为 profiles/{safe_user_id}.json。参数:
{
"action": "get",
"user_id": "demo_user",
"data": {}
}
支持的 action:
getupdateappend_eventclear
fluency_analyzer
用于文本模拟面试回答结束后,分析表达流畅度并给出改进建议。该工具只分析文字,不分析真实语音语速、音量、语调等音频特征。参数:
{
"text": "嗯,然后我当时负责这个项目..."
}
PyPI Packaging
pyproject.toml 使用 hatchling 构建,并声明了 PyPI 包名、README、Python 版本、基础元数据和运行依赖:
[project]
name = "chujobfinder-mcp"
dependencies = [
"mcp>=1.0.0",
"oss2>=2.18.0",
]
console script 必须保持为:
[project.scripts]
chujobfinder-mcp = "chujobfinder_mcp.server:main"
本地打包与上传命令:
python -m pip install -U build twine
python -m build
twine check dist/*
twine upload dist/*
发布新版本时请先更新 pyproject.toml 中的 version,重新构建并通过 twine check 后再上传。PyPI 包中不得包含真实 CV、真实用户档案、AccessKey、Bucket、Endpoint 或任何隐私数据。
Bailian uvx Deployment
发布到 PyPI 后,可在阿里云百炼自定义 MCP 服务中选择 uvx 启动。示例只使用占位符,部署时替换为私有 OSS 和最小权限 RAM 用户配置:
{
"mcpServers": {
"chujobfinder": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"chujobfinder-mcp==0.1.0",
"chujobfinder-mcp"
],
"env": {
"CHU_OSS_ENDPOINT": "https://oss-cn-xxx.aliyuncs.com",
"CHU_OSS_BUCKET": "your-private-bucket",
"CHU_OSS_ACCESS_KEY_ID": "your-ram-access-key-id",
"CHU_OSS_ACCESS_KEY_SECRET": "your-ram-access-key-secret",
"CHU_OSS_JOBS_KEY": "data/mock_jobs.json",
"CHU_OSS_RESUMES_KEY": "data/mock_resumes.json",
"CHU_OSS_PROFILE_PREFIX": "profiles/"
}
}
}
}
百炼中确认服务启动后,应能看到 4 个工具:mock_job_search、mock_resume_loader、profile_manager、fluency_analyzer。
Environment Variables
必填:
CHU_OSS_ENDPOINT
CHU_OSS_BUCKET
CHU_OSS_ACCESS_KEY_ID
CHU_OSS_ACCESS_KEY_SECRET
JD、CV 和用户档案路径配置:
CHU_OSS_JOBS_KEY=data/mock_jobs.json
CHU_OSS_RESUMES_KEY=data/mock_resumes.json
CHU_OSS_PROFILE_PREFIX=profiles/
可选运行参数:
CHU_DEFAULT_PAGE_SIZE=5
CHU_MAX_PAGE_SIZE=20
CHU_DEBUG=false
safe_user_id 由 oss_store.safe_user_id 生成,仅保留中文、英文、数字、下划线和中划线;其它字符替换为 _,空值替换为 demo_user,最大长度 80。
Security Requirements
- 使用 RAM 最小权限用户访问 OSS。
- 不使用阿里云主账号 AccessKey。
- 不提交真实 AccessKey、Bucket、Endpoint 或配置截图。
- 不把真实 CV、真实用户档案或用户隐私打包进 PyPI 包。
- OSS Bucket 保持私有,JD/CV/Profile 均以 JSON 存储在 OSS。
CHU_OSS_PROFILE_PREFIX推荐保持为profiles/,用户档案统一写入profiles/{safe_user_id}.json。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chujobfinder_mcp-0.1.0.tar.gz.
File metadata
- Download URL: chujobfinder_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14d2a2511f01b991deb278ef424b52ec905f2e1b9dfe67d7ef860e7c2ebe50c4
|
|
| MD5 |
2c4d4de7a660fa1333cfbdd0d1a8f9ce
|
|
| BLAKE2b-256 |
e817f7f1d620d6afa6ab765c7f906183b5d2197d6adafba10193b5d311818f2b
|
File details
Details for the file chujobfinder_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chujobfinder_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b39c8b1b86ebe08c17315d4818d31a68c73285c2953735a8c8cd23f74b4b799
|
|
| MD5 |
3ef9c8645d13ffa7584512077a28464b
|
|
| BLAKE2b-256 |
2b95703d21e40f76592da00ff7f31235962a76b9aab0b3c84f6db1a77a145ef5
|