Skip to main content
Glama
JoJoLaBagarre

france-travail-mcp

Rechercher des offres d'emploi

ft_search_offres
Read-onlyIdempotent

Search and filter France Travail job offers by keywords, location, contract type, experience, and more. Returns paginated results with total count.

Instructions

Recherche multicritères dans les offres d'emploi France Travail (temps réel). Renvoie une liste paginée de résumés d'offres + le total de résultats correspondants.

Paramètres principaux :

  • motsCles : mots-clés (ex. 'boulanger', 'développeur web'). Caractères autorisés : lettres, chiffres, espace, @#$%^&+./-.

  • codeROME : 1 à 3 codes ROME (5 caractères, ex. ['D1102']). Utilisez ft_predict_rome ou ft_search_metiers pour les trouver.

  • commune / departement / region : codes INSEE (commune = 5 chiffres). Récupérables via ft_list_referentiel. ⚠ Paris, Lyon et Marseille s'indiquent par ARRONDISSEMENT (ex. Lyon 1er = 69381, Paris 1er = 75101, Marseille 1er = 13201) : les codes « globaux » 69123 / 75056 / 13055 sont rejetés (400).

  • distance : rayon en km autour de la commune (défaut 10 ; 0 = uniquement la commune).

  • typeContrat : codes (ex. ['CDI','CDD','MIS']) — voir ft_list_referentiel typesContrats.

  • experience : '1' (<1 an), '2' (1-3 ans), '3' (>3 ans).

  • qualification : '0' (non cadre), '9' (cadre).

  • tempsPlein : true/false.

  • salaireMin + periodeSalaire (M=mensuel, A=annuel, H=horaire, C=autre) : obligatoires ENSEMBLE.

  • publieeDepuis : 1, 3, 7, 14 ou 31 jours.

  • sort : '0' pertinence (défaut), '1' date, '2' distance.

  • offset (défaut 0) / limit (défaut 15, max 150) : pagination. Profondeur max ≈ 1150 résultats ; au-delà, affinez.

Exemples : « offres de boulanger en CDI à Lyon » → motsCles='boulanger', commune='69381' (Lyon 1er), typeContrat=['CDI']. « développeurs publiés cette semaine » → motsCles='développeur', publieeDepuis='7'.

Erreurs : 400 = paramètre/format invalide (vérifiez les codes) ; 403 = API non souscrite.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sortNo0: pertinence, 1: date, 2: distance
limitNoNombre d'offres (défaut 15, max 150)
offsetNoIndex de départ (pagination)
regionNoCode région INSEE
communeNoCode commune INSEE (5 chiffres). Paris/Lyon/Marseille : utiliser le code d'ARRONDISSEMENT (ex. 69381), pas le code global 69123/75056/13055.
codeROMENoCodes ROME (ex. ['D1102'])
distanceNoRayon en km (défaut 10, 0 = commune seule)
motsClesNoMots-clés de recherche
experienceNo1:<1an, 2:1-3ans, 3:>3ans
salaireMinNoSalaire minimum (requiert periodeSalaire)
tempsPleinNotrue = temps plein, false = temps partiel
departementNoCode département INSEE
typeContratNoCodes type de contrat (CDI, CDD, MIS…)
natureContratNoCodes nature de contrat
publieeDepuisNoPubliée depuis N jours
qualificationNo0: non cadre, 9: cadre
periodeSalaireNoPériode du salaire (requiert salaireMin)
response_formatNoFormat du texte (défaut markdown)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
totalYes
offresYes
offsetYes
has_moreYes
next_offsetNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors such as real-time search, pagination details, maximum result depth, and error codes (400, 403). It also explains special cases for Paris/Lyon/Marseille commune codes. Annotations already indicate readOnlyHint=true and idempotentHint=true, and the description consistently portrays a safe, read-only operation. While it covers many aspects, it does not mention rate limits or data freshness beyond 'temps réel', which prevents a top score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose sentence, a bulleted parameter list, examples, and error information. However, it is somewhat verbose; some parameter details are repeated (e.g., commune code explanation appears both in the bullet and later). The front-loading of purpose is good, but conciseness could be improved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (18 parameters, zero required, multiple interdependent filters) and the presence of an output schema, the description covers all necessary aspects: what it returns (paginated summaries with total), pagination, error handling, and examples. The description is fully sufficient for an AI agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with descriptions for all 18 parameters. The description adds significant value by grouping parameters, explaining constraints (e.g., allowed characters for motsCles, co-dependency of salaireMin and periodeSalaire), and clarifying edge cases (e.g., arrondissement codes for Lyon). Examples further illustrate parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Recherche multicritères dans les offres d'emploi France Travail (temps réel). Renvoie une liste paginée de résumés d'offres + le total de résultats correspondants.' This verb+resource combination precisely defines the tool's function, and it distinguishes from sibling tools like ft_get_offre (single offer retrieval) and ft_search_metiers (job type search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides excellent guidance on when to use the tool, including examples, pagination limits (max 1150 results), and references to sibling tools for auxiliary lookups (e.g., ft_predict_rome for ROME codes, ft_list_referentiel for geographic codes). However, it does not explicitly state when not to use this tool versus alternatives like ft_get_offre, missing a clear exclusion statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JoJoLaBagarre/france-travail-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server