Install
$ agentstack add mcp-jojolabagarre-france-travail-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.1 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ● Dynamic code execution Used
From automated source analysis of v0.1.1. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
🇫🇷 France Travail MCP
[](https://www.npmjs.com/package/france-travail-mcp) [](https://github.com/jojolabagarre/france-travail-mcp/actions/workflows/ci.yml) [](LICENSE) [](https://nodejs.org)
> Serveur MCP (Model Context Protocol) pour les API officielles de France Travail : offres d'emploi, référentiel des métiers ROME 4.0, prédiction ROMEO, et entreprises qui recrutent (La Bonne Boîte). > > An MCP server connecting any AI assistant (Claude, Cursor, VS Code…) to the official France Travail APIs: real-time job offers, the ROME occupational taxonomy, ROME-code prediction, and hiring-company search.
Branchez votre assistant IA sur le marché de l'emploi français : il cherche des offres en temps réel, traduit un métier en code ROME, et cible les entreprises qui recrutent — directement dans la conversation.
C'est, à notre connaissance, le premier serveur MCP basé sur les API REST officielles de France Travail (les autres « MCP France Travail » sont des scrapers du site web, fragiles et non officiels).
⚡ Installation en 30 secondes
> Dans tous les cas, il vous faut des identifiants France Travail (gratuits) — voir [Obtenir vos identifiants](#-obtenir-vos-identifiants).
🖱️ Option A — La plus simple, sans terminal (Claude Desktop)
- Téléchargez le fichier
france-travail-mcp.mcpbdepuis la page Releases. - Double-cliquez dessus : Claude Desktop l'installe et vous demande votre
Client ID/Client Secretdans un formulaire (le secret est stocké dans le trousseau de votre système). - C'est prêt — aucune édition de fichier JSON.
⌨️ Option B — Une ligne (Claude Code)
claude mcp add france-travail \
-e FT_CLIENT_ID=PAR_xxxxx \
-e FT_CLIENT_SECRET=votre_secret \
-- npx -y france-travail-mcp
🧩 Option C — Copier-coller (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"
}
}
}
}
📖 Guide complet par client (Cursor, VS Code/Cline, et Ollama 100 % local) → [INSTALL.md](INSTALL.md).
🔑 Obtenir vos identifiants
- Créez un compte sur francetravail.io.
- Créez une application dans votre espace.
- Souscrivez aux API souhaitées (au minimum Offres d'emploi v2 ; puis ROME 4.0 – Métiers, ROME 4.0 – Fiches métiers, ROMEO 2, La Bonne Boîte v2 selon les outils voulus).
- Récupérez le Client ID (
PAR_…) et le Client Secret.
Prérequis : Node.js ≥ 18 (sauf l'option A, qui est autoportée).
🧰 Outils exposés
| Outil | Description | API France Travail | Statut | |-------|-------------|--------------------|--------| | ft_search_offres | Recherche multicritères d'offres (mots-clés, ROME, géo, contrat, salaire…) | Offres d'emploi v2 | ✅ testé en live | | ft_get_offre | Détail complet d'une offre | Offres d'emploi v2 | ✅ testé en live | | ft_list_referentiel | Référentiels (communes, types de contrats…) codes ↔ libellés | Offres d'emploi v2 | ✅ testé en live | | ft_search_metiers | Trouver un métier ROME et son code par texte | ROME 4.0 – Métiers | ✅ testé en live | | ft_get_metier | Fiche d'un métier ROME (définition, accès) | ROME 4.0 – Métiers | ✅ testé en live | | ft_get_fiche_metier | Compétences & savoirs d'un métier | ROME 4.0 – Fiches métiers | ✅ testé en live | | ft_predict_rome | Deviner le code ROME d'un intitulé libre (IA) | ROMEO 2 | ✅ testé en live | | ft_search_entreprises | Entreprises à fort potentiel d'embauche | La Bonne Boîte v2 | ⚠️ désactivé par défaut |
> La Bonne Boîte est une API à accès conditionné : la simple souscription ne suffit pas, France Travail exige une habilitation validée manuellement (sans elle, l'API renvoie 403 Invalid scope). L'outil ft_search_entreprises est donc désactivé par défaut ; une fois l'accès accordé, activez-le avec la variable d'environnement FT_ENABLE_LABONNEBOITE=true (son endpoint exact reste à confirmer). > > Les autres outils s'activent automatiquement dès que l'API correspondante est souscrite, sans changement de code.
🧪 Exemple — l'agent enchaîne les outils tout seul
> « Je suis pâtissier et je cherche un CDI vers Lyon. » > 1. ft_predict_rome("pâtissier") → code ROME D1104 > 2. ft_search_offres(codeROME=["D1104"], commune="69381", typeContrat=["CDI"]) > 3. ft_search_entreprises(...) pour les candidatures spontanées.
> ⚠️ Paris, Lyon et Marseille s'indiquent par arrondissement (Lyon 1er = 69381, Paris 1er = 75101, Marseille 1er = 13201) : les codes « globaux » 69123 / 75056 / 13055 sont refusés par l'API (erreur 400). Récupérez les bons codes avec ft_list_referentiel.
🔐 Correspondance outils ↔ scopes OAuth
Chaque API a son propre scope. Le serveur demande un token par scope (mis en cache ~25 min). Pour activer un groupe d'outils, votre application doit avoir souscrit à l'API correspondante :
| API à souscrire | Scope OAuth | Active | |-----------------|-------------|--------| | 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 |
🛠️ Développement
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
| Commande | Rôle | |---|---| | npm run build | Compile TypeScript → dist/ | | npm test | Vérifie les types (tsc --noEmit) | | npm run smoke | Test de bout en bout contre l'API réelle | | npm start | Démarre le serveur (transport stdio) | | npm run bundle | Génère le bundle .mcpb (Claude Desktop) |
Stack : TypeScript · @modelcontextprotocol/sdk · zod · axios. Transport stdio. Architecture : src/services (auth OAuth2 + client HTTP + erreurs), src/schemas, src/tools (un fichier par domaine). Voir [CONTRIBUTING.md](CONTRIBUTING.md).
📦 Publication (mainteneur)
La publication est automatique sur un tag de version (npm puis registre MCP officiel) :
npm version patch # met à jour la version, crée le commit + le tag
git push --follow-tags # déclenche le workflow de publication
Voir [.github/workflows/publish-mcp.yml](.github/workflows/publish-mcp.yml). Secret requis dans le dépôt : NPM_TOKEN (jeton npm). L'authentification au registre MCP se fait par OIDC (aucun secret supplémentaire).
🔒 Sécurité
- Le fichier
.envn'est jamais committé (voir.gitignore). - Les identifiants sont fournis au serveur via les variables d'environnement du client MCP (ou le formulaire sécurisé du bundle
.mcpb). - Ne partagez jamais votre
client_secret. En cas de fuite, régénérez-le sur francetravail.io.
🗺️ Feuille de route
- [ ] La Bonne Alternance (offres + formations en alternance)
- [ ] Marché du travail (statistiques, tensions de recrutement par bassin)
- [ ] Validation/finalisation de
ft_search_entreprises(La Bonne Boîte) - [x] Publication npm + registre MCP + bundle
.mcpb
🤝 Contribuer
Les contributions sont bienvenues : ouvrez une issue ou une pull request. Voir [CONTRIBUTING.md](CONTRIBUTING.md).
📄 Licence & avertissement
Sous licence MIT (voir [LICENSE](LICENSE)).
Projet non officiel, non affilié à France Travail. Il consomme les API publiques de France Travail ; leur usage est soumis aux conditions d'utilisation de francetravail.io. « France Travail », « ROME » et « La Bonne Boîte » sont des marques de France Travail.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JoJoLaBagarre
- Source: JoJoLaBagarre/france-travail-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.1 Imported from the upstream source.