A-du: ADU rentals, plans and rules
What this MCP does
Searches ADU rentals, plans, services, and managers while providing parcel analysis, permit estimates, city rules, rent estimates, listings, tours, and applications.
Tools
Input schema
{'type': 'object', 'required': ['question'], 'properties': {'question': {'type': 'string', 'maxLength': 1000, 'minLength': 5}, 'jurisdiction': {'type': 'string', 'maxLength': 80, 'description': 'City or county the question is about, if any.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['address', 'price'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'description': 'A short title, such as "Garden studio near Leimert Park". Defaults to "ADU in <city>". Never the street address: titles are public and A-du does not publish addresses.'}, 'price': {'type': 'integer', 'minimum': 1, 'description': 'Monthly rent in USD.'}, 'address': {'type': 'string', 'minLength': 5, 'description': 'Street address of the ADU.'}, 'bedrooms': {'type': 'integer', 'minimum': 0}, 'bathrooms': {'type': 'number', 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 4000}, 'square_feet': {'type': 'integer', 'minimum': 1}, 'property_type': {'type': 'string'}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'description': 'Optional. Send the same key when retrying so a dropped response cannot create a second request.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['jurisdiction', 'construction_type', 'square_footage', 'bedrooms', 'bathrooms'], 'properties': {'stories': {'enum': [1, 2], 'type': 'integer'}, 'bedrooms': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'bathrooms': {'type': 'number', 'maximum': 10, 'minimum': 0.5}, 'jurisdiction': {'enum': ['la_city', 'la_county', 'pasadena', 'glendale', 'long_beach', 'burbank', 'santa_monica', 'culver_city', 'beverly_hills', 'inglewood', 'west_hollywood', 'manhattan_beach', 'nyc_dob', 'sf_dbi'], 'type': 'string'}, 'square_footage': {'type': 'integer', 'maximum': 5000, 'minimum': 100}, 'foundation_type': {'enum': ['slab', 'raised'], 'type': 'string'}, 'plan_check_speed': {'enum': ['standard', 'express'], 'type': 'string'}, 'construction_type': {'enum': ['detached_new', 'attached_new', 'garage_conversion', 'jadu_internal'], 'type': 'string'}, 'parcel_in_hillside': {'type': 'boolean'}, 'needs_fire_sprinkler': {'type': 'boolean'}, 'needs_new_sewer_lateral': {'type': 'boolean'}, 'needs_new_water_service': {'type': 'boolean'}, 'needs_new_electric_panel': {'type': 'boolean'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^(rental|plan|page):', 'maxLength': 200, 'minLength': 6}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['jurisdiction'], 'properties': {'question': {'type': 'string', 'maxLength': 300, 'description': 'Optional: the specific question, used to pick the most relevant passages.'}, 'jurisdiction': {'type': 'string', 'maxLength': 80, 'minLength': 2, 'description': 'City, or "unincorporated Los Angeles County". "City of " is optional.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'description': 'The listing id.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['address', 'bedrooms', 'bathrooms', 'square_feet'], 'properties': {'address': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Full street address including city and state.'}, 'bedrooms': {'type': 'integer', 'maximum': 10, 'minimum': 0}, 'bathrooms': {'type': 'number', 'maximum': 10, 'minimum': 0.5}, 'square_feet': {'type': 'integer', 'maximum': 5000, 'minimum': 100}, 'property_type': {'enum': ['single_family_adu_detached', 'single_family_adu_attached', 'single_family_adu_internal', 'single_family_front_house', 'multi_family', 'townhouse', 'condo', 'apartment', 'other'], 'type': 'string', 'default': 'single_family_adu_detached', 'description': 'Unit type. Detached, attached and internal ADUs are valued as multi-family; a front house as single family.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'thread_id': {'type': 'string', 'description': 'Omit to list conversations; supply to read one.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'apn': {'type': 'string', 'maxLength': 20, 'minLength': 8, 'description': 'Assessor parcel number, punctuated as the county prints it (7056-012-013 in Los Angeles, 639-660-14-00 in San Diego).'}, 'county': {'enum': ['la', 'sd'], 'type': 'string', 'description': 'Force the county: la (Los Angeles) or sd (San Diego). Usually inferred from the address.'}, 'address': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Street address with city; ZIP helps. Example: "12237 Wendy Dr, Cerritos, CA 90703".'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['thread_id', 'message'], 'properties': {'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'The reply. Plain text.'}, 'thread_id': {'type': 'string', 'description': 'From get_thread.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'description': 'Optional. Send the same key when retrying so a dropped response cannot create a second request.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['listing_id', 'preferred_times'], 'properties': {'message': {'type': 'string', 'maxLength': 2000, 'description': 'Optional note to the landlord.'}, 'listing_id': {'type': 'string', 'description': 'The rental to tour, from search_rentals.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'description': 'Optional. Send the same key when retrying so a dropped response cannot create a second request.'}, 'preferred_times': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3, 'minItems': 1, 'description': "One to three preferred times, each as YYYY-MM-DDTHH:MM in the listing's local time."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'apn': {'type': 'string', 'maxLength': 20, 'minLength': 8, 'description': 'Assessor parcel number, punctuated as the county prints it (7056-012-013 in Los Angeles, 639-660-14-00 in San Diego).'}, 'county': {'enum': ['la', 'sd'], 'type': 'string', 'description': 'Force the county: la (Los Angeles) or sd (San Diego). Usually inferred from the address.'}, 'address': {'type': 'string', 'maxLength': 200, 'minLength': 8, 'description': 'Street address with city; ZIP helps. Example: "12237 Wendy Dr, Cerritos, CA 90703".'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'maxLength': 300, 'minLength': 2}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 60}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1 to 50.'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Opaque cursor from a previous response.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1 to 50.'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Opaque cursor from a previous response.'}, 'max_sqft': {'type': 'integer', 'maximum': 3000, 'minimum': 100}, 'min_sqft': {'type': 'integer', 'maximum': 3000, 'minimum': 100}, 'bedrooms_min': {'type': 'integer', 'maximum': 6, 'minimum': 0}, 'max_plan_price': {'type': 'number', 'minimum': 0, 'description': 'Maximum price of the plan set itself in US dollars, not the build cost.'}, 'pre_approved_in': {'type': 'string', 'maxLength': 60, 'description': 'City name. Keeps plans whose pre-approval list mentions it.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}$', 'description': 'Five-digit ZIP code.'}, 'city': {'type': 'string', 'maxLength': 60, 'description': 'City or neighborhood name, matched loosely against the listing city and address. Example: "Long Beach", "Highland Park".'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1 to 50. Default 10.'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Opaque cursor from a previous response to fetch the next page.'}, 'furnished': {'type': 'boolean', 'description': 'true for furnished only, false for unfurnished only. Omit for either.'}, 'max_price': {'type': 'number', 'minimum': 0, 'description': 'Maximum monthly rent in US dollars.'}, 'min_price': {'type': 'number', 'minimum': 0, 'description': 'Minimum monthly rent in US dollars.'}, 'available_by': {'type': 'string', 'format': 'date', 'description': 'Only units available on or before this date (YYYY-MM-DD).'}, 'bedrooms_min': {'type': 'integer', 'maximum': 10, 'minimum': 0, 'description': 'Minimum bedrooms. 0 means studios are fine.'}, 'pets_allowed': {'type': 'boolean', 'description': 'true to keep only units that allow dogs or cats, or whose policy is not stated. Omit for all.'}, 'bathrooms_min': {'type': 'number', 'maximum': 10, 'minimum': 0, 'description': 'Minimum bathrooms.'}, 'include_leased': {'type': 'boolean', 'default': False, 'description': 'Include units currently leased. Default false. Only useful for market research, not for someone looking for a home.'}, 'permit_verified_only': {'type': 'boolean', 'default': True, 'description': 'Only units A-du matched to a building department permit record. Default true. Set false to include listings whose permit is self-reported by the landlord or not recorded yet.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 60}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Results per page, 1 to 50.'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Opaque cursor from a previous response.'}, 'category': {'type': 'string', 'maxLength': 60, 'description': 'Category name or slug, e.g. "general-contractor", "plumbing", "electrical", "hvac".'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['listing_id', 'message'], 'properties': {'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'What to ask. Plain text.'}, 'listing_id': {'type': 'string', 'description': 'The rental to ask about, from search_rentals.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'description': 'Optional. Send the same key when retrying so a dropped response cannot create a second request.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'listing_id': {'type': 'string', 'description': 'Optional. The rental they want to apply for, so the link returns them to it.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120, 'description': 'A short title for the listing, such as "Garden studio near Leimert Park". Never the street address: titles are public and A-du does not publish addresses.'}, 'price': {'type': 'integer', 'minimum': 1, 'description': 'Asking monthly rent in USD, if they have one in mind. get_rent_estimate is a good source.'}, 'address': {'type': 'string', 'maxLength': 250, 'minLength': 5, 'description': 'Street address of the unit, with city.'}, 'bedrooms': {'type': 'integer', 'maximum': 20, 'minimum': 0}, 'bathrooms': {'type': 'number', 'maximum': 20, 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 4000, 'description': 'How the owner describes the unit, in their own words.'}, 'square_feet': {'type': 'integer', 'maximum': 100000, 'minimum': 1}, 'property_type': {'enum': ['single_family_adu_detached', 'single_family_adu_attached', 'single_family_adu_internal', 'single_family_front_house', 'other'], 'type': 'string', 'description': 'Detached, attached or internal ADU; a front house; or other.'}, 'available_from': {'type': 'string', 'description': 'YYYY-MM-DD, the earliest move-in date.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string'}, 'furnished': {'type': 'boolean'}, 'max_price': {'type': 'number', 'minimum': 0}, 'min_price': {'type': 'number', 'minimum': 0}, 'unsubscribe': {'type': 'boolean', 'description': 'Remove the saved search instead of creating one.'}, 'bedrooms_min': {'type': 'integer', 'minimum': 0}, 'pets_allowed': {'type': 'boolean'}, 'bathrooms_min': {'type': 'number', 'minimum': 0}, 'property_type': {'type': 'string'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
OpenLMNP
Manages French LMNP furnished-rental accounting, including income, expenses, depreciation, loans, VAT, fiscal calculations, FEC f…
Service Public France
Searches and retrieves French public-service information, legal texts, administrative guidance, property transactions, local data…
kolmo-mcp-server
Provides Washington construction permit guidance, fee estimates, contractor license checks, property-related activity, remodeling…
Subastech — subastas judiciales de inmuebles (BOE)
Searches and analyzes Spanish BOE judicial real-estate auctions, with property details, viability reports, alerts, market statist…
engineering
Performs built-environment engineering calculations and compliance assessments covering energy, carbon, BIM, cybersecurity, struc…
public-tools
Provides French rental calculations, risk and rent-control checks, lease creation and signing, and generation of rental documents.
french-rental-compliance
Provides sourced French rental, home-employment, and France-Switzerland cross-border calculators, compliance checks, and rent-rec…
Bucky
Evaluates zoning, parcels, permitted uses, building envelopes, and development feasibility for addresses in Canada and the United…