bizinsured

AI-powered commercial insurance carrier recommendations for small businesses.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
92%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,286Tokens (tool definitions)
~3.6 KBTypical response size
Moderate attention impact (1.79% 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": {
    "bizinsured": {
      "url": "https://bizinsured.ai/mcp"
    }
  }
}

Remote endpoints

https://bizinsured.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢classify_business(business_description, state)

Use this first when the user describes what their business does, to find its insurance classification before suggesting coverages or estimating premiums. Pass only the business activity, for example 'bakery' or 'HVAC contractor'; leave out the business name, city and other details. Returns up to five candidate NAICS, ISO general liability and NCCI workers' comp code sets with a text-similarity score (not an underwriting confidence) and needsClarification. When needsClarification is true, ask the user which activity fits instead of choosing one.

Input Schema

{
  "type": "object",
  "properties": {
    "business_description": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "The business activity only, e.g. 'bakery' or 'HVAC contractor'"
    },
    "state": {
      "type": "string",
      "description": "Two-letter code of the US state where the business operates, not the user's current location"
    }
  },
  "required": [
    "business_description"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢suggest_coverages(business_description, state, naics_code, iso_gl_code, employee_count, ...)

Use this when the user asks which commercial insurance coverages their business needs. Returns coverages ranked essential, recommended or optional, each with a reason, based on the confirmed class codes and the facts the user stated. Pass naics_code and iso_gl_code from classify_business after the user confirms them, and leave out facts the user did not give. Returns no prices; use get_carrier_recommendations for estimates.

Input Schema

{
  "type": "object",
  "properties": {
    "business_description": {
      "type": "string",
      "minLength": 2,
      "maxLength": 500,
      "description": "The business activity, as confirmed with classify_business"
    },
    "state": {
      "type": "string",
      "description": "Two-letter code of the US state where the business operates, not the user's current location"
    },
    "naics_code": {
      "description": "Confirmed NAICS code from classify_business",
      "type": "string",
      "pattern": "^\\d{6}$"
    },
    "iso_gl_code": {
      "description": "Confirmed ISO GL code. For NAICS 531110 it separates 1-4 family rentals (63010) from apartment buildings (60010).",
      "type": "string",
      "pattern": "^\\d{3,6}$"
    },
    "employee_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "has_vehicles": {
      "type": "boolean"
    },
    "has_physical_location": {
      "type": "boolean"
    },
    "serves_food": {
      "type": "boolean"
    },
    "serves_alcohol": {
      "type": "boolean"
    },
    "handles_customer_data": {
      "type": "boolean"
    },
    "does_delivery": {
      "type": "boolean"
    },
    "vertical": {
      "description": "topMatch.vertical from classify_business; derived from the class codes when omitted",
      "type": "string",
      "maxLength": 50
    }
  },
  "required": [
    "business_description",
    "state"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢explain_coverage(coverage_type)

Use this when the user asks what a commercial insurance coverage is or how two coverages differ. Returns a plain-language explanation of one coverage type; call it once per coverage. It cannot tell whether a specific policy covers a specific claim.

Input Schema

{
  "type": "object",
  "properties": {
    "coverage_type": {
      "type": "string",
      "enum": [
        "BOP",
        "GL",
        "WC",
        "commercial_auto",
        "liquor_liability",
        "cyber",
        "professional_liability",
        "EPLI",
        "umbrella",
        "dwelling_fire",
        "commercial_property",
        "loss_of_rents",
        "inland_marine",
        "stop_gap_employers_liability",
        "food_spoilage"
      ],
      "description": "general liability = GL, workers comp = WC, business owners policy = BOP, errors and omissions = professional_liability, employment practices = EPLI, liquor = liquor_liability"
    }
  },
  "required": [
    "coverage_type"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_carrier_recommendations(business_description, naics_code, iso_gl_code, state, annual_revenue, ...)

Use this when the user wants premium estimates or carrier options for BOP, GL, WC or commercial_auto and you have the confirmed classification, the business's state, annual revenue and at least one coverage. Returns carriers whose appetite data matches, market budget estimates (not quotes) with sources, assumptions and caveats, and explicit estimateIssues for missing or unsupported inputs. Workers' comp in OH, WA, ND and WY is returned separately in stateFundEstimates; the Ohio figure is an estimate from published BWC rates, not a BWC quote. Omit any value the user did not give; never infer payroll from revenue. Each call saves the inputs and results in BizInsured's records and returns a recommendationId to pass to connect_with_agent; nothing is sent to carriers or agents.

Input Schema

{
  "type": "object",
  "properties": {
    "business_description": {
      "description": "The business activity, as confirmed with classify_business",
      "type": "string",
      "maxLength": 500
    },
    "naics_code": {
      "type": "string",
      "pattern": "^\\d{6}$"
    },
    "iso_gl_code": {
      "type": "string",
      "pattern": "^\\d{3,6}$"
    },
    "state": {
      "type": "string",
      "description": "Two-letter code of the US state where the business operates"
    },
    "annual_revenue": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "employee_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "square_footage": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "vehicle_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "years_in_business": {
      "type": "number",
      "minimum": 0,
      "maximum": 300
    },
    "prior_losses": {
      "type": "boolean"
    },
    "desired_coverages": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "BOP",
          "GL",
          "WC",
          "commercial_auto"
        ]
      }
    },
    "coverage_limits": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "enum": [
          "BOP",
          "GL",
          "WC",
          "commercial_auto"
        ]
      },
      "additionalProperties": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      }
    },
    "deductibles": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "enum": [
          "BOP",
          "GL",
          "WC",
          "commercial_auto"
        ]
      },
      "additionalProperties": {
        "type": "number",
        "minimum": 0,
        "maximum": 1000000000000
      }
    },
    "annual_payroll": {
      "description": "Actual annual payroll; never infer from revenue",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "payroll_by_class": {
      "description": "Actual payroll split by state and workers compensation classification",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string"
          },
          "class_code": {
            "type": "string",
            "pattern": "^\\d{1,6}$"
          },
          "class_system": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30
          },
          "payroll": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000000
          }
        },
        "required": [
          "state",
          "class_code",
          "payroll"
        ]
      }
    },
    "experience_modifier": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10
    },
    "effective_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "building_value": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "business_property_value": {
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "has_alcohol": {
      "type": "boolean"
    },
    "has_delivery": {
      "type": "boolean"
    }
  },
  "required": [
    "state",
    "annual_revenue",
    "desired_coverages"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡connect_with_agent(recommendation_id, risk_profile, user_state, user_contact_preference)

Use this only when the user asks to speak with an agent, get real quotes or have their coverage reviewed. Saves a referral with the business details, and the linked estimate when you pass recommendation_id, for review by a licensed agent: the BizInsured team for Ohio businesses, or a partner agent elsewhere when one is available. Returns a bizinsured.ai link where the user can choose to submit contact details. The tool does not contact anyone or request a quote, and nothing is shared with an agent until the user submits that form. Do not ask for names, emails or phone numbers in chat. Each call creates a new referral, so call it once per request.

Input Schema

{
  "type": "object",
  "properties": {
    "recommendation_id": {
      "description": "recommendationId from get_carrier_recommendations, when you have one",
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "risk_profile": {
      "type": "object",
      "properties": {
        "business_description": {
          "type": "string",
          "maxLength": 500
        },
        "naics_code": {
          "description": "Confirmed NAICS code from classify_business",
          "type": "string",
          "pattern": "^\\d{6}$"
        },
        "iso_gl_code": {
          "type": "string",
          "pattern": "^\\d{3,6}$"
        },
        "ncci_wc_code": {
          "type": "string",
          "pattern": "^\\d{3,6}$"
        },
        "vertical": {
          "type": "string",
          "maxLength": 50
        },
        "annual_revenue": {
          "type": "number",
          "minimum": 0
        },
        "employee_count": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        "years_in_business": {
          "type": "number",
          "minimum": 0,
          "maximum": 300
        },
        "prior_losses": {
          "type": "boolean"
        },
        "current_carrier": {
          "type": "string",
          "maxLength": 200
        },
        "current_policy_expiration": {
          "description": "When the current policy expires or renews (YYYY-MM-DD), if known. Omit dates more than 365 days past or 730 days ahead",
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "desired_coverages": {
          "description": "Every coverage the user asked for, including ones BizInsured cannot estimate",
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          }
        }
      }
    },
    "user_state": {
      "type": "string",
      "description": "Two-letter code of the US state where the business operates, not the user's current location"
    },
    "user_contact_preference": {
      "default": "either",
      "type": "string",
      "enum": [
        "email",
        "phone",
        "either"
      ]
    }
  },
  "required": [
    "risk_profile",
    "user_state"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools