france-travail-mcp について
france-travail-mcpは、AIアシスタントをFrance Travailの公式APIに接続し、フランスの求人や職業分類データを提供します。求人検索、ROMEの参照とコード予測に加え、利用が許可され有効化された場合は採用可能性の高い企業も検索できます。
主な機能
- 01求人の検索と詳細取得
- 02ROME職業情報と説明の参照
- 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:市全体のコード 69123/75056/13055 ではなく、ARRONDISSEMENT(区)のコード(例:69381)を使用してください。 |
| 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(求人情報、職業分類 ROME 4.0、ROMEO による予測、採用企業検索 La Bonne Boîte)向けの MCP(Model Context Protocol)サーバーです。
あらゆる AI アシスタント(Claude、Cursor、VS Code…)を France Travail の公式 API に接続する MCP サーバーです。リアルタイムの求人情報、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 — 1 行(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、完全ローカルの 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 を利用登録すると、コードを変更せずに自動で有効になります。
🧪 例 — エージェントがツールを自動で連続実行します
「パティシエをしていて、リヨン周辺で無期雇用契約の仕事を探しています。」
ft_predict_rome("pâtissier")→ ROME コードD1104ft_search_offres(codeROME=["D1104"], commune="69381", typeContrat=["CDI"])- 自発的な応募のために
ft_search_entreprises(...)を実行します。
⚠️ パリ、リヨン、マルセイユは区単位で指定します(リヨン第 1 区 =
69381、パリ第 1 区 =75101、マルセイユ第 1 区 =13201)。「全域」を示すコード69123/75056/13055は API に拒否されます(エラー 400)。ft_list_referentielで正しいコードを取得してください。
🔐 ツールと OAuth スコープの対応
各 API には独自の スコープ があります。サーバーはスコープごとにトークンを 1 つ要求します(約 25 分間キャッシュ)。ツールのグループを有効にするには、アプリケーションで対応する API を利用登録する必要があります。
| 利用登録する API | OAuth スコープ | 有効になるツール |
|---|---|---|
| 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 バンドルを生成(Claude Desktop) |
スタック:TypeScript · @modelcontextprotocol/sdk · zod · axios。トランスポートは stdio です。
アーキテクチャ:src/services(OAuth2 認証 + HTTP クライアント + エラー)、src/schemas、src/tools(ドメインごとに 1 ファイル)。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 トークン)。MCP レジストリへの認証には OIDC を使用するため、追加のシークレットは不要です。
🔒 セキュリティ
.envはコミットされません(.gitignoreを参照)。- 認証情報は、MCP クライアントの環境変数(または
.mcpbバンドルの安全なフォーム)を通じてサーバーに渡されます。 client_secretは決して共有しないでください。漏えいした場合は、francetravail.io で再生成してください。
🗺️ ロードマップ
- La Bonne Alternance(交互就業の求人+研修)
- 労働市場(統計、地域別の採用難易度)
-
ft_search_entreprises(La Bonne Boîte)の検証/最終調整 - npm での公開+MCP レジストリ+
.mcpbバンドル
🤝 コントリビューション
コントリビューションを歓迎します。イシューまたはプルリクエストを作成してください。CONTRIBUTING.md を参照してください。
📄 ライセンスと免責事項
MIT ライセンスの下で提供されます(LICENSE を参照)。
非公式プロジェクトであり、France Travail とは提携していません。France Travail の公開 API を利用しており、その使用には francetravail.io の利用規約が適用されます。「France Travail」、「ROME」、「La Bonne Boîte」は France Travail の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。