{
  "name": "InstantlyAnalyze",
  "server": {
    "url": "https://instantlyanalyze.com/api/mcp",
    "transport": "streamable-http",
    "authentication": "oauth2.1-dynamic-client-registration",
    "authorizationServer": "https://auth.instantlyanalyze.com/",
    "documentation": "https://instantlyanalyze.com/for-agents"
  },
  "tools": [
    {
      "name": "analyze_rental_deal",
      "title": "Analyze rental property deal",
      "description": "Runs the InstantlyAnalyze rental property calculator on a deal and saves a shareable report. Returns monthly cash flow, cap rate, cash-on-cash return, NOI, mortgage, expenses, total cash needed, the assumptions used, and a link to the full report. Address and purchase price are required; monthly rent can be omitted when bedrooms, bathrooms, and sqft are provided so InstantlyAnalyze can estimate rent. Other inputs fall back to the user's saved defaults. Uses one free analysis on free accounts, plus one free rent estimate when rent is estimated.",
      "annotations": {
        "title": "Analyze rental property deal",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "streetAddress": {
            "type": "string",
            "minLength": 1,
            "description": "Street address, e.g. \"123 Main St\""
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "description": "Two-letter state code, e.g. \"TX\""
          },
          "zipCode": {
            "type": "string",
            "minLength": 3
          },
          "purchasePrice": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Purchase price in USD"
          },
          "monthlyRent": {
            "type": "number",
            "minimum": 0,
            "description": "Gross monthly rent in USD. If omitted, InstantlyAnalyze estimates rent when bedrooms, bathrooms, and sqft are provided."
          },
          "propertyType": {
            "type": "string",
            "enum": [
              "Single Family",
              "Multi Family"
            ]
          },
          "bedrooms": {
            "type": "number",
            "minimum": 0
          },
          "bathrooms": {
            "type": "number",
            "minimum": 0
          },
          "sqft": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "cashPurchase": {
            "type": "boolean",
            "description": "True if bought with all cash (no loan)"
          },
          "downPaymentPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "interestRate": {
            "type": "number",
            "minimum": 0,
            "maximum": 30,
            "description": "Annual loan interest rate in percent, e.g. 7 for 7%"
          },
          "loanTermYears": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 50
          },
          "closingCostPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 20,
            "description": "Closing costs as a percent of purchase price"
          },
          "propertyTaxes": {
            "type": "number",
            "minimum": 0,
            "description": "Property tax amount in USD (see propertyTaxFrequency)"
          },
          "propertyTaxFrequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ]
          },
          "insurance": {
            "type": "number",
            "minimum": 0,
            "description": "Insurance amount in USD (see insuranceFrequency)"
          },
          "insuranceFrequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ]
          },
          "vacancyPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Percent of rent reserved for vacancy"
          },
          "maintenancePercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Percent of rent reserved for maintenance"
          },
          "capexPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Percent of rent reserved for capital expenditures"
          },
          "managementFeePercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Property management fee as percent of rent"
          },
          "hoaFees": {
            "type": "number",
            "minimum": 0,
            "description": "Monthly HOA fees in USD"
          },
          "utilitiesMonthly": {
            "type": "number",
            "minimum": 0,
            "description": "Owner-paid monthly utilities in USD"
          },
          "otherMonthlyExpenses": {
            "type": "number",
            "minimum": 0,
            "description": "Other recurring monthly expenses in USD"
          },
          "otherMonthlyIncome": {
            "type": "number",
            "minimum": 0,
            "description": "Other monthly income (laundry, parking) in USD"
          },
          "rehabCosts": {
            "type": "number",
            "minimum": 0,
            "description": "Up-front repair/rehab costs in USD"
          }
        },
        "required": [
          "streetAddress",
          "city",
          "state",
          "zipCode",
          "purchasePrice"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "estimate_rent",
      "title": "Estimate market rent",
      "description": "Estimates long-term monthly market rent for a US property from comparable rentals (RentCast data). Returns the estimate, low/high range, and comparable count. Uses one free rent estimate on free accounts.",
      "annotations": {
        "title": "Estimate market rent",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "streetAddress": {
            "type": "string",
            "minLength": 1,
            "description": "Street address, e.g. \"123 Main St\""
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "description": "Two-letter state code, e.g. \"TX\""
          },
          "zipCode": {
            "type": "string",
            "minLength": 3
          },
          "propertyType": {
            "type": "string",
            "description": "RentCast property type, default \"Single Family\""
          },
          "bedrooms": {
            "type": "number",
            "minimum": 0
          },
          "bathrooms": {
            "type": "number",
            "minimum": 0
          },
          "squareFootage": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "streetAddress",
          "city",
          "state",
          "zipCode",
          "bedrooms",
          "bathrooms",
          "squareFootage"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "update_rental_deal",
      "title": "Update saved rental deal",
      "description": "Updates an existing saved InstantlyAnalyze rental report in place when assumptions change. Accepts reportId plus only the assumptions to revise, then recomputes metrics and returns a before/after diff. Does not use a free rental analysis. Set refreshRentEstimate to true to replace monthly rent with a new RentCast estimate, which uses one free rent estimate on free accounts.",
      "annotations": {
        "title": "Update saved rental deal",
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "reportId": {
            "type": "string",
            "minLength": 1,
            "description": "The saved InstantlyAnalyze report ID to update"
          },
          "refreshRentEstimate": {
            "type": "boolean",
            "description": "Set true to replace monthly rent with a fresh RentCast estimate using the report property facts. Uses one free rent estimate on free accounts."
          },
          "streetAddress": {
            "type": "string",
            "minLength": 1
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "state": {
            "type": "string",
            "minLength": 2,
            "description": "Two-letter state code, e.g. \"TX\""
          },
          "zipCode": {
            "type": "string",
            "minLength": 3
          },
          "purchasePrice": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Purchase price in USD"
          },
          "monthlyRent": {
            "type": "number",
            "minimum": 0,
            "description": "Gross monthly rent in USD"
          },
          "propertyType": {
            "type": "string",
            "enum": [
              "Single Family",
              "Multi Family"
            ]
          },
          "bedrooms": {
            "type": "number",
            "minimum": 0
          },
          "bathrooms": {
            "type": "number",
            "minimum": 0
          },
          "sqft": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "cashPurchase": {
            "type": "boolean",
            "description": "True if bought with all cash (no loan)"
          },
          "downPaymentPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "interestRate": {
            "type": "number",
            "minimum": 0,
            "maximum": 30,
            "description": "Annual loan interest rate in percent, e.g. 7 for 7%"
          },
          "loanTermYears": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 50
          },
          "closingCostPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 20,
            "description": "Closing costs as a percent of purchase price"
          },
          "propertyTaxes": {
            "type": "number",
            "minimum": 0,
            "description": "Property tax amount in USD (see propertyTaxFrequency)"
          },
          "propertyTaxFrequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ]
          },
          "insurance": {
            "type": "number",
            "minimum": 0,
            "description": "Insurance amount in USD (see insuranceFrequency)"
          },
          "insuranceFrequency": {
            "type": "string",
            "enum": [
              "monthly",
              "annual"
            ]
          },
          "vacancyPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "maintenancePercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "capexPercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "managementFeePercent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "hoaFees": {
            "type": "number",
            "minimum": 0,
            "description": "Monthly HOA fees in USD"
          },
          "utilitiesMonthly": {
            "type": "number",
            "minimum": 0,
            "description": "Owner-paid monthly utilities in USD"
          },
          "otherMonthlyExpenses": {
            "type": "number",
            "minimum": 0,
            "description": "Other recurring monthly expenses in USD"
          },
          "otherMonthlyIncome": {
            "type": "number",
            "minimum": 0,
            "description": "Other monthly income (laundry, parking) in USD"
          },
          "rehabCosts": {
            "type": "number",
            "minimum": 0,
            "description": "Up-front repair/rehab costs in USD"
          }
        },
        "required": [
          "reportId"
        ],
        "additionalProperties": false,
        "$schema": "http://json-schema.org/draft-07/schema#"
      }
    },
    {
      "name": "list_my_reports",
      "title": "List my saved rental reports",
      "description": "Lists the user's 10 most recent saved InstantlyAnalyze rental reports with key metrics and links.",
      "annotations": {
        "title": "List my saved rental reports",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
  ]
}
