Sigo Seguros car insurance quotes
REMOTE · MCP.SIGOSEGUROS.COM · SCANNED OCT 7
Non-binding car insurance estimates from Sigo Seguros, a licensed agency, not a carrier.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability74
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6030 tokens (~463/item across 13 items; 12 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 91% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
- Supports UI / widget rendering.Pass
How do I install the Sigo Seguros car insurance quotes MCP server?
Sigo Seguros car insurance quotes is a hosted endpoint at https://mcp.sigoseguros.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.sigoseguros.com
claude mcp add --transport http com-sigoseguros-auto-quote 'https://mcp.sigoseguros.com/mcp'
{
"mcpServers": {
"com-sigoseguros-auto-quote": {
"url": "https://mcp.sigoseguros.com/mcp"
}
}
} {
"servers": {
"com-sigoseguros-auto-quote": {
"type": "http",
"url": "https://mcp.sigoseguros.com/mcp"
}
}
} [mcp_servers.com-sigoseguros-auto-quote] url = "https://mcp.sigoseguros.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-sigoseguros-auto-quote": {
"type": "remote",
"url": "https://mcp.sigoseguros.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-sigoseguros-auto-quote --url 'https://mcp.sigoseguros.com/mcp' --transport streamable-http
mcp_servers:
com-sigoseguros-auto-quote:
url: "https://mcp.sigoseguros.com/mcp" {
"McpServers": {
"com-sigoseguros-auto-quote": {
"Transport": "http",
"Url": "https://mcp.sigoseguros.com/mcp"
}
}
} assistant mcp add com-sigoseguros-auto-quote -t streamable-http -u 'https://mcp.sigoseguros.com/mcp'
{
"mcpServers": {
"com-sigoseguros-auto-quote": {
"type": "http",
"url": "https://mcp.sigoseguros.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 7 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 30. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “next_question” rewrote its description, which is the text the model reads security
- Schema quality: 5110 → 6030 ▼ functional
- New tool “commercial_next_question” functional
- New tool “submit_commercial_application” functional
- 2 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Oct 26 +2
- Tool “resolve_application_link” rewrote its description, which is the text the model reads security
- Schema quality: 570 → 464 ▲ functional
- The server now declares the “resources” capability functional
- First check of Capabilities: pass functional
- First check of Schema quality: 100 functional
- New resource “quote_estimates_widget” functional
- New tool “answer_other_carrier_questions” functional
- New tool “other_carrier_questions” functional
- “resolve_application_link” reworded the description of “locale” cosmetic
- “resolve_application_link” reworded the description of “pasted_link” cosmetic
- “resolve_application_link” made “locale” optional cosmetic
- 30 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Sept 26 0
- Stability: unverified → 0.03 ▲ functional
- 28 Sept 26 71
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 8 Oct 2026 · Probed https://mcp.sigoseguros.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sigoseguros.com | CN=WE1,O=Google Trust Services,C=US | 2 Oct 2026 | 31 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 9d21aaf894a1a377135ec6d93b919303 |
| SANs: sigoseguros.com, *.sigoseguros.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.sigoseguros.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| sigoseguros.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.sigoseguros.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.sigoseguros.com/mcp | HTTPS enforced | 301 | https://mcp.sigoseguros.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
answer_carrier_questions File the customer's answers to the carrier's questions ~342
After carrier_questions: file the answers, passing answers_so_far back each time, until the set is complete. Saves what the customer answered against their application, which is what moves it towards a final quote. Send every answer under the code it came back with, and only what the customer actually said. This does not take payment, sign anything or bind coverage. Those happen in Sigo's own flow, through the link that comes back here. The carrier takes its questions as a set, so answers are held until every one has been given. Pass the `answers_so_far` from the previous call back in, and only the new answer needs to go in `answers`.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | What the customer said, in their own answers. Never filled in on their behalf. |
| answers_so_far | string | – | The `answers_so_far` from the previous call, when there was one. It carries what the customer already answered, so only the new answer needs to go in `answers`. It survives a re-quote: after start_qu… |
| chosen_quote_id | string | yes | The estimate the customer picked. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| quote_id | string | yes | The handle start_quote returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| answered | integer | yes | How many of the carrier's questions have an answer so far, counting the earlier turns. |
| answers_so_far | string|null | yes | Everything answered up to now, to pass back on the next call so nothing is lost. Null once the carrier has the set and there is nothing left to carry. |
| filed | boolean | yes | True once the carrier has the whole set. The carrier takes it whole or not at all, so answers are held until every required question has one. |
| next_call | string|null | yes | Exactly what to call next, with its arguments, when something follows here; null otherwise. |
| next_step | object | yes | Paying and signing happen here, not in this conversation. |
| note | string | yes | What is done and what is still ahead, in the customer's language. |
| quote_id | string|null | – | Present once CoverCube's answers are filed: read the confirmed price with get_quote using this quote_id, which replaces the earlier one. |
| still_needed | array | yes | The codes of the required questions with no answer yet. Empty when the set is complete. |
No examples provided.
answer_other_carrier_questions File the customer's answers to the other carriers' questions ~252
After other_carrier_questions: file the answers, passing answers_so_far back each time, until the set is complete. Saves what the customer answered against their application. Once every required question has an answer the whole pass is filed, Sigo selects the cheapest of the other carriers, and a Sigo agent confirms the final offer with the customer. Send every answer under the code it came back with, and only what the customer actually said. This shows no price and does not take payment, sign anything or bind coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | What the customer said, in their own answers. Never filled in on their behalf. |
| answers_so_far | string | – | The `answers_so_far` from the previous call, when there was one: it carries what the customer already answered, so only the new answers need to go in `answers`. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| quote_id | string | yes | The handle start_quote returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| answered | integer | yes | How many of the carrier's questions have an answer so far, counting the earlier turns. |
| answers_so_far | string|null | yes | Everything answered up to now, to pass back on the next call so nothing is lost. Null once the carrier has the set and there is nothing left to carry. |
| filed | boolean | yes | True once the whole pass is filed and the cheapest of the other carriers is selected. |
| next_step | object | yes | Paying and signing happen through the link, after an agent confirms. |
| note | string | yes | What is done and what is still ahead, in the customer's language. |
| still_needed | array | yes | The codes of the required questions with no answer yet. Empty when the set is complete. |
No examples provided.
carrier_questions The carrier's own questions before it will issue ~260
After the three steps, when to_final_quote.next_call names it: the questions of the estimate the customer picked. Then answer_carrier_questions. Once the customer has picked an estimate, this returns the questions that carrier asks in their state — attestations and disclosures the carrier words itself. Say `preamble` first, then ask one `ask_together` block per turn, each question exactly as it is worded; they are not Sigo's questions to reword. Send the answers with `answer_carrier_questions`. `can_answer_here` is false where that carrier does not finish online, and then a Sigo agent takes it from there. Either way the customer keeps the link: they can finish on the web at any point without losing what they have answered.
| Name | Type | Req | Description |
|---|---|---|---|
| chosen_quote_id | string | yes | The `quote_id` of the estimate the customer picked, from the list they were shown. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| quote_id | string | yes | The handle start_quote returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| ask_together | array | yes | Codes that can be put to the customer in one turn, grouped the way the carrier groups them. Ask each block as one message and send its answers together. A question with `depends_on` is in no block: i… |
| can_answer_here | boolean | yes | False when there is nothing to ask here yet: the application is still missing details, or the carrier does not finish online in this state. Check `still_needed` to tell the two apart. |
| next_step | object | yes | Where the customer finishes. Theirs at any point, not only at the end. |
| note | string | yes | How to put these, in the customer's language. |
| preamble | string|null | yes | Sigo's own words for the customer, to say as they are before the first question. Not one of the carrier's questions and not answered. Null when there is nothing to ask here. |
| questions | array | yes | In the order the platform ranked them. |
| still_needed | – | yes | What the application still lacks, when that is why the questions are not here. An empty array means nothing is missing. Null means this is not about the application at all — either the questions came… |
No examples provided.
commercial_next_question The next commercial auto question to ask a business ~375
Commercial auto, step 1 of 2: call it until ready_to_submit is true, sending back the collected it returns each time and each answer under answer_as.key. Then submit_commercial_application. For a vehicle a business owns or uses for its work: a contractor's pickup, a delivery van, a box truck, a tow truck, a fleet. It takes the short intake Sigo's commercial form opens with, one question at a time in the customer's language, and a Sigo agent quotes it with the carriers afterwards. There is no estimate and no price here, and none to give: say any quote is subject to underwriting, eligibility and state filing. Its first question tells a business apart from someone who drives only for Uber, Lyft, DoorDash or Uber Eats. That is personal auto: route_to_personal turns true, nothing commercial is sent, and next_question takes it from there. When it is not clear which kind of customer this is, start here. Ask `ask` as the website words it, with its options, and wait for the answer. It never asks for a social security number, a FEIN or EIN, a date of birth or a licence number; do not collect them.
| Name | Type | Req | Description |
|---|---|---|---|
| answered | object | – | Only what the customer said this turn, under answer_as.key. Everything earlier is in `collected`. |
| collected | string | – | The `collected` from the previous call. Leave it out on the first question and send it on every call after that. It is not the quote flow's collected: the two do not mix. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages: the questions come back in it, and the request is filed in it so the Sigo agent follows up in it. |
| Name | Type | Req | Description |
|---|---|---|---|
| answer_as | – | yes | How to send the answer back. Null once nothing is left to ask. |
| ask | string | yes | The website's own wording of the question, in the customer's language. Put it to them as it is; do not reword the options. |
| collected | string | yes | Everything answered so far, this turn included. Send it back on the next call. |
| field | string | yes | The question being asked, by name; `none` when there is nothing left to ask. |
| next_step | – | yes | Present when the intake ends: what to call next. |
| options | array | yes | Every choice the customer may pick, when the question has a fixed set, in answer_as.values order. |
| ready_to_submit | boolean | yes | True when every question is answered: read the summary back, then submit_commercial_application. |
| route_to_personal | boolean | yes | True when the customer drives only for apps: that is personal auto, nothing commercial is sent, and next_question takes it from here. |
| summary | – | yes | What the customer answered, to read back before submitting. Only when ready_to_submit is true. |
No examples provided.
find_occupation Find the rater's code for a customer's job ~193
Second-round helper, outside the three steps: turns the customer's words into the occupation code start_quote takes. Turns what the customer said they do into the carrier's own occupation codes. Call it before sending `occupation` on a driver: the catalogue is written in trade names and customers answer in their own, so the code is never something to guess at. Pick the entry that matches what they described and send its code. An empty list means ask them another way rather than settle for the nearest thing.
| Name | Type | Req | Description |
|---|---|---|---|
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| said | string | yes | What the customer said they do, in their own words — 'chofer', 'trabajo en construcción'. |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | yes | The rater's entries that fit, best first. Pick the one that matches what the customer described and send its `code` as the driver's `occupation`. |
| note | string | yes | What to do with this list, in the customer's language — including when it comes back empty. |
No examples provided.
get_quote Read car insurance estimates ~235
Step 3 of 3: read the quote_id start_quote returned, after poll_after_seconds, until more_carriers_pending is false. Never start_quote again to refresh a result. Reads the estimates for a quote_id returned by start_quote. Carriers answer at different speeds: when more_carriers_pending is true the list is not final and poll_after_seconds says how long to wait before asking again. The list closes within a minute either way, with whatever arrived — a carrier that did not answer is not a price, and there is none to go looking for. Once it is closed, to_final_quote.next_call is what to do next. No price here is final, in any round: the final quote is calculated by Sigo in the link, after the carrier's questions.
| Name | Type | Req | Description |
|---|---|---|---|
| locale | string | – | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| quote_id | string | yes | The handle start_quote returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | object | yes | – |
| asked_for | object | yes | Label each answer with this when comparing two quotes for the same customer, so "con deducible de 1000" is matched to the quote that asked for it. |
| carriers | object | yes | – |
| contact | object | yes | – |
| cover_first | – | yes | – |
| covers | object | yes | – |
| expires_at | string | yes | – |
| issued_by | object | yes | – |
| more_carriers_pending | boolean | yes | True when more carriers may still return a price; the list is not final. |
| pending_note | string|null | yes | What to do while carriers are still answering, in the customer's language. Null once the list is final. |
| personal_use_note | string|null | yes | Present when the customer said the vehicle is used for work. Say it with the prices: this quote is personal auto. Null when they said nothing about it, and then the subject is not raised. |
| poll_after_seconds | – | yes | How long to wait before calling get_quote again. |
| price_levers | object | yes | – |
| problems | array | yes | – |
| quote_id | string | yes | Pass this back to get_quote to read the result again. |
| quoted_at | string | yes | – |
| quotes | array | yes | – |
| revised_from_quote | boolean | yes | True when this quote re-quoted the same customer: started with revise_of, or for a customer who already quoted today and was still at their first round. One person, one application, priced again. |
| state | string|null | yes | – |
| status | string | yes | – |
| to_final_quote | object | yes | – |
No examples provided.
list_available_states States where Sigo can quote ~306
Before the flow, optional: where Sigo quotes. The flow itself is next_question, then start_quote once, then get_quote. The US states Sigo Seguros is licensed to sell car insurance in, and what Sigo is. Ask this before collecting details, so a customer elsewhere is not taken through a full quote. The state a policy is rated in comes from where the car is kept overnight, not from where the customer lives or works. Read `state_is_decided_by` before asking for a ZIP: a car kept outside these states is not quoted on a ZIP inside them, however close the customer commutes. Sigo is an agency: it sells policies that carriers issue. The carrier pays it a commission, and in almost every state where it sells, the customer pays a one-time broker fee for the agency's service — in Florida there is none. Where there is one it is real and is itemised before anyone pays, in Sigo's own flow. Asked what Sigo charges — which customers ask before there is any quote — that is the answer, with no amount: saying Sigo charges nothing is false wherever it does charge, and the checkout will contradict it.
| Name | Type | Req | Description |
|---|---|---|---|
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| Name | Type | Req | Description |
|---|---|---|---|
| carriers | object | yes | – |
| how_sigo_is_paid | string | yes | What to say when the customer asks what Sigo charges, in their language. No amount is in it. |
| state_is_decided_by | string | yes | Read this before asking for a ZIP. It says what decides the state a policy is rated in, in the customer's language, and it is the one thing this list does not say on its own. |
| states | array | yes | – |
No examples provided.
next_question The next thing to ask the customer ~590
Step 1 of 3: call it until ready_to_quote is true, sending back the collected it returns each time and each answer under answer_as.key. Then start_quote. Returns the one question to put to the customer now, 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, then call `start_quote`. Send only what the customer said this turn, in `answered`, together with the `collected` from the last call. The connector keeps the record of the conversation, so nothing is repeated and an answer given before its turn is not lost. When `ready_to_quote` turns true, `summary` is what the customer has said: read it back and let them correct it before quoting. It exists so the order and the pace are the connector's rather than a matter of 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. Once a ZIP is given it is checked here, so a customer outside the states Sigo is licensed in is told before being walked through the rest. There are two stretches. `stage: "first_quote"` is the one that ends in estimates. `stage: "second_round"` is for a customer who saw those estimates and wants to finish the application so the carrier can quote it for real: it asks where the car is kept, the VIN, who owns it, the licence, and a few more. The prices it leads to are still estimates; the final quote comes after the carrier's own questions, in Sigo's link. `get_quote` says when that is worth offering. A vehicle a business uses for its work is commercial auto and is not quoted here: use commercial_next_question. Someone who drives only for apps like Uber or DoorDash stays here.
| Name | Type | Req | Description |
|---|---|---|---|
| answered | object | – | Only what the customer said this turn. Everything from earlier turns is already in `collected` and must not be repeated here. |
| collected | string | – | The `collected` from the previous call. Leave it out on the first question of a conversation and send it on every call after that: it carries everything answered so far, so nothing has to be repeated… |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| stage | string | – | Which stretch the conversation is in. `second_round` is for a customer who saw prices and wants to finish the application; it asks a different set, and the prices it leads to are still estimates. |
| Name | Type | Req | Description |
|---|---|---|---|
| answer_as | – | yes | How to send the answer back. Null on the closing step, when there is nothing left to answer. |
| ask | string | yes | The question, ready to put to the customer, in their language. |
| collected | string | yes | Everything answered so far, this turn included. Send it back on the next call. It is the connector's record of the conversation, so nothing has to be asked twice. |
| field | string | yes | The question being asked, by name. Not the key to answer under: that is `answer_as.key`. |
| options | array | yes | Every choice the customer may pick, when the field has a fixed set. |
| ready_to_quote | boolean | yes | True when nothing is missing and start_quote can be called. |
| summary | – | yes | What the customer has answered, to read back to them for confirmation. Present only once `ready_to_quote` is true; null while there are still questions to ask. |
No examples provided.
other_carrier_questions The other carriers' questions, once the first option is not the answer ~295
Only when get_quote's cover_first, or answer_carrier_questions, names it: after the one option shown could not be the answer (declined, not available, or an answer it does not take), or when the customer wants to compare a confirmed price. Then answer_other_carrier_questions. Returns the questions of the other carriers in the customer's state, once for all of them and minus whatever the customer already answered anywhere (pass the `answers_so_far` answer_carrier_questions handed back, when it did). Say `preamble` first, then ask one `ask_together` block per turn, each question exactly as it is worded. No price comes with these: a Sigo agent confirms the final offer through the link. `can_answer_here` is false when nobody priced the customer, and then a Sigo agent takes it from there.
| Name | Type | Req | Description |
|---|---|---|---|
| answers_so_far | string | – | The `answers_so_far` answer_carrier_questions handed back when the first option ended, when there was one: what the customer already answered is then not asked again. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| quote_id | string | yes | The handle start_quote returned. |
| Name | Type | Req | Description |
|---|---|---|---|
| ask_together | array | yes | Codes that can be put to the customer in one turn, grouped the way the carrier groups them. Ask each block as one message and send its answers together. A question with `depends_on` is in no block: i… |
| can_answer_here | boolean | yes | False when there is nothing to ask here: nobody priced the customer, and a Sigo agent takes it. |
| next_step | object | yes | Where the customer finishes. Theirs at any point, not only at the end. |
| note | string | yes | What to do with these questions, in the customer's language. |
| preamble | string|null | yes | Sigo's own words for the customer, to say as they are before the first question. Not one of the carrier's questions and not answered. Null when there is nothing to ask here. |
| questions | array | yes | In the order the platform ranked them. |
No examples provided.
resolve_application_link Read a Sigo link the customer already has ~258
Outside the three steps: for a customer who arrives with a Sigo link they already have. Says what a Sigo link points at, how far that application has got, and the one thing the customer has to do next. Call it when someone shows up with a link — from an email, a text, or their own notes — and asks for help finishing. Pass only the Sigo link or code they shared. It resolves the short link, the long one and a bare code. It reads only: it opens nothing on the customer's behalf, and asking twice changes nothing. It reports no price, carrier or personal detail, because Sigo does not send any — whoever holds a link gets this same answer, so there is nothing here that identifies its owner. Say the `message` as given rather than composing one.
| Name | Type | Req | Description |
|---|---|---|---|
| locale | string | – | The language to write the returned `message` in: the customer's own, es or en. |
| pasted_link | string | yes | Only the Sigo link or code the customer shared (a sigoseguros.com link or a short code), not the rest of their message. Stray punctuation around it is fine; do not guess at a link the customer did no… |
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | What to tell the customer, already written in their language. Say this rather than composing your own: it is the only description of the application Sigo has checked, and it deliberately states no pr… |
| next_step | string | yes | The single next action, as a value. `message` is the wording for it. |
| state | string | yes | How far the application has got. Coarse on purpose. |
| url | string|null | yes | The link to hand back so the customer can continue, or null when nothing resolved. Use this URL rather than the one the customer pasted. |
No examples provided.
start_quote Start a car insurance quote ~1,205
Step 2 of 3: call it once, with the collected next_question returned when ready_to_quote was true. It returns a quote_id for get_quote. If it answers quote_in_progress, do not call it again: read the quote_id you already have. Retrying the same call, after a timeout say, is safe: while its rating runs, the retry starts no second one and answers quote_in_progress. Asks Sigo's carriers for car insurance estimates. Carriers answer over tens of seconds, so this returns a quote_id straight away rather than waiting; read the prices with get_quote. Estimates are not binding: this does not select a policy, take payment or bind coverage. No browser is needed to get them: they come back in these tool calls, and the link in each one is where the customer continues if they want to buy. Call it once the details are gathered. Gather them a step at a time in conversation — listing every field up front reads as a form and loses people before the first answer. For a customer who already has a quote and wants something changed, pass that quote's id as revise_of instead of starting over: the same person re-quoted, not a second one. A call for a customer who already quoted today and is still at their first round revises that quote even without revise_of — the result says revised_from_quote: true — so a forgotten id never makes a second application. The same call carries the second round. Once the customer has answered what `next_question` asks with `stage: "second_round"` — address, VIN, ownership and lienholder, licence status and months held, occupation, education, prior coverage, excluded drivers, and each driver's document number in `drivers[].document.number` — send them all here with revise_of, and the carriers price the quote again on what they now know. The address the second round asks for is where the car is kept, and it is checked against the ZIP the quote is running on. They disagree, and the answer is to correct whichever one is wrong — never to move the customer ont…
| Name | Type | Req | Description |
|---|---|---|---|
| address | – | – | Second round only. The street address where the car is kept overnight — street and number; the ZIP already gave the city and the state. It is checked against that ZIP, and an address somewhere else i… |
| collected | string | yes | The `collected` next_question returned once `ready_to_quote` was true. Required: it is the record that every question was put to the customer. A call without it, or with one that still has questions… |
| correction_of | string | – | Only when a previous call failed with `data_not_accepted`: pass the `correction_of` it returned, together with the corrected details. The quote is retried on the same record instead of starting a sec… |
| drivers | array | yes | – |
| string | yes | Identifies the customer and is how Sigo reaches them about this quote. No phone number is collected here, so nothing can be called or texted from this channel — which is not the same as Sigo not call… | |
| has_prior_insurance | boolean | yes | Whether the customer currently has car insurance. |
| is_homeowner | boolean | – | – |
| is_student | boolean | – | – |
| locale | string | yes | The language the customer is writing in. Set it from their own messages rather than leaving the default: the estimate's notice comes back in this language, and a notice the customer cannot read discl… |
| prior_coverage_expiration | – | – | Second round only. YYYY-MM-DD, when the current policy ends. Today is accepted; a date already past is refused: confirm it with the customer, and if their coverage really did end, they have no prior… |
| prior_coverage_months | – | – | Second round only, and only for a customer who has insurance now. How long they have been covered: offer 6 months, 1 year, 3 years, 4 or more. |
| revise_of | string | – | When the customer wants a quote they already have run again with something changed — another deductible, another coverage, a detail they gave wrong: pass that quote's `quote_id` here, with the full d… |
| uninsured_motorist | boolean | yes | Whether to include uninsured-motorist protection — cover for when the other driver has no insurance. Ask it; it is the one add-on offered at this step and it changes the price. |
| vehicles | array | yes | – |
| zip_code | string | yes | The 5-digit ZIP code where the vehicle is kept. It determines the state. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | object | yes | – |
| asked_for | object | yes | Label each answer with this when comparing two quotes for the same customer, so "con deducible de 1000" is matched to the quote that asked for it. |
| carriers | object | yes | – |
| contact | object | yes | – |
| cover_first | – | yes | – |
| covers | object | yes | – |
| expires_at | string | yes | – |
| issued_by | object | yes | – |
| more_carriers_pending | boolean | yes | True when more carriers may still return a price; the list is not final. |
| pending_note | string|null | yes | What to do while carriers are still answering, in the customer's language. Null once the list is final. |
| personal_use_note | string|null | yes | Present when the customer said the vehicle is used for work. Say it with the prices: this quote is personal auto. Null when they said nothing about it, and then the subject is not raised. |
| poll_after_seconds | – | yes | How long to wait before calling get_quote again. |
| price_levers | object | yes | – |
| problems | array | yes | – |
| quote_id | string | yes | Pass this back to get_quote to read the result again. |
| quoted_at | string | yes | – |
| quotes | array | yes | – |
| revised_from_quote | boolean | yes | True when this quote re-quoted the same customer: started with revise_of, or for a customer who already quoted today and was still at their first round. One person, one application, priced again. |
| state | string|null | yes | – |
| status | string | yes | – |
| to_final_quote | object | yes | – |
No examples provided.
submit_commercial_application Send a business's commercial auto request to Sigo ~272
Commercial auto, step 2 of 2: call it once, with the collected commercial_next_question returned when ready_to_submit was true. Do not call it again after it answers: a repeat is usually answered with the earlier request and already_received: true, but that is not guaranteed, and a second call can file a second request. Sends the intake to Sigo, where a licensed agent reviews it and follows up by email. It is a request for a quote, not a quote: it returns no price, selects no policy, takes no payment and binds no coverage. Say `message` and `disclaimer` as written, and offer `form_url` with `form_note` for a customer who wants to add their vehicles and drivers now. A refusal comes back with a code, a message for the customer and a next_step for you. One that says the request did not reach Sigo carries form_url: never tell the customer it was received.
| Name | Type | Req | Description |
|---|---|---|---|
| collected | string | yes | The `collected` commercial_next_question returned when ready_to_submit was true. |
| locale | string | yes | The language the customer is writing in. Set it from their own messages: the questions come back in it, and the request is filed in it so the Sigo agent follows up in it. |
| Name | Type | Req | Description |
|---|---|---|---|
| already_received | boolean | yes | True when this business had already sent the same request: the earlier one is answered again, and no second one was filed. |
| disclaimer | string | yes | The notice every quote is subject to. Say it as written; it is the disclosure itself. |
| form_note | string | yes | The line to give the customer with form_url. |
| form_url | string | yes | The website's full commercial form, in the customer's language. |
| message | string | yes | What to tell the customer, as written. |
| reference | string | yes | Sigo's reference for the request. Not a quote and not a policy number. |
| status | string | yes | Sigo has the request. A Sigo agent follows up; nothing was quoted here. |
No examples provided.
What is the Sigo Seguros car insurance quotes MCP server?
Sigo Seguros car insurance quotes is an MCP server listed in the public MCP registry as com.sigoseguros/auto-quote. Non-binding car insurance estimates from Sigo Seguros, a licensed agency, not a carrier. This page covers its hosted endpoint (https://mcp.sigoseguros.com/mcp).
Is the Sigo Seguros car insurance quotes MCP server safe to use?
Sigo Seguros car insurance quotes scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Sigo Seguros car insurance quotes MCP server expose?
Sigo Seguros car insurance quotes exposes 12 tools: list_available_states, next_question, find_occupation, start_quote, get_quote, and 7 more. Their descriptions and schemas cost roughly 4,583 tokens of context every time the server is loaded.
Does the Sigo Seguros car insurance quotes MCP server require authentication?
No. We connected to Sigo Seguros car insurance quotes without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Sigo Seguros car insurance quotes MCP server still maintained?
Sigo Seguros car insurance quotes is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.