# io.github.Cropgraph/cropgraph (npm · @cropgraph/mcp)

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

- Trust score: 66/100 (medium)
- Change this week: +25
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@cropgraph/mcp`: 66/100 (this document), [markdown](https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp.md), [page](https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp)

## Channel facts

- Registry: `npm`
- Package: `@cropgraph/mcp`
- Version: `3.2.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 80 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 61/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add cropgraph-cropgraph -- npx -y @cropgraph/mcp
```

### Codex

```bash
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
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cropgraph-cropgraph --command npx --arg -y --arg @cropgraph/mcp
```

### Hermes

```yaml
mcp_servers:
  cropgraph-cropgraph:
    command: "npx"
    args: ["-y", "@cropgraph/mcp"]
```

### Other

```json
{
  "mcpServers": {
    "cropgraph-cropgraph": {
      "command": "npx",
      "args": [
        "-y",
        "@cropgraph/mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 66, +34)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-08-01 (score 32, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 32, −9)

- [security regression] Provenance: unverified → fail
- [security regression] Malware scan: pass → unverified
- [security improvement] Install scripts: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional] Licence: MIT

### 2026-07-29 (score 41, +16)

- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100

### 2026-07-28 (score 25, −16)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 41)

First indexed and scored.

## MCP tools (18)

### `get_hardiness_zone` (~300 tokens)

Look up USDA Plant Hardiness Zone

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.

Input parameters:

- `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.

### `get_planting_plan` (~1047 tokens)

What to Plant Now (USDA Zone + Frost-Anchored Calendar, Climate-Aware)

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.

Input parameters:

- `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…

### `get_crop_details` (~113 tokens)

Detailed Crop Profile from the CropGraph Calendar

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.

Input parameters:

- `slug_or_name` (string, required): Crop calendar slug ('tomato', 'pepper-sweet'), common name ('Tomato'), or scientific name ('Solanum lycopersicum'). Match is case-insensitive.

### `search_plants` (~408 tokens)

Search the CropGraph Crop Calendar

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.

Input parameters:

- `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, required): 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…

### `get_crops_for_zone` (~374 tokens)

Crops Suited to a USDA Zone

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.

Input parameters:

- `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, required): 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…

### `get_companions` (~306 tokens)

Companion + Antagonist Plants for a Crop

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.

Input parameters:

- `crop` (string, required): 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…

### `check_companion_pair` (~184 tokens)

Check Whether Two Crops Have a Known Relationship

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.

Input parameters:

- `crop_a` (string, required): 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` (required)

### `plan_bed_compatibility` (~186 tokens)

Evaluate a Bed of Crops for Companion Compatibility

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.

Input parameters:

- `crops` (array, required): 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.

### `get_rotation_advice` (~301 tokens)

Rotation Family + Year-Gap Rule for a Crop

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.

Input parameters:

- `crop` (string, required): 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…

### `check_rotation_sequence` (~237 tokens)

Validate a Multi-Year Crop Rotation Plan

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?'.

Input parameters:

- `crops` (array, required): 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.

### `get_succession_chain` (~436 tokens)

Succession Planting Chain for a Crop

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.

Input parameters:

- `crop` (string, required): 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…

### `get_succession_plan` (~719 tokens)

Dated Succession Planting Plan for a Location

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.

Input parameters:

- `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, required): 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…

### `get_crop_pests` (~354 tokens)

Pests and Diseases Affecting a Crop

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.

Input parameters:

- `crop` (string, required): 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…

### `get_pest_detail` (~378 tokens)

Full Management Guide for a Pest or Disease

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.

Input parameters:

- `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, required): 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…

### `get_pest_intelligence` (~311 tokens)

Composite Pest Intelligence (Now What After Identification)

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.

Input parameters:

- `pest` (string, required): 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.

### `get_beneficial_insect` (~280 tokens)

Full Detail for a Beneficial Insect or Microbial Control

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.

Input parameters:

- `slug` (string, required): 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…

### `list_beneficials` (~311 tokens)

Browse Beneficial Insects by Category

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.

Input parameters:

- `category` (string): Optional functional category filter. Omit to return all entries.

### `get_verdict` (~198 tokens)

Friend or Foe Classification for Any Insect Slug

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).

Input parameters:

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

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 66
- 2026-08-01: 32
- 2026-07-31: 32
- 2026-07-29: 41
- 2026-07-28: 25
- 2026-07-27: 41

## Links

- npm package: https://www.npmjs.com/package/@cropgraph/mcp
- Socket report: https://socket.dev/npm/package/@cropgraph/mcp
- Repository: https://github.com/Cropgraph/cropgraph
- Changelog RSS feed: https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/cropgraph-cropgraph/cropgraph-mcp
