MCP-iQuesta
Server Details
Recherche d'offres de stage et d'alternance en France via le réseau iQuesta.com
- Status
- Healthy
- Uptime
- 99.6% over 75 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- iQuesta/MCP-iQuesta
- GitHub Stars
- 0
- Server Listing
- iQuesta MCP Server
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: list_filters resolves filter IDs, search_jobs performs the search, and get_job retrieves full details for a specific offer. The descriptions explicitly explain when to use list_filters before search_jobs, preventing misselection.
All three tools follow the same consistent verb_noun snake_case pattern: get_job, list_filters, search_jobs. There are no mixed conventions or vague standalone verbs.
Three tools are well-scoped for a job-search MCP: one for lookup of filter values, one for searching, and one for fetching job details. Each tool earns its place without redundancy.
The surface covers the core job-search workflow: resolving filters, searching offers, and retrieving detailed job information. Minor gaps exist, such as no explicit pagination or company/category browsing tools, but agents can likely work around these through search parameters.
Available Tools
3 toolsget_jobAInspect
Récupère le détail complet d'une offre par son ID
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Identifiant de l'offre dans iQuesta |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states it retrieves 'full details', but does not specify what those details include, nor any rate limits, authentication needs, or side effects. For a simple read operation, minimal but acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the essential action. No unnecessary words; every part contributes to understanding. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at the return structure. It says 'détail complet' but lacks specifics. For a simple retrieval tool, it is adequate but not rich. Could mention that it returns all fields of the job.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for job_id. The description adds no additional meaning beyond what the schema provides ('par son ID' is already implicit). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Récupère le détail complet d'une offre par son ID' clearly states the verb (récupère), resource (offre), and method (par son ID). It effectively distinguishes from sibling tools list_filters and search_jobs, which imply different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a single job by ID, but does not explicitly state when to use this tool over siblings (e.g., 'Use search_jobs for filtering, list_filters for filter options'). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filtersAInspect
Liste les valeurs possibles pour les filtres de recherche (disciplines, régions, types de contrat). À appeler avant search_jobs si l'utilisateur mentionne un secteur ou une région, pour convertir le nom en ID correct.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | Quel filtre lister. 'all' retourne les quatre. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the action (listing values) but does not disclose details like return format or side effects. For a read-only listing tool, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every part is relevant and essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and no output schema, the description is fairly complete. It covers the action, usage context, and parameter purpose, leaving little ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with enums and descriptions. The description adds value by explaining the purpose of the tool (converting names to IDs), which enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists possible values for search filters, naming specific filter types (disciplines, regions, contract types). It distinguishes itself from siblings by indicating it should be called before search_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: before search_jobs when a user mentions a sector or region, to convert the name to an ID. It provides clear context but does not mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsAInspect
Recherche des offres de stage, alternance, emploi ou job étudiant sur iQuesta.com. Avant de lancer la recherche, demander à l'utilisateur quel type de contrat il recherche (stage, alternance, emploi, job étudiant) si ce n'est pas précisé dans sa demande. Pour filtrer par région, discipline ou type de contrat, appeler d'abord list_filters pour obtenir les IDs valides — ne jamais deviner un ID.
| Name | Required | Description | Default |
|---|---|---|---|
| term | No | Mots-clés recherchés dans le titre de l'annonce (ex: 'développeur web', 'assistant marketing', 'ressources humaines') | |
| begin | No | Mois de début souhaité de la mission, de 1 (Janvier) à 12 (Décembre). Omettre si aucune contrainte de date. | |
| limit | No | Nombre maximum de résultats à retourner (défaut: 15, max recommandé: 20) | |
| regions | No | ID de région française, obtenu via list_filters(filter='regions'). Exemple : 10 pour Ile de France, 6 pour Bretagne. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner. | |
| duration | No | Durée maximale de la mission en mois (ex: 3, 6, 12, 24). Omettre si aucune contrainte de durée. | |
| matieres | No | Liste d'IDs de matières, obtenus via list_filters(filter='matieres'). Plus précis que 'disciplines' (ex: 'Développement web' plutôt que 'Informatique'). Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner. | |
| contracts | No | ID du type de contrat. Valeurs : '1' (Stage), '2' (Alternance), '-4' (Emploi), '-5' (Job étudiant). Toujours demander ce critère à l'utilisateur s'il ne l'a pas précisé — ne jamais omettre ce filtre. | |
| description | No | Mots-clés recherchés dans le texte/descriptif complet de l'annonce (missions, compétences requises, etc.). À utiliser pour cibler des compétences ou détails précis absents du titre. | |
| disciplines | No | ID de discipline, obtenu via list_filters(filter='disciplines'). Exemple : 27 pour Informatique - Développement, 3 pour Commerce / Distribution / Vente. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses a mandatory workflow (ask user for contract type, call list_filters before filtering, never guess IDs), but says nothing about what a result set looks like, pagination/limit interaction beyond the schema, or read-only semantics. Some procedural value, meaningful gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose before the two operational rules. No filler and no repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter, all-optional search tool with no annotations and no output schema, the description supplies the workflow needed to call it safely (contract type confirmation, ID lookup via list_filters). Minor gap: no hint about result shape or how limit interacts with pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters. The description adds only a marginal procedural note that contracts must be obtained from the user and never omitted, which is genuine but thin. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb + resource ('Recherche des offres...') and enumerates the contract types it covers, plus the target site iQuesta.com. An agent can distinguish it from get_job (single retrieval) and list_filters (ID lookup) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use behavior ('demander à l'utilisateur quel type de contrat... si ce n'est pas précisé') and explicit routing to the sibling ('appeler d'abord list_filters... ne jamais deviner un ID'). Both prerequisites and the failure mode to avoid are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
search_jobs1 field changed- changed
Input schema / properties / disciplines / descriptionPrevious value: -"ID de discipline, obtenu via list_filters(filter='disciplines'). Exemple : 9 pour Informatique, 5 pour Economie/Gestion/Commerce. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner."New value: +"ID de discipline, obtenu via list_filters(filter='disciplines'). Exemple : 27 pour Informatique - Développement, 3 pour Commerce / Distribution / Vente. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner."
1 tool update
- Changed
search_jobs1 field changed- changed
Input schema / properties / contracts / descriptionPrevious value: -"ID du type de contrat, obtenu via list_filters(filter='contracts'). Valeurs possibles : '1' (Stage), '2' (Contrat en alternance), '-4' (Emploi), '-5' (Job étudiant). Omettre pour rechercher tous types confondus."New value: +"ID du type de contrat. Valeurs : '1' (Stage), '2' (Alternance), '-4' (Emploi), '-5' (Job étudiant). Toujours demander ce critère à l'utilisateur s'il ne l'a pas précisé — ne jamais omettre ce filtre."
1 tool update
- Changed
search_jobs2 fields changed- changed
Input schema / properties / limit / defaultPrevious value: -10New value: +15 - changed
Input schema / properties / limit / descriptionPrevious value: -"Nombre maximum de résultats à retourner (défaut: 10, max recommandé: 20)"New value: +"Nombre maximum de résultats à retourner (défaut: 15, max recommandé: 20)"
2 tool updates
- Changed
list_filters2 fields changed- changed
Input schema / properties / filter / descriptionPrevious value: -"Quel filtre lister. 'all' retourne les trois."New value: +"Quel filtre lister. 'all' retourne les quatre." - changed
Input schema / properties / filter / enumPrevious value: -[ - "disciplines", - "regions", - "contracts", - "all" -]New value: +[ + "disciplines", + "matieres", + "regions", + "contracts", + "all" +]
- Changed
search_jobs4 fields changed- added
Input schema / properties / descriptionAdded value: +{ + "description": "Mots-clés recherchés dans le texte/descriptif complet de l'annonce (missions, compétences requises, etc.). À utiliser pour cibler des compétences ou détails précis absents du titre.", + "type": "string" +} - added
Input schema / properties / matieresAdded value: +{ + "description": "Liste d'IDs de matières, obtenus via list_filters(filter='matieres'). Plus précis que 'disciplines' (ex: 'Développement web' plutôt que 'Informatique'). Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner.", + "items": { + "type": "integer" + }, + "type": "array" +} - changed
Input schema / properties / term / descriptionPrevious value: -"Mots-clés de recherche (ex: 'développeur web', 'assistant marketing', 'ressources humaines')"New value: +"Mots-clés recherchés dans le titre de l'annonce (ex: 'développeur web', 'assistant marketing', 'ressources humaines')" - changed
Input schema / requiredPrevious value: -[ - "term" -]New value: +[]
1 tool update
- Removed
get_similar_jobs
1 tool update
- Changed
search_jobs7 fields changed- changed
Input schema / properties / begin / descriptionPrevious value: -"Date de début dans iQuesta (Mois) (ex: 1 pour Janvier, etc.)"New value: +"Mois de début souhaité de la mission, de 1 (Janvier) à 12 (Décembre). Omettre si aucune contrainte de date." - changed
Input schema / properties / contracts / descriptionPrevious value: -"Type de contrat : 1 pour stage, 2 pour alternance, -5 Job étudiant, -4 Emploi"New value: +"ID du type de contrat, obtenu via list_filters(filter='contracts'). Valeurs possibles : '1' (Stage), '2' (Contrat en alternance), '-4' (Emploi), '-5' (Job étudiant). Omettre pour rechercher tous types confondus." - changed
Input schema / properties / disciplines / descriptionPrevious value: -"Domaine dans iQuesta (ex: 61 pour Accueil/Hôte(sse), etc.)"New value: +"ID de discipline, obtenu via list_filters(filter='disciplines'). Exemple : 9 pour Informatique, 5 pour Economie/Gestion/Commerce. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner." - changed
Input schema / properties / duration / descriptionPrevious value: -"Durée maximale en mois dans iQuesta(ex: 3 pour 3 mois)"New value: +"Durée maximale de la mission en mois (ex: 3, 6, 12, 24). Omettre si aucune contrainte de durée." - added
Input schema / properties / limitAdded value: +{ + "default": 10, + "description": "Nombre maximum de résultats à retourner (défaut: 10, max recommandé: 20)", + "type": "integer" +} - changed
Input schema / properties / regions / descriptionPrevious value: -"Région dans iQuesta (ex: 1 pour Grand Est,etc.)"New value: +"ID de région française, obtenu via list_filters(filter='regions'). Exemple : 10 pour Ile de France, 6 pour Bretagne. Toujours vérifier la liste complète avant de choisir un ID, ne jamais deviner." - changed
Input schema / properties / term / descriptionPrevious value: -"Mots-clés de recherche"New value: +"Mots-clés de recherche (ex: 'développeur web', 'assistant marketing', 'ressources humaines')"
4 tool updates
- First observed
get_job - First observed
get_similar_jobs - First observed
list_filters - First observed
search_jobs
Related MCP Connectors
Orientation en France : métiers, formations, Parcoursup, écoles, aides, offres. Sources officielles.
French IT job search, AI candidate-offer matching, application tracking and cover letters.
Données légales et financières des entreprises françaises : fiches, recherche, dirigeants, BODACC.
Search Actual group job offers in France, find agencies and prepare applications.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to query a corpus of job offers via natural language, using BM25 search, facets, and trend analysis to answer questions about skills, positions, and timelines.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search and retrieve French job profiles, RNCP certifications, training programs, training centers, and skills comparisons in read-only mode without requiring an account.MIT
- FlicenseNot gradedqualityDmaintenanceIntegrates Eurostat quality-of-life metrics and real-time job searching to help users find international internships in high-ranking European cities. It enables ranking cities based on personalized criteria like safety or transport and retrieves structured internship listings via the Tavily API.1-
- AlicenseCqualityDmaintenanceEnables searching for AI/ML internships and entry-level positions across multiple job sites including LinkedIn, Indeed, Glassdoor, ZipRecruiter, and Monster. Automatically filters for Python proficiency and relevant AI/ML skills while providing structured job data with application URLs and detailed requirements.21MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.