{"ok":true,"site":{"host":"agmcp.shogun-0a9.workers.dev","url":"https://agmcp.shogun-0a9.workers.dev/","type":"live","desc":"Look up any US ZIP code's 2023 USDA Plant Hardiness Zone, see what grows there, and build a garden plan together with your AI agent via WebMCP tools.","tools":[{"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"zip":{"type":"string","description":"5-digit US ZIP code, e.g. \"97330\"","pattern":"^\\d{5}$"}},"required":["zip"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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).","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180}},"required":["latitude","longitude"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"zip":{"type":"string","pattern":"^\\d{5}$"}},"required":["zip"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_garden_plan","kind":"act","impl":"imperative","description":"Export the garden plan as Markdown (with estimated planting dates) or JSON. Read-only.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["markdown","json"],"default":"markdown"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"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"]},"__source":"spec","__declarative":true}],"category":"Health & Education","favicon":"/favicons/agmcp.shogun-0a9.workers.dev.svg","apiSurface":"spec","toolCount":19}}