{
  "schema_version": "0.1",
  "name": "Twinstead",
  "description": "Twinstead documents houses, ranches and land as a durable 3D record \u2014 every room, every serial plate, every asset \u2014 with measurable geometry, floor plans and a browser walkthrough. From $499, across Texas.",
  "url": "https://twinstead.tech/",
  "contact": {
    "email": "hello@twinstead.tech"
  },
  "documentation": {
    "agent_contract": "https://twinstead.tech/AGENTS.md",
    "summary": "https://twinstead.tech/llms.txt",
    "human_page": "https://twinstead.tech/agents/",
    "openapi": "https://twinstead.tech/openapi.json"
  },
  "auth": {
    "required": false,
    "note": "No authentication. Requests are rate-limited by how well the caller is verified."
  },
  "identity": {
    "web_bot_auth": true,
    "note": "Web Bot Auth signatures (RFC 9421) are verified at the edge. Signed callers get a higher rate limit. A signature proves which platform you are, never who you act for.",
    "rate_limits": {
      "verified": "20/10min",
      "signed": "10/10min",
      "unverified": "5/10min"
    }
  },
  "tools": [
    {
      "name": "submit_request",
      "description": "Submit a quote or booking REQUEST to Twinstead on behalf of a named person. Returns a reference. This is not a booking and not a quote \u2014 a person reads it and replies.",
      "method": "POST",
      "url": "https://twinstead.tech/api/request",
      "content_type": "application/json",
      "parameters": {
        "type": "object",
        "required": [
          "name",
          "email",
          "detail"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The person who wants the work. Not the agent."
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Theirs. Replies go here."
          },
          "detail": {
            "type": "string",
            "description": "What they want, in their words where possible."
          },
          "phone": {
            "type": "string"
          },
          "property_type": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "timing": {
            "type": "string"
          }
        }
      },
      "returns": {
        "status": 202,
        "body": {
          "ok": true,
          "reference": "REQ-XXXXXX"
        }
      },
      "side_effects": "Emails a person and records the request. Idempotent: no, each call is a new request."
    },
    {
      "name": "describe_request_endpoint",
      "description": "Describe the request endpoint: its fields, rate limits, our availability policy, and how this caller is currently being seen (verified / signed / unverified).",
      "method": "GET",
      "url": "https://twinstead.tech/api/request",
      "parameters": {
        "type": "object",
        "properties": {}
      }
    }
  ],
  "no_tools_reason": null,
  "mcp": {
    "available": true,
    "server": "avodas-public",
    "url": "https://mcp.avodas.tech/mcp",
    "card": "https://mcp.avodas.tech/.well-known/mcp-server-card",
    "note": "Public Model Context Protocol (MCP) server for scope checks and enquiries."
  },
  "constraints": [
    "A request is not a booking. Nothing here can commit us to a price, a date or a scope.",
    "Do not state or estimate a price on our behalf.",
    "Requests must name the person who wants the work.",
    "No availability, pricing or client information is exposed by any endpoint, and none will be."
  ]
}
