Skip to main content
Glama
iran-insurance-mcp

iran-insurance-mcp

by sepehr071

Compare insurers and their ratings

ins_insurers
Read-onlyIdempotent

Compare Iranian insurers side by side using BimeBazar and Azki ratings, filter by provider or name, and retrieve insurer IDs for quotes and reviews.

Instructions

List insurers with each marketplace's own ratings, side by side (BimeBazar and Azki).

Start here to compare insurers or get ids. BimeBazar rows have url_name (previous_company in ins_quote_*, company in ins_insurer_reviews and ins_claim_centers); Azki rows have id (company_id in ins_azki_body_options). Scales differ, so compare within one provider.

Input Schema

NameRequiredDescriptionDefault
queryNoInsurer name part, Persian.
providerNoMarketplace to ask; 'all' = side by side.all
azki_kindNoAzki only: sellers of third-party or car body insurance.third

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.2.0
    • changedInput schema / properties / azki_kind / description
      Previous value: -"Azki only: sellers of 'third' (third-party) or 'body' (car body) insurance."New value: +"Azki only: sellers of third-party or car body insurance."
    • changedInput schema / properties / provider / description
      Previous value: -"Which marketplace to ask: both side by side (default), or only 'bimebazar' or 'azki'."New value: +"Marketplace to ask; 'all' = side by side."
    • removedInput schema / properties / query / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedInput schema / properties / query / description
      Previous value: -"Part of an insurer name in Persian, e.g. 'آسیا'."New value: +"Insurer name part, Persian."
    • addedInput schema / properties / query / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. First observedv0.1.2

TDQS

A4.2/5.0
Behavior4/5

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. Beyond that, the description adds genuinely non-obvious behavior: BimeBazar rows expose url_name while Azki rows expose id, plus the downstream foreign-key mappings, and it warns that rating scales are not comparable across providers. Return shape beyond those keys is not described.

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?

Front-loads the core purpose in the first sentence, then routes ('Start here...'), then supplies caveats and key mappings. The parenthetical field-to-sibling mappings are dense but every clause is actionable; there is no filler.

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

Completeness4/5

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

For a 3-optional-parameter, no-output-schema list tool, the description covers purpose, entry-point role, provider semantics, and the identity keys returned per provider. It stops short of describing the other row fields (name, rating value) an agent would receive, but nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and each parameter carries its own description and enums, so a baseline of 3 applies. The description adds meaning to `provider` by warning that scales differ across marketplaces, but it says nothing about `query` (Persian substring) or `azki_kind` (third vs body) beyond what the schema already states.

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?

States a specific verb and resource ('List insurers with each marketplace's own ratings, side by side'), naming both providers (BimeBazar and Azki). It also positions itself as the entry point for id lookup and explains which sibling tables consume which key, so an agent can distinguish it from ins_insurer_reviews, ins_azki_company, and the quote tools without opening another schema.

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

Usage Guidelines4/5

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

'Start here to compare insurers or get ids' gives an explicit entry-point condition, and 'Scales differ, so compare within one provider' tells the agent how to interpret results across the provider filter. No exclusion cases are stated (e.g., when to go straight to ins_insurer_reviews for reviews only), which keeps it below a 5.

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