Skip to main content
Glama

Synapze — Financial Intermediary MCP

get_quote

Read-only

Tarification protection juridique / Generate a real legal protection insurance quote (protection juridique) from a licensed French broker's partner insurers. Returns indicative monthly and annual prices per formula.

Call find_broker first to get a broker_code, then get_products to see the available formulas. Only two client inputs are needed: age (in years) and French postal code. Never ask the client for a date of birth, an identity document, or any personal detail beyond these two — this connector does not accept them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ageYesClient age in whole years (e.g. 40). Used for rating. Do NOT send a date of birth.
budgetNoClient's monthly budget in euros (e.g. 20). Results sorted by proximity to budget.
show_allNoReturn ALL quotes instead of top 5. Use only when the client asks for more options.
broker_codeNoBroker code returned by find_broker. Optional in broker-authenticated mode.
postal_codeYesFrench postal code, 5 digits (e.g. '75011'). Used for territorial rating.
product_typeNoProduct type. Legal protection only — the sole product this connector covers.protection_juridique
formula_levelNoDesired formula level, if the client already has a preference.
coverage_areasNoDispute areas the client wants covered: consumer, housing, employment, neighbourhood, automotive, digital, tax, administrative.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • addedInput schema / properties / age
      Added value: +{
      +  "description": "Client age in whole years (e.g. 40). Used for rating. Do NOT send a date of birth.",
      +  "maximum": 100,
      +  "minimum": 18,
      +  "type": "integer"
      +}
    • removedInput schema / properties / birth_date
      Removed value: -{
      -  "description": "Client birth date in YYYY-MM-DD format (e.g. '1988-05-15')",
      -  "type": "string"
      -}
    • changedInput schema / properties / budget / description
      Previous value: -"Client's monthly budget in euros (e.g. 80). Results sorted by proximity to budget."New value: +"Client's monthly budget in euros (e.g. 20). Results sorted by proximity to budget."
    • removedInput schema / properties / children
      Removed value: -{
      -  "description": "Children details for family coverage",
      -  "items": {
      -    "properties": {
      -      "birth_date": {
      -        "description": "Child birth date YYYY-MM-DD",
      -        "type": "string"
      -      },
      -      "gender": {
      -        "description": "Child gender: M or F",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "birth_date"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / coverage_areas
      Added value: +{
      +  "description": "Dispute areas the client wants covered: consumer, housing, employment, neighbourhood, automotive, digital, tax, administrative.",
      +  "items": {
      +    "enum": [
      +      "consumer",
      +      "housing",
      +      "employment",
      +      "neighbourhood",
      +      "automotive",
      +      "digital",
      +      "tax",
      +      "administrative"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / formula_level
      Added value: +{
      +  "description": "Desired formula level, if the client already has a preference.",
      +  "enum": [
      +    "essentielle",
      +    "etendue",
      +    "complete"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / gender
      Removed value: -{
      -  "description": "Gender: M or F",
      -  "type": "string"
      -}
    • removedInput schema / properties / has_spouse
      Removed value: -{
      -  "description": "Whether the client has a spouse/partner to cover",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / number_of_children
      Removed value: -{
      -  "description": "Number of children to cover",
      -  "type": "number"
      -}
    • changedInput schema / properties / postal_code / description
      Previous value: -"French postal code (e.g. '75008', '92150'). Required for all products."New value: +"French postal code, 5 digits (e.g. '75011'). Used for territorial rating."
    • addedInput schema / properties / postal_code / pattern
      Added value: +"^\\d{5}$"
    • removedInput schema / properties / product_data
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Product-specific data object. Fields depend on product_type — see description above for examples per product. Call get_products first to see quoteRequirements.guidance for the exact fields to collect.",
      -  "propertyNames": {
      -    "type": "string"
      -  },
      -  "type": "object"
      -}
    • addedInput schema / properties / product_type / default
      Added value: +"protection_juridique"
    • changedInput schema / properties / product_type / description
      Previous value: -"Product type: auto, moto, mrh, rc_pro, protection_juridique (pj), epargne, assurance_vie, per"New value: +"Product type. Legal protection only — the sole product this connector covers."
    • addedInput schema / properties / product_type / enum
      Added value: +[
      +  "protection_juridique",
      +  "pj"
      +]
    • changedInput schema / properties / show_all / description
      Previous value: -"Return ALL quotes instead of top 5. Use only when client asks for more options."New value: +"Return ALL quotes instead of top 5. Use only when the client asks for more options."
    • removedInput schema / properties / spouse_birth_date
      Removed value: -{
      -  "description": "Spouse birth date in YYYY-MM-DD format",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "product_type",
      -  "birth_date"
      -]New value: +[
      +  "age",
      +  "postal_code"
      +]
  2. Changed8 schema fields changed
    • removedInput schema / properties / coverage_zone
      Removed value: -{
      -  "description": "Coverage zone for sante_internationale: monde_usa, monde_hors_usa, europe, asie_oceanie, ameriques.",
      -  "type": "string"
      -}
    • removedInput schema / properties / departure_date
      Removed value: -{
      -  "description": "Coverage start date YYYY-MM-DD for sante_internationale. Defaults to 30 days from now.",
      -  "type": "string"
      -}
    • removedInput schema / properties / destination_country
      Removed value: -{
      -  "description": "Destination country (e.g. 'Canada', 'Australie', 'Thailand'). REQUIRED for sante_internationale.",
      -  "type": "string"
      -}
    • removedInput schema / properties / insurance_regime
      Removed value: -{
      -  "description": "Insurance regime for sante_internationale: premier_euro, complement_cfe, complement_secu, etudiant. Do NOT confuse with 'regime' (French social security).",
      -  "type": "string"
      -}
    • removedInput schema / properties / nationality
      Removed value: -{
      -  "description": "Client nationality for sante_internationale (e.g. 'France'). Defaults to France.",
      -  "type": "string"
      -}
    • changedInput schema / properties / postal_code / description
      Previous value: -"French postal code (e.g. '75008', '92150'). Required for French products, not needed for sante_internationale."New value: +"French postal code (e.g. '75008', '92150'). Required for all products."
    • changedInput schema / properties / product_type / description
      Previous value: -"Product type: sante, sante_tns, sante_internationale, auto, mrh, emprunteur, rc_pro, gav, prevoyance, pj, ij, per, assurance_vie, scolaire, epargne"New value: +"Product type: auto, moto, mrh, rc_pro, protection_juridique (pj), epargne, assurance_vie, per"
    • removedInput schema / properties / regime
      Removed value: -{
      -  "description": "French social security regime: general, tns, alsace_moselle. For sante/sante_tns only.",
      -  "type": "string"
      -}
  3. Changed2 schema fields changed
    • changedInput schema / properties / broker_code / description
      Previous value: -"Broker code returned by find_broker"New value: +"Broker code returned by find_broker. Optional in broker-authenticated mode."
    • changedInput schema / required
      Previous value: -[
      -  "broker_code",
      -  "product_type",
      -  "birth_date"
      -]New value: +[
      +  "product_type",
      +  "birth_date"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / broker_code / description
      Previous value: -"Broker code from find_broker (e.g. 'jmassure', 'protecsia')"New value: +"Broker code returned by find_broker"
  5. Changed16 schema fields changed
    • changedInput schema / properties / birth_date / description
      Previous value: -"Client birth date YYYY-MM-DD (e.g. '1988-05-15')"New value: +"Client birth date in YYYY-MM-DD format (e.g. '1988-05-15')"
    • addedInput schema / properties / budget
      Added value: +{
      +  "description": "Client's monthly budget in euros (e.g. 80). Results sorted by proximity to budget.",
      +  "type": "number"
      +}
    • addedInput schema / properties / children
      Added value: +{
      +  "description": "Children details for family coverage",
      +  "items": {
      +    "properties": {
      +      "birth_date": {
      +        "description": "Child birth date YYYY-MM-DD",
      +        "type": "string"
      +      },
      +      "gender": {
      +        "description": "Child gender: M or F",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "birth_date"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / coverage_zone
      Added value: +{
      +  "description": "Coverage zone for sante_internationale: monde_usa, monde_hors_usa, europe, asie_oceanie, ameriques.",
      +  "type": "string"
      +}
    • addedInput schema / properties / departure_date
      Added value: +{
      +  "description": "Coverage start date YYYY-MM-DD for sante_internationale. Defaults to 30 days from now.",
      +  "type": "string"
      +}
    • addedInput schema / properties / destination_country
      Added value: +{
      +  "description": "Destination country (e.g. 'Canada', 'Australie', 'Thailand'). REQUIRED for sante_internationale.",
      +  "type": "string"
      +}
    • changedInput schema / properties / has_spouse / description
      Previous value: -"Whether client has a spouse to cover"New value: +"Whether the client has a spouse/partner to cover"
    • addedInput schema / properties / insurance_regime
      Added value: +{
      +  "description": "Insurance regime for sante_internationale: premier_euro, complement_cfe, complement_secu, etudiant. Do NOT confuse with 'regime' (French social security).",
      +  "type": "string"
      +}
    • addedInput schema / properties / nationality
      Added value: +{
      +  "description": "Client nationality for sante_internationale (e.g. 'France'). Defaults to France.",
      +  "type": "string"
      +}
    • changedInput schema / properties / postal_code / description
      Previous value: -"French postal code (e.g. '75008', '92150')"New value: +"French postal code (e.g. '75008', '92150'). Required for French products, not needed for sante_internationale."
    • addedInput schema / properties / product_data
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Product-specific data object. Fields depend on product_type — see description above for examples per product. Call get_products first to see quoteRequirements.guidance for the exact fields to collect.",
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / product_type / description
      Previous value: -"Product type: sante, sante_tns, rc_pro, mrh, prevoyance, gav, pj"New value: +"Product type: sante, sante_tns, sante_internationale, auto, mrh, emprunteur, rc_pro, gav, prevoyance, pj, ij, per, assurance_vie, scolaire, epargne"
    • changedInput schema / properties / regime / description
      Previous value: -"Social security regime: general, tns, alsace_moselle"New value: +"French social security regime: general, tns, alsace_moselle. For sante/sante_tns only."
    • addedInput schema / properties / show_all
      Added value: +{
      +  "description": "Return ALL quotes instead of top 5. Use only when client asks for more options.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / spouse_birth_date / description
      Previous value: -"Spouse birth date YYYY-MM-DD"New value: +"Spouse birth date in YYYY-MM-DD format"
    • changedInput schema / required
      Previous value: -[
      -  "broker_code",
      -  "product_type",
      -  "birth_date",
      -  "postal_code"
      -]New value: +[
      +  "broker_code",
      +  "product_type",
      +  "birth_date"
      +]
  6. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Even though annotations already declare readOnlyHint and destructiveHint, the description adds meaningful behavioral detail: it produces real indicative quotes from partner insurers, returns monthly and annual prices, enforces broker dependency, and refuses extra personal data. This goes well beyond what the annotations alone provide.

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

Conciseness5/5

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

The description is compact, front-loaded with the core purpose, and uses complementary sentences to convey prerequisites and client-input limitations. No sentence is wasted, and the structure proceeds logically from what the tool does, to how to use it, to guarding against inappropriate inputs.

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

Completeness5/5

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

Even without an output schema, the description states the key return information (indicative monthly and annual prices per formula) and gives enough about required inputs and prerequisites for an agent to invoke the tool correctly. It also provides privacy/behavioral context that is especially useful for an external data connector.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents each parameter. The description adds valuable operational semantics by narrowing the client-facing inputs to age and postal code, and by prohibiting unnecessary personal information. It doesn't redundantly redefine each parameter, which is appropriate given the schema coverage.

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

Purpose5/5

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

The description states exactly what the tool does: generate a real legal protection insurance quote from French partner insurers and return monthly/annual prices per formula. It clearly differentiates the tool from its siblings by describing the quote generation step after find_broker and get_products.

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

Usage Guidelines5/5

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

The description gives explicit sequencing guidance: call find_broker first to obtain broker_code, then get_products to see available formulas, then this tool. It also explains the only client inputs required and what the agent must never ask for, giving strong when-to-use and when-not-to-use direction.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources