Skip to main content

Reading this as an AI app? Use truvo.md.

Truvo

Truvo is a licensed insurance agency. Connect your AI app to Truvo, and it can get you real car, renters, and pet insurance quotes from insurance carriers, right in your chat.

This page has three parts. The first part is for an AI app that is setting up Truvo. The second part is for you. The third part is for your AI app once it is connected, so you can give it this page too.

If you're an AI app setting up Truvo

  • Truvo is a remote MCP server at https://api.truvo.com/v1/mcp, over Streamable HTTP.
  • It signs people in with OAuth 2.1. Discovery: a request without a token gets 401 with WWW-Authenticate: Bearer resource_metadata="https://api.truvo.com/.well-known/oauth-protected-resource/v1/mcp", scope="openid profile email offline_access". The authorization server is https://auth.truvo.com (metadata at https://auth.truvo.com/.well-known/oauth-authorization-server).
  • Authorization https://auth.truvo.com/oauth2/authorize, token https://auth.truvo.com/oauth2/token, registration https://auth.truvo.com/oauth2/register. Token endpoint auth method: none.
  • Register your app yourself: Truvo accepts dynamic client registration and client ID metadata documents. There's no API key, client secret, or header to set, and no client ID to ask the person for.
  • Muse: use the client ID client_01M50HHWEGT50YDZ44PMRHC49C. Other apps register themselves.
  • Ask for the scopes openid profile email offline_access. Without offline_access, you get no refresh token and the person has to sign in again after 15 minutes.
  • Send the person to the sign-in page in their browser. They sign in with an email or text code and approve your app. Don't ask them for a code, password, or key in the chat.
  • Once connected, call get_capabilities first, and follow the rules under "For your AI agent" below.
  • If the person only wants instructions, give them the steps for their app from "Connect your AI app".

For you

Connect your AI app

Add Truvo to your AI app with this address:

https://api.truvo.com/v1/mcp

Claude (claude.ai and the desktop app)

  1. Go to Customize › Connectors.
  2. Select + Add, then Add custom connector.
  3. Name it Truvo, paste the address, and select Continue.
  4. Keep the settings Claude detects, and select Continue.
  5. Under Authentication, choose Sign in now, and select Add.
  6. In a chat, select + › Connectors and turn on Truvo.

On the Free plan, you can add one custom connector. On a Team or Enterprise plan, an owner adds it first. Claude's guide

ChatGPT (on the web)

  1. Go to chatgpt.com/plugins.
  2. Select the plus button, then Add custom MCP server.
  3. Name it Truvo, and paste the address as the server URL.
  4. Set up authentication, review the risk warning, and select I understand and want to continue.
  5. Select Create as a plugin. Install it before you use it in a chat.

OpenAI doesn't say which plans can add one, and a work account's settings can block it. OpenAI's guide

Claude Code

claude mcp add --transport http truvo https://api.truvo.com/v1/mcp

Then run /mcp in Claude Code and follow the steps in your browser. Claude Code's guide

VS Code

Run MCP: Add Server, select HTTP, and paste the address. Or add this to .vscode/mcp.json:

{
  "servers": {
    "truvo": { "type": "http", "url": "https://api.truvo.com/v1/mcp" }
  }
}

The first time you use it, VS Code opens your browser so you can sign in. VS Code's guide

Cursor

Add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "truvo": { "url": "https://api.truvo.com/v1/mcp" }
  }
}

Steps for signing in from Cursor coming soon. Cursor's guide

Muse (Meta)

Start a new chat in Muse and send:

Create a custom connector to Truvo. Its setup page is https://www.truvo.com/truvo.md

Muse reads this page and sets up the connection. When it opens Truvo's sign-in page, sign in, and select Allow access. When Muse asks for a Client ID, enter client_01M50HHWEGT50YDZ44PMRHC49C. Meta's help page

Other apps

If your app can add a remote MCP server, add the address above. If it can read web pages, you can also ask it to set up Truvo from this page.

Sign in

When your app connects, it opens Truvo's sign-in page.

  1. Enter your email, then the code Truvo emails you. For a code by text, select Use your phone instead. Text codes go to US mobile numbers only. If you don't have a Truvo account yet, this creates one. If you're already signed in to truvo.com in that browser, you skip this step.
  2. On the next screen, check the app's name and select Allow access.

Truvo then emails you that the app is connected to your Truvo account. If you didn't connect it, disconnect it and sign out.

You stay connected until you disconnect the app, or until it goes a year without use.

What your app can do

  • Get you car, renters, or pet insurance quotes. It checks which states Truvo serves for each.
  • Show you your quotes, and come back to quotes you started while signed in, even from a new chat.
  • Give you a link to buy a quote on the carrier's site, when the quote has one.
  • For car insurance, give you a link to your results on truvo.com, where you can see more options and go on to buy.
  • Tell Truvo how it went, if you say yes.

