Skip to main content

MCP tools for Changda Job Finder

Project description

chujobfinder-mcp

长大职通车 MCP 服务包,面向求职训练 Agent 暴露 4 个工具:

  • mock_job_search
  • mock_resume_loader
  • profile_manager
  • fluency_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

  • get
  • update
  • append_event
  • clear

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_searchmock_resume_loaderprofile_managerfluency_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_idoss_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chujobfinder_mcp-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chujobfinder_mcp-0.1.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

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

Hashes for chujobfinder_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 14d2a2511f01b991deb278ef424b52ec905f2e1b9dfe67d7ef860e7c2ebe50c4
MD5 2c4d4de7a660fa1333cfbdd0d1a8f9ce
BLAKE2b-256 e817f7f1d620d6afa6ab765c7f906183b5d2197d6adafba10193b5d311818f2b

See more details on using hashes here.

File details

Details for the file chujobfinder_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for chujobfinder_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b39c8b1b86ebe08c17315d4818d31a68c73285c2953735a8c8cd23f74b4b799
MD5 3ef9c8645d13ffa7584512077a28464b
BLAKE2b-256 2b95703d21e40f76592da00ff7f31235962a76b9aab0b3c84f6db1a77a145ef5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page