关于 france-travail-mcp
france-travail-mcp 将 AI 助手连接到 France Travail 官方 API,提供法国职位和职业分类数据。它支持职位搜索、ROME 查询与代码预测;获准并启用后还可搜索有招聘潜力的企业。
主要功能
- 01搜索并获取职位详情
- 02查询 ROME 职业及说明
- 03根据职位名称预测 ROME 代码
- 04查询职业与合同类型参考数据
- 05搜索有招聘潜力的企业
适用场景
- 01查找特定合同类型和地区的职位
- 02将职位名称映射为 ROME 代码
- 03查看职业技能和说明
- 04寻找可主动联系的招聘企业
MCP 相关
通过 stdio 将 France Travail API 功能作为 MCP 工具提供。可用工具组取决于 OAuth 凭据和已订阅的 API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y france-travail-mcpFT_CLIENT_IDIdentifiant client OAuth2 d'une application créée sur https://francetravail.ioFT_CLIENT_SECRET密钥Secret client OAuth2 associé à l'application France TravailFT_ENABLE_LABONNEBOITEMettre 'true' pour activer l'outil expérimental La Bonne Boîte (habilitation FT requise).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
7收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | enum | 否 | 0:相关性,1:日期,2:距离0 | 1 | 2 |
| limit | integer | 否 | 职位数量(默认 15,最大 150) |
| offset | integer | 否 | 起始索引(分页) |
| region | string | 否 | INSEE 大区代码 |
| commune | string | 否 | INSEE commune 代码(5 位数字)。Paris/Lyon/Marseille:请使用 ARRONDISSEMENT(区)代码(例如 69381),而非全市代码 69123/75056/13055。 |
| codeROME | array | 否 | ROME 代码(例如 ['D1102']) |
| distance | integer | 否 | 半径,单位为 km(默认 10,0 = 仅限该 commune) |
| motsCles | string | 否 | 搜索关键词 |
| experience | enum | 否 | 1:<1 年,2:1-3 年,3:>3 年1 | 2 | 3 |
| salaireMin | number | 否 | 最低薪资(需要 periodeSalaire) |
| tempsPlein | boolean | 否 | true = 全职,false = 兼职 |
| departement | string | 否 | INSEE 省代码 |
| typeContrat | array | 否 | 合同类型代码(CDI、CDD、MIS…) |
| natureContrat | array | 否 | 合同性质代码 |
| publieeDepuis | enum | 否 | 发布于 N 天前1 | 3 | 7 | 14 | 31 |
| qualification | enum | 否 | 0:非管理岗,9:管理岗0 | 9 |
| periodeSalaire | enum | 否 | 薪资周期(需要 salaireMin)M | A | H | C |
| response_format | enum | 否 | 文本格式(默认 markdown)markdown | json |
详细介绍
🇫🇷 France Travail MCP
面向 France Travail 官方 API 的 MCP(Model Context Protocol)服务:职位信息、ROME 4.0 职业分类、ROMEO 预测,以及正在招聘的企业(La Bonne Boîte)。
一款 MCP 服务,可将任意 AI 助手(Claude、Cursor、VS Code…)连接到 France Travail 官方 API:实时职位信息、ROME 职业分类、ROME 代码预测,以及招聘企业搜索。
将您的 AI 助手接入法国就业市场:它可以实时搜索职位信息、将职业转换为 ROME 代码,并定位正在招聘的企业——直接在对话中完成。
据我们所知,这是首个基于 France Travail 官方 REST API 的 MCP 服务(其他“France Travail MCP”都是网站的爬虫,脆弱且非官方)。
⚡ 30 秒安装
无论使用哪种方式,您都需要 France Travail 凭据(免费)——请参阅获取凭据。
🖱️ 选项 A — 最简单,无需终端(Claude Desktop)
- 从 Releases 页面下载
france-travail-mcp.mcpb文件。 - 双击该文件:Claude Desktop 会安装它,并通过表单向您索取
Client ID/Client Secret(密钥会存储在您系统的钥匙串中)。 - 完成——无需编辑 JSON 文件。
⌨️ 选项 B — 一行命令(Claude Code)
claude mcp add france-travail \
-e FT_CLIENT_ID=PAR_xxxxx \
-e FT_CLIENT_SECRET=votre_secret \
-- npx -y france-travail-mcp
🧩 选项 C — 复制粘贴(Claude Desktop、Cursor、VS Code…)
{
"mcpServers": {
"france-travail": {
"command": "npx",
"args": ["-y", "france-travail-mcp"],
"env": {
"FT_CLIENT_ID": "PAR_xxxxx_xxxxxxxxxxxxxxxxxxxx",
"FT_CLIENT_SECRET": "votre_secret"
}
}
}
}
📖 按客户端查看完整指南(Cursor、VS Code/Cline,以及 100% 本地运行的 Ollama)→ INSTALL.md。
🔑 获取凭据
- 在 francetravail.io 上创建账户。
- 在您的空间中创建一个应用。
- 订阅所需的 API(至少订阅 Offres d'emploi v2;然后根据需要使用的工具,订阅 ROME 4.0 – Métiers、ROME 4.0 – Fiches métiers、ROMEO 2、La Bonne Boîte v2)。
- 获取 Client ID(
PAR_…)和 Client Secret。
前提条件:Node.js ≥ 18(选项 A 除外,它是独立运行的)。
🧰 提供的工具
| 工具 | 描述 | France Travail API | 状态 |
|---|---|---|---|
ft_search_offres | 多条件搜索职位(关键词、ROME、地理位置、合同类型、薪资……) | Offres d'emploi v2 | ✅ 已进行实时测试 |
ft_get_offre | 职位的完整详情 | Offres d'emploi v2 | ✅ 已进行实时测试 |
ft_list_referentiel | 参考数据(市镇、合同类型……)代码 ↔ 标签 | Offres d'emploi v2 | ✅ 已进行实时测试 |
ft_search_metiers | 按文本查找职业及其 ROME 代码 | ROME 4.0 – Métiers | ✅ 已进行实时测试 |
ft_get_metier | ROME 职业介绍(定义、入行途径) | ROME 4.0 – Métiers | ✅ 已进行实时测试 |
ft_get_fiche_metier | 职业的技能与知识 | ROME 4.0 – Fiches métiers | ✅ 已进行实时测试 |
ft_predict_rome | 猜测自由填写的职位名称对应的 ROME 代码(AI) | ROMEO 2 | ✅ 已进行实时测试 |
ft_search_entreprises | 招聘潜力较大的企业 | La Bonne Boîte v2 | ⚠️ 默认禁用 |
La Bonne Boîte 是一个有条件访问的 API:仅订阅并不足够,France Travail 要求手动审核并批准授权(若未获授权,API 会返回
403 Invalid scope)。因此,工具ft_search_entreprises默认禁用;获准访问后,可通过环境变量FT_ENABLE_LABONNEBOITE=true启用该工具(其确切端点仍有待确认)。订阅相应 API 后,其他工具会自动启用,无需更改代码。
🧪 示例 — Agent 自动串联工具
「我是一名糕点师,正在里昂附近找一份 CDI。」
ft_predict_rome("pâtissier")→ ROME 代码D1104ft_search_offres(codeROME=["D1104"], commune="69381", typeContrat=["CDI"])ft_search_entreprises(...)用于主动投递简历。
⚠️ 巴黎、里昂和马赛必须使用区号(里昂第 1 区 =
69381,巴黎第 1 区 =75101,马赛第 1 区 =13201):API 不接受「全市」代码69123/75056/13055(错误 400)。请使用ft_list_referentiel获取正确代码。
🔐 工具 ↔ OAuth scope 对应关系
每个 API 都有自己的 scope。服务会针对每个 scope 请求一个 token(缓存约 25 分钟)。若要启用一组工具,你的应用必须订阅相应的 API:
| 要订阅的 API | OAuth scope | 启用的工具 |
|---|---|---|
| Offres d'emploi v2 | api_offresdemploiv2 o2dsoffre | ft_search_offres、ft_get_offre、ft_list_referentiel |
| ROME 4.0 – Métiers | api_rome-metiersv1 nomenclatureRome | ft_search_metiers、ft_get_metier |
| ROME 4.0 – Fiches métiers | api_rome-fiches-metiersv1 nomenclatureRome | ft_get_fiche_metier |
| ROMEO 2 | api_romeov2 | ft_predict_rome |
| La Bonne Boîte v2 | api_labonneboitev2 | ft_search_entreprises |
🛠️ 开发
git clone https://github.com/jojolabagarre/france-travail-mcp.git
cd france-travail-mcp
npm install # installe les dépendances ET compile (script "prepare")
cp .env.example .env # renseignez FT_CLIENT_ID / FT_CLIENT_SECRET
npm run smoke # test de bout en bout contre l'API réelle
| 命令 | 用途 |
|---|---|
npm run build | 编译 TypeScript → dist/ |
npm test | 检查类型(tsc --noEmit) |
npm run smoke | 对真实 API 进行端到端测试 |
npm start | 启动服务(stdio 传输) |
npm run bundle | 生成 .mcpb bundle(Claude Desktop) |
技术栈:TypeScript · @modelcontextprotocol/sdk · zod · axios。传输方式:stdio。
架构:src/services(OAuth2 身份验证 + HTTP 客户端 + 错误处理)、src/schemas、src/tools(每个领域对应一个文件)。请参阅 CONTRIBUTING.md。
📦 发布(维护者)
发布会在版本标签上自动执行(先发布到 npm,然后发布到 MCP 官方注册表):
npm version patch # met à jour la version, crée le commit + le tag
git push --follow-tags # déclenche le workflow de publication
请参阅 .github/workflows/publish-mcp.yml。仓库中需要配置的密钥:NPM_TOKEN(npm 令牌)。通过 OIDC 向 MCP 注册表进行身份验证(无需其他密钥)。
🔒 安全
.env文件绝不会提交(参见.gitignore)。- 凭据通过 MCP 客户端的环境变量(或
.mcpb捆绑包的安全表单)提供给服务。 - 切勿分享您的
client_secret。如果泄露,请在 francetravail.io 上重新生成。
🗺️ 路线图
- La Bonne Alternance(交替制工作机会 + 培训)
- 劳动力市场(统计数据、各就业区域的招聘压力)
- 验证/最终确定
ft_search_entreprises(La Bonne Boîte) - 发布至 npm + MCP 注册表 +
.mcpb捆绑包
🤝 贡献
欢迎贡献:请提交 issue 或 pull request。参见 CONTRIBUTING.md。
📄 许可证与免责声明
采用 MIT 许可证(参见 LICENSE)。
本项目非官方,与 France Travail 无关联。本项目使用 France Travail 的公共 API;使用须遵守 francetravail.io 的使用条款。“France Travail”、“ROME”和“La Bonne Boîte”均为 France Travail 的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。