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
401withWWW-Authenticate: Bearer resource_metadata="https://api.truvo.com/.well-known/oauth-protected-resource/v1/mcp", scope="openid profile email offline_access". The authorization server ishttps://auth.truvo.com(metadata athttps://auth.truvo.com/.well-known/oauth-authorization-server). - Authorization
https://auth.truvo.com/oauth2/authorize, tokenhttps://auth.truvo.com/oauth2/token, registrationhttps://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. Withoutoffline_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_capabilitiesfirst, 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/mcpClaude (claude.ai and the desktop app)
- Go to Customize › Connectors.
- Select + Add, then Add custom connector.
- Name it Truvo, paste the address, and select Continue.
- Keep the settings Claude detects, and select Continue.
- Under Authentication, choose Sign in now, and select Add.
- 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)
- Go to chatgpt.com/plugins.
- Select the plus button, then Add custom MCP server.
- Name it Truvo, and paste the address as the server URL.
- Set up authentication, review the risk warning, and select I understand and want to continue.
- 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/mcpThen 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.mdMuse 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.
- 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.
- 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
| Tool | Use it to |
|---|---|
get_capabilities | Read 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_request | Start one quote request for one person and one line. Quotes are live, from real carriers. |
get_quote_request | Read a request's status, its quotes, and their next actions. |
list_quote_requests | List the requests this person started while signed in, newest first. |
get_quote | Read one quote: carrier, price, coverage, how long it stays available, and next actions. |
send_feedback | Tell Truvo how a quote went, or about a problem with the tools, with the person's yes. |
Get quotes
- Ask for the line. Ask whether the person wants car (
personal_auto), renters, or pet insurance. Callget_capabilitieswith that line before you ask for any facts, and check that their state is instates. - Collect the facts. Ask the person for each fact the line needs, in plain words.
required_factslists the facts every request needs, andrequired_facts_schemagives the shape ofapplication. 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. - Show the disclosure. Show the person the
quote_disclosuretext fromget_capabilitiesas written, and ask whether they agree. Request quotes only once they do. Send itsversioninquote_disclosure_version, and setquote_disclosure_acceptedtotrueonly 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. - Start the request. Call
start_quote_request. Send a new random UUID inrequest_keyfor each new quote, and resend the same one only when you retry the same call. Keep theread_handleit returns. If the answer is aneeds_informationerror, ask the person for each missing field it lists, then send the request again. - Wait for the result. Call
get_quote_requestwith the request'sidand itsread_handle,wait_secondsup to 20, andsince_versionfrom your last answer. While the status isin_progress, read again. If the server answers at once, wait 1 second before you read again. Branch onstatus:in_progress,action_required,completed,incomplete, orfailed, and handle a value you don't know.status_details.messagesays why, in words you can show the person.failedis an error on Truvo's side: followstatus_details.retry_action.incompleteis final, and it isn't an error. - 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.premiumis in US cents (amount_minor), for the whole term ofterm_monthsmonths, even when billed monthly. When a monthly figure helps, divide the premium byterm_monthsand round up to the dollar. Call it the premium spread over the term, not a payment plan, and skip it ifterm_monthsis null.- A renters premium already includes every fee in
price.fees. On other lines, the quote doesn't say whether it does.
- Offer only the next actions a quote lists.
continue_on_carrier_site: the person buys on the carrier's site. Give them theurlas 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.
- 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_feedbackonly 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.