{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "version": "1.0",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "mediasites.heat-pumps/quotes",
    "title": "HeatPumps.co Quote API",
    "version": "1.0"
  },
  "description": "Submit consented heat pumps quote requests.",
  "documentationUrl": "https://heat-pumps.co/agents.md",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://heat-pumps.co/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {},
    "prompts": {}
  },
  "tools": [
    {
      "name": "list_heat_pumps_services",
      "title": "List HeatPumps.co services",
      "description": "List the heat pumps services available for quote requests.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      },
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_heat_pumps_locations",
      "title": "List HeatPumps.co locations",
      "description": "List statically configured service regions. An empty list means locations are validated dynamically.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {}
      },
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "validate_heat_pumps_quote",
      "title": "Validate heat pumps quote",
      "description": "Validate and preview a quote request without creating a lead.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "consent",
          "name",
          "email",
          "address",
          "city",
          "state",
          "zip",
          "country",
          "service_type",
          "urgency"
        ],
        "properties": {
          "consent": {
            "type": "boolean",
            "description": "Explicit consent to share PII for contractor matching",
            "const": true
          },
          "name": {
            "type": "string",
            "description": "Full name",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "format": "email",
            "maxLength": 254
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "minLength": 7,
            "maxLength": 40
          },
          "address": {
            "type": "string",
            "description": "Property street address",
            "minLength": 5,
            "maxLength": 200
          },
          "city": {
            "type": "string",
            "description": "Property city",
            "minLength": 2,
            "maxLength": 80
          },
          "state": {
            "type": "string",
            "description": "US state code",
            "enum": [
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "DC"
            ],
            "minLength": 2,
            "maxLength": 2
          },
          "zip": {
            "type": "string",
            "description": "US ZIP code",
            "pattern": "^\\d{5}(?:-\\d{4})?$"
          },
          "country": {
            "type": "string",
            "description": "Country code",
            "const": "US",
            "default": "US"
          },
          "details": {
            "type": "string",
            "description": "Project details",
            "maxLength": 4000
          },
          "agent_source": {
            "type": "string",
            "description": "Submitting agent, e.g. chatgpt",
            "maxLength": 64,
            "default": "agent"
          },
          "agent_version": {
            "type": "string",
            "description": "Optional submitting agent version",
            "maxLength": 64
          },
          "submission_method": {
            "type": "string",
            "description": "openapi, mcp, webmcp, or agent-skill",
            "enum": [
              "openapi",
              "mcp",
              "webmcp",
              "agent-skill"
            ],
            "default": "openapi"
          },
          "website": {
            "type": "string",
            "description": "Spam honeypot; leave empty",
            "maxLength": 0
          },
          "service_type": {
            "type": "string",
            "description": "Heat-pump service",
            "enum": [
              "air_source",
              "mini_split",
              "ducted",
              "geothermal",
              "commercial",
              "repair"
            ]
          },
          "home_size": {
            "type": "string",
            "description": "Approximate home size in square feet",
            "maxLength": 20
          },
          "urgency": {
            "type": "string",
            "description": "Requested timing",
            "enum": [
              "emergency",
              "soon",
              "week",
              "flexible"
            ]
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "submit_heat_pumps_quote",
      "title": "Submit heat pumps quote",
      "description": "Create a quote request only after explicit user consent. This transmits contact and property information for contractor matching.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "consent",
          "name",
          "email",
          "address",
          "city",
          "state",
          "zip",
          "country",
          "service_type",
          "urgency"
        ],
        "properties": {
          "consent": {
            "type": "boolean",
            "description": "Explicit consent to share PII for contractor matching",
            "const": true
          },
          "name": {
            "type": "string",
            "description": "Full name",
            "minLength": 2,
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "format": "email",
            "maxLength": 254
          },
          "phone": {
            "type": "string",
            "description": "Phone number",
            "minLength": 7,
            "maxLength": 40
          },
          "address": {
            "type": "string",
            "description": "Property street address",
            "minLength": 5,
            "maxLength": 200
          },
          "city": {
            "type": "string",
            "description": "Property city",
            "minLength": 2,
            "maxLength": 80
          },
          "state": {
            "type": "string",
            "description": "US state code",
            "enum": [
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "DC"
            ],
            "minLength": 2,
            "maxLength": 2
          },
          "zip": {
            "type": "string",
            "description": "US ZIP code",
            "pattern": "^\\d{5}(?:-\\d{4})?$"
          },
          "country": {
            "type": "string",
            "description": "Country code",
            "const": "US",
            "default": "US"
          },
          "details": {
            "type": "string",
            "description": "Project details",
            "maxLength": 4000
          },
          "agent_source": {
            "type": "string",
            "description": "Submitting agent, e.g. chatgpt",
            "maxLength": 64,
            "default": "agent"
          },
          "agent_version": {
            "type": "string",
            "description": "Optional submitting agent version",
            "maxLength": 64
          },
          "submission_method": {
            "type": "string",
            "description": "openapi, mcp, webmcp, or agent-skill",
            "enum": [
              "openapi",
              "mcp",
              "webmcp",
              "agent-skill"
            ],
            "default": "openapi"
          },
          "website": {
            "type": "string",
            "description": "Spam honeypot; leave empty",
            "maxLength": 0
          },
          "service_type": {
            "type": "string",
            "description": "Heat-pump service",
            "enum": [
              "air_source",
              "mini_split",
              "ducted",
              "geothermal",
              "commercial",
              "repair"
            ]
          },
          "home_size": {
            "type": "string",
            "description": "Approximate home size in square feet",
            "maxLength": 20
          },
          "urgency": {
            "type": "string",
            "description": "Requested timing",
            "enum": [
              "emergency",
              "soon",
              "week",
              "flexible"
            ]
          }
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "search_heat_pumps_catalog",
      "title": "Search HeatPumps.co product catalog",
      "description": "Search structured product specifications and eligibility data.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "q": {
            "type": "string",
            "maxLength": 80
          },
          "ahri": {
            "type": "string",
            "maxLength": 40
          },
          "brand": {
            "type": "string",
            "maxLength": 80
          },
          "type": {
            "type": "string",
            "enum": [
              "air-source",
              "mini-split",
              "ducted",
              "geothermal"
            ]
          },
          "min_seer2": {
            "type": "number",
            "description": "Minimum SEER2 efficiency",
            "minimum": 0,
            "maximum": 50
          },
          "max_seer2": {
            "type": "number",
            "description": "Maximum SEER2 efficiency",
            "minimum": 0,
            "maximum": 50
          },
          "min_hspf2": {
            "type": "number",
            "description": "Minimum HSPF2 efficiency",
            "minimum": 0,
            "maximum": 30
          },
          "max_hspf2": {
            "type": "number",
            "description": "Maximum HSPF2 efficiency",
            "minimum": 0,
            "maximum": 30
          },
          "min_cop_5": {
            "type": "number",
            "description": "Minimum coefficient of performance at 5°F",
            "minimum": 0,
            "maximum": 10
          },
          "max_cop_5": {
            "type": "number",
            "description": "Maximum coefficient of performance at 5°F",
            "minimum": 0,
            "maximum": 10
          },
          "min_heating_capacity_5_btu": {
            "type": "number",
            "description": "Minimum heating capacity at 5°F in BTU/h",
            "minimum": 0,
            "maximum": 1000000
          },
          "max_heating_capacity_5_btu": {
            "type": "number",
            "description": "Maximum heating capacity at 5°F in BTU/h",
            "minimum": 0,
            "maximum": 1000000
          },
          "min_heating_capacity_47_btu": {
            "type": "number",
            "description": "Minimum heating capacity at 47°F in BTU/h",
            "minimum": 0,
            "maximum": 1000000
          },
          "max_heating_capacity_47_btu": {
            "type": "number",
            "description": "Maximum heating capacity at 47°F in BTU/h",
            "minimum": 0,
            "maximum": 1000000
          },
          "min_nominal_tonnage": {
            "type": "number",
            "description": "Minimum nominal system tonnage",
            "minimum": 0,
            "maximum": 100
          },
          "max_nominal_tonnage": {
            "type": "number",
            "description": "Maximum nominal system tonnage",
            "minimum": 0,
            "maximum": 100
          },
          "cold_climate": {
            "type": "boolean",
            "description": "Require or exclude cold-climate performance (COP at 5°F >= 1.75 and HSPF2 >= 9)"
          },
          "grant_eligible": {
            "type": "boolean",
            "description": "Require or exclude products eligible for at least one catalogued Canadian grant program"
          },
          "sort": {
            "type": "string",
            "enum": [
              "brand",
              "seer2-desc",
              "hspf2-desc",
              "cop-5-desc",
              "heating-capacity-5-desc",
              "tonnage-asc"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 10
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5000,
            "default": 0
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ],
  "_meta": {
    "io.modelcontextprotocol": {
      "restQuoteApi": "https://heat-pumps.co/api/v1/quotes",
      "services": "https://heat-pumps.co/api/v1/services",
      "locations": "https://heat-pumps.co/api/v1/locations",
      "catalogSearch": "https://heat-pumps.co/api/v1/products/search",
      "openapi": "https://heat-pumps.co/openapi.json"
    }
  }
}