Before you get quotes

A quote is a price offer from an insurance carrier, not coverage. Truvo needs your email and a US phone number for every quote.

Before your app asks for quotes, it shows you Truvo's quote disclosure and asks whether you agree. If you don't agree, it doesn't ask for quotes. Read the quote disclosure.

Your data

  • Truvo gets the details you give your app for a quote. Quotes you start while signed in stay with your Truvo account.
  • Your AI app sees what you tell it and what Truvo sends back. The app's own privacy policy covers what it keeps.
  • Read Truvo's privacy policy.

Disconnect an app

Go to truvo.com › Settings › Connected apps and select Disconnect. The app loses access to your Truvo account right away.

Questions: support@truvo.com

For your AI agent

This part is for an AI agent that a person connected to Truvo at https://api.truvo.com/v1/mcp. The person signed in with their Truvo account, so you act for that one person. Truvo's tool descriptions, the server instructions, and agent_guidance from get_capabilities are the rules. This section sums them up. If they ever disagree with this page, follow the tools.

Tools

ToolUse it to
get_capabilitiesRead what Truvo can quote for one line: personal_auto, renters, or pet. It gives the states, the facts a request needs, the actions a quote can offer, the quote disclosure, and agent_guidance. It starts no quote.
start_quote_requestStart one quote request for one person and one line. Quotes are live, from real carriers.
get_quote_requestRead a request's status, its quotes, and their next actions.
list_quote_requestsList the requests this person started while signed in, newest first.
get_quoteRead one quote: carrier, price, coverage, how long it stays available, and next actions.
send_feedbackTell Truvo how a quote went, or about a problem with the tools, with the person's yes.

Get quotes

  1. Ask for the line. Ask whether the person wants car (personal_auto), renters, or pet insurance. Call get_capabilities with that line before you ask for any facts, and check that their state is in states.
  2. Collect the facts. Ask the person for each fact the line needs, in plain words. required_facts lists the facts every request needs, and required_facts_schema gives the shape of application. Send only what the person told you. Never fill in a fact with a guess. Every request needs the person's email and a US phone number. Before quoting auto, ask for each vehicle's VIN and the recommended driver and household facts. Go ahead without any the person doesn't want to give.
  3. Show the disclosure. Show the person the quote_disclosure text from get_capabilities as written, and ask whether they agree. Request quotes only once they do. Send its version in quote_disclosure_version, and set quote_disclosure_accepted to true only when they agree. Truvo records that yes as the person's consent to get quotes, to be contacted by phone, text, and email, and for auto to a credit check.
  4. Start the request. Call start_quote_request. Send a new random UUID in request_key for each new quote, and resend the same one only when you retry the same call. Keep the read_handle it returns. If the answer is a needs_information error, ask the person for each missing field it lists, then send the request again.
  5. Wait for the result. Call get_quote_request with the request's id and its read_handle, wait_seconds up to 20, and since_version from your last answer. While the status is in_progress, read again. If the server answers at once, wait 1 second before you read again. Branch on status: in_progress, action_required, completed, incomplete, or failed, and handle a value you don't know. status_details.message says why, in words you can show the person. failed is an error on Truvo's side: follow status_details.retry_action. incomplete is final, and it isn't an error.
  6. Present the quotes honestly. A quote is a price offer, not coverage. One carrier's quote is not a market comparison. A value that is unknown stays unknown. When there are no quotes, use status_details.message.
    • Quotes are ordered by answer time, not ranked.
    • price.premium is in US cents (amount_minor), for the whole term of term_months months, even when billed monthly. When a monthly figure helps, divide the premium by term_months and round up to the dollar. Call it the premium spread over the term, not a payment plan, and skip it if term_months is null.
    • A renters premium already includes every fee in price.fees. On other lines, the quote doesn't say whether it does.
  7. Offer only the next actions a quote lists.
    • continue_on_carrier_site: the person buys on the carrier's site. Give them the url as it is. Some carrier links open only once, so don't fetch or preview it. The person should finish buying in the browser where they first open it.
    • continue_on_truvo: Truvo's results page for an auto request, where the person sees more options and can go on to buy. Give them this link as well as any carrier link. The page shows the person's details to anyone who opens it, so give it only to them.
  8. Offer feedback. When a quote request finishes, when the person seems frustrated, or when a tool gives you trouble you can't fix, ask whether they'd like you to tell Truvo how it went. Show them the report and use send_feedback only if they agree, at most once per conversation unless they ask. Leave out personal data.

Come back later

list_quote_requests lists the requests this person started while signed in. A request started while signed in reads by ID from any chat, with or without its read_handle.