Tool tree
gradeNot graded
lookup_hardiness_zoneAnswer
Look up the 2023 USDA Plant Hardiness Zone for a 5-digit US ZIP code (50 states, DC, Puerto Rico). Returns the half-zone (e.g. 7b), the average annual extreme minimum temperature band in °F and °C, and estimated frost windows. Read-only; does not change the page. Use set_location to also show it to the user.
View tool JSON
{
"name": "lookup_hardiness_zone",
"kind": "answer",
"impl": "imperative",
"description": "Look up the 2023 USDA Plant Hardiness Zone for a 5-digit US ZIP code (50 states, DC, Puerto Rico). Returns the half-zone (e.g. 7b), the average annual extreme minimum temperature band in °F and °C, and estimated frost windows. Read-only; does not change the page. Use set_location to also show it to the user.",
"inputSchema": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "5-digit US ZIP code, e.g. \"97330\"",
"pattern": "^\\d{5}$"
}
},
"required": [
"zip"
],
"additionalProperties": false
}
}get_zone_detailsAnswer
Get details for a USDA hardiness zone (1a through 13b): temperature band, adjacent zones, how many US ZIP codes fall in it, estimated frost windows, and a few sample ZIPs. Accepts "7b", "zone 7b", or "7" (treated as 7a).
View tool JSON
{
"name": "get_zone_details",
"kind": "answer",
"impl": "imperative",
"description": "Get details for a USDA hardiness zone (1a through 13b): temperature band, adjacent zones, how many US ZIP codes fall in it, estimated frost windows, and a few sample ZIPs. Accepts \"7b\", \"zone 7b\", or \"7\" (treated as 7a).",
"inputSchema": {
"type": "object",
"properties": {
"zone": {
"type": "string",
"description": "Zone code such as 7b",
"enum": [
"1a",
"1b",
"2a",
"2b",
"3a",
"3b",
"4a",
"4b",
"5a",
"5b",
"6a",
"6b",
"7a",
"7b",
"8a",
"8b",
"9a",
"9b",
"10a",
"10b",
"11a",
"11b",
"12a",
"12b",
"13a",
"13b"
]
}
},
"required": [
"zone"
],
"additionalProperties": false
}
}compare_locationsAction
Compare the hardiness zones of 2 to 10 US ZIP codes. Returns each ZIP's zone and temperature band, the warmest and coldest, and the half-zone / °F difference of each relative to the first ZIP. Useful for 'is it colder where my parents live', moving, or picking where a plant will survive.
View tool JSON
{
"name": "compare_locations",
"kind": "act",
"impl": "imperative",
"description": "Compare the hardiness zones of 2 to 10 US ZIP codes. Returns each ZIP's zone and temperature band, the warmest and coldest, and the half-zone / °F difference of each relative to the first ZIP. Useful for 'is it colder where my parents live', moving, or picking where a plant will survive.",
"inputSchema": {
"type": "object",
"properties": {
"zips": {
"type": "array",
"description": "2 to 10 five-digit ZIP codes",
"items": {
"type": "string",
"pattern": "^\\d{5}$"
},
"minItems": 2,
"maxItems": 10
}
},
"required": [
"zips"
],
"additionalProperties": false
}
}find_zips_in_zoneAnswer
List US ZIP codes that fall in a given hardiness zone, optionally restricted to a ZIP prefix (e.g. "972" for the Portland, OR area, or "9" for the West). Returns up to `limit` ZIPs plus the total count. Read-only.
View tool JSON
{
"name": "find_zips_in_zone",
"kind": "answer",
"impl": "imperative",
"description": "List US ZIP codes that fall in a given hardiness zone, optionally restricted to a ZIP prefix (e.g. \"972\" for the Portland, OR area, or \"9\" for the West). Returns up to `limit` ZIPs plus the total count. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"1a",
"1b",
"2a",
"2b",
"3a",
"3b",
"4a",
"4b",
"5a",
"5b",
"6a",
"6b",
"7a",
"7b",
"8a",
"8b",
"9a",
"9b",
"10a",
"10b",
"11a",
"11b",
"12a",
"12b",
"13a",
"13b"
],
"description": "Zone code such as 8b"
},
"zip_prefix": {
"type": "string",
"description": "Optional 1-4 digit ZIP prefix to narrow the region"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 25
}
},
"required": [
"zone"
],
"additionalProperties": false
}
}find_zone_by_coordinatesAnswer
Find the nearest US ZIP codes (by ZIP centroid) to a latitude/longitude and return their hardiness zones and distance in km. Use when you have coordinates from another tool (weather, maps) instead of a ZIP. Read-only.
View tool JSON
{
"name": "find_zone_by_coordinates",
"kind": "answer",
"impl": "imperative",
"description": "Find the nearest US ZIP codes (by ZIP centroid) to a latitude/longitude and return their hardiness zones and distance in km. Use when you have coordinates from another tool (weather, maps) instead of a ZIP. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
}
}get_zip_coordinatesAnswer
Get the approximate latitude/longitude centroid of a US ZIP code (Census ZCTA). Handy for chaining into weather or sun-position tools. Read-only.
View tool JSON
{
"name": "get_zip_coordinates",
"kind": "answer",
"impl": "imperative",
"description": "Get the approximate latitude/longitude centroid of a US ZIP code (Census ZCTA). Handy for chaining into weather or sun-position tools. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$"
}
},
"required": [
"zip"
],
"additionalProperties": false
}
}list_plantsAnswer
List common garden plants (vegetables, herbs, peppers, fruit) with a fit rating for a hardiness zone: 'great', 'stretch' (edge of range), or 'not-recommended'. Defaults to the zone currently selected on the page; pass `zone` to override. Filter by category or free-text query. Plant ranges are curated horticultural estimates.
View tool JSON
{
"name": "list_plants",
"kind": "answer",
"impl": "imperative",
"description": "List common garden plants (vegetables, herbs, peppers, fruit) with a fit rating for a hardiness zone: 'great', 'stretch' (edge of range), or 'not-recommended'. Defaults to the zone currently selected on the page; pass `zone` to override. Filter by category or free-text query. Plant ranges are curated horticultural estimates.",
"inputSchema": {
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"1a",
"1b",
"2a",
"2b",
"3a",
"3b",
"4a",
"4b",
"5a",
"5b",
"6a",
"6b",
"7a",
"7b",
"8a",
"8b",
"9a",
"9b",
"10a",
"10b",
"11a",
"11b",
"12a",
"12b",
"13a",
"13b"
],
"description": "Optional zone; defaults to the page's selected zone"
},
"category": {
"type": "string",
"enum": [
"vegetable",
"herb",
"pepper",
"fruit"
]
},
"query": {
"type": "string",
"description": "Free-text filter on name or notes, e.g. \"pepper\" or \"perennial\""
},
"include_not_recommended": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}
}get_plant_detailsAnswer
Full growing profile for one plant: zone ranges, days to maturity, when to start indoors / transplant / direct sow relative to last frost, sun, spacing, notes, and its fit for the page's current zone.
View tool JSON
{
"name": "get_plant_details",
"kind": "answer",
"impl": "imperative",
"description": "Full growing profile for one plant: zone ranges, days to maturity, when to start indoors / transplant / direct sow relative to last frost, sun, spacing, notes, and its fit for the page's current zone.",
"inputSchema": {
"type": "object",
"properties": {
"plant": {
"type": "string",
"description": "Plant slug or name",
"enum": [
"tomato",
"cherry-tomato",
"bell-pepper",
"jalapeno",
"cayenne",
"habanero",
"ghost-pepper",
"shishito",
"poblano",
"cucumber",
"zucchini",
"winter-squash",
"bush-bean",
"pole-bean",
"pea",
"lettuce",
"spinach",
"kale",
"broccoli",
"cabbage",
"brussels-sprouts",
"carrot",
"beet",
"radish",
"onion",
"garlic",
"potato",
"sweet-potato",
"sweet-corn",
"eggplant",
"okra",
"watermelon",
"cantaloupe",
"basil",
"cilantro",
"parsley",
"dill",
"thyme",
"rosemary",
"oregano",
"sage",
"mint",
"chives",
"lavender",
"strawberry",
"blueberry",
"raspberry",
"asparagus",
"rhubarb",
"artichoke",
"fig",
"meyer-lemon",
"avocado",
"banana"
]
}
},
"required": [
"plant"
],
"additionalProperties": false
}
}get_planting_calendarAnswer
Estimated planting dates (start indoors, transplant, direct sow, first harvest) for plants in a zone, derived from the zone's typical last spring frost. Defaults to the page's selected zone and the plants in the garden plan; pass `plants` to choose specific ones. Dates are estimates; local frost dates vary.
View tool JSON
{
"name": "get_planting_calendar",
"kind": "answer",
"impl": "imperative",
"description": "Estimated planting dates (start indoors, transplant, direct sow, first harvest) for plants in a zone, derived from the zone's typical last spring frost. Defaults to the page's selected zone and the plants in the garden plan; pass `plants` to choose specific ones. Dates are estimates; local frost dates vary.",
"inputSchema": {
"type": "object",
"properties": {
"zone": {
"type": "string",
"enum": [
"1a",
"1b",
"2a",
"2b",
"3a",
"3b",
"4a",
"4b",
"5a",
"5b",
"6a",
"6b",
"7a",
"7b",
"8a",
"8b",
"9a",
"9b",
"10a",
"10b",
"11a",
"11b",
"12a",
"12b",
"13a",
"13b"
]
},
"plants": {
"type": "array",
"items": {
"type": "string",
"enum": [
"tomato",
"cherry-tomato",
"bell-pepper",
"jalapeno",
"cayenne",
"habanero",
"ghost-pepper",
"shishito",
"poblano",
"cucumber",
"zucchini",
"winter-squash",
"bush-bean",
"pole-bean",
"pea",
"lettuce",
"spinach",
"kale",
"broccoli",
"cabbage",
"brussels-sprouts",
"carrot",
"beet",
"radish",
"onion",
"garlic",
"potato",
"sweet-potato",
"sweet-corn",
"eggplant",
"okra",
"watermelon",
"cantaloupe",
"basil",
"cilantro",
"parsley",
"dill",
"thyme",
"rosemary",
"oregano",
"sage",
"mint",
"chives",
"lavender",
"strawberry",
"blueberry",
"raspberry",
"asparagus",
"rhubarb",
"artichoke",
"fig",
"meyer-lemon",
"avocado",
"banana"
]
},
"description": "Plant slugs; defaults to the garden plan"
},
"year": {
"type": "integer",
"minimum": 2024,
"maximum": 2100
}
},
"additionalProperties": false
}
}get_current_contextAnswer
Read what the user currently sees: selected ZIP and zone, active plant filters, and the full garden plan with fit ratings. Call this first to sync with the human's view of the page.
View tool JSON
{
"name": "get_current_context",
"kind": "answer",
"impl": "imperative",
"description": "Read what the user currently sees: selected ZIP and zone, active plant filters, and the full garden plan with fit ratings. Call this first to sync with the human's view of the page.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}set_locationAction
Set the page's location to a ZIP code. Updates the zone card, zone scale, plant fit ratings, and the URL so the user sees the same zone you are reasoning about. Returns the zone summary.
View tool JSON
{
"name": "set_location",
"kind": "act",
"impl": "imperative",
"description": "Set the page's location to a ZIP code. Updates the zone card, zone scale, plant fit ratings, and the URL so the user sees the same zone you are reasoning about. Returns the zone summary.",
"inputSchema": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"pattern": "^\\d{5}$"
}
},
"required": [
"zip"
],
"additionalProperties": false
}
}use_my_locationAction
Ask the browser for the user's current position (the user sees a permission prompt and must accept), then set the page's location to the nearest ZIP with hardiness data. Human-in-the-loop; fails if permission is denied.
View tool JSON
{
"name": "use_my_location",
"kind": "act",
"impl": "imperative",
"description": "Ask the browser for the user's current position (the user sees a permission prompt and must accept), then set the page's location to the nearest ZIP with hardiness data. Human-in-the-loop; fails if permission is denied.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}filter_plantsAction
Change the plant category filter and search text shown in the Plants section so the user sees the same list you are discussing.
View tool JSON
{
"name": "filter_plants",
"kind": "act",
"impl": "imperative",
"description": "Change the plant category filter and search text shown in the Plants section so the user sees the same list you are discussing.",
"inputSchema": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"all",
"vegetable",
"herb",
"pepper",
"fruit"
]
},
"query": {
"type": "string"
}
},
"additionalProperties": false
}
}add_to_garden_planAction
Add a plant to the shared garden plan shown on the page (merges quantity if already present). Returns the plant's fit for the current zone so you can warn the user if it is a stretch or not recommended.
View tool JSON
{
"name": "add_to_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Add a plant to the shared garden plan shown on the page (merges quantity if already present). Returns the plant's fit for the current zone so you can warn the user if it is a stretch or not recommended.",
"inputSchema": {
"type": "object",
"properties": {
"plant": {
"type": "string",
"enum": [
"tomato",
"cherry-tomato",
"bell-pepper",
"jalapeno",
"cayenne",
"habanero",
"ghost-pepper",
"shishito",
"poblano",
"cucumber",
"zucchini",
"winter-squash",
"bush-bean",
"pole-bean",
"pea",
"lettuce",
"spinach",
"kale",
"broccoli",
"cabbage",
"brussels-sprouts",
"carrot",
"beet",
"radish",
"onion",
"garlic",
"potato",
"sweet-potato",
"sweet-corn",
"eggplant",
"okra",
"watermelon",
"cantaloupe",
"basil",
"cilantro",
"parsley",
"dill",
"thyme",
"rosemary",
"oregano",
"sage",
"mint",
"chives",
"lavender",
"strawberry",
"blueberry",
"raspberry",
"asparagus",
"rhubarb",
"artichoke",
"fig",
"meyer-lemon",
"avocado",
"banana"
],
"description": "Plant slug"
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 999,
"default": 1
},
"notes": {
"type": "string",
"description": "Short note, e.g. variety or where it goes in the bed"
}
},
"required": [
"plant"
],
"additionalProperties": false
}
}update_garden_plan_itemAction
Change the quantity and/or notes of a plant already in the garden plan.
View tool JSON
{
"name": "update_garden_plan_item",
"kind": "act",
"impl": "imperative",
"description": "Change the quantity and/or notes of a plant already in the garden plan.",
"inputSchema": {
"type": "object",
"properties": {
"plant": {
"type": "string",
"enum": [
"tomato",
"cherry-tomato",
"bell-pepper",
"jalapeno",
"cayenne",
"habanero",
"ghost-pepper",
"shishito",
"poblano",
"cucumber",
"zucchini",
"winter-squash",
"bush-bean",
"pole-bean",
"pea",
"lettuce",
"spinach",
"kale",
"broccoli",
"cabbage",
"brussels-sprouts",
"carrot",
"beet",
"radish",
"onion",
"garlic",
"potato",
"sweet-potato",
"sweet-corn",
"eggplant",
"okra",
"watermelon",
"cantaloupe",
"basil",
"cilantro",
"parsley",
"dill",
"thyme",
"rosemary",
"oregano",
"sage",
"mint",
"chives",
"lavender",
"strawberry",
"blueberry",
"raspberry",
"asparagus",
"rhubarb",
"artichoke",
"fig",
"meyer-lemon",
"avocado",
"banana"
]
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 999
},
"notes": {
"type": "string"
}
},
"required": [
"plant"
],
"additionalProperties": false
}
}remove_from_garden_planAction
Remove one plant from the garden plan.
View tool JSON
{
"name": "remove_from_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Remove one plant from the garden plan.",
"inputSchema": {
"type": "object",
"properties": {
"plant": {
"type": "string",
"enum": [
"tomato",
"cherry-tomato",
"bell-pepper",
"jalapeno",
"cayenne",
"habanero",
"ghost-pepper",
"shishito",
"poblano",
"cucumber",
"zucchini",
"winter-squash",
"bush-bean",
"pole-bean",
"pea",
"lettuce",
"spinach",
"kale",
"broccoli",
"cabbage",
"brussels-sprouts",
"carrot",
"beet",
"radish",
"onion",
"garlic",
"potato",
"sweet-potato",
"sweet-corn",
"eggplant",
"okra",
"watermelon",
"cantaloupe",
"basil",
"cilantro",
"parsley",
"dill",
"thyme",
"rosemary",
"oregano",
"sage",
"mint",
"chives",
"lavender",
"strawberry",
"blueberry",
"raspberry",
"asparagus",
"rhubarb",
"artichoke",
"fig",
"meyer-lemon",
"avocado",
"banana"
]
}
},
"required": [
"plant"
],
"additionalProperties": false
}
}clear_garden_planAction
Remove every plant from the garden plan. Destructive: opens a confirmation dialog the user must accept on the page; returns an error if they cancel.
View tool JSON
{
"name": "clear_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Remove every plant from the garden plan. Destructive: opens a confirmation dialog the user must accept on the page; returns an error if they cancel.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}export_garden_planAction
Export the garden plan as Markdown (with estimated planting dates) or JSON. Read-only.
View tool JSON
{
"name": "export_garden_plan",
"kind": "act",
"impl": "imperative",
"description": "Export the garden plan as Markdown (with estimated planting dates) or JSON. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"markdown",
"json"
],
"default": "markdown"
}
},
"additionalProperties": false
}
}search_zip_formAnswer
Look up the USDA plant hardiness zone for a 5-digit US ZIP code and show it on the page.
View tool JSON
{
"name": "search_zip_form",
"kind": "answer",
"impl": "declarative",
"description": "Look up the USDA plant hardiness zone for a 5-digit US ZIP code and show it on the page.",
"inputSchema": {
"type": "object",
"properties": {
"zip": {
"type": "string",
"description": "Enter a 5-digit ZIP, e.g. 97330"
}
},
"required": [
"zip"
]
}
}