Comontel : forfaits mobiles pro
Server Details
Forfaits mobiles pro Comontel (réseau Orange) : prix, comparaison, itinérance, FAQ. Lecture seule.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 15 tools
The descriptions clearly differentiate most tools: get_plans retrieves all plans, get_plan retrieves one, compare_plans compares selected plans, and the search trio is distinguished by output format and filtering intent. Minor ambiguity remains between search and search_comontel_knowledge, but explicit routing guidance mitigates it.
All names use snake_case, and most follow a predictable verb_noun or get_/search_ prefix pattern. The bare fetch is a small deviation, and search_comontel_knowledge is longer than its peers, but the overall convention is readable and consistent.
15 tools is reasonable for an informational and pre-sales mobile-plan assistant, with distinct roles for pricing, eligibility, plan details, roaming, FAQ, guides, and search. It sits at the upper end of comfortable, with several retrieval variants, but no tool appears clearly redundant.
The set covers plan discovery, details, comparison, recommendation, fleet pricing, eligibility, data estimation, roaming, FAQ, and guides, which addresses the core domain well. Gaps are minor and mostly outside the stated informational scope, such as order/account/contact operations or an explicit glossary/coverage tool.
Available Tools
15 toolscalculate_company_priceCalculer le prix d’une flotteARead-onlyIdempotentInspect
Coût mensuel (HT, TVA, TTC), sur 12 et 24 mois HT d’une flotte au prix public, en mélangeant les forfaits si besoin. À utiliser pour « combien pour 5 lignes ? » ou « combien pour 3 Pro et 2 Business ? ». Paramètres : nombre de lignes par forfait (0 à 20 chacun, 20 lignes au total au plus par entreprise). Frais uniques de carte SIM ou d’eSIM donnés à part (une seule fois, livraison une fois par commande). Indique aussi si la souscription en ligne est ouverte. Source : https://comontel.fr/simulateur.
| Name | Required | Description | Default |
|---|---|---|---|
| pro | No | Nombre de lignes Pro | |
| business | No | Nombre de lignes Business | |
| essentiel | No | Nombre de lignes Essentiel |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, closed-world computation, so safety is covered. The description adds real business context beyond that: pricing is public price HT/TVA/TTC over 12 and 24 months, SIM/eSIM setup fees are excluded and one-time, the maximum is 20 lines per company, and it reports whether online subscription is open.
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?
Front-loaded with what is computed, then usage examples, then parameter rules and fee caveats; the 'Paramètres :' marker gives useful structure. It is dense and runs as one long multi-clause block, so it is efficient but not ideally scannable.
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?
An output schema exists and annotations cover the safety profile, so return values and side-effect disclosure are not required here. The description supplies the pricing scope, the aggregate line cap, and fee handling, leaving only minor gaps such as default behaviour when all optional parameters are omitted.
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% and each parameter already documents the per-plan line count with 0–20 bounds, so the baseline is 3. The description goes further by stating the aggregate constraint (20 lines total per company) and clarifying that parameters are counts per plan, which the schema's per-field bounds alone do not convey.
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?
States a specific verb and resource – computing the monthly/annual cost of a whole fleet at public price, mixing plans as needed – which is far more concrete than a generic 'get price'. It does not, however, name or contrast any sibling (e.g. get_plan, compare_plans), so the agent must infer the boundary itself.
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?
Explicit when-to-use with two concrete invocation scenarios ('combien pour 5 lignes ?', 'combien pour 3 Pro et 2 Business ?'), which removes ambiguity about the intended input style. No when-not guidance or named alternative tools are given, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_eligibilityVérifier qui peut souscrireARead-onlyIdempotentInspect
Applique les règles publiées de souscription : offre réservée aux professionnels (SIREN obligatoire : société, indépendant, micro-entrepreneur), de 1 à 20 lignes par entreprise. Indique aussi si la souscription en ligne est ouverte, l’engagement et les moyens de paiement. À utiliser pour « puis-je souscrire ? » ou « est-ce sans engagement ? ». Ne vérifie aucun SIREN réel et ne crée aucune commande. Source : https://comontel.fr/forfaits.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | Yes | Nombre de lignes souhaitées | |
| has_siren | Yes | Le client a un numéro SIREN (société, indépendant, micro-entrepreneur) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuinely new behavioral facts beyond that: the result is derived from published rules with a cited source, no real SIREN is validated, and no side effects on orders occur.
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?
It is a single dense paragraph with the core rule front-loaded, followed by outputs, use cases, exclusions, and a source link. Every clause carries information, though the middle section lists several outputs at once and could be slightly tighter.
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?
An output schema exists, so return-value detail is not required, and the description usefully previews what is returned (online opening, commitment, payment methods). Combined with the explicit non-goals and source link, it is sufficient for an agent to call it correctly; only alternative-tool routing is absent.
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%, so the baseline is 3. The description still adds meaning by tying has_siren to the professional/SIREN requirement and by stating the actual eligibility threshold of 1–20 lines, which sharpens the intent of the lines parameter beyond its raw 0–1000 schema range.
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 gives a concrete verb and resource: it applies the published subscription rules to determine who can subscribe, and enumerates the resulting outputs (online opening, commitment, payment methods). It also distinguishes itself from adjacent concerns by stating it verifies no real SIREN and creates no order.
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 explicitly names the triggering questions ("puis-je souscrire ?", "est-ce sans engagement ?") and adds negative boundaries (no SIREN verification, no order creation). It stops short of naming which sibling to use instead, so it is clear context without explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_plansComparer les forfaitsARead-onlyIdempotentInspect
Tableau comparatif des forfaits Comontel (prix, Go en France et en zone Europe, 5G, réseau) et ce qui est commun à tous. À utiliser pour « quelle différence entre Essentiel, Pro et Business ? ». Paramètre facultatif : plan_ids (deux ou trois forfaits). Ne compare pas avec d’autres opérateurs. Source : https://comontel.fr/forfaits.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_ids | No | Forfaits à comparer ; tous par défaut. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds that the output also includes features common to all plans and cites a source URL, but says nothing about return format beyond what the output schema provides. Adequate, not rich.
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?
A single dense paragraph that front-loads what the tool produces, then usage, then the parameter, then exclusions and source. No wasted sentences, though it packs several concerns into one block.
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?
An output schema exists, so return-value explanation is unnecessary. The description covers scope, compared fields, an example query, an exclusion, and the data source, leaving little an agent would need to add.
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%, and the schema already documents plan_ids with enum values and a 'tous par défaut' default. The description restates that it is optional and covers two or three plans, adding only marginal meaning over 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?
States a specific artifact (comparison table) for a specific resource (Comontel plans) and enumerates the compared dimensions (prix, Go en France/Europe, 5G, réseau) plus the common features. This clearly distinguishes it from siblings like get_plan (single), get_plans (list), and recommend_plan.
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?
Gives an explicit trigger phrase (« quelle différence entre Essentiel, Pro et Business ? ») and a clear exclusion ('Ne compare pas avec d’autres opérateurs'). It does not name alternative sibling tools by name, but the when-to-use context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_data_usageEstimer une consommation de dataARead-onlyIdempotentInspect
Estime la consommation mensuelle de données d’un utilisateur (Go par mois, détail par usage et sources), à partir des débits publiés par les éditeurs (Teams, Zoom, Meet, Netflix, Spotify) et du poids médian d’une page web. À utiliser pour chiffrer un besoin avant de choisir un forfait. Tous les paramètres sont facultatifs. GPS, mails, cloud et partage de connexion : valeurs fournies par l’utilisateur, aucun chiffre officiel. Estimation indicative. Source : https://comontel.fr/outils/estimateur-data.
| Name | Required | Description | Default |
|---|---|---|---|
| music_profile | No | Qualité de la musique en streaming | |
| video_profile | No | Service de visioconférence (Teams par défaut) | |
| gps_mb_per_hour | No | Valeur relevée par l’utilisateur | |
| email_mb_per_day | No | Valeur relevée par l’utilisateur | |
| streaming_profile | No | Qualité de la vidéo en streaming | |
| web_pages_per_day | No | ||
| cloud_gb_per_month | No | Valeur relevée par l’utilisateur | |
| gps_hours_per_week | No | ||
| workdays_per_month | No | ||
| music_hours_per_week | No | ||
| video_hours_per_week | No | ||
| tethering_gb_per_month | No | Valeur relevée par l’utilisateur | |
| streaming_hours_per_week | No | ||
| audio_call_hours_per_week | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety bar is met. The description adds real value beyond them: the methodology (published publisher bitrates, median page weight), the caveat that GPS/mail/cloud/tethering values come from the user with no official figures, and that the result is indicative.
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?
Front-loaded with the core purpose, followed by usage, then caveats and source. Dense but every clause (bitrate sources, optionality, caveat, indicative disclaimer) earns its place.
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?
An output schema exists, so return values need not be explained. The description covers methodology, optionality, data limitations and provenance, which is largely complete for a 14-param estimation tool, with only per-parameter detail left to the schema.
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?
At 50% schema coverage across 14 params, description carries moderate burden. It usefully states all parameters are optional and clarifies which inputs are user-supplied rather than official, but many numeric parameters (hours per week, workdays, web pages) remain unexplained 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 states a specific verb and resource: estimating a user's monthly data consumption in GB with a breakdown by usage and sources. It is clearly distinct from pricing/eligibility siblings, though it does not name any sibling explicitly (e.g. recommend_plan or compare_plans).
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 context: 'chiffrer un besoin avant de choisir un forfait', which ties it naturally to plan-selection siblings. It does not, however, state when-not to use it or name an explicit alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchLire un document ComontelARead-onlyIdempotentInspect
Texte complet d’un document trouvé avec search (forfait, guide, question fréquente, terme du glossaire ou thème), avec son URL à citer et ses métadonnées (type, dates, statut). Paramètre : id renvoyé par search (le chemin de la page, par exemple « /forfaits/pro »), ou une URL de comontel.fr.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Identifiant renvoyé par search, ou URL de comontel.fr |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds substantive context beyond that: it returns full text, a citable URL and metadata (type, dates, statut), which tells the agent what it gets back and why. It does not mention size limits or pagination.
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?
Two dense sentences, front-loaded with the retrieval purpose, then the accepted input. No filler or redundancy.
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?
With a single fully-documented parameter and an output schema present, the description covers what is needed: where the id comes from, what the tool returns, and its place in the search-then-fetch flow. Nothing essential is missing.
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% and the schema itself already says the id is from search or a comontel.fr URL. The description goes further by giving a concrete path example ('/forfaits/pro'), which clarifies the expected format beyond the schema text.
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?
States a specific verb and resource: retrieving the full text of a document previously found with search, plus its URL and metadata. It names the exact document kinds (forfait, guide, FAQ, glossaire, thème), so an agent can distinguish it from search and from the get_* siblings.
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 ties this tool to a prior `search` call ('document trouvé avec search'), which tells the agent when this tool is the right follow-up. It does not name the alternative get_guide/get_faq/get_plan siblings or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_country_infoInformations sur une destinationARead-onlyIdempotentInspect
Zone d’itinérance d’un pays ou territoire et son inclusion dans les forfaits Comontel. À utiliser pour « mon forfait marche-t-il en … ? » sans forfait précis ; avec un forfait, préférer get_roaming_allowance. Statut « inconnu » si la destination n’est pas répertoriée. Source : https://comontel.fr/europe-international.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | Pays ou territoire, en français ou par identifiant (ex. « Suisse », « royaume-uni », « Guadeloupe ») |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnlyHint, idempotentHint, openWorldHint=false), but the description adds genuinely useful behavior: what happens with an unlisted destination ('Statut « inconnu »'), plus a source URL for verification. It does not cover rate limits or response shape, but that is largely handled by the output schema.
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?
Four compact clauses, each earning its place: purpose, usage routing, unknown-status edge case, and source. Front-loaded with the core capability before the disambiguation.
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?
With an output schema present, return structure need not be explained; the description still covers routing, the unknown-destination outcome, and provenance. A minor gap is that it does not say whether the destination match is fuzzy or exact, which matters given free-text input.
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% and the single parameter is fully documented (type, length bounds, accepted French names or identifiers). The description adds no syntax or lookup detail beyond what the schema already provides, so the baseline 3 applies.
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?
States a specific resource (the roaming zone of a country/territory and its inclusion in Comontel plans) with a clear retrieval verb. It is immediately distinguishable from the sibling get_roaming_allowance, which the description names.
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?
Gives an explicit when-to-use ('mon forfait marche-t-il en … ?' without a specific plan) and an explicit alternative with its selecting condition ('avec un forfait, préférer get_roaming_allowance'). Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faqQuestions fréquentesARead-onlyIdempotentInspect
Questions fréquentes publiées sur https://comontel.fr/faq, filtrées par mots-clés et/ou par rubrique (offre, entreprise, numero, sim, reseau, europe, facturation). Chaque réponse a sa propre URL à citer. À utiliser pour les questions pratiques : engagement, résiliation, portabilité, facture, TVA, eSIM, support.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Mots-clés, par exemple « résilier », « TVA », « eSIM » | |
| category | No | Rubrique de la FAQ |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behaviour (source URL, each answer carries its own citable URL) but says nothing about result volume, empty-result handling, or how the two filters combine – a 3 against the lower annotated baseline.
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?
Front-loaded with what the tool returns and how it filters, then the usage note, in three tight clauses. The category list duplicates the schema enum, which is mild redundancy but not enough to drop it below a 4.
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?
An output schema exists, so return values need not be explained, and the description covers source, filters, and citation behaviour. Only the bisection of the two optional filters is left implicit; otherwise complete for a 2-param, no-required-param read tool.
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 both parameters are already documented, and the enum values are repeated verbatim from the schema. The description adds no format or combination semantics (e.g. whether query and category are ANDed) beyond what the schema provides, so the baseline 3 applies.
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?
States a specific verb+resource (retrieve published FAQs) with the source URL and the exact filter axes (keywords and/or rubrique). An agent can distinguish this from get_guide and search_comontel_knowledge because it names both the resource and its filter model.
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?
"À utiliser pour les questions pratiques" enumerates concrete trigger topics (engagement, résiliation, portabilité, facture, TVA, eSIM, support), giving clear context for when to reach for it. It stops short of naming an alternative sibling or stating exclusions, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideLire un guideARead-onlyIdempotentInspect
Un guide de comontel.fr : réponse courte, points clés, FAQ, sources officielles, dates et plan des sections. À utiliser après search_comontel_knowledge, ou directement si le sujet correspond à un guide connu (eSIM, RIO, portabilité, TVA, 4G ou 5G, Go nécessaires…). Paramètre : slug du guide.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Identifiant du guide |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds that the response is a canonical structured document (sections, dates, official sources), which is useful but mostly overlaps the existing output schema.
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?
Two sentences, front-loaded with the resource description and then the routing rule. The topic list slightly duplicates the enum values but earns its place as agent-facing routing hints.
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?
With an output schema, full annotation coverage, and a 100%-covered single parameter, the description only needs to establish purpose and routing, which it does. Nothing critical is missing for correct invocation.
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% and the single 'slug' parameter is fully constrained by a 37-value enum. The description's 'Paramètre : slug du guide' restates what the schema already documents and adds no format or selection guidance beyond it.
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 names the specific resource (a comontel.fr guide) and enumerates its content shape: short answer, key points, FAQ, official sources, dates, section plan. That distinguishes it from search_comontel_knowledge, though the retrieval verb itself is only implied by the title.
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 explicitly routes the agent: use after search_comontel_knowledge, or directly when the topic maps to a known guide, and gives concrete topic examples (eSIM, RIO, portabilité, TVA, 4G/5G, data needs). The alternative and the selecting condition are both stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_planDétail d’un forfaitARead-onlyIdempotentInspect
Fiche complète d’un forfait (prix HT et TTC, Go en France et en zone Europe, 5G, appels et SMS, page officielle). Indique aussi si la souscription en ligne est ouverte. À utiliser quand l’utilisateur cite un forfait précis. Paramètre : plan_id (essentiel, pro ou business). Source : page du forfait sur comontel.fr.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Identifiant du forfait : essentiel, pro, business |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds useful context (data source is comontel.fr, subscription-status is included), but nothing about caching, freshness, or failure behavior for an id it may not resolve.
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?
One compact paragraph, front-loaded with the payload contents before the usage rule and the parameter. Every clause carries information; only the parameter restatement is mildly redundant with the schema.
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?
With an output schema present, return-value detail is not required, and the description supplies purpose, trigger, parameter, and data source. It is complete enough for a single-parameter lookup, though it does not address behavior for an invalid/unknown plan_id.
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% and plan_id already carries an enum with a description, so the schema does the heavy lifting. The description merely repeats the same three values ('essentiel, pro, business') without adding format or semantics 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 states a specific resource ('fiche complète d'un forfait') and enumerates the scope of detail it returns (prix HT/TTC, Go France/Europe, 5G, appels/SMS, page officielle). It implicitly separates itself from list/compare siblings by requiring a specific plan, though it never names get_plans or compare_plans directly.
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 an explicit trigger condition: 'À utiliser quand l’utilisateur cite un forfait précis.' That is clear when-to-use guidance, but no alternative tool is named for the opposite case (e.g. browsing all plans), so the routing is only half specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plansLister les forfaitsARead-onlyIdempotentInspect
Les trois forfaits mobiles pro Comontel (Essentiel, Pro, Business) : prix HT et TTC par ligne et par mois, Go utilisables en France et en zone Europe, 5G, réseau, sans engagement. À utiliser en premier pour toute question de prix ou de contenu des forfaits. Chaque forfait indique aussi si la souscription en ligne est ouverte (subscription_open, availability, how_to_subscribe). Aucun paramètre. Source : https://comontel.fr/forfaits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds useful scope info (all three plans at once, no parameters) and discloses returned attributes (subscription_open, availability, how_to_subscribe), but no auth, rate-limit or caching behavior. Adds some value over annotations, not rich.
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?
Front-loaded with the resource and its contents, then usage guidance, then field disclosure. Dense but each sentence carries distinct information; the parenthetical field list is slightly heavy but justified for output attribute naming.
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?
An output schema exists, so return values need not be explained, and the zero-parameter schema is trivial. The description covers resource, scope, routing and source URL, leaving only sibling differentiation (vs get_plan/compare_plans) unstated.
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 tool takes no parameters, so the baseline is 4; the description explicitly confirms 'Aucun paramètre', which matches the empty schema and removes any doubt about hidden filtering options.
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 names the specific resource (les trois forfaits mobiles pro Comontel: Essentiel, Pro, Business) and enumerates the content dimensions (prix HT/TTC, Go France/Europe, 5G, réseau, sans engagement). It is clear what the tool returns, though it never explicitly contrasts itself with the sibling get_plan (singular), leaving the plural/singular distinction to inference.
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 states an explicit routing rule: 'À utiliser en premier pour toute question de prix ou de contenu des forfaits.' That tells the agent when to reach for this tool, but it names no alternative and gives no when-not guidance (e.g. when to prefer get_plan or compare_plans).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_roaming_allowanceItinérance : forfait × destinationARead-onlyIdempotentInspect
Ce qu’un forfait permet dans une destination : inclusion dans le forfait, Go utilisables sur place, appels et SMS sur place, appels depuis la France vers ce pays, règle applicable (réglementation européenne ou grille Comontel). À utiliser pour les voyages et les frontaliers. Paramètres : plan_id et destination. Statut « inconnu » si la destination n’est pas répertoriée. Source : https://comontel.fr/europe-international.
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Identifiant du forfait : essentiel, pro, business | |
| destination | Yes | Pays ou territoire, en français ou par identifiant (ex. « Suisse », « royaume-uni », « Guadeloupe ») |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld=false). The description adds two behavioral details beyond them: the data source URL and the fact that an 'inconnu' status is returned when a destination is not listed, which meaningfully complements openWorldHint=false. Return values needn't be explained since an output schema exists.
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 front-loaded with purpose, then the returned fields, usage cue, edge case, and source — a logical order with little waste. The 'Paramètres : plan_id et destination' line is redundant given full schema coverage, a minor deduction.
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?
With 100% schema coverage, rich annotations, and an output schema present, the description only needs to add framing — which it does by scoping the domain, disclosing the unknown-status edge case, and citing the source. It is essentially complete, lacking only explicit sibling routing.
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 both plan_id (with enum) and destination (with format examples). The description only restates 'Paramètres : plan_id et destination' without adding format or constraint meaning, so the baseline 3 applies.
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 names the specific resource and its scope: what a plan (forfait) permits in a given destination, enumerating the exact dimensions returned (inclusion, usable Go, calls/SMS on site, calls from France, applicable rule). This is clearly distinguishable from generic siblings like get_plan or get_country_info, though it never names an alternative. The verb is implicit ('get') rather than stated, keeping it just below a 5.
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 one usage cue — 'À utiliser pour les voyages et les frontaliers' — which tells the agent the domain (travel and cross-border users). However, no when-not-to-use condition or named alternative sibling (e.g., get_country_info for general country facts, get_plan for plan details) is offered, leaving selection guidance implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_planRecommander un forfaitARead-onlyIdempotentInspect
Recommande un forfait Comontel, avec ses raisons, à partir de cinq réponses sur les usages (mêmes règles que l’outil « Quel forfait ? » du site). Indique aussi si la souscription en ligne est ouverte. À utiliser pour « quel forfait pour un indépendant, un commercial, une équipe terrain, une entreprise qui voyage en Europe ? ». Pour plusieurs profils dans une entreprise, appeler l’outil une fois par profil puis calculate_company_price. Source : https://comontel.fr/outils/quel-forfait.
| Name | Required | Description | Default |
|---|---|---|---|
| visio | Yes | Visioconférences hors Wi-Fi | |
| cinq_g | Yes | Téléphone 5G et 5G souhaitée | |
| europe | Yes | Déplacements dans la zone Europe (UE, DOM, Suisse, Andorre…) | |
| partage | Yes | Partage de connexion vers un ordinateur | |
| hors_wifi | Yes | Temps passé loin du Wi-Fi pendant la journée de travail |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so safety is covered. The description adds real value beyond that: it states the output includes reasons, reports whether online subscription is open, and notes it mirrors the website 'Quel forfait ?' rules (deterministic behavior). It omits auth/rate-limit details, but those are minor for a read-only tool.
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?
Single dense paragraph but front-loaded with the core action and output before the usage examples and multi-profile instruction, so no reader is left wondering what the tool does. The source URL and quoted example phrasings are slightly verbose but each sentence contributes routing or output information.
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?
An output schema exists, so return-value detail is unnecessary, and the description correctly focuses on purpose, usage scenarios, and the per-profile workflow for a 5-required-param tool. It could be marginally more complete by noting when to prefer compare_plans, but nothing essential for correct invocation is missing.
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% with all five enums documented, so the schema carries parameter meaning. The description only restates that inputs are 'cinq réponses sur les usages,' adding no syntax or value semantics beyond what the schema's enum descriptions already provide. Baseline 3 applies.
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?
Names a specific verb (recommande), a specific resource (un forfait Comontel), and the basis (cinq réponses sur les usages), plus the extra output (raisons + souscription en ligne ouverte). This clearly distinguishes it from sibling readers like get_plan, get_plans, and compare_plans, which merely fetch or contrast existing plans.
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?
Gives concrete trigger scenarios in quotes ('un indépendant, un commercial, une équipe terrain…') and an explicit multi-profile workflow: call once per profile then calculate_company_price. It lacks exclusions relative to other siblings (e.g. when to prefer compare_plans), so it is clear context without full when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchRechercher des documents ComontelARead-onlyIdempotentInspect
Recherche dans les forfaits, guides, FAQ, glossaire et thèmes de comontel.fr. Renvoie des documents { id, title, url }, du plus pertinent au moins pertinent ; lire le contenu d’un document avec fetch. Format attendu par la recherche approfondie de ChatGPT. Pour une réponse directe avec extraits, search_comontel_knowledge convient aussi.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Mots-clés ou question |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | Documents trouvés |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: the result shape { id, title, url } and the relevance ordering of returns, plus the 'recherche approfondie de ChatGPT' format expectation.
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 front-loaded sentences that each carry information: scope, return shape plus follow-up tool, and the alternative tool. Dense but no obvious filler; the parenthetical field list is compact.
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?
An output schema exists, so return values need not be detailed, yet the description still sketches the document shape. Scope, follow-up (fetch) and alternative (search_comontel_knowledge) are all present; only prioritization against the many plan/price siblings is unaddressed.
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?
Only one parameter, whose schema description ('Mots-clés ou question') already documents it at 100% coverage, so the baseline is 3. The description adds no extra guidance on query syntax, keyword-vs-question behavior, or the 200-character limit.
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?
States a specific verb (Recherche) and the exact corpora searched (forfaits, guides, FAQ, glossaire, thèmes de comontel.fr), and distinguishes itself from two siblings by naming both fetch and search_comontel_knowledge. An agent can tell it apart 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?
Explicitly routes downstream work to fetch ('lire le contenu d'un document avec fetch') and names search_comontel_knowledge as the alternative when a direct answer with excerpts is wanted. It stops short of stating when this tool is the wrong choice, e.g. for pricing or plan comparison queries covered by siblings like get_plans or recommend_plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_comontel_knowledgeRechercher dans les contenus ComontelARead-onlyIdempotentInspect
Recherche plein texte dans les guides, la FAQ, le glossaire et les thèmes de comontel.fr. Renvoie titres, extraits et URL, du plus pertinent au moins pertinent. À utiliser pour toute question qui ne relève pas d’un autre outil (portabilité, eSIM, facture, TVA, réseau…). Paramètres : query (2 à 200 caractères), limit (1 à 20, 8 par défaut).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Nombre de résultats (8 par défaut) | |
| query | Yes | Mots-clés ou question |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds useful behavior beyond them: it returns titres, extraits and URL, ordered most-relevant to least-relevant. Pagination/total-count behavior is not mentioned, but that is largely covered by the output schema.
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 front-loaded sentences: what is searched, what is returned, when to use it. Efficient, though the trailing parameter recap duplicates the schema and is the one part that does not earn its place.
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?
An output schema exists, so return values need not be explained in depth; the description nonetheless summarizes them. Search scope, ranking order, and routing rule are all present, leaving only the sibling-overlap question unaddressed.
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 both parameters fully. The description merely restates the same bounds (2–200 characters, 1–20, default 8) without adding format, syntax, or matching semantics beyond what the schema says. Baseline 3 applies.
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?
Names a specific verb (recherche plein texte) and enumerates the concrete resources searched (guides, FAQ, glossaire, thèmes de comontel.fr), plus what it returns. It stops short of distinguishing itself from the sibling `search` or from `get_faq`/`get_guide`, whose content overlaps with the sources listed.
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?
Gives an explicit routing rule: use for any question not covered by another tool, with concrete domain examples (portabilité, eSIM, facture, TVA, réseau). It never names a specific competing sibling (e.g. `search`, `search_offers`, `get_faq`) or states a when-not condition, so an agent still has to guess at the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_offersChercher un forfait selon des critèresARead-onlyIdempotentInspect
Forfaits qui répondent à des critères chiffrés : volume minimal de données en France (Go), budget maximal HT par ligne et par mois, 5G. Résultats du moins cher au plus cher, liste vide si aucun ne convient. À utiliser quand l’utilisateur donne un besoin chiffré ; sinon préférer recommend_plan. Source : https://comontel.fr/forfaits.
| Name | Required | Description | Default |
|---|---|---|---|
| needs_5g | No | 5G souhaitée | |
| min_data_gb | No | Volume minimal de données en France, en Go | |
| max_price_ht_eur | No | Prix maximal HT par ligne et par mois, en euros |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | La réponse ; null si l’information demandée n’existe pas |
| status | Yes | « inconnu » : ne jamais deviner ni compléter |
| provenance | Yes | |
| source_url | Yes | Page publique où l’information est affichée |
| updated_at | Yes | Dernière modification de la donnée (AAAA-MM-JJ) |
| reviewed_at | Yes | Dernière vérification (AAAA-MM-JJ) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely useful behavior beyond them: results are ordered cheapest-to-most-expensive and an empty list is returned when nothing matches. It stops short of other traits (result caps, filtering strictness), so not a 5.
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?
Front-loads the purpose, then criteria, then ordering/empty behavior, then usage routing, ending with a source link. Dense but single-paragraph and every clause carries information; the run-on colon/semicolon structure slightly hurts readability.
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?
With an output schema present (returns need not be described) and 100% parameter coverage, the description supplies what structured fields cannot: the sort order, the empty-result semantics, and the routing rule against recommend_plan. An agent has everything needed to call it correctly.
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 three parameters with units (Go, EUR HT per line/month). The description only restates the same criteria (data volume, budget, 5G) without adding syntax, defaults, or interaction rules, so the baseline 3 is correct.
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?
States a specific verb+resource (search plans/forfaits) plus the exact criteria domain: minimum data volume in France, max monthly budget per line, 5G. It explicitly differentiates itself from the sibling recommend_plan, so an agent can route between them without opening either 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?
"À utiliser quand l'utilisateur donne un besoin chiffré ; sinon préférer recommend_plan" gives both the when-to-use condition and the named alternative, with the selecting condition (numeric need present or absent). Nothing is left to inference.
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
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "forfait-mobile-pro-pas-cher", - "forfait-mobile-infirmier-liberal", - "forfait-mobile-vtc-taxi", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "mvno-pro-reseau-orange", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "reduire-facture-mobile-entreprise", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "appeler-suisse-depuis-france-forfait-pro", - "data-europe-forfait-pro", - "data-epuisee-forfait-pro", - "ligne-pro-perso-meme-telephone", - "garder-numero-pro-perso", - "resilier-ancien-operateur-portabilite", - "forfait-pro-hors-europe" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "forfait-mobile-pro-pas-cher", + "forfait-mobile-infirmier-liberal", + "forfait-mobile-vtc-taxi", + "forfait-mobile-professions-sante", + "forfait-mobile-transport-routier", + "forfait-mobile-agent-immobilier", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "mvno-pro-reseau-orange", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "reduire-facture-mobile-entreprise", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "appeler-suisse-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "forfait-mobile-pro-pas-cher", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "mvno-pro-reseau-orange", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "reduire-facture-mobile-entreprise", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "appeler-suisse-depuis-france-forfait-pro", - "data-europe-forfait-pro", - "data-epuisee-forfait-pro", - "ligne-pro-perso-meme-telephone", - "garder-numero-pro-perso", - "resilier-ancien-operateur-portabilite", - "forfait-pro-hors-europe" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "forfait-mobile-pro-pas-cher", + "forfait-mobile-infirmier-liberal", + "forfait-mobile-vtc-taxi", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "mvno-pro-reseau-orange", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "reduire-facture-mobile-entreprise", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "appeler-suisse-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "reduire-facture-mobile-entreprise", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "appeler-suisse-depuis-france-forfait-pro", - "data-europe-forfait-pro", - "data-epuisee-forfait-pro", - "ligne-pro-perso-meme-telephone", - "garder-numero-pro-perso", - "resilier-ancien-operateur-portabilite", - "forfait-pro-hors-europe" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "forfait-mobile-pro-pas-cher", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "mvno-pro-reseau-orange", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "reduire-facture-mobile-entreprise", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "appeler-suisse-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "appeler-suisse-depuis-france-forfait-pro", - "data-europe-forfait-pro", - "data-epuisee-forfait-pro", - "ligne-pro-perso-meme-telephone", - "garder-numero-pro-perso", - "resilier-ancien-operateur-portabilite", - "forfait-pro-hors-europe" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "reduire-facture-mobile-entreprise", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "appeler-suisse-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "data-europe-forfait-pro", - "data-epuisee-forfait-pro", - "ligne-pro-perso-meme-telephone", - "garder-numero-pro-perso", - "resilier-ancien-operateur-portabilite", - "forfait-pro-hors-europe" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "appeler-suisse-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
get_guide1 field changed- changed
Input schema / properties / slug / enumPrevious value: -[ - "comment-choisir-forfait-mobile-professionnel", - "combien-de-go-pour-un-commercial", - "combien-de-go-pour-un-dirigeant", - "quel-forfait-pour-chaque-salarie", - "combien-de-go-forfait-pro", - "forfait-mobile-equipes-terrain", - "code-rio-ligne-professionnelle", - "delai-portabilite-numero-mobile", - "esim-ou-sim-physique-entreprise", - "esim-iphone", - "esim-android", - "qu-est-ce-qu-un-mvno", - "4g-ou-5g-entreprise", - "volte-vowifi", - "reception-mobile-bureau", - "depart-arrivee-salarie-ligne-mobile", - "equiper-salaries-telephone-professionnel", - "tva-forfait-mobile-professionnel", - "facture-telephone-professionnelle", - "forfait-pro-suisse", - "forfait-pro-andorre", - "appeler-europe-depuis-france-forfait-pro", - "data-europe-forfait-pro" -]New value: +[ + "comment-choisir-forfait-mobile-professionnel", + "combien-de-go-pour-un-commercial", + "combien-de-go-pour-un-dirigeant", + "quel-forfait-pour-chaque-salarie", + "combien-de-go-forfait-pro", + "forfait-mobile-equipes-terrain", + "code-rio-ligne-professionnelle", + "delai-portabilite-numero-mobile", + "esim-ou-sim-physique-entreprise", + "esim-iphone", + "esim-android", + "qu-est-ce-qu-un-mvno", + "4g-ou-5g-entreprise", + "volte-vowifi", + "reception-mobile-bureau", + "depart-arrivee-salarie-ligne-mobile", + "equiper-salaries-telephone-professionnel", + "tva-forfait-mobile-professionnel", + "facture-telephone-professionnelle", + "forfait-pro-suisse", + "forfait-pro-andorre", + "appeler-europe-depuis-france-forfait-pro", + "data-europe-forfait-pro", + "data-epuisee-forfait-pro", + "ligne-pro-perso-meme-telephone", + "garder-numero-pro-perso", + "resilier-ancien-operateur-portabilite", + "forfait-pro-hors-europe" +]
1 tool update
- Changed
fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"Identifiant renvoyé par search, ou URL de www.comontel.fr"New value: +"Identifiant renvoyé par search, ou URL de comontel.fr"
15 tool updates
- First observed
calculate_company_price - First observed
check_eligibility - First observed
compare_plans - First observed
estimate_data_usage - First observed
fetch - First observed
get_country_info - First observed
get_faq - First observed
get_guide - First observed
get_plan - First observed
get_plans - First observed
get_roaming_allowance - First observed
recommend_plan - First observed
search - First observed
search_comontel_knowledge - First observed
search_offers
Related MCP Connectors
Forfaits mobiles Flytel pour les frontaliers France-Suisse : offres, appels, données, pays.
Outils ScoreInvest.fr en lecture seule : taux, simulateurs, statut produits, démenti phishing.
Refonte ou création de sites vitrines pour artisans, commerçants et TPE en France. Aperçu gratuit.
Factures, devis, clients et statistiques SWIPIFY. Lecture et brouillons, aucune émission.
Related MCP Servers
AlicenseAqualityBmaintenanceeSIM data plans for 200+ countries: search wholesale plans, check balance and usage, diagnose eSIM connectivity from live network data, and (opt-in) order and top up eSIMs with a confirmation step.1148 npmMIT- AlicenseAqualityDmaintenanceTravel eSIMs for 193 countries. Stripe + Bitcoin checkout. QR by email in 30s. No API key.453 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables assistants to look up verified daily cheapest travel eSIM and physical SIM sellers and prices for 54 destination countries and 1–30 day trips, compare countries by cost, check recent price trends, and inspect seller price-change and sell-out histories. It is a free, no-auth, read-only remote MCP server whose results include a source citation and as-of date.-
- FlicenseNot gradedqualityDmaintenanceEnables integration with CMP (Connectivity Management Platform) API to query and manage SIM card information, including filtering SIM lists and retrieving detailed SIM card usage statistics.-
Glama MCP Gateway
Add one secure layer between your agents and this server.