> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.truvo.com/llms.txt.

# get_capabilities

POST https://api.truvo.com/v1/mcp#get_capabilities
Content-Type: application/json

Reference: https://docs.truvo.com/api-reference/call-get-capabilities

## Authentication

- `Authorization` header (bearer token, required) — Your Truvo API key, sent as a bearer token. The prefix selects sandbox (trv_sandbox_) or live (trv_live_).

## Request

### Headers

- `Accept` (string, required, default: application/json, text/event-stream)

### Body (application/json)

This endpoint expects a GetCapabilitiesCall.

- `jsonrpc` (enum, required)
  - Allowed values: `2.0`
- `id` (integer, required)
- `method` (enum, required)
  - Allowed values: `tools/call`
- `params` (GetCapabilitiesCallParams, required)

## Response

### 200

The JSON-RPC answer.

- `jsonrpc` (enum, optional)
  - Allowed values: `2.0`
- `id` (integer, optional)
- `result` (ToolCallAnswerResult, optional)
- `error` (ToolCallAnswerError, optional)

## Types

### GetCapabilitiesCallParams

- `name` (enum, required)
  - Allowed values: `get_capabilities`
- `arguments` (GetCapabilitiesArguments, required)

### ToolCallAnswerResult

- `content` (list of ToolCallAnswerResultContentItems, optional)
- `structuredContent` (ToolCallAnswerResultStructuredContent, optional)
- `isError` (boolean, optional)

### ToolCallAnswerError

- `code` (integer, optional)
- `message` (string, optional)

### GetCapabilitiesArguments

- `line` (enum, required)
  - Allowed values: `personal_auto`, `renters`, `pet`

### ToolCallAnswerResultContentItems

### ToolCallAnswerResultStructuredContent

## Examples

### Auto

