Sigo Seguros MCP connector
Car insurance estimates from Sigo Seguros, exposed to AI agents over the Model Context Protocol.
Sigo Seguros is a licensed insurance agency and broker. It does not underwrite policies, does not pay claims, and is not an insurance carrier. This connector returns non-binding estimates; each policy is issued by the carrier shown on the estimate.
Sigo earns a commission from the carrier and charges a broker fee. The amounts in an estimate are the carrier's — its premium and its own charges — and Sigo's fee is not among them; it is itemised for the customer before they pay, in Sigo's own flow. No fee amount appears in anything this connector returns, and none can be derived from it. An estimate is not the final cost of buying through Sigo.
Endpoint
| Transport | Streamable HTTP |
|---|---|
| Endpoint | POST https://mcp.sigoseguros.com/mcp |
| Authentication | None. The connector is open: no account, plan or credential. |
| Protocol | Negotiated by the client. Exercised against 2025-11-25. |
The connector is stateless: every request stands on its own and carries no session, so it can be called from any number of clients at once.
What it can and cannot do
It can estimate car insurance for a household's vehicles and drivers in the US states Sigo is licensed in, and hand back a link for the customer to continue with Sigo.
It cannot select a policy, take payment, bind coverage, change or cancel anything, or read back an existing policy. There is no tool for any of that.
Tools
list_available_states
Read-only, takes the customer's locale. Worth calling first, so a customer elsewhere is not
taken through a full quote. It also carries what can be said about carriers, because the question
— “do you work with X?” — arrives before any quote exists to answer it from.
{ "states": [{ "code": "TX", "name": "Texas" }, … ],
"carriers": { "catalogue_is_public": false, "note": "…" } }
next_question
Read-only. Takes what has been gathered so far, as flags, and returns the one question to ask now — worded
for the customer, in their language, with the options to offer when the field has a fixed set. Call it
before each question and again after every answer, until ready_to_quote is true.
Once zip_code is known it is checked against Sigo's footprint here, so a customer in a state
Sigo is not licensed in is told at that point rather than after giving their car, their birthdate and
their email.
{ "field": "marital_status",
"ask": "¿Cuál es su estado civil?",
"options": ["soltero/a", "casado/a", "viudo/a", "divorciado/a", "separado/a"],
"ready_to_quote": false }
It exists so the order and the pace belong to the connector rather than to a model's judgement. Sigo's customers are working people, often quoting on a phone, and a turn that asks for four things at once is where they give up.
start_quote
Creates the quote and asks the carriers. Carriers answer over tens of seconds, so this does not wait for
them: it returns a quote_id immediately with status: "pending".
| Field | Required | Notes |
|---|---|---|
zip_code |
yes | 5 digits. Determines the state. |
vehicles |
yes |
1–4. Each: year, make, model, coverage_type
(liability or full_coverage), optional deductible.
|
drivers |
yes |
1–4. Each: first_name, last_name, birthdate (YYYY-MM-DD),
gender, marital_status, is_primary.
|
has_prior_insurance |
yes | Changes the price materially. |
is_homeowner, is_student |
no | Default false. |
email |
yes | Identifies the customer, and is where Sigo can reach them about this quote. |
locale |
yes |
es or en — the language the customer is writing in. The estimate's notice comes
back in it, so a wrong value hands the customer a disclosure they cannot read. Sigo serves these two.
|
correction_of |
no |
Only after a data_not_accepted failure: the value it returned. The quote is retried on the
same record, so a customer who corrects a detail stays one customer.
|
get_quote
Read-only. Takes the quote_id and returns whatever the carriers have answered so far.
It returns up to three estimates, the same number and the same selection a customer sees on Sigo's website: cheapest by the amount due today, with the option that can be bought without an agent kept among them. None of them is marked as recommended — Sigo does not advise which to take from here.
{
"quote_id": "…",
"status": "partial",
"more_carriers_pending": true,
"poll_after_seconds": 5,
"pending_note": "Faltan aseguradoras por responder, así que esta lista no está completa…",
"contact": { "phone_collected_here": false, "sigo_calls_customers": true, "note": "Por este medio no se toman números…" },
"state": "TX",
"quoted_at": "…",
"expires_at": "…",
"quotes": [
{
"quote_id": "quote_…",
"carrier_name": "Commonwealth General",
"estimate": {
"currency": "USD",
"due_today": 83.50,
"first_payment_note": "The amount due today is the down payment the carrier asks for …",
"monthly_payment": 86.98,
"number_of_installments": 5,
"total_for_term": 518.40,
"total_note": "Es lo que le pagás a la aseguradora en todo el plazo: el pago de hoy más 5 …",
"term_months": 6
},
"quote_type": "estimate",
"is_binding": false,
"disclaimer": { "text": "Estimate subject to underwriting, eligibility and state filing.", "show_verbatim": true },
"next_step": null
}
],
"problems": [],
"covers": { "vehicles": 1, "drivers": 1, "note": null },
"price_levers": { "available": [], "note": "Con responsabilidad civil no hay nada que ajustar…" },
"personal_use_note": null,
"carriers": {
"answered": ["Commonwealth General", …],
"catalogue_is_public": false,
"note": "These are the only carriers you may name. …"
},
"issued_by": {
"agency": "Sigo",
"role": "licensed insurance agency",
"underwrites_policies": false,
"pays_claims": false,
"charges_broker_fee": true
}
}
Presenting a result to a person
-
"How do I make it cheaper?" Answer from
price_leversand nothing else: it holds what this step can actually change — a deductible and a coverage level, and only where something was quoted with full coverage. An empty list is the honest answer, not an invitation to list every factor insurance prices on. Discounts and driver details are reviewed later with an agent. -
A refusal is not an outage. When every carrier answered and none would quote, the
problem is
carriers_declinedand waiting changes nothing — the customer needs a different vehicle or coverage, or an agent.carrier_unavailableis the other case, where nobody answered and trying later is the right advice. Neither names the carrier or its reason. -
One price buys the whole policy. A carrier answers a single amount however many cars
are on the quote, so from two vehicles up
covers.notesays what it covers and that it is not per car. With one vehicle it isnull— the amount can only mean one thing. -
A vehicle used for work. Set
used_for_workon it when the customer brings it up — never by asking. The result then carriespersonal_use_note, which says this is a personal auto quote and that a vehicle used for a business may need a commercial policy. For everyone else it isnull, and the subject is not raised. -
Only the carriers that answered may be named. Sigo publishes no list of the carriers it
works with: it varies by state and by quote. A company absent from
carriers.answeredis not thereby one Sigo does not work with, and saying either way is a claim Sigo cannot make. -
"Can someone call me?" This channel takes no phone number, so no call can be
arranged from here — and that is a fact about the channel, not about Sigo, whose agents do call.
contact.notehas the wording: the customer leaves a number on the link with their estimate, and an agent calls them. -
A customer chooses once, from a finished list. While
more_carriers_pendingis true, every estimate'snext_stepisnullandpending_notesays what to do: show what is there if you like, say more prices may arrive, and do not ask them to choose. The link appears when the list closes. -
A partial list is not a final list. Carriers answer at different speeds. While
more_carriers_pendingis true a cheaper price may still arrive;poll_after_secondssays how long to wait before asking again. -
due_todayis what starts the policy, not what the policy costs. The total is settled with an agent and is not returned here. It bears no fixed relation to the monthly amount and can be higher or lower than it, which is why every estimate carriesfirst_payment_notesaying so: a first payment below the monthly one is not a discount, and one above it is not a surcharge. -
term_monthsis the length of the policy. A 6-month and a 12-month quote are not comparable on the down payment alone, so do not rank on price without it. It isnullwhen the carrier did not report one. -
The
disclaimergoes to the customer as written. It is attached to each estimate, it carriesshow_verbatim: true, and it is one sentence precisely so that it can be repeated rather than summarised: the estimate is subject to underwriting, eligibility and state filing. A paraphrase of it is not the disclosure.
Errors
Failures come back as a tool error with a stable code and a message fit to read
aloud. Carrier-side technical detail is never included.
state_not_served zip_not_found vehicle_not_recognized
insufficient_information carrier_unavailable
quote_not_found quote_expired temporarily_unavailable
data_not_accepted
Two of them are worth telling apart. temporarily_unavailable means the same request may work
shortly. data_not_accepted means it will not: something has to change first, the message says
what, and the failure carries a correction_of to retry on the same record.
Privacy
What the connector is given is sent to Sigo's rating systems to produce a quote, and a lead is created so the customer can pick the estimate up later. No phone number and no government identifiers are collected. Sigo's privacy notice and terms apply.