# Agro GPS (npm · agro-gps-mcp)

Plant protection product registers of 30 countries, free; plus your farm notebook and finances

- Trust score: 73/100 (medium)
- Change this week: −1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `agro-gps-mcp`: 73/100 (this document), [markdown](https://verifymcp.io/servers/eu-agrogps-agro-gps/agro-gps-mcp.md), [page](https://verifymcp.io/servers/eu-agrogps-agro-gps/agro-gps-mcp)

## Channel facts

- Registry: `npm`
- Package: `agro-gps-mcp`
- Version: `0.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-11-05.

- **Supply Chain Security**: 81/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 30 of 93 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 19/100
  - Repository check failed: no source repository is declared.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 36 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 79/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1683 tokens (~105/item across 16 items; 16 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 90/100
  - Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 93% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 16 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Agro GPS MCP server?

Agro GPS runs locally as an npm package, launched with npx -y agro-gps-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add eu-agrogps-agro-gps -- npx -y agro-gps-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "eu-agrogps-agro-gps": {
      "command": "npx",
      "args": [
        "-y",
        "agro-gps-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "eu-agrogps-agro-gps": {
      "command": "npx",
      "args": [
        "-y",
        "agro-gps-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add eu-agrogps-agro-gps -- npx -y agro-gps-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "eu-agrogps-agro-gps": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "agro-gps-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add eu-agrogps-agro-gps --command npx --arg -y --arg agro-gps-mcp
```

### Hermes

```yaml
mcp_servers:
  eu-agrogps-agro-gps:
    command: "npx"
    args: ["-y", "agro-gps-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "eu-agrogps-agro-gps": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "agro-gps-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add eu-agrogps-agro-gps -t stdio -c npx -a -y agro-gps-mcp
```

### Other

```json
{
  "mcpServers": {
    "eu-agrogps-agro-gps": {
      "command": "npx",
      "args": [
        "-y",
        "agro-gps-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-11-05 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-04 (score 72, −2)

- [functional] Stability: pass → 0.87

### 2026-11-03 (score 74, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-11-02 (score 74, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-31 (score 74, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-30 (score 74, 0)

- [functional regression] Security disclosure: fail → unverified

### 2026-10-29 (score 74, 0)

- [security] Stability: 0.97 → pass

### 2026-10-28 (score 74, +1)

- [functional regression] Security disclosure: unverified → fail

## MCP tools (16)

### `search_plant_protection_products` (~144 tokens)

Search plant protection products

Free, no API key. Searches the official register of plant protection products (pesticides, fungicides, herbicides) of a European country by commercial product name and says whether each one is still authorised. Returns up to 15 matches with registration number, holder, status and a link to its page. Search by trade name (e.g. 'Roundup'), not by active substance.

Input parameters:

- `country` (string, required): ISO 3166-1 alpha-2 country whose official register to use, e.g. ES, FR, DE, IT, PT, PL
- `q` (string, required): At least three letters of the commercial product name

### `check_plant_protection_product` (~175 tokens)

Check a plant protection product

Free, no API key. Looks up one product by its official registration number in a country's register: authorisation state (authorised / withdrawn / expired), expiry date, formulation, active substances and authorised uses. With crop_eppo it also says whether the product is authorised on that crop. Includes a link to the product page.

Input parameters:

- `country` (string, required): ISO 3166-1 alpha-2 country whose official register to use, e.g. ES, FR, DE, IT, PT, PL
- `crop_eppo` (string): EPPO code of the crop to check the product against, e.g. VITVI (grapevine), OLVEU (olive)
- `registration` (string, required): Official registration number, e.g. ES-00725, 7400057

### `list_farms` (~51 tokens)

List farms

Farms (explotaciones) the API key can see, with the key owner's role in each, the plan and whether the holder data required for official submissions is complete. Call this first to get farm ids.

### `list_entries` (~105 tokens)

List notebook entries

Field notebook entries (labores) of a farm: treatments, fertilising, irrigation, sowing, harvest, expenses… with the compliance fields (Anexo II). Paginated: pass `since` = the `next` cursor of the previous page. Deleted entries come back with deleted=true so a mirror can stay in sync.

Input parameters:

- `farm_id` (string, required): Farm id from list_farms
- `since` (integer): Change cursor; 0 for the full notebook

### `entry_history` (~37 tokens)

Entry history

Who created, edited or deleted a notebook entry and when, field by field (audit trail).

Input parameters:

- `entry_id` (string, required): Entry id

### `list_groups` (~28 tokens)

List farm groups

Groups (a company or cooperative holding several farms) the key owner belongs to, with their role.

### `group_overview` (~63 tokens)

Group overview

Consolidated panel of a group: per farm, entries, cost, income, margin, treated hectares, compliance light (green/amber/red), pending review counts and a breakdown by crop; plus totals.

Input parameters:

- `group_id` (string, required): Group id from list_groups

### `advisor_portfolio` (~38 tokens)

Advisor portfolio

For advisors and owners: every farm they can review, with entries, missing compliance fields, pending, flagged and approved counts and a traffic light.

### `advisor_pending` (~38 tokens)

Advisor pending queue

Entries of a farm that still need review or lack mandatory fields, with the list of missing fields.

Input parameters:

- `farm_id` (string, required): Farm id

### `record_entry` (~307 tokens)

Record a notebook entry

Register a task in the farm's field notebook (needs a key with write scope). The entry is attributed to the key owner and marked as written by API in the audit trail; the server stores when it arrived and rejects future dates. It only adds new entries: it never edits or deletes existing ones. Confirm the farm, parcel, product and date with the user before calling it. Official submission to the administration is never done here: it needs a person's session in the app.

Input parameters:

- `cost_cents` (integer): Cost in euro cents
- `crop_code` (string): EPPO crop code, e.g. OLVEU
- `entry_type` (string, required): Kind of task
- `event_at` (string, required): When it happened (ISO 8601 with offset)
- `farm_id` (string, required): Farm id from list_farms
- `parcel_refcat` (string, required): Cadastral reference of the parcel
- `product_name` (string): Product or input used
- `quantity` (number): Quantity applied
- `registration_number` (string): Official registration number of the product (fito)
- `safety_days` (integer): Pre-harvest interval in days
- `title` (string, required): Short title, e.g. 'Tratamiento · Azufre mojable'
- `treated_area_ha` (number): Treated area in hectares
- `unit` (string): Unit, e.g. 'L/ha', 'kg', 'mm'

### `finance_dashboard` (~169 tokens)

Manager dashboard

Money of a farm or a whole group for one campaign: month-by-month cost and income, cost by category (phyto, fertiliser, fuel, labour, machinery, seed, insurance, other), cost per hour per worker and per machine, margin per hectare per parcel and per crop, per-farm totals and KPIs of the last three campaigns. Amounts are integer euro cents.

Input parameters:

- `campaign` (string): Campaign as its starting year (a campaign runs from 1 September to 31 August). Default: current
- `crop` (string): Only this crop code
- `farm_id` (string): Farm id (from list_farms). Omit to use group_id
- `group_id` (string): Group id (from list_groups) for figures consolidated across its farms

### `budget_variance` (~117 tokens)

Budget vs actual

Budget lines (campaign x farm x crop x category) with actual spend, remaining, used percentage and status ok / warning (90%+) / over. Amounts in euro cents.

Input parameters:

- `campaign` (string): Campaign as its starting year (a campaign runs from 1 September to 31 August). Default: current
- `farm_id` (string): Farm id (from list_farms). Omit to use group_id
- `group_id` (string): Group id (from list_groups) for figures consolidated across its farms

### `campaign_forecast` (~111 tokens)

Campaign close forecast

ESTIMATE of how the campaign closes per crop: expected yield x price minus costs already imputed and the budget still pending, as a low / mid / high range, total and per hectare. Says whether each assumption was saved by the farm, taken from last campaign or is missing. Always present it as an estimate.

Input parameters:

- `campaign` (string): Campaign as its starting year (a campaign runs from 1 September to 31 August). Default: current
- `farm_id` (string, required): Farm id

### `treasury_dues` (~105 tokens)

Receivables and payables

Money to collect (receivable) and to pay (payable) with issue date, due date, paid date, status (open / overdue / paid) and days overdue, plus totals.

Input parameters:

- `direction` (string)
- `farm_id` (string): Farm id (from list_farms). Omit to use group_id
- `group_id` (string): Group id (from list_groups) for figures consolidated across its farms
- `status` (string)

### `cash_flow` (~102 tokens)

Cash-flow forecast

Expected cash in and out by week or month from open receivables and payables, starting from the last imported bank balance, with overdue amounts apart.

Input parameters:

- `farm_id` (string): Farm id (from list_farms). Omit to use group_id
- `granularity` (string)
- `group_id` (string): Group id (from list_groups) for figures consolidated across its farms
- `horizon` (integer): Number of weeks or months

### `bank_movements` (~93 tokens)

Bank movements

Imported bank accounts with their last balance and movements, what each one was matched to and, for the unmatched ones, the best candidates with a score.

Input parameters:

- `farm_id` (string): Farm id (from list_farms). Omit to use group_id
- `group_id` (string): Group id (from list_groups) for figures consolidated across its farms
- `only_open` (boolean): Only unmatched movements

## Diagnostics

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

## Score history

- 2026-11-05: 73
- 2026-11-04: 72
- 2026-11-03: 74
- 2026-11-02: 74
- 2026-11-01: 74
- 2026-10-31: 74
- 2026-10-30: 74
- 2026-10-29: 74
- 2026-10-28: 74
- 2026-10-27: 73
- 2026-10-26: 73
- 2026-10-25: 72
- 2026-10-24: 72
- 2026-10-23: 76
- 2026-10-22: 76
- 2026-10-21: 75
- 2026-10-20: 75
- 2026-10-19: 75
- 2026-10-18: 74
- 2026-10-17: 74
- 2026-10-16: 73
- 2026-10-15: 73
- 2026-10-14: 72
- 2026-10-13: 72
- 2026-10-12: 71
- 2026-10-11: 71
- 2026-10-05: 65
- 2026-10-04: 65
- 2026-10-03: 65
- 2026-10-02: 65

## Common questions

### What is the Agro GPS MCP server?

Agro GPS is an MCP server listed in the public MCP registry as eu.agrogps/agro-gps. Plant protection product registers of 30 countries, free; plus your farm notebook and finances. This page covers its npm package (agro-gps-mcp).

### Is the Agro GPS MCP server safe to use?

Agro GPS scores 73 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Agro GPS MCP server expose?

Agro GPS exposes 16 tools: search_plant_protection_products, check_plant_protection_product, list_farms, list_entries, entry_history, and 11 more. Their descriptions and schemas cost roughly 1,683 tokens of context every time the server is loaded.

### Is the Agro GPS MCP server still maintained?

Agro GPS is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Agro GPS MCP server under?

Agro GPS declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/agro-gps-mcp
- Socket report: https://socket.dev/npm/package/agro-gps-mcp
- Website: https://agrogps.eu/
- Changelog RSS feed: https://verifymcp.io/servers/eu-agrogps-agro-gps/agro-gps-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/eu-agrogps-agro-gps/agro-gps-mcp.json
- HTML version of this page: https://verifymcp.io/servers/eu-agrogps-agro-gps/agro-gps-mcp