**Request**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "personal_auto"
    }
  }
}
```

**Response**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "text": "personal_auto (sandbox): states AZ, TX. Required facts: application.applicant.name.first_name, application.applicant.name.last_name, application.drivers, application.drivers.0.date_of_birth, application.drivers.0.gender, application.drivers.0.name.first_name, application.drivers.0.name.last_name, application.garaging_address.city, application.garaging_address.line1, application.garaging_address.postal_code, application.garaging_address.state, application.protection.bodily_injury_per_accident_minor, application.protection.bodily_injury_per_person_minor, application.protection.property_damage_minor, application.vehicles, application.vehicles.0.annual_mileage, application.vehicles.0.collision_deductible_minor, application.vehicles.0.comprehensive_deductible_minor, application.vehicles.0.make, application.vehicles.0.model, application.vehicles.0.ownership, application.vehicles.0.use, application.vehicles.0.year. Actions a quote can offer: read_status.",
        "type": "text"
      },
      {
        "text": "{\"capabilities\":[{\"line\":\"personal_auto\",\"environment\":\"sandbox\",\"states\":[\"AZ\",\"TX\"],\"required_facts\":[\"application.applicant.name.first_name\",\"application.applicant.name.last_name\",\"application.drivers\",\"application.drivers.0.date_of_birth\",\"application.drivers.0.gender\",\"application.drivers.0.name.first_name\",\"application.drivers.0.name.last_name\",\"application.garaging_address.city\",\"application.garaging_address.line1\",\"application.garaging_address.postal_code\",\"application.garaging_address.state\",\"application.protection.bodily_injury_per_accident_minor\",\"application.protection.bodily_injury_per_person_minor\",\"application.protection.property_damage_minor\",\"application.vehicles\",\"application.vehicles.0.annual_mileage\",\"application.vehicles.0.collision_deductible_minor\",\"application.vehicles.0.comprehensive_deductible_minor\",\"application.vehicles.0.make\",\"application.vehicles.0.model\",\"application.vehicles.0.ownership\",\"application.vehicles.0.use\",\"application.vehicles.0.year\"],\"required_facts_schema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$ref\":\"#/$defs/PersonalAutoIntake\",\"$defs\":{\"PersonalAutoIntake\":{\"type\":\"object\",\"properties\":{\"applicant\":{\"$ref\":\"#/$defs/AutoApplicantIntake\"},\"garaging_address\":{\"$ref\":\"#/$defs/PostalAddressIntake\"},\"drivers\":{\"maxItems\":10,\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/DriverIntake\"}},\"vehicles\":{\"maxItems\":10,\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/VehicleIntake\"}},\"protection\":{\"$ref\":\"#/$defs/AutoProtectionIntake\"},\"credit_mode\":{\"$ref\":\"#/$defs/CreditMode\"}},\"additionalProperties\":false},\"AutoApplicantIntake\":{\"type\":\"object\",\"properties\":{\"name\":{\"$ref\":\"#/$defs/PersonNameIntake\"},\"email\":{\"anyOf\":[{\"type\":\"string\",\"maxLength\":254,\"format\":\"email\",\"pattern\":\"^(?!\\\\.)(?!.*\\\\.\\\\.)([A-Za-z0-9_'+\\\\-\\\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\\\-]*\\\\.)+[A-Za-z]{2,}$\"},{\"type\":\"null\"}]},\"phone\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":32},{\"type\":\"null\"}]}},\"additionalProperties\":false},\"PersonNameIntake\":{\"type\":\"object\",\"properties\":{\"first_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"last_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"additionalProperties\":false},\"PostalAddressIntake\":{\"type\":\"object\",\"properties\":{\"line1\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"line2\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},{\"type\":\"null\"}]},\"city\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"state\":{\"$ref\":\"#/$defs/StateCode\"},\"postal_code\":{\"$ref\":\"#/$defs/PostalCode\"}},\"additionalProperties\":false},\"StateCode\":{\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\"},\"PostalCode\":{\"type\":\"string\",\"pattern\":\"^\\\\d{5}(?:-\\\\d{4})?$\"},\"DriverIntake\":{\"type\":\"object\",\"properties\":{\"name\":{\"$ref\":\"#/$defs/PersonNameIntake\"},\"date_of_birth\":{\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"gender\":{\"$ref\":\"#/$defs/DriverGender\"},\"relationship\":{\"$ref\":\"#/$defs/DriverRelationship\"}},\"additionalProperties\":false},\"DriverGender\":{\"type\":\"string\",\"enum\":[\"female\",\"male\",\"non-binary\"]},\"DriverRelationship\":{\"type\":\"string\",\"enum\":[\"spouse\",\"child\",\"parent\",\"sibling\",\"domestic_partner\",\"other\"]},\"VehicleIntake\":{\"type\":\"object\",\"properties\":{\"vin\":{\"$ref\":\"#/$defs/FullVin\"},\"year\":{\"type\":\"integer\",\"minimum\":1900,\"maximum\":2100},\"make\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"model\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"trim\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"ownership\":{\"$ref\":\"#/$defs/VehicleOwnership\"},\"use\":{\"$ref\":\"#/$defs/VehicleUse\"},\"annual_mileage\":{\"type\":\"integer\",\"minimum\":-9007199254740991,\"maximum\":9007199254740991},\"assigned_driver\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"The driver assigned to this vehicle, as a position in drivers that counts from 1: 1 is the first entry in drivers. With two drivers, send 2 for the second driver, application.drivers.1.\"},\"comprehensive_deductible_minor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"The comprehensive deductible for this vehicle, in US cents: 50000 is $500.00. The allowed values cover every state. A state can allow fewer.\",\"enum\":[0,5000,10000,15000,20000,25000,30000,35000,40000,45000,47500,50000,55000,60000,70000,75000,80000,97500,100000,150000,200000,250000,300000,500000]},\"collision_deductible_minor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"The collision deductible for this vehicle, in US cents: 50000 is $500.00. The allowed values cover every state. A state can allow fewer.\",\"enum\":[0,5000,10000,15000,20000,25000,30000,35000,40000,45000,47500,50000,55000,60000,70000,75000,80000,90000,95000,97500,100000,150000,200000,250000,300000,500000]}},\"additionalProperties\":false},\"FullVin\":{\"type\":\"string\",\"pattern\":\"^[A-Z0-9]{17}$\"},\"VehicleOwnership\":{\"type\":\"string\",\"enum\":[\"owned\",\"financed\",\"leased\"]},\"VehicleUse\":{\"type\":\"string\",\"enum\":[\"pleasure\",\"work_school\",\"business\",\"artisan\",\"farm\"]},\"AutoProtectionIntake\":{\"type\":\"object\",\"properties\":{\"bodily_injury_per_person_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"The bodily injury limit for each person, in US cents: 2500000 is $25,000.00. Send both bodily injury limits or neither. The carriers rate only these per-person/per-accident pairs: 1000000/2000000, 1500000/3000000, 2000000/4000000, 2500000/5000000, 2500000/6500000, 2500000/10000000, 3000000/6000000, 3000000/6500000, 3500000/7000000, 5000000/5000000, 5000000/10000000, 5000000/20000000, 6000000/12000000, 7500000/15000000, 10000000/10000000, 10000000/20000000, 10000000/30000000, 15000000/30000000, 25000000/30000000, 25000000/50000000, 30000000/30000000, 30000000/50000000, 30000000/60000000, 50000000/50000000, 50000000/100000000, 75000000/75000000, 100000000/100000000, 500000000/500000000. The allowed values cover every state. A state can allow fewer.\",\"enum\":[1000000,1500000,2000000,2500000,3000000,3500000,5000000,6000000,7500000,10000000,15000000,25000000,30000000,50000000,75000000,100000000,500000000]},\"bodily_injury_per_accident_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"The bodily injury limit for each accident, in US cents: 5000000 is $50,000.00. Send it with bodily_injury_per_person_minor, as one of the pairs that field lists. The allowed values cover every state. A state can allow fewer.\",\"enum\":[2000000,3000000,4000000,5000000,6000000,6500000,7000000,10000000,12000000,15000000,20000000,30000000,50000000,60000000,75000000,100000000,500000000]},\"property_damage_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"The property damage limit, in US cents: 2500000 is $25,000.00. The allowed values cover every state. A state can allow fewer.\",\"enum\":[500000,1000000,1500000,2000000,2500000,3000000,3500000,4000000,5000000,6500000,7500000,10000000,20000000,25000000,30000000,50000000,75000000,100000000]},\"coverage_package\":{\"$ref\":\"#/$defs/CoveragePackage\"},\"tort_type\":{\"$ref\":\"#/$defs/TortType\"},\"stacked_uninsured_motorist\":{\"type\":\"boolean\"},\"stacked_underinsured_motorist\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"CoveragePackage\":{\"type\":\"string\",\"enum\":[\"minimum\",\"liability\",\"standard\",\"full\"]},\"TortType\":{\"type\":\"string\",\"enum\":[\"full\",\"limited\"]},\"CreditMode\":{\"type\":\"string\",\"enum\":[\"declined\",\"consented\"]}},\"required\":[\"applicant\",\"drivers\",\"garaging_address\",\"protection\",\"vehicles\"]},\"actions\":[{\"type\":\"read_status\",\"states\":[\"AZ\",\"TX\"]}],\"sandbox\":{\"scenarios_url\":\"/v1/sandbox/scenarios\"},\"quote_disclosure\":null}]}",
        "type": "text"
      }
    ],
    "structuredContent": {
      "capabilities": [
        {
          "actions": [
            {
              "states": [
                "AZ",
                "TX"
              ],
              "type": "read_status"
            }
          ],
          "environment": "sandbox",
          "line": "personal_auto",
          "quote_disclosure": null,
          "required_facts": [
            "application.applicant.name.first_name",
            "application.applicant.name.last_name",
            "application.drivers",
            "application.drivers.0.date_of_birth",
            "application.drivers.0.gender",
            "application.drivers.0.name.first_name",
            "application.drivers.0.name.last_name",
            "application.garaging_address.city",
            "application.garaging_address.line1",
            "application.garaging_address.postal_code",
            "application.garaging_address.state",
            "application.protection.bodily_injury_per_accident_minor",
            "application.protection.bodily_injury_per_person_minor",
            "application.protection.property_damage_minor",
            "application.vehicles",
            "application.vehicles.0.annual_mileage",
            "application.vehicles.0.collision_deductible_minor",
            "application.vehicles.0.comprehensive_deductible_minor",
            "application.vehicles.0.make",
            "application.vehicles.0.model",
            "application.vehicles.0.ownership",
            "application.vehicles.0.use",
            "application.vehicles.0.year"
          ],
          "required_facts_schema": {
            "$defs": {
              "AutoApplicantIntake": {
                "additionalProperties": false,
                "properties": {
                  "email": {
                    "anyOf": [
                      {
                        "format": "email",
                        "maxLength": 254,
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "name": {
                    "$ref": "#/$defs/PersonNameIntake"
                  },
                  "phone": {
                    "anyOf": [
                      {
                        "maxLength": 32,
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "type": "object"
              },
              "AutoProtectionIntake": {
                "additionalProperties": false,
                "properties": {
                  "bodily_injury_per_accident_minor": {
                    "description": "The bodily injury limit for each accident, in US cents: 5000000 is $50,000.00. Send it with bodily_injury_per_person_minor, as one of the pairs that field lists. The allowed values cover every state. A state can allow fewer.",
                    "enum": [
                      2000000,
                      3000000,
                      4000000,
                      5000000,
                      6000000,
                      6500000,
                      7000000,
                      10000000,
                      12000000,
                      15000000,
                      20000000,
                      30000000,
                      50000000,
                      60000000,
                      75000000,
                      100000000,
                      500000000
                    ],
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "bodily_injury_per_person_minor": {
                    "description": "The bodily injury limit for each person, in US cents: 2500000 is $25,000.00. Send both bodily injury limits or neither. The carriers rate only these per-person/per-accident pairs: 1000000/2000000, 1500000/3000000, 2000000/4000000, 2500000/5000000, 2500000/6500000, 2500000/10000000, 3000000/6000000, 3000000/6500000, 3500000/7000000, 5000000/5000000, 5000000/10000000, 5000000/20000000, 6000000/12000000, 7500000/15000000, 10000000/10000000, 10000000/20000000, 10000000/30000000, 15000000/30000000, 25000000/30000000, 25000000/50000000, 30000000/30000000, 30000000/50000000, 30000000/60000000, 50000000/50000000, 50000000/100000000, 75000000/75000000, 100000000/100000000, 500000000/500000000. The allowed values cover every state. A state can allow fewer.",
                    "enum": [
                      1000000,
                      1500000,
                      2000000,
                      2500000,
                      3000000,
                      3500000,
                      5000000,
                      6000000,
                      7500000,
                      10000000,
                      15000000,
                      25000000,
                      30000000,
                      50000000,
                      75000000,
                      100000000,
                      500000000
                    ],
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "coverage_package": {
                    "$ref": "#/$defs/CoveragePackage"
                  },
                  "property_damage_minor": {
                    "description": "The property damage limit, in US cents: 2500000 is $25,000.00. The allowed values cover every state. A state can allow fewer.",
                    "enum": [
                      500000,
                      1000000,
                      1500000,
                      2000000,
                      2500000,
                      3000000,
                      3500000,
                      4000000,
                      5000000,
                      6500000,
                      7500000,
                      10000000,
                      20000000,
                      25000000,
                      30000000,
                      50000000,
                      75000000,
                      100000000
                    ],
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "stacked_underinsured_motorist": {
                    "type": "boolean"
                  },
                  "stacked_uninsured_motorist": {
                    "type": "boolean"
                  },
                  "tort_type": {
                    "$ref": "#/$defs/TortType"
                  }
                },
                "type": "object"
              },
              "CoveragePackage": {
                "enum": [
                  "minimum",
                  "liability",
                  "standard",
                  "full"
                ],
                "type": "string"
              },
              "CreditMode": {
                "enum": [
                  "declined",
                  "consented"
                ],
                "type": "string"
              },
              "DriverGender": {
                "enum": [
                  "female",
                  "male",
                  "non-binary"
                ],
                "type": "string"
              },
              "DriverIntake": {
                "additionalProperties": false,
                "properties": {
                  "date_of_birth": {
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "type": "string"
                  },
                  "gender": {
                    "$ref": "#/$defs/DriverGender"
                  },
                  "name": {
                    "$ref": "#/$defs/PersonNameIntake"
                  },
                  "relationship": {
                    "$ref": "#/$defs/DriverRelationship"
                  }
                },
                "type": "object"
              },
              "DriverRelationship": {
                "enum": [
                  "spouse",
                  "child",
                  "parent",
                  "sibling",
                  "domestic_partner",
                  "other"
                ],
                "type": "string"
              },
              "FullVin": {
                "pattern": "^[A-Z0-9]{17}$",
                "type": "string"
              },
              "PersonNameIntake": {
                "additionalProperties": false,
                "properties": {
                  "first_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "last_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "PersonalAutoIntake": {
                "additionalProperties": false,
                "properties": {
                  "applicant": {
                    "$ref": "#/$defs/AutoApplicantIntake"
                  },
                  "credit_mode": {
                    "$ref": "#/$defs/CreditMode"
                  },
                  "drivers": {
                    "items": {
                      "$ref": "#/$defs/DriverIntake"
                    },
                    "maxItems": 10,
                    "type": "array"
                  },
                  "garaging_address": {
                    "$ref": "#/$defs/PostalAddressIntake"
                  },
                  "protection": {
                    "$ref": "#/$defs/AutoProtectionIntake"
                  },
                  "vehicles": {
                    "items": {
                      "$ref": "#/$defs/VehicleIntake"
                    },
                    "maxItems": 10,
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "PostalAddressIntake": {
                "additionalProperties": false,
                "properties": {
                  "city": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "line1": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "line2": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "postal_code": {
                    "$ref": "#/$defs/PostalCode"
                  },
                  "state": {
                    "$ref": "#/$defs/StateCode"
                  }
                },
                "type": "object"
              },
              "PostalCode": {
                "pattern": "^\\d{5}(?:-\\d{4})?$",
                "type": "string"
              },
              "StateCode": {
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              },
              "TortType": {
                "enum": [
                  "full",
                  "limited"
                ],
                "type": "string"
              },
              "VehicleIntake": {
                "additionalProperties": false,
                "properties": {
                  "annual_mileage": {
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991,
                    "type": "integer"
                  },
                  "assigned_driver": {
                    "description": "The driver assigned to this vehicle, as a position in drivers that counts from 1: 1 is the first entry in drivers. With two drivers, send 2 for the second driver, application.drivers.1.",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "collision_deductible_minor": {
                    "description": "The collision deductible for this vehicle, in US cents: 50000 is $500.00. The allowed values cover every state. A state can allow fewer.",
                    "enum": [
                      0,
                      5000,
                      10000,
                      15000,
                      20000,
                      25000,
                      30000,
                      35000,
                      40000,
                      45000,
                      47500,
                      50000,
                      55000,
                      60000,
                      70000,
                      75000,
                      80000,
                      90000,
                      95000,
                      97500,
                      100000,
                      150000,
                      200000,
                      250000,
                      300000,
                      500000
                    ],
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "comprehensive_deductible_minor": {
                    "description": "The comprehensive deductible for this vehicle, in US cents: 50000 is $500.00. The allowed values cover every state. A state can allow fewer.",
                    "enum": [
                      0,
                      5000,
                      10000,
                      15000,
                      20000,
                      25000,
                      30000,
                      35000,
                      40000,
                      45000,
                      47500,
                      50000,
                      55000,
                      60000,
                      70000,
                      75000,
                      80000,
                      97500,
                      100000,
                      150000,
                      200000,
                      250000,
                      300000,
                      500000
                    ],
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "make": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "model": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "ownership": {
                    "$ref": "#/$defs/VehicleOwnership"
                  },
                  "trim": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "use": {
                    "$ref": "#/$defs/VehicleUse"
                  },
                  "vin": {
                    "$ref": "#/$defs/FullVin"
                  },
                  "year": {
                    "maximum": 2100,
                    "minimum": 1900,
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "VehicleOwnership": {
                "enum": [
                  "owned",
                  "financed",
                  "leased"
                ],
                "type": "string"
              },
              "VehicleUse": {
                "enum": [
                  "pleasure",
                  "work_school",
                  "business",
                  "artisan",
                  "farm"
                ],
                "type": "string"
              }
            },
            "$ref": "#/$defs/PersonalAutoIntake",
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "required": [
              "applicant",
              "drivers",
              "garaging_address",
              "protection",
              "vehicles"
            ]
          },
          "sandbox": {
            "scenarios_url": "/v1/sandbox/scenarios"
          },
          "states": [
            "AZ",
            "TX"
          ]
        }
      ]
    }
  }
}
```

