io.github.Cropgraph/cropgraph
NPM · @CROPGRAPH/MCP · SCANNED AUG 3
CropGraph MCP. Crops, companions, pests, rotation, soil, GDD, pest intelligence.
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 80 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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
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
claude mcp add cropgraph-cropgraph -- npx -y @cropgraph/mcp
codex mcp add cropgraph-cropgraph -- npx -y @cropgraph/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cropgraph-cropgraph": {
"type": "local",
"command": [
"npx",
"-y",
"@cropgraph/mcp"
],
"enabled": true
}
}
} openclaw mcp add cropgraph-cropgraph --command npx --arg -y --arg @cropgraph/mcp
mcp_servers:
cropgraph-cropgraph:
command: "npx"
args: ["-y", "@cropgraph/mcp"] {
"mcpServers": {
"cropgraph-cropgraph": {
"command": "npx",
"args": [
"-y",
"@cropgraph/mcp"
]
}
}
} 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.
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.
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.
check_companion_pair Check Whether Two Crops Have a Known Relationship ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop_a | string | yes | Crop 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_b | — | yes | — |
No output schema declared.
No examples provided.
check_rotation_sequence Validate a Multi-Year Crop Rotation Plan ~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?'.
| Name | Type | Req | Description |
|---|---|---|---|
| crops | array | yes | List 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 Full Detail for a Beneficial Insect or Microbial Control ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Kebab-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 Companion + Antagonist Plants for a Crop ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop | string | yes | Crop 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 Detailed Crop Profile from the CropGraph Calendar ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| slug_or_name | string | yes | Crop 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 Pests and Diseases Affecting a Crop ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop | string | yes | Crop 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 Crops Suited to a USDA 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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Crop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (… |
| zone | string | yes | USDA 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 Look up USDA Plant 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.
| Name | Type | Req | Description |
|---|---|---|---|
| lat | number | — | WGS84 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. |
| lng | number | — | WGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA. |
| zip | string | — | 5-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 Full Management Guide for a Pest or Disease ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crops_affected | boolean | — | If 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. |
| pest | string | yes | Kebab-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 Composite Pest Intelligence (Now What After Identification) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| pest | string | yes | Kebab-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… |
| plant | string | — | Optional 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 What to Plant Now (USDA Zone + Frost-Anchored Calendar, Climate-Aware) ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Crop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (… |
| climate_type | string | — | Coarse 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.… |
| date | string | — | ISO 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_indoor | boolean | — | Include 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… |
| lat | number | — | WGS84 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. |
| limit | integer | — | Max suggestions to return. Default 50. |
| lng | number | — | WGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA. |
| pad_days | integer | — | Window 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. |
| zip | string | — | 5-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. |
| zone | string | — | USDA 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 Rotation Family + Year-Gap Rule for a Crop ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop | string | yes | Crop 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 Succession Planting Chain for a Crop ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop | string | yes | Crop 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 Dated Succession Planting Plan for a Location ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| climate_type | string | — | Coarse 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.… |
| crop | string | yes | Crop identifier: calendar slug ('tomato', 'pepper-sweet', 'fennel-herb'), common name ('Tomato', 'Sweet Pepper'), scientific name ('Solanum lycopersicum'), or alias. Case-insensitive. The tool resolv… |
| lat | number | — | WGS84 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. |
| lng | number | — | WGS84 longitude in decimal degrees, between -180 and 180. Example: -123.4307 for Port Angeles, WA. |
| year | integer | — | Four-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. |
| zip | string | — | 5-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. |
| zone | string | — | USDA 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 Friend or Foe Classification for Any Insect Slug ~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).
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | Insect, 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 Browse Beneficial Insects by Category ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Optional functional category filter. Omit to return all entries. |
No output schema declared.
No examples provided.
plan_bed_compatibility Evaluate a Bed of Crops for Companion 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.
| Name | Type | Req | Description |
|---|---|---|---|
| crops | array | yes | List 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 Search the CropGraph Crop Calendar ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Crop category: 'vegetable' (annual food crops), 'herb' (culinary/medicinal), 'fruit' (perennial fruit-bearing trees and berries), 'flower' (companion or pollinator-attracting flowers), 'cover-crop' (… |
| limit | integer | — | Max suggestions to return. Default 50. |
| query | string | yes | Search query: common name, scientific name, or substring. Examples: 'tomato', 'Lactuca', 'bean', 'broccoli'. |
| zone | string | — | USDA 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.