Natural-language project parser
parse_project_descriptionParse a homeowner's natural-language project description into structured permit-relevant fields: projectType (kitchen|bathroom|deck|adu|fence|...), areaSqft, heightClass, attached/detached, position, and materials. Returns confidence + a single clarifyingQuestion when the parse is ambiguous. Use this before calling check_permit_requirements / estimate_permit_fee when you only have free text from the homeowner. Backed by an LLM with a constrained JSON schema.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"description": "<description>"
},
"name": "parse_project_description"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cityName | No | City name (e.g., "Seattle", "Bellevue") | |
| zoningCode | No | Zoning code from lookup_parcel_by_address (e.g., "NR2", "LR1") | |
| description | Yes | Free-text project description (e.g., "I want to add a 200 sqft deck off my master bedroom on the second floor") | |
| jurisdictionSlug | No | Jurisdiction slug from lookup_parcel_by_address (helps disambiguate region-specific terminology) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| parsed | No | ||
| nextSteps | No | ||
| attribution | Yes | ||
| validProjectTypes | Yes |