**SDK Code**

```python Auto
import requests

url = "https://api.truvo.com/v1/mcp#get_capabilities"

payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_capabilities",
        "arguments": { "line": "personal_auto" }
    }
}
headers = {
    "Accept": "application/json, text/event-stream",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Auto
const url = 'https://api.truvo.com/v1/mcp#get_capabilities';
const options = {
  method: 'POST',
  headers: {
    Accept: 'application/json, text/event-stream',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_capabilities","arguments":{"line":"personal_auto"}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Auto
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.truvo.com/v1/mcp#get_capabilities"

	payload := strings.NewReader("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"personal_auto\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Accept", "application/json, text/event-stream")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Auto
require 'uri'
require 'net/http'

url = URI("https://api.truvo.com/v1/mcp#get_capabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json, text/event-stream'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"personal_auto\"\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Auto
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.truvo.com/v1/mcp#get_capabilities")
  .header("Accept", "application/json, text/event-stream")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"personal_auto\"\n    }\n  }\n}")
  .asString();
```

```php Auto
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.truvo.com/v1/mcp#get_capabilities', [
  'body' => '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "personal_auto"
    }
  }
}',
  'headers' => [
    'Accept' => 'application/json, text/event-stream',
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Auto
using RestSharp;

var client = new RestClient("https://api.truvo.com/v1/mcp#get_capabilities");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json, text/event-stream");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"personal_auto\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Auto
import Foundation

let headers = [
  "Accept": "application/json, text/event-stream",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": [
    "name": "get_capabilities",
    "arguments": ["line": "personal_auto"]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.truvo.com/v1/mcp#get_capabilities")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Renters

**Request**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "renters"
    }
  }
}
```

