Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.Cropgraph/cropgraph

NPM · @CROPGRAPH/MCP · SCANNED AUG 3

CropGraph MCP. Crops, companions, pests, rotation, soil, GDD, pest intelligence.

Available components

+25 this week 66 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability61
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6443 tokens (~357/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 98% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @cropgraph/mcp

# add to Claude Code
claude mcp add cropgraph-cropgraph -- npx -y @cropgraph/mcp
# add to Codex CLI
codex mcp add cropgraph-cropgraph -- npx -y @cropgraph/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cropgraph-cropgraph": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@cropgraph/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cropgraph-cropgraph --command npx --arg -y --arg @cropgraph/mcp
# ~/.hermes/config.yaml
mcp_servers:
  cropgraph-cropgraph:
    command: "npx"
    args: ["-y", "@cropgraph/mcp"]
// mcp.json
{
  "mcpServers": {
    "cropgraph-cropgraph": {
      "command": "npx",
      "args": [
        "-y",
        "@cropgraph/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +34
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Tool coverage: 100 → unverified functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • Stability: unverified → 0.23 functional
    • MCP protocol: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −9
    • Provenance: unverified → fail security
    • Malware scan: pass → unverified security
    • Install scripts: unverified → pass security
    • License: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Licence: MIT functional
  • 29 Jul 26 +16
    • Dependency health: partial → unverified functional
    • Tool coverage: unverified → 100 functional
  • 28 Jul 26 −16
    • Tool coverage: 100 → unverified functional
    • Dependency health: unverified → partial functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 41

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@cropgraph/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 96 packages

96 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 18 exposed · ~6,443 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
check_companion_pair ~184

Looks up whether two specific crops have a known beneficial or antagonist relationship. Returns the relationship detail (mechanism, description, strength, source) or a `found: false` result when no relationship is in the fixture. Relationships are directed because mechanisms are often asymmetric (corn provides structural support to bean; bean fixes nitrogen for corn: two distinct edges). The tool falls back to the reverse direction transparently, so order of arguments rarely matters. Accepts slugs or common names for both crops.

NameTypeReqDescription
crop_astringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…
crop_byes

No output schema declared.

No examples provided.

check_rotation_sequence ~237

Validates a multi-year sequence of crops planted in the same bed. `crops[0]` is year 1, `crops[1]` is year 2, and so on. Reports each violation (a crop family replants inside its required year-gap, e.g. tomato in year 1 then pepper in year 2 violates the 3-year nightshade gap) and each warning (a family lands directly after one it should never follow, e.g. cucurbit after malvaceae). Returns `{ sequence: [{slug, family}], issues: [...], ok: boolean }`. Use the `severity` field to triage: `violation` is a hard rule break, `warning` is a soft caution. Accepts slugs or common names. Useful for AI agents validating a 3-5 year garden plan or asking 'what should I plant after my tomatoes?'.

NameTypeReqDescription
cropsarrayyesList of 2-20 crops to evaluate together (slugs or common names). Used by `plan_bed_compatibility` to discover all pairwise relationships within the bed.

No output schema declared.

No examples provided.

get_beneficial_insect ~280

Returns the full record for one beneficial insect, microbe, or friend-not-foe invertebrate from the bundled 200+ entry beneficial insects fixture (Xerces Society, Cornell Cooperative Extension biocontrol fact sheets, UC IPM Natural Enemies Gallery, UF/IFAS Featured Creatures, USDA-ARS sources). The response is a composite intelligence shape with: identification cues, garden role, habitat needs, the plants that attract this beneficial, the crops it protects via prey relationships (aggregated from preyOn into affected crops), and concrete protection tips. Categories covered: `predator`, `parasitoid`, `pollinator`, `decomposer`, `microbial-control`. Use this when the question is 'what is this insect?' and the answer is a beneficial. Use `get_pest_intelligence` when the answer is a pest. Use `get_verdict` to classify first without committing to a tool.

NameTypeReqDescription
slugstringyesKebab-case beneficial insect slug. Examples: `seven-spotted-ladybug`, `braconid-wasp-cotesia-congregata`, `common-eastern-bumblebee`, `mason-bee-pure-green`, `mealybug-destroyer`, `bt-kurstaki`. Use…

No output schema declared.

No examples provided.

get_companions ~306

Returns companion (beneficial) and antagonist (harmful) plants for a crop, drawn from the bundled 121-edge companion fixture (USDA Extension / Xerces Society / SARE sources). Each relationship has a categorized mechanism (12 types: `nitrogen_fixing`, `pest_repellent`, `allelopathic`, `disease_vector`, `pollinator_attractor`, `trap_crop`, `shade_provider`, `ground_cover`, `structural_support`, `nutrient_competition`, `space_efficiency`, `flavor_enhancement`), a gardener-facing description, an evidence-strength grade (`strong` = empirical research, `moderate` = widely corroborated traditional, `weak` = folk only), and a citation. Strength grades are honest: most companion-planting lore is `moderate`; only Three Sisters N-cycling, French marigold nematode suppression, allium/Rhizobium inhibition of legumes, nightshade disease sharing, and a handful of pollinator-attractor relationships are `strong`. Accepts slug or common name. No API key required; works offline.

NameTypeReqDescription
cropstringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…

No output schema declared.

No examples provided.

get_crop_details ~113

Returns the full crop calendar entry: planting windows, days to harvest, zone range, sowing/transplant guidance, climate modifiers, and citation. Look up by slug, common name, or scientific name. Match is case-insensitive. Returns an error when the calendar has no entry for the query.

NameTypeReqDescription
slug_or_namestringyesCrop calendar slug ('tomato', 'pepper-sweet'), common name ('Tomato'), or scientific name ('Solanum lycopersicum'). Match is case-insensitive.

No output schema declared.

No examples provided.

get_crop_pests ~354

Returns the pests and diseases recorded for a crop, drawn from the bundled 506-entry organic-first pest fixture (Cornell, UC IPM, UF/IFAS, Penn State, OSU, WSU, Texas A&M sources). Each entry carries: `pest` (kebab-case slug, separate namespace from crop slugs), `type` (`pest` for insects/mites/mollusks/nematodes/vertebrates, `disease` for fungi/oomycetes/bacteria/viruses/disorders), `severity` (`low` / `moderate` / `high` / `severe`), `symptoms` (diagnostic prose written for a gardener with a hand lens), `organicManagement` (ordered list of OMRI-listed materials, biocontrols, and physical/cultural practices), `prevention` (cultural and pre-planting practices), `regions` (`all` or informal labels like `southern-us`, `pnw`, `arid`), and a citation. Sorted by severity desc, then alphabetically. The fixture is curated, not exhaustive; absence of an entry is not absence of pressure. Pair with `get_companions` to find pest-repellent companion plants for the same crop. Accepts slug or common name. No API key required; works offline.

NameTypeReqDescription
cropstringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…

No output schema declared.

No examples provided.

get_crops_for_zone ~374

Returns all crop calendar entries whose zone range includes the supplied USDA zone, optionally filtered by category. Pure metadata, does NOT consider the current date. For 'what to plant now' use `get_planting_plan` instead. Useful for browsing what's possible in a zone, planning beds, or generating seed lists.

NameTypeReqDescription
categorystringCrop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (…
zonestringyesUSDA Plant Hardiness Zone string '1a' through '13b'. Each numeric step is a 10°F band of average annual minimum winter temperature; the 'a'/'b' subzone splits each band into a 5°F upper and lower hal…

No output schema declared.

No examples provided.

get_hardiness_zone ~300

Returns the USDA hardiness zone (1a..13b) and typical first/last frost dates for a US location. Provide either lat+lng (resolves to nearest ZIP centroid in the bundled 40,283-ZIP PRISM 2023 dataset) or a 5-digit zip (exact match when present). The zone object includes the 5°F temperature band (min/max winter °F), and frostDates includes lastSpring (MM-DD), firstFall (MM-DD), and seasonDays. Coastal, mountain, and desert microclimates can shift frost dates 2-3 weeks from the table; surface this caveat to gardeners. No API key required; works fully offline.

NameTypeReqDescription
latnumberWGS84 latitude in decimal degrees, between -90 and 90. Example: 48.118 for Port Angeles, WA. Used to look up the USDA hardiness zone via the nearest of 40,283 ZIP centroids in the 2023 PRISM dataset.
lngnumberWGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA.
zipstring5-digit US ZIP code. Example: '10001' for Manhattan. Returns the exact PRISM-recorded zone for that ZIP. Some ZIPs are missing from the dataset, use lat/lng for non-listed ZIPs.

No output schema declared.

No examples provided.

get_pest_detail ~378

Returns the full record for one pest or disease across every crop it touches: aggregated severity grades, the union of regions of significance, and per-crop symptoms and organic management. Use this when the question is 'tell me about cabbage worm' (a single pest across crops) rather than 'what hits cabbage' (`get_crop_pests`). Returns an error when the pest slug isn't in the fixture. Use `get_crop_pests` first to discover pest slugs for a given crop. Common slugs include: tomato-hornworm, late-blight, early-blight, cabbage-worm, cabbage-looper, squash-bug, squash-vine-borer, cucumber-beetle-striped, cucumber-beetle-spotted, flea-beetle, japanese-beetle, colorado-potato-beetle, spider-mite, aphid-green-peach, powdery-mildew, downy-mildew, fusarium-wilt, verticillium-wilt, septoria-leaf-spot, bacterial-wilt, mexican-bean-beetle, slug, cutworm, corn-earworm, spotted-wing-drosophila.

NameTypeReqDescription
crops_affectedbooleanIf true, include `cropsAffected` (deduplicated crop slug list) on the response. Default true; helpers infer it from the affects array regardless, but setting false omits the convenience array.
peststringyesKebab-case pest or disease slug from the CropGraph pest-disease fixture. Examples: `tomato-hornworm`, `late-blight`, `cabbage-worm`, `squash-vine-borer`, `powdery-mildew`. The pest namespace is separ…

No output schema declared.

No examples provided.

get_pest_intelligence ~311

Returns the full 'now what?' answer after a pest is identified: severity verdict (`foe` / `nuisance` / `cosmetic`), immediate action steps drawn from the pest's organic management list, seasonal prevention practices, companion plant deterrents and trap crops, the full list of beneficial predators and parasitoids with the 'wait before spraying' guidance, friend-or-foe lookalikes, and rotation advice when applicable. When `plant` is supplied, returns crop-specific symptoms, that crop's companion deterrents, and rotation advice for that crop. Without `plant`, the response uses the first crop entry as the symptom reference and falls back to the derived pest-companion-map for general deterrent suggestions. This is the powering shape for a consumer pest-identification app: one call gives the gardener everything actionable about the identified pest in context.

NameTypeReqDescription
peststringyesKebab-case pest or disease slug from the CropGraph pest-disease fixture. Examples: `tomato-hornworm`, `late-blight`, `cabbage-worm`, `squash-vine-borer`, `powdery-mildew`. The pest namespace is separ…
plantstringOptional crop slug or common name to scope the intelligence to a specific crop. Returns crop-specific symptoms, companion deterrents for the host crop, and rotation family advice when supplied.

No output schema declared.

No examples provided.

get_planting_plan ~1,047

Returns a list of crops to plant in the supplied date window, drawn from the bundled 1000-crop calendar (USDA Cooperative Extension publications). Provide a USDA zone string ('5b', '8b') OR a coordinate pair / zip; coordinates resolve to a zone via the same lookup as `get_hardiness_zone`. Each suggestion has: action (start_indoors / direct_sow / transplant / plant_now), windowStart..windowEnd (ISO dates anchored to the zone's typical frost dates), daysToHarvest range, and expectedHarvestEarliest. If expectedHarvestEarliest lands past the typical first fall frost the crop is unlikely to finish; surface that to the user. Climate-aware: pass `climate_type` to apply per-climate window shifts and notes. When you supply lat/lng or zip without `climate_type`, the tool auto-detects the climate from coordinates. The response echoes `climateType`. For a strict view pass padDays:0 (default). For 'almost in window' pass padDays:7 or 14. No API key required; works offline.

NameTypeReqDescription
categorystringCrop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (…
climate_typestringCoarse climate type used to apply per-climate modifiers to the planting plan. USDA hardiness zones only measure winter minimum temperature; climate adds the missing summer/humidity/rainfall context.…
datestringISO date YYYY-MM-DD to plan against. Defaults to today (UTC). Use a future date to preview a planting plan, e.g., '2026-06-15' to see what's plantable in mid-June.
include_indoorbooleanInclude indoor-only crops (microgreens, sprouts) in the plan. Default false because their year-round windows otherwise dominate the earliest-harvest sort. Set true if the user is asking about indoor…
latnumberWGS84 latitude in decimal degrees, between -90 and 90. Example: 48.118 for Port Angeles, WA. Used to look up the USDA hardiness zone via the nearest of 40,283 ZIP centroids in the 2023 PRISM dataset.
limitintegerMax suggestions to return. Default 50.
lngnumberWGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA.
pad_daysintegerWindow padding in days. A crop is included if today is within [windowStart - padDays, windowEnd + padDays]. Default 0 (strict). Use 7-14 to see crops 'just outside' the recommended window.
zipstring5-digit US ZIP code. Example: '10001' for Manhattan. Returns the exact PRISM-recorded zone for that ZIP. Some ZIPs are missing from the dataset, use lat/lng for non-listed ZIPs.
zonestringUSDA Plant Hardiness Zone string '1a' through '13b'. Each numeric step is a 10°F band of average annual minimum winter temperature; the 'a'/'b' subzone splits each band into a 5°F upper and lower hal…

No output schema declared.

No examples provided.

get_rotation_advice ~301

Returns the botanical rotation family and rotation rules for a crop, drawn from the bundled 12-family partition of all 1000 calendar crops (USDA Cooperative Extension, SARE, Rodale sources). Each crop is in exactly one family (nightshades, brassicas, cucurbits, alliums, legumes, umbellifers, grasses, amaranthaceae, composites, mints, malvaceae, or miscellaneous). Per family: `rotationYears` (recommended minimum years between successive plantings of the family in the same bed), `followWith` (families that work well after this one), `neverFollow` (families to avoid following), and `reason` (the dominant pathogens or pests behind the rule). Returns `partners.follow` (crops in recommended follow-with families) and `partners.avoid` (crops in never-follow families). The miscellaneous bucket covers perennial fruit, nuts, asparagus, rhubarb, mushrooms, aquatic crops, and ornamental flowers; their rotation needs are crop-specific. Accepts slug or common name. No API key required; works offline.

NameTypeReqDescription
cropstringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…

No output schema declared.

No examples provided.

get_succession_chain ~436

Returns the time-sequenced succession chain for a crop, drawn from the bundled 33-chain fixture (Johnny's Selected Seeds, Cornell Extension, UC ANR, SARE, Eliot Coleman's New Organic Grower). Each chain has an ordered list of phases. Each phase carries: `crop` (calendar slug), `sowMethod` (`direct_sow` / `transplant` / `start_indoors`), `intervalWeeks` (null means a single sowing, otherwise a recurring cadence), `startRelativeToFrost` and `endRelativeToFrost` (days from last spring frost; negative = before LSF, positive = after), optional per-climate `climateNotes`, and gardener-facing `notes`. Categories: `continuous-harvest` (lettuce, spinach, arugula cycles), `root-succession` (radish, carrot, beet, turnip cadences), `legume-succession` (bean / pea relays), `brassica-succession` (broccoli, cabbage spring + fall), `cucurbit-relay` (replacement plantings against vine borer / mildew), `herb-succession` (basil, cilantro, dill cadences), `flower-succession` (zinnia, cosmos, sunflower for continuous cut flowers), `cover-crop-relay` (winter cover → cash crop → fall cover chains). Lookup is by chain slug (e.g. `lettuce-succession`), primary crop slug (e.g. `lettuce-leaf`), or any crop slug that appears as a phase. Pair this tool with `get_succession_plan` to resolve the phases to concrete ISO dates for a zone.

NameTypeReqDescription
cropstringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…

No output schema declared.

No examples provided.

get_succession_plan ~719

Resolves a succession chain into concrete ISO dates for a location. Provide a USDA zone string ('5b', '8b') OR a coordinate pair / zip; coordinates resolve to a zone via the same lookup as `get_hardiness_zone`. Each returned phase carries `windowStart` and `windowEnd` (ISO dates), and `sowingDates` (the dated sowing events within the window when the chain specifies an `intervalWeeks` cadence). Climate-aware: pass `climate_type` to apply per-climate notes. When you supply lat/lng or zip without `climate_type`, the tool auto-detects climate from coordinates. The response echoes `climateType` and includes the resolved `zone` and `frostDates`. Use `year` to anchor the plan to a specific calendar year (defaults to the current UTC year). No API key required; works offline.

NameTypeReqDescription
climate_typestringCoarse climate type used to apply per-climate modifiers to the planting plan. USDA hardiness zones only measure winter minimum temperature; climate adds the missing summer/humidity/rainfall context.…
cropstringyesCrop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv…
latnumberWGS84 latitude in decimal degrees, between -90 and 90. Example: 48.118 for Port Angeles, WA. Used to look up the USDA hardiness zone via the nearest of 40,283 ZIP centroids in the 2023 PRISM dataset.
lngnumberWGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA.
yearintegerFour-digit year used to anchor a succession plan to specific calendar dates. Defaults to the current UTC year when omitted. Useful for previewing a year ahead.
zipstring5-digit US ZIP code. Example: '10001' for Manhattan. Returns the exact PRISM-recorded zone for that ZIP. Some ZIPs are missing from the dataset, use lat/lng for non-listed ZIPs.
zonestringUSDA Plant Hardiness Zone string '1a' through '13b'. Each numeric step is a 10°F band of average annual minimum winter temperature; the 'a'/'b' subzone splits each band into a 5°F upper and lower hal…

No output schema declared.

No examples provided.

get_verdict ~198

Returns the friend-or-foe verdict for any insect, microbe, or invertebrate slug by checking the beneficial-insects database first, then the pest-disease database. Useful as a routing call before deciding whether to call `get_beneficial_insect` or `get_pest_intelligence`. Return values: `friend` (entry exists in beneficial-insects), `foe` (entry exists in pest-disease with severity high or severe), `nuisance` (pest-disease severity moderate), `cosmetic` (pest-disease severity low), `neutral` (slug not recognized in either fixture).

NameTypeReqDescription
slugstringyesInsect, microbe, or invertebrate slug to classify. Examples: `seven-spotted-ladybug` (friend), `tomato-hornworm` (foe), `parsleyworm` (cosmetic; debatable in apiaceae beds).

No output schema declared.

No examples provided.

list_beneficials ~311

Returns the full beneficial insects catalog or a category-filtered subset. Categories: `predator` (60+ entries: ladybugs, lacewings, ground beetles, mantises, assassin bugs, predatory mites, soldier bugs, spiders, hover fly larvae), `parasitoid` (40+ entries: braconid wasps including Cotesia hornworm specialist, Trichogramma egg parasitoids, Encarsia and Eretmocerus whitefly parasitoids, tachinid flies, ichneumon wasps), `pollinator` (50+ entries: honey bees, bumble bees including federally listed Bombus affinis, mason bees, leafcutter bees, sweat bees, mining bees, carpenter bees, squash bees, butterflies, sphinx moths), `decomposer` (30 entries: earthworms, dung beetles, pill bugs, millipedes, springtails, black soldier fly larva, soil mites), `microbial-control` (20+ entries: entomopathogenic nematodes, Bt strains, Beauveria bassiana, Trichoderma, mycorrhizal fungi, milky spore). Each entry has slug, commonName, scientificName, category, preyOn, attractedBy, habitatNeeds, gardenRole, identificationTips, seasonalPresence, regions, and citation. Sorted alphabetically by common name.

NameTypeReqDescription
categorystringOptional functional category filter. Omit to return all entries.

No output schema declared.

No examples provided.

plan_bed_compatibility ~186

Evaluates a group of 2-20 crops planted in the same bed. Discovers all pairwise relationships (beneficial and antagonist) among the crops in the input, deduplicates by canonical pair order, and surfaces warnings when one crop antagonizes 2+ others (the hub-antagonist pattern; fennel-herb is the canonical example). Returns `{ crops, beneficial[], antagonist[], warnings[] }`. Each pair is reported once; if both storage directions exist, the strongest edge is chosen. Accepts slugs or common names. Crops with no known relationship to any other crop in the bed are silently absent from the relationship lists.

NameTypeReqDescription
cropsarrayyesList of 2-20 crops to evaluate together (slugs or common names). Used by `plan_bed_compatibility` to discover all pairwise relationships within the bed.

No output schema declared.

No examples provided.

search_plants ~408

Searches the bundled 1000-crop calendar by common name, scientific name, or substring. For a focused 'find me the canonical entry for X' use `get_crop_details` instead. Filter by zone or category to narrow matches.

NameTypeReqDescription
categorystringCrop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (…
limitintegerMax suggestions to return. Default 50.
querystringyesSearch query: common name, scientific name, or substring. Examples: 'tomato', 'Lactuca', 'bean', 'broccoli'.
zonestringUSDA Plant Hardiness Zone string '1a' through '13b'. Each numeric step is a 10°F band of average annual minimum winter temperature; the 'a'/'b' subzone splits each band into a 5°F upper and lower hal…

No output schema declared.

No examples provided.