New York Insurance

New York's published auto insurance averages. Not a quote; we are not licensed here yet.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
82%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,070Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.62% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "insurance": {
      "url": "https://newyorkautoquotes.com/mcp"
    }
  }
}

Remote endpoints

https://newyorkautoquotes.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_eligibility(state, product)

Check whether we can return quotes for a state before any personal details are collected. Call this first. Returns the states we are licensed in, what we can do in each, and how many licensed agents can take a request there.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "Two-letter US state code, e.g. NV"
    },
    "product": {
      "type": "string",
      "enum": [
        "auto"
      ],
      "default": "auto"
    }
  },
  "required": [
    "product"
  ]
}
🟢get_quotes(garaging_zip, date_of_birth, years_licensed, vehicle_year, vehicle_make_model, ...)

Return indicative auto insurance prices from multiple carriers, where this entity is licensed to show them. Takes rating facts only — no name, phone, email, SSN or licence number is required for an indicative price. Where we are not licensed to show prices, the request is still registered and a quote_id returned so licensed agents can quote it. If facts are missing the server asks for exactly what it needs and nothing more.

Input Schema

{
  "type": "object",
  "properties": {
    "garaging_zip": {
      "type": "string",
      "description": "Five-digit ZIP where the vehicle is kept"
    },
    "date_of_birth": {
      "type": "string",
      "format": "date"
    },
    "years_licensed": {
      "type": "integer"
    },
    "vehicle_year": {
      "type": "integer"
    },
    "vehicle_make_model": {
      "type": "string"
    },
    "annual_mileage": {
      "type": "integer"
    },
    "violations_3yr": {
      "type": "integer"
    },
    "coverage": {
      "type": "string",
      "enum": [
        "state minimum",
        "standard",
        "full"
      ]
    },
    "prior_continuous": {
      "type": "boolean"
    },
    "state": {
      "type": "string",
      "description": "Optional; derived from the ZIP when absent"
    }
  },
  "required": [
    "garaging_zip",
    "date_of_birth",
    "vehicle_year",
    "vehicle_make_model",
    "coverage"
  ]
}
⚪pull_requests(buyer_key, payment, credential, mandate)

Drain the queue of pool records routed to you. Requires your buyer key. Metered buyers receive an x402 payment requirement (status 402, accepts[]) until a payment is supplied. Records are projected to the scope the consumer granted — never wider.

Input Schema

{
  "type": "object",
  "properties": {
    "buyer_key": {
      "type": "string"
    },
    "payment": {
      "type": "string",
      "description": "x402 X-PAYMENT payload"
    },
    "credential": {
      "type": "string",
      "description": "MPP credential (the base64url JSON that would follow \"Authorization: Payment\")"
    },
    "mandate": {
      "type": "string",
      "description": "AP2 Payment Mandate"
    }
  },
  "required": [
    "buyer_key"
  ]
}
🟢data_use_terms

What happens to anything you send us: who receives it, for what purpose, how long it is kept, how your human revokes it, and the exact consent wording to present before request_agent_contact. Machine readable so you can evaluate the exchange before making it.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡request_agent_contact(quote_id, full_name, phone_number, email_address, preferred_channel, ...)

Connect the consumer with licensed insurance agents who can quote firm and bind. Needs the quote_id from get_quotes, the consumer's name and phone, and the consumer's explicit consent to be contacted — granted by the human, presented by you, or confirmed by the human directly at the consent URL the elicitation returns. Under scope contact_consumer up to 4 licensed agents receive the request and contact details; sell_identity additionally permits sharing with marketing partners. Nothing leaves without the consent. Every delivery and refusal is receipted, and POST /forget revokes.

Input Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string",
      "description": "From get_quotes"
    },
    "full_name": {
      "type": "string"
    },
    "phone_number": {
      "type": "string",
      "description": "US mobile or landline"
    },
    "email_address": {
      "type": "string"
    },
    "preferred_channel": {
      "type": "string",
      "enum": [
        "phone",
        "sms",
        "email"
      ]
    },
    "best_time": {
      "type": "string"
    },
    "street_address": {
      "type": "string",
      "description": "Optional. Lets a licensed agent answer firm."
    },
    "verify_token": {
      "type": "string",
      "description": "Optional. From POST /v1/verify/check after the consumer enters the code texted to them. A verified number sells at the verified price and is contacted first."
    },
    "consent": {
      "type": "object",
      "properties": {
        "granted": {
          "type": "boolean",
          "description": "true only if the human agreed to the presented text"
        },
        "scope": {
          "type": "string",
          "enum": [
            "contact_consumer",
            "sell_identity"
          ],
          "default": "contact_consumer"
        },
        "text": {
          "type": "string",
          "description": "The exact words the consumer agreed to"
        },
        "version": {
          "type": "string",
          "description": "Or \"v1\" to adopt our standard text from data_use_terms"
        },
        "evidence": {
          "type": "object",
          "description": "Optional proof, e.g. a call recording id",
          "properties": {
            "type": {
              "type": "string"
            },
            "id": {
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          }
        }
      },
      "required": [
        "granted"
      ]
    }
  },
  "required": [
    "quote_id",
    "full_name",
    "phone_number",
    "consent"
  ]
}
🟢register_agency(agency_name, npn, npn_state, states, contact_name, ...)