**Response**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "text": "renters (sandbox): states AZ, TX. Required facts: application.applicant.date_of_birth, application.applicant.email, application.applicant.name.first_name, application.applicant.name.last_name, application.applicant.phone, application.current_insurance, application.dwelling.dwelling_type, application.rented_address.city, application.rented_address.line1, application.rented_address.postal_code, application.rented_address.state. Actions a quote can offer: read_status.",
        "type": "text"
      },
      {
        "text": "{\"capabilities\":[{\"line\":\"renters\",\"environment\":\"sandbox\",\"states\":[\"AZ\",\"TX\"],\"required_facts\":[\"application.applicant.date_of_birth\",\"application.applicant.email\",\"application.applicant.name.first_name\",\"application.applicant.name.last_name\",\"application.applicant.phone\",\"application.current_insurance\",\"application.dwelling.dwelling_type\",\"application.rented_address.city\",\"application.rented_address.line1\",\"application.rented_address.postal_code\",\"application.rented_address.state\"],\"required_facts_schema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$ref\":\"#/$defs/RentersIntake\",\"$defs\":{\"RentersIntake\":{\"type\":\"object\",\"properties\":{\"applicant\":{\"$ref\":\"#/$defs/ApplicantIntake\"},\"rented_address\":{\"$ref\":\"#/$defs/PostalAddressIntake\"},\"dwelling\":{\"$ref\":\"#/$defs/RentersDwellingIntake\"},\"current_insurance\":{\"$ref\":\"#/$defs/RentersCurrentInsuranceIntake\"},\"protection\":{\"$ref\":\"#/$defs/RentersProtectionIntake\"},\"billing_cycle\":{\"$ref\":\"#/$defs/BillingCycle\"},\"facts\":{\"$ref\":\"#/$defs/RentersFactsIntake\"},\"coverage_start_date\":{\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"}},\"additionalProperties\":false},\"ApplicantIntake\":{\"type\":\"object\",\"properties\":{\"name\":{\"$ref\":\"#/$defs/PersonNameIntake\"},\"date_of_birth\":{\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"email\":{\"anyOf\":[{\"type\":\"string\",\"maxLength\":254,\"format\":\"email\",\"pattern\":\"^(?!\\\\.)(?!.*\\\\.\\\\.)([A-Za-z0-9_'+\\\\-\\\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\\\-]*\\\\.)+[A-Za-z]{2,}$\"},{\"type\":\"null\"}]},\"phone\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":32},{\"type\":\"null\"}]}},\"additionalProperties\":false},\"PersonNameIntake\":{\"type\":\"object\",\"properties\":{\"first_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"last_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"additionalProperties\":false},\"PostalAddressIntake\":{\"type\":\"object\",\"properties\":{\"line1\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},\"line2\":{\"anyOf\":[{\"type\":\"string\",\"minLength\":1,\"maxLength\":200},{\"type\":\"null\"}]},\"city\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"state\":{\"$ref\":\"#/$defs/StateCode\"},\"postal_code\":{\"$ref\":\"#/$defs/PostalCode\"}},\"additionalProperties\":false},\"StateCode\":{\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\"},\"PostalCode\":{\"type\":\"string\",\"pattern\":\"^\\\\d{5}(?:-\\\\d{4})?$\"},\"RentersDwellingIntake\":{\"type\":\"object\",\"properties\":{\"dwelling_type\":{\"$ref\":\"#/$defs/DwellingType\"}},\"additionalProperties\":false},\"DwellingType\":{\"type\":\"string\",\"enum\":[\"apartment\",\"single_family\",\"condo\",\"townhouse\",\"mobile_home\"]},\"RentersCurrentInsuranceIntake\":{\"type\":\"object\",\"properties\":{\"insured\":{\"type\":\"boolean\"},\"carrier\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":120}},\"additionalProperties\":false},\"RentersProtectionIntake\":{\"type\":\"object\",\"properties\":{\"personal_property_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"liability_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"deductible_minor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991}},\"additionalProperties\":false},\"BillingCycle\":{\"type\":\"string\",\"enum\":[\"pay_in_full\",\"monthly\"]},\"RentersFactsIntake\":{\"type\":\"object\",\"properties\":{\"roof_type\":{\"$ref\":\"#/$defs/RoofType\"},\"roof_shape\":{\"$ref\":\"#/$defs/RoofShape\"},\"foundation\":{\"$ref\":\"#/$defs/FoundationType\"},\"construction\":{\"$ref\":\"#/$defs/ConstructionType\"},\"heating_type\":{\"$ref\":\"#/$defs/HeatingType\"},\"heating_fuel\":{\"$ref\":\"#/$defs/FuelType\"},\"year_built\":{\"type\":\"integer\",\"minimum\":1800,\"maximum\":2100},\"pool\":{\"type\":\"boolean\"},\"square_feet\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"garages\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"residents\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991},\"dog_breed\":{\"$ref\":\"#/$defs/DogBreed\"},\"prior_tenure_months\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"number_of_past_losses\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991},\"is_renters_insurance_required\":{\"type\":\"boolean\"},\"is_lease_started_today\":{\"type\":\"boolean\"},\"owns_a_pet\":{\"type\":\"boolean\"},\"own_or_care_for_animal_that_has_harmed_someone\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"RoofType\":{\"type\":\"string\",\"enum\":[\"aluminum\",\"asbestos\",\"asphalt\",\"cedar_shakes\",\"cedar_shingles\",\"clay_tile\",\"composition\",\"concrete\",\"concrete_tile\",\"copper\",\"fiberglass\",\"gravel\",\"metal\",\"other\",\"plastic\",\"plywood\",\"recycled\",\"reinforced_concrete\",\"rock\",\"roll_roofing\",\"rubber\",\"single_ply_membrane\",\"slate\",\"spanish_tile\",\"steel_porcelain_shingles\",\"tar_and_gravel\",\"tin\",\"wood_shake\",\"wood_shingle\"]},\"RoofShape\":{\"type\":\"string\",\"enum\":[\"gable\",\"hip\",\"flat\",\"gambrel\",\"mansard\",\"shed\"]},\"FoundationType\":{\"type\":\"string\",\"enum\":[\"slab\",\"basement\",\"crawl_space\",\"pier\",\"stilts\"]},\"ConstructionType\":{\"type\":\"string\",\"enum\":[\"frame\",\"masonry\",\"masonry_veneer\",\"fire_resistive\",\"superior\"]},\"HeatingType\":{\"type\":\"string\",\"enum\":[\"central\",\"baseboard\",\"space_heater\",\"wood_stove\",\"none\"]},\"FuelType\":{\"type\":\"string\",\"enum\":[\"electric\",\"gas\",\"oil\",\"propane\",\"wood\",\"solar\"]},\"DogBreed\":{\"type\":\"string\",\"enum\":[\"none\",\"pit_bull\",\"rottweiler\",\"german_shepherd\",\"doberman\",\"chow\",\"akita\",\"wolf_hybrid\",\"other\"]}},\"required\":[\"applicant\",\"current_insurance\",\"dwelling\",\"rented_address\"]},\"actions\":[{\"type\":\"read_status\",\"states\":[\"AZ\",\"TX\"]}],\"sandbox\":{\"scenarios_url\":\"/v1/sandbox/scenarios\"},\"quote_disclosure\":null}]}",
        "type": "text"
      }
    ],
    "structuredContent": {
      "capabilities": [
        {
          "actions": [
            {
              "states": [
                "AZ",
                "TX"
              ],
              "type": "read_status"
            }
          ],
          "environment": "sandbox",
          "line": "renters",
          "quote_disclosure": null,
          "required_facts": [
            "application.applicant.date_of_birth",
            "application.applicant.email",
            "application.applicant.name.first_name",
            "application.applicant.name.last_name",
            "application.applicant.phone",
            "application.current_insurance",
            "application.dwelling.dwelling_type",
            "application.rented_address.city",
            "application.rented_address.line1",
            "application.rented_address.postal_code",
            "application.rented_address.state"
          ],
          "required_facts_schema": {
            "$defs": {
              "ApplicantIntake": {
                "additionalProperties": false,
                "properties": {
                  "date_of_birth": {
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "type": "string"
                  },
                  "email": {
                    "anyOf": [
                      {
                        "format": "email",
                        "maxLength": 254,
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "name": {
                    "$ref": "#/$defs/PersonNameIntake"
                  },
                  "phone": {
                    "anyOf": [
                      {
                        "maxLength": 32,
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "type": "object"
              },
              "BillingCycle": {
                "enum": [
                  "pay_in_full",
                  "monthly"
                ],
                "type": "string"
              },
              "ConstructionType": {
                "enum": [
                  "frame",
                  "masonry",
                  "masonry_veneer",
                  "fire_resistive",
                  "superior"
                ],
                "type": "string"
              },
              "DogBreed": {
                "enum": [
                  "none",
                  "pit_bull",
                  "rottweiler",
                  "german_shepherd",
                  "doberman",
                  "chow",
                  "akita",
                  "wolf_hybrid",
                  "other"
                ],
                "type": "string"
              },
              "DwellingType": {
                "enum": [
                  "apartment",
                  "single_family",
                  "condo",
                  "townhouse",
                  "mobile_home"
                ],
                "type": "string"
              },
              "FoundationType": {
                "enum": [
                  "slab",
                  "basement",
                  "crawl_space",
                  "pier",
                  "stilts"
                ],
                "type": "string"
              },
              "FuelType": {
                "enum": [
                  "electric",
                  "gas",
                  "oil",
                  "propane",
                  "wood",
                  "solar"
                ],
                "type": "string"
              },
              "HeatingType": {
                "enum": [
                  "central",
                  "baseboard",
                  "space_heater",
                  "wood_stove",
                  "none"
                ],
                "type": "string"
              },
              "PersonNameIntake": {
                "additionalProperties": false,
                "properties": {
                  "first_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "last_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "PostalAddressIntake": {
                "additionalProperties": false,
                "properties": {
                  "city": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "line1": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "line2": {
                    "anyOf": [
                      {
                        "maxLength": 200,
                        "minLength": 1,
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "postal_code": {
                    "$ref": "#/$defs/PostalCode"
                  },
                  "state": {
                    "$ref": "#/$defs/StateCode"
                  }
                },
                "type": "object"
              },
              "PostalCode": {
                "pattern": "^\\d{5}(?:-\\d{4})?$",
                "type": "string"
              },
              "RentersCurrentInsuranceIntake": {
                "additionalProperties": false,
                "properties": {
                  "carrier": {
                    "maxLength": 120,
                    "minLength": 1,
                    "type": "string"
                  },
                  "insured": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "RentersDwellingIntake": {
                "additionalProperties": false,
                "properties": {
                  "dwelling_type": {
                    "$ref": "#/$defs/DwellingType"
                  }
                },
                "type": "object"
              },
              "RentersFactsIntake": {
                "additionalProperties": false,
                "properties": {
                  "construction": {
                    "$ref": "#/$defs/ConstructionType"
                  },
                  "dog_breed": {
                    "$ref": "#/$defs/DogBreed"
                  },
                  "foundation": {
                    "$ref": "#/$defs/FoundationType"
                  },
                  "garages": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "heating_fuel": {
                    "$ref": "#/$defs/FuelType"
                  },
                  "heating_type": {
                    "$ref": "#/$defs/HeatingType"
                  },
                  "is_lease_started_today": {
                    "type": "boolean"
                  },
                  "is_renters_insurance_required": {
                    "type": "boolean"
                  },
                  "number_of_past_losses": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "own_or_care_for_animal_that_has_harmed_someone": {
                    "type": "boolean"
                  },
                  "owns_a_pet": {
                    "type": "boolean"
                  },
                  "pool": {
                    "type": "boolean"
                  },
                  "prior_tenure_months": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "residents": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "roof_shape": {
                    "$ref": "#/$defs/RoofShape"
                  },
                  "roof_type": {
                    "$ref": "#/$defs/RoofType"
                  },
                  "square_feet": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "year_built": {
                    "maximum": 2100,
                    "minimum": 1800,
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "RentersIntake": {
                "additionalProperties": false,
                "properties": {
                  "applicant": {
                    "$ref": "#/$defs/ApplicantIntake"
                  },
                  "billing_cycle": {
                    "$ref": "#/$defs/BillingCycle"
                  },
                  "coverage_start_date": {
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "type": "string"
                  },
                  "current_insurance": {
                    "$ref": "#/$defs/RentersCurrentInsuranceIntake"
                  },
                  "dwelling": {
                    "$ref": "#/$defs/RentersDwellingIntake"
                  },
                  "facts": {
                    "$ref": "#/$defs/RentersFactsIntake"
                  },
                  "protection": {
                    "$ref": "#/$defs/RentersProtectionIntake"
                  },
                  "rented_address": {
                    "$ref": "#/$defs/PostalAddressIntake"
                  }
                },
                "type": "object"
              },
              "RentersProtectionIntake": {
                "additionalProperties": false,
                "properties": {
                  "deductible_minor": {
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "type": "integer"
                  },
                  "liability_minor": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  },
                  "personal_property_minor": {
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "RoofShape": {
                "enum": [
                  "gable",
                  "hip",
                  "flat",
                  "gambrel",
                  "mansard",
                  "shed"
                ],
                "type": "string"
              },
              "RoofType": {
                "enum": [
                  "aluminum",
                  "asbestos",
                  "asphalt",
                  "cedar_shakes",
                  "cedar_shingles",
                  "clay_tile",
                  "composition",
                  "concrete",
                  "concrete_tile",
                  "copper",
                  "fiberglass",
                  "gravel",
                  "metal",
                  "other",
                  "plastic",
                  "plywood",
                  "recycled",
                  "reinforced_concrete",
                  "rock",
                  "roll_roofing",
                  "rubber",
                  "single_ply_membrane",
                  "slate",
                  "spanish_tile",
                  "steel_porcelain_shingles",
                  "tar_and_gravel",
                  "tin",
                  "wood_shake",
                  "wood_shingle"
                ],
                "type": "string"
              },
              "StateCode": {
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              }
            },
            "$ref": "#/$defs/RentersIntake",
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "required": [
              "applicant",
              "current_insurance",
              "dwelling",
              "rented_address"
            ]
          },
          "sandbox": {
            "scenarios_url": "/v1/sandbox/scenarios"
          },
          "states": [
            "AZ",
            "TX"
          ]
        }
      ]
    }
  }
}
```

**SDK Code**

```python Renters
import requests

url = "https://api.truvo.com/v1/mcp#get_capabilities"

payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_capabilities",
        "arguments": { "line": "renters" }
    }
}
headers = {
    "Accept": "application/json, text/event-stream",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Renters
const url = 'https://api.truvo.com/v1/mcp#get_capabilities';
const options = {
  method: 'POST',
  headers: {
    Accept: 'application/json, text/event-stream',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_capabilities","arguments":{"line":"renters"}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Renters
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.truvo.com/v1/mcp#get_capabilities"

	payload := strings.NewReader("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"renters\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Accept", "application/json, text/event-stream")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Renters
require 'uri'
require 'net/http'

url = URI("https://api.truvo.com/v1/mcp#get_capabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json, text/event-stream'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"renters\"\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Renters
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.truvo.com/v1/mcp#get_capabilities")
  .header("Accept", "application/json, text/event-stream")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"renters\"\n    }\n  }\n}")
  .asString();
```

```php Renters
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.truvo.com/v1/mcp#get_capabilities', [
  'body' => '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "renters"
    }
  }
}',
  'headers' => [
    'Accept' => 'application/json, text/event-stream',
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Renters
using RestSharp;

var client = new RestClient("https://api.truvo.com/v1/mcp#get_capabilities");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json, text/event-stream");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"renters\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Renters
import Foundation

let headers = [
  "Accept": "application/json, text/event-stream",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": [
    "name": "get_capabilities",
    "arguments": ["line": "renters"]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.truvo.com/v1/mcp#get_capabilities")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Pet

**Request**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "pet"
    }
  }
}
```

**Response**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "text": "pet (sandbox): states AZ, TX. Required facts: application.owner.email, application.owner.name.first_name, application.owner.name.last_name, application.owner.phone, application.owner.postal_code, application.pets, application.pets.0.breed, application.pets.0.date_of_birth, application.pets.0.name, application.pets.0.neutered, application.pets.0.sex, application.pets.0.species. Actions a quote can offer: read_status, continue_on_carrier_site.",
        "type": "text"
      },
      {
        "text": "{\"capabilities\":[{\"line\":\"pet\",\"environment\":\"sandbox\",\"states\":[\"AZ\",\"TX\"],\"required_facts\":[\"application.owner.email\",\"application.owner.name.first_name\",\"application.owner.name.last_name\",\"application.owner.phone\",\"application.owner.postal_code\",\"application.pets\",\"application.pets.0.breed\",\"application.pets.0.date_of_birth\",\"application.pets.0.name\",\"application.pets.0.neutered\",\"application.pets.0.sex\",\"application.pets.0.species\"],\"required_facts_schema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"$ref\":\"#/$defs/PetIntake\",\"$defs\":{\"PetIntake\":{\"type\":\"object\",\"properties\":{\"owner\":{\"$ref\":\"#/$defs/PetOwnerIntake\"},\"pets\":{\"maxItems\":10,\"type\":\"array\",\"items\":{\"$ref\":\"#/$defs/PetFactsIntake\"}},\"coverage\":{\"$ref\":\"#/$defs/PetCoverageIntake\"}},\"additionalProperties\":false},\"PetOwnerIntake\":{\"type\":\"object\",\"properties\":{\"name\":{\"$ref\":\"#/$defs/PersonNameIntake\"},\"email\":{\"type\":\"string\",\"maxLength\":254,\"format\":\"email\",\"pattern\":\"^(?!\\\\.)(?!.*\\\\.\\\\.)([A-Za-z0-9_'+\\\\-\\\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\\\-]*\\\\.)+[A-Za-z]{2,}$\"},\"phone\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":32},\"postal_code\":{\"$ref\":\"#/$defs/PostalCode\"},\"state\":{\"$ref\":\"#/$defs/StateCode\"}},\"additionalProperties\":false},\"PersonNameIntake\":{\"type\":\"object\",\"properties\":{\"first_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"last_name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100}},\"additionalProperties\":false},\"PostalCode\":{\"type\":\"string\",\"pattern\":\"^\\\\d{5}(?:-\\\\d{4})?$\"},\"StateCode\":{\"type\":\"string\",\"pattern\":\"^[A-Z]{2}$\"},\"PetFactsIntake\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"species\":{\"$ref\":\"#/$defs/PetSpecies\"},\"breed\":{\"type\":\"string\",\"minLength\":1,\"maxLength\":100},\"date_of_birth\":{\"type\":\"string\",\"format\":\"date\",\"pattern\":\"^(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))$\"},\"sex\":{\"$ref\":\"#/$defs/PetSex\"},\"neutered\":{\"type\":\"boolean\"}},\"additionalProperties\":false},\"PetSpecies\":{\"type\":\"string\",\"enum\":[\"dog\",\"cat\"]},\"PetSex\":{\"type\":\"string\",\"enum\":[\"female\",\"male\"]},\"PetCoverageIntake\":{\"type\":\"object\",\"properties\":{\"deductible_minor\":{\"type\":\"integer\",\"minimum\":0,\"maximum\":9007199254740991,\"description\":\"The deductible, in US cents: 50000 is $500.00. Send whole dollars. The carriers offer deductibles from this list: 5000, 10000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 95000, 100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000. A carrier that doesn't offer the amount quotes one it does offer, and the quote's evidence.assumptions states the change.\",\"multipleOf\":100},\"reimbursement_percent\":{\"type\":\"integer\",\"minimum\":1,\"maximum\":100},\"annual_limit_minor\":{\"type\":\"integer\",\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"description\":\"The annual limit, in US cents: 500000 is $5,000.00. Send whole dollars, or leave the field out for Truvo's default of $5,000.00. The carriers offer annual limits from this list: 250000, 300000, 400000, 500000, 600000, 700000, 750000, 800000, 900000, 1000000, 1250000, 1500000, 2000000, 2500000, 3000000. A carrier that doesn't offer the amount quotes one it does offer, and the quote's evidence.assumptions states the change.\",\"multipleOf\":100}},\"additionalProperties\":false}},\"required\":[\"owner\",\"pets\"]},\"actions\":[{\"type\":\"read_status\",\"states\":[\"AZ\",\"TX\"]},{\"type\":\"continue_on_carrier_site\",\"states\":[\"AZ\",\"TX\"]}],\"sandbox\":{\"scenarios_url\":\"/v1/sandbox/scenarios\"},\"quote_disclosure\":null}]}",
        "type": "text"
      }
    ],
    "structuredContent": {
      "capabilities": [
        {
          "actions": [
            {
              "states": [
                "AZ",
                "TX"
              ],
              "type": "read_status"
            },
            {
              "states": [
                "AZ",
                "TX"
              ],
              "type": "continue_on_carrier_site"
            }
          ],
          "environment": "sandbox",
          "line": "pet",
          "quote_disclosure": null,
          "required_facts": [
            "application.owner.email",
            "application.owner.name.first_name",
            "application.owner.name.last_name",
            "application.owner.phone",
            "application.owner.postal_code",
            "application.pets",
            "application.pets.0.breed",
            "application.pets.0.date_of_birth",
            "application.pets.0.name",
            "application.pets.0.neutered",
            "application.pets.0.sex",
            "application.pets.0.species"
          ],
          "required_facts_schema": {
            "$defs": {
              "PersonNameIntake": {
                "additionalProperties": false,
                "properties": {
                  "first_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "last_name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "PetCoverageIntake": {
                "additionalProperties": false,
                "properties": {
                  "annual_limit_minor": {
                    "description": "The annual limit, in US cents: 500000 is $5,000.00. Send whole dollars, or leave the field out for Truvo's default of $5,000.00. The carriers offer annual limits from this list: 250000, 300000, 400000, 500000, 600000, 700000, 750000, 800000, 900000, 1000000, 1250000, 1500000, 2000000, 2500000, 3000000. A carrier that doesn't offer the amount quotes one it does offer, and the quote's evidence.assumptions states the change.",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991,
                    "multipleOf": 100,
                    "type": "integer"
                  },
                  "deductible_minor": {
                    "description": "The deductible, in US cents: 50000 is $500.00. Send whole dollars. The carriers offer deductibles from this list: 5000, 10000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 95000, 100000, 110000, 120000, 130000, 140000, 150000, 160000, 170000, 180000, 190000, 200000, 210000, 220000, 230000, 240000, 250000. A carrier that doesn't offer the amount quotes one it does offer, and the quote's evidence.assumptions states the change.",
                    "maximum": 9007199254740991,
                    "minimum": 0,
                    "multipleOf": 100,
                    "type": "integer"
                  },
                  "reimbursement_percent": {
                    "maximum": 100,
                    "minimum": 1,
                    "type": "integer"
                  }
                },
                "type": "object"
              },
              "PetFactsIntake": {
                "additionalProperties": false,
                "properties": {
                  "breed": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "date_of_birth": {
                    "format": "date",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
                    "type": "string"
                  },
                  "name": {
                    "maxLength": 100,
                    "minLength": 1,
                    "type": "string"
                  },
                  "neutered": {
                    "type": "boolean"
                  },
                  "sex": {
                    "$ref": "#/$defs/PetSex"
                  },
                  "species": {
                    "$ref": "#/$defs/PetSpecies"
                  }
                },
                "type": "object"
              },
              "PetIntake": {
                "additionalProperties": false,
                "properties": {
                  "coverage": {
                    "$ref": "#/$defs/PetCoverageIntake"
                  },
                  "owner": {
                    "$ref": "#/$defs/PetOwnerIntake"
                  },
                  "pets": {
                    "items": {
                      "$ref": "#/$defs/PetFactsIntake"
                    },
                    "maxItems": 10,
                    "type": "array"
                  }
                },
                "type": "object"
              },
              "PetOwnerIntake": {
                "additionalProperties": false,
                "properties": {
                  "email": {
                    "format": "email",
                    "maxLength": 254,
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
                    "type": "string"
                  },
                  "name": {
                    "$ref": "#/$defs/PersonNameIntake"
                  },
                  "phone": {
                    "maxLength": 32,
                    "minLength": 1,
                    "type": "string"
                  },
                  "postal_code": {
                    "$ref": "#/$defs/PostalCode"
                  },
                  "state": {
                    "$ref": "#/$defs/StateCode"
                  }
                },
                "type": "object"
              },
              "PetSex": {
                "enum": [
                  "female",
                  "male"
                ],
                "type": "string"
              },
              "PetSpecies": {
                "enum": [
                  "dog",
                  "cat"
                ],
                "type": "string"
              },
              "PostalCode": {
                "pattern": "^\\d{5}(?:-\\d{4})?$",
                "type": "string"
              },
              "StateCode": {
                "pattern": "^[A-Z]{2}$",
                "type": "string"
              }
            },
            "$ref": "#/$defs/PetIntake",
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "required": [
              "owner",
              "pets"
            ]
          },
          "sandbox": {
            "scenarios_url": "/v1/sandbox/scenarios"
          },
          "states": [
            "AZ",
            "TX"
          ]
        }
      ]
    }
  }
}
```

**SDK Code**

```python Pet
import requests

url = "https://api.truvo.com/v1/mcp#get_capabilities"

payload = {
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "get_capabilities",
        "arguments": { "line": "pet" }
    }
}
headers = {
    "Accept": "application/json, text/event-stream",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Pet
const url = 'https://api.truvo.com/v1/mcp#get_capabilities';
const options = {
  method: 'POST',
  headers: {
    Accept: 'application/json, text/event-stream',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_capabilities","arguments":{"line":"pet"}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Pet
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.truvo.com/v1/mcp#get_capabilities"

	payload := strings.NewReader("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"pet\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Accept", "application/json, text/event-stream")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Pet
require 'uri'
require 'net/http'

url = URI("https://api.truvo.com/v1/mcp#get_capabilities")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json, text/event-stream'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"pet\"\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Pet
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.truvo.com/v1/mcp#get_capabilities")
  .header("Accept", "application/json, text/event-stream")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"pet\"\n    }\n  }\n}")
  .asString();
```

```php Pet
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.truvo.com/v1/mcp#get_capabilities', [
  'body' => '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_capabilities",
    "arguments": {
      "line": "pet"
    }
  }
}',
  'headers' => [
    'Accept' => 'application/json, text/event-stream',
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Pet
using RestSharp;

var client = new RestClient("https://api.truvo.com/v1/mcp#get_capabilities");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json, text/event-stream");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_capabilities\",\n    \"arguments\": {\n      \"line\": \"pet\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Pet
import Foundation

let headers = [
  "Accept": "application/json, text/event-stream",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": [
    "name": "get_capabilities",
    "arguments": ["line": "pet"]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.truvo.com/v1/mcp#get_capabilities")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```