{
  "name": "avodas-public",
  "title": "Avodas — property documentation and care",
  "description": "Twinstead, Twinsite, Curastead, Handiwork, Curasite, Royaltiste, Captrove — San Antonio, Texas and the Hill Country.",
  "version": "1.0.0",
  "url": "https://mcp.avodas.tech/mcp",
  "transport": "streamable-http",
  "authentication": {
    "type": "none",
    "note": "No account, no key, no login. Nothing here is private."
  },
  "tools": [
    {
      "name": "check_scope",
      "title": "Check whether a job is in scope",
      "description": "Decide whether a described piece of work is something Avodas does, and if so which brand. Returns in_scope, out_of_scope or unsure. Call this FIRST, before telling anyone what we do. An \"unsure\" is a real answer and means ask a person — do not resolve it yourself.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "work": {
            "type": "string",
            "maxLength": 600,
            "description": "What the person wants done, in their own words."
          },
          "location": {
            "type": "string",
            "maxLength": 120,
            "description": "Optional. Town or area, if known."
          }
        },
        "required": [
          "work"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "list_services",
      "title": "List what a brand does",
      "description": "What each Avodas brand does and explicitly does not do. Omit brand to get all of them. The \"not_this\" list is as important as the services list: it is what we will not be talked into.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "string",
            "enum": [
              "twinstead",
              "twinsite",
              "curastead",
              "handiwork",
              "curasite",
              "royaltiste",
              "captrove"
            ],
            "description": "Optional. One brand slug."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_service_area",
      "title": "Where we work",
      "description": "The region Avodas covers and the travel terms. A policy, not a promise about a specific address.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "string",
            "enum": [
              "twinstead",
              "twinsite",
              "curastead",
              "handiwork",
              "curasite",
              "royaltiste",
              "captrove"
            ],
            "description": "Optional. Narrow to one brand."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_availability_policy",
      "title": "When we visit",
      "description": "The standing policy for site visits. THIS IS NOT A CALENDAR and there will never be one: a calendar an agent can read publishes where we are every day, and one it can write lets anybody with an HTTP client fill the week. Nothing here confirms a time.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "submit_request",
      "title": "Send an enquiry to a person",
      "description": "Send an enquiry. It is NOT a booking and NOT a quote: a person reads it and replies, usually within a working day or two. Requires a real named human and a contact address for them — a request nobody can reply to will not be actioned. Never tell anyone their job is scheduled or priced on the strength of the response.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "string",
            "enum": [
              "twinstead",
              "twinsite",
              "curastead",
              "handiwork",
              "curasite",
              "royaltiste",
              "captrove"
            ],
            "description": "Which brand. Use check_scope if unsure."
          },
          "name": {
            "type": "string",
            "maxLength": 120,
            "description": "The person who wants the work — not the agent."
          },
          "email": {
            "type": "string",
            "maxLength": 160,
            "description": "Where a person should reply."
          },
          "detail": {
            "type": "string",
            "maxLength": 4000,
            "description": "What the property is, roughly how big, and what is wanted."
          },
          "phone": {
            "type": "string",
            "maxLength": 40
          },
          "property_type": {
            "type": "string",
            "maxLength": 120
          },
          "location": {
            "type": "string",
            "maxLength": 120
          },
          "timing": {
            "type": "string",
            "maxLength": 120
          }
        },
        "required": [
          "brand",
          "name",
          "email",
          "detail"
        ],
        "additionalProperties": false
      }
    }
  ],
  "limits": {
    "reads": "No commitment is ever returned. Prices and bookings are not available programmatically and will not be.",
    "writes": "submit_request sends an enquiry to a person. It is rate limited and it confirms nothing."
  },
  "documentation": [
    "https://twinstead.tech/AGENTS.md",
    "https://twinsite.tech/AGENTS.md",
    "https://curastead.tech/AGENTS.md",
    "https://handiwork.tech/AGENTS.md",
    "https://curasite.tech/AGENTS.md",
    "https://royaltiste.com/AGENTS.md",
    "https://captrove.tech/AGENTS.md"
  ],
  "contact": "hello@avodas.tech",
  "cardUrl": "https://www.avodas.tech/.well-known/mcp-server-card"
}