For an AI working for a licensed insurance agency: register the agency to receive consented consumer requests in its states. Needs the agency name, the producer NPN (National Producer Number) and its state, the states it is appointed in, the licensed contact's name, email and mobile, and how leads should arrive (email, webhook, or pull by key). The licensed contact confirms by a link sent to their email; nothing is delivered before that. The first agencies in a state receive leads free for a founding period, then prepaid credits by card. Read /join for the terms.

Input Schema

{
  "type": "object",
  "properties": {
    "agency_name": {
      "type": "string"
    },
    "npn": {
      "type": "string",
      "description": "NPN (National Producer Number). Your NPN is on your licence and at nipr.com. Digits only."
    },
    "npn_state": {
      "type": "string",
      "description": "Two-letter state that issued the licence"
    },
    "states": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Two-letter states the agency is appointed in; defaults to npn_state"
    },
    "contact_name": {
      "type": "string",
      "description": "The licensed contact, who confirms by email"
    },
    "contact_email": {
      "type": "string"
    },
    "contact_phone": {
      "type": "string",
      "description": "US mobile"
    },
    "rail": {
      "type": "string",
      "enum": [
        "email",
        "webhook",
        "pull"
      ],
      "default": "email",
      "description": "How leads arrive: email, an https webhook (HMAC-signed), or pull by key over MCP/REST"
    },
    "webhook_url": {
      "type": "string"
    },
    "website": {
      "type": "string"
    },
    "verify_token": {
      "type": "string",
      "description": "Optional: from POST /v1/verify/check after the contact enters the code texted to them"
    },
    "handoff": {
      "type": "boolean",
      "default": false,
      "description": "Optional standing order. When true, and the licence record places this agency in a city we publish, the agency becomes the one agency a consumer in that city is handed to by name: it is named in the consumer's consent before consent is given, and it receives that record alone rather than sharing it. Nothing is owed until the agency accepts a handoff, and an accepted one is $25. It is not exclusive and it is not a purchase."
    }
  },
  "required": [
    "agency_name",
    "npn",
    "npn_state",
    "contact_name",
    "contact_email",
    "contact_phone"
  ]
}
🟢market_data(state, since, until, door, vendor, ...)

The qualified demand dataset contains only requests backed by a cryptographically or IP-verified agent, or a phone-verified consumer outcome. User-agent claims, legacy rows, probes and impostors are quarantined and unavailable for sale. Qualified rows are de-identified (age band, ZIP3, vehicle, coverage, mileage band, prices shown, door, verified agent identity and outcome). Never a name, phone, email, date of birth or five-digit ZIP. Filter by state, since, until, door, vendor; limit and offset. Priced per record with a minimum per pull; pay with a prepaid buyer key, x402, MPP or AP2. Without payment the result is a 402 with the price and a preview count. A free sample and the schema are at /data.json.

Input Schema

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string"
    },
    "since": {
      "type": "string",
      "format": "date-time"
    },
    "until": {
      "type": "string",
      "format": "date-time"
    },
    "door": {
      "type": "string"
    },
    "vendor": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "default": 1000,
      "maximum": 10000
    },
    "offset": {
      "type": "integer",
      "default": 0
    },
    "buyer_key": {
      "type": "string",
      "description": "A prepaid buyer key"
    },
    "payment": {
      "type": "string",
      "description": "x402 X-PAYMENT payload"
    },
    "credential": {
      "type": "string",
      "description": "MPP credential"
    },
    "mandate": {
      "type": "string",
      "description": "AP2 Payment Mandate"
    }
  }
}
🟢agency_status(buyer_key)

For a registered agency: its states, rail, terms, founding period, queued and delivered counts, credit balance, and whether the licence was verified. Requires the buyer key issued at confirmation.

Input Schema

{
  "type": "object",
  "properties": {
    "buyer_key": {
      "type": "string",
      "description": "Issued to the licensed contact at confirmation"
    }
  },
  "required": [
    "buyer_key"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools