Complete a Menlo application, authorize carrier quote requests and answer quote follow-ups.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the customer has answered outstanding carrier follow-up questions from get_missing_questions. Saves those answers and returns the updated status. Takes the current baseRevision and an eventId; the same eventId with the same answers returns the original result. A save can overwrite earlier answers and resume affected carrier processing. Do not use for application-page questions (answer_quote_page), a document (attach_quote_document), consent, attestations or protected information.
Only customer-confirmed facts from current additional questions whose answerOnWebsite is false; coverage choices the customer made are fine; never protected information, consent, signatures or owner answers. A document goes through attach_quote_document
Stable unique ID for this answer submission; retries reuse the same ID and identical answers
The revision returned by get_missing_questions; conflicts require rereading questions
Language for the resulting quote status
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Use this when the customer has answered outstanding carrier follow-up questions from get_missing_questions. Saves those answers and returns the updated status. Takes the current baseRevision and an eventId; the same eventId with the same answers returns the original result. A save can overwrite earlier answers and resume affected carrier processing. Do not use for application-page questions (answer_quote_page), a document (attach_quote_document), consent, attestations or protected information.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for the resulting quote status |
| answers* | array | Only customer-confirmed facts from current additional questions whose answerOnWebsite is false; coverage choices the customer made are fine; never protected information, consent, signatures or owner answers. A document goes through attach_quote_document |
| eventId* | string | Stable unique ID for this answer submission; retries reuse the same ID and identical answers |
| baseRevision* | integer | The revision returned by get_missing_questions; conflicts require rereading questions |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"eventId",
"baseRevision",
"answers"
],
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en",
"description": "Language for the resulting quote status"
},
"answers": {
"type": "array",
"items": {
"type": "object",
"required": [
"questionId",
"status",
"value"
],
"properties": {
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 100
},
{
"type": "null"
}
]
},
"status": {
"enum": [
"confirmed",
"unknown",
"declined"
],
"type": "string"
},
"questionId": {
"type": "string",
"maxLength": 160,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Only customer-confirmed facts from current additional questions whose answerOnWebsite is false; coverage choices the customer made are fine; never protected information, consent, signatures or owner answers. A document goes through attach_quote_document"
},
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,128}$",
"description": "Stable unique ID for this answer submission; retries reuse the same ID and identical answers"
},
"baseRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "The revision returned by get_missing_questions; conflicts require rereading questions"
}
},
"additionalProperties": false
}Use this when the customer has answered the current contact or application questions, including coverage choices they made. Saves those answers and returns the updated page. Contact answers on a real quote also file the lead in Menlo's CRM; saving a lead does not submit the application or request carrier quotes. Takes the current baseRevision and an eventId; retry identical answers with the same eventId. A save can overwrite earlier answers and can resume eligible processing under the website's existing rules. Save only details the customer supplied or confirmed for this request. Do not use for protected information, consent, signatures or a document upload (use attach_quote_document).
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| answers* | array | Only customer-confirmed facts from the current page with answerOnWebsite false; readonly prefills are server-owned |
| eventId* | string | Unique submission ID; retry identical answers with the same eventId |
| baseRevision* | integer | Current baseRevision returned by get_current_page |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"eventId",
"baseRevision",
"answers"
],
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
},
"answers": {
"type": "array",
"items": {
"type": "object",
"required": [
"questionId",
"status",
"value"
],
"properties": {
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
},
"maxItems": 100
},
{
"type": "null"
}
]
},
"status": {
"enum": [
"confirmed",
"unknown",
"declined"
],
"type": "string"
},
"questionId": {
"type": "string",
"maxLength": 160,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1,
"description": "Only customer-confirmed facts from the current page with answerOnWebsite false; readonly prefills are server-owned"
},
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,128}$",
"description": "Unique submission ID; retry identical answers with the same eventId"
},
"baseRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Current baseRevision returned by get_current_page"
}
},
"additionalProperties": false
}Use this when a question marked attachDocument, on the current application page or among carrier follow-ups, asks for a document such as a replacement cost estimate or an existing policy or application, and the customer has attached it or wants to provide it. Pass the customer's attachment as file when this chat app supports file inputs; Menlo checks it is a PDF, JPEG or PNG up to 5 MB, keeps it with that question and saves the question's upload answer, which can resume eligible carrier processing. When no file arrives, returns attached false, a website upload link for the customer and the next step. An attached existing policy or application can suggest answers, saved with answer_quote_page once the customer confirms each. Takes the current baseRevision and an eventId; a retry of the same file reuses its eventId. Do not use for a file that answers no open document question, or for protected information.
| Argument | Type | Description |
|---|---|---|
| file | object | The document the customer attached in this conversation: a PDF, JPEG or PNG up to 5 MB. Omit it when the chat app cannot pass attached files; Menlo then returns a website upload link |
| locale | string | |
| eventId* | string | Unique ID for this attachment; a retry of the same file reuses it, a different file takes a new one |
| questionId* | string | ID of a current question marked attachDocument, e.g. fair-plan.replacement_cost_estimate |
| baseRevision |
Use this when you need to know which quote this connection covers. Returns the identifier and display name of the one connected quote, or a new-quote connection label before its draft is started. The connection covers one quote, not a customer account.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"additionalProperties": false
}Use this when continuing the connected quote, including its first contact questions, and again after every save. Returns the current page: grouped questions, visibility conditions, ZIP/state prefills, document questions (attachDocument) and whether the page must be completed on Menlo’s website (protected questions). Reading never creates a lead or starts carrier processing. Do not use for carrier follow-up questions after submission; use get_missing_questions.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when get_quote_status reports answer_questions or the customer asks what carriers still need. Returns outstanding follow-up questions, document requests (attachDocument) and correction requests, deduplicated across carriers, with the current baseRevision. Questions marked answerOnWebsite (protected information) cannot be answered through this connection.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when the customer prefers to fill in a quote request on Menlo's website rather than in chat. Returns the website link for a formId from list_products. Does not create, read or submit an application.
| Argument | Type | Description |
|---|---|---|
| formId* | string | |
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"formId"
],
"properties": {
"formId": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{0,60}$"
},
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when the customer asks how their connected quote is going or what happens next. Returns its stage, carrier outcomes, available quotes and next action. Premiums are indicative carrier results and nothing is bound. Includes a waiting-on-carriers message and whether an MCP Events quote.updated subscription is active. Reading does not activate notifications, start carrier processing or list other quotes.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when a customer wants insurance coverage or a quote and you need the product Menlo can quote and where, for example builders risk for a renovation, vacant home insurance, a DIC policy alongside the California FAIR Plan, or event insurance. Returns published formIds, labels, states, website links and the application process. When the customer wants help insuring their risk, continue with start_quote. General product browsing needs no contact details. Availability does not guarantee eligibility or a carrier quote. Do not use for claims or changes to an existing policy.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when the current page reports section review and the customer wants to request quotes. Returns the application's answers, the exact quote-authorization consent, the Terms link and a short-lived revision-bound reviewToken when ready; show them to the customer. Protected values are excluded. Reading does not request carrier quotes or accept terms.
| Argument | Type | Description |
|---|---|---|
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this when the customer wants Menlo to help insure a home, business, project or event, or to resume their connected quote; they do not need to say 'apply'. Choose the matching formId from list_products. Requires website connection consent first. Creates or resumes one quote and returns its next questions, starting with missing lead contact details. Ask for their name and preferred email OR phone so Menlo can follow up, then save the details they provide with answer_quote_page. Reuse confirmed quote details or details volunteered for this request; do not re-ask or infer contact information from unrelated history. Respect a declined contact request. Repeated calls return the same quote; another product cannot replace it. Does not request carrier pricing, accept terms or submit the application.
| Argument | Type | Description |
|---|---|---|
| formId | string | Published formId from list_products, chosen for the customer's stated insurance need. Required for a new connection; omit to resume its existing quote. |
| locale | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"formId": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{0,60}$",
"description": "Published formId from list_products, chosen for the customer's stated insurance need. Required for a new connection; omit to resume its existing quote."
},
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
}
},
"additionalProperties": false
}Use this only after the customer has seen review_quote_application's answers and consent and explicitly confirmed them in this conversation. Records acceptance of Menlo's Terms and requests eligible carrier quotes through Menlo's existing workflow. Sends application information to carriers and may authorize consumer reports. Requires separate quotes:submit OAuth permission, a current reviewToken and the exact customerConfirmation from the displayed review; OAuth and saved answers do not constitute agreement. Identical reviewToken and payload retries return the original submission without duplicate requests. Does not purchase, bind coverage, choose coverage, sign a carrier application or enroll in SMS. Other MCP clients retain broker-review holds; the reviewer demo never dispatches.
| Argument | Type | Description |
|---|---|---|
| locale* | string | |
| reviewToken* | string | Short-lived reviewToken returned by review_quote_application; never invent one |
| baseRevision* | integer | |
| termsVersion* | string | |
| customerConfirmation* | string | Exact confirmationText from the review, only after the customer explicitly confirms the displayed application and consent; never infer consent from OAuth, an answer save or an earlier request |
| integer |
| baseRevision from get_current_page or get_missing_questions |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"eventId",
"baseRevision",
"questionId"
],
"properties": {
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"maxLength": 512,
"description": "ChatGPT file ID of the attachment"
},
"file_name": {
"type": "string",
"maxLength": 500,
"description": "The attachment's file name"
},
"mime_type": {
"type": "string",
"maxLength": 200,
"description": "Type ChatGPT reports; Menlo checks the file's own bytes"
},
"download_url": {
"type": "string",
"maxLength": 4096,
"description": "Temporary download URL ChatGPT supplies for the attached file"
}
},
"description": "The document the customer attached in this conversation: a PDF, JPEG or PNG up to 5 MB. Omit it when the chat app cannot pass attached files; Menlo then returns a website upload link"
},
"locale": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en"
},
"eventId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{8,128}$",
"description": "Unique ID for this attachment; a retry of the same file reuses it, a different file takes a new one"
},
"questionId": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,159}$",
"description": "ID of a current question marked attachDocument, e.g. fair-plan.replacement_cost_estimate"
},
"baseRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "baseRevision from get_current_page or get_missing_questions"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"reviewToken",
"baseRevision",
"termsVersion",
"locale",
"customerConfirmation"
],
"properties": {
"locale": {
"enum": [
"en",
"es"
],
"type": "string"
},
"reviewToken": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Short-lived reviewToken returned by review_quote_application; never invent one"
},
"baseRevision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"termsVersion": {
"type": "string",
"const": "quote-terms-2026-10-07"
},
"customerConfirmation": {
"enum": [
"I reviewed my application, agree to Menlo’s Terms of Service and authorize Menlo to request carrier quotes with the consumer-report consent shown above.",
"Revisé mi solicitud, acepto los Términos del servicio de Menlo y autorizo a Menlo a solicitar cotizaciones a las aseguradoras con el consentimiento para informes del consumidor mostrado arriba."
],
"type": "string",
"description": "Exact confirmationText from the review, only after the customer explicitly confirms the displayed application and consent; never infer consent from OAuth, an answer save or an earlier request"
}
},
"additionalProperties": false
}