{"_id":"@ansvar/ch-crop-nutrients-mcp","_rev":"2-17e978fc8a0b6d072f61709987f9fc0a","name":"@ansvar/ch-crop-nutrients-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ansvar/ch-crop-nutrients-mcp","version":"0.1.0","keywords":["mcp","agriculture","nutrients","grud","farming","crop-science","switzerland"],"author":{"name":"Ansvar Systems","email":"info@ansvar.eu"},"license":"Apache-2.0","_id":"@ansvar/ch-crop-nutrients-mcp@0.1.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://ansvar.eu/open-agriculture","bugs":{"url":"https://github.com/Ansvar-Systems/ch-crop-nutrients-mcp/issues"},"bin":{"ch-crop-nutrients-mcp":"dist/server.js"},"dist":{"shasum":"b6eb3f9b1634d0692fac42ffd8d1b3883b8520d0","tarball":"https://registry.npmjs.org/@ansvar/ch-crop-nutrients-mcp/-/ch-crop-nutrients-mcp-0.1.0.tgz","fileCount":114,"integrity":"sha512-gvFa+T+NCZCMYO926HxU5N1UNdo+Cthhaywm7+NSbL0G+bvbv7fITD0XeNlNXa/RFDcU1TNTOJZaudvAsTjDlw==","signatures":[{"sig":"MEYCIQCLsSWnWG9K25aSPxELJgrx6kEAhYKOtMV5V5xCzYIiiwIhAJl+vQ3xvL+cAZgLiK8kBkCg0GkZETMHIFJW9OTB3BWu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fch-crop-nutrients-mcp@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325425},"main":"dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"gitHead":"beb83c38eb0627fd7c16e77f440e75f21d0cbe7c","mcpName":"io.github.ansvar-systems/ch-crop-nutrients","scripts":{"dev":"tsx watch src/server.ts","lint":"eslint src/ tests/","test":"vitest run","build":"tsc","start":"node dist/server.js","ingest":"tsx scripts/ingest.ts","build:db":"tsx scripts/build-db.ts","typecheck":"tsc --noEmit","start:http":"node dist/http-server.js","test:watch":"vitest","ingest:diff":"tsx scripts/ingest.ts --diff-only","ingest:full":"tsx scripts/ingest.ts --force","ingest:fetch":"tsx scripts/ingest.ts --fetch-only","coverage:update":"tsx scripts/update-coverage.ts","freshness:check":"tsx scripts/check-freshness.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/ch-crop-nutrients-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Swiss crop nutrient recommendations via MCP -- GRUD data, Suisse-Bilanz, soil types, NPK planning, commodity prices","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","eslint":"^9.0.0","vitest":"^2.0.0","typescript":"^5.5.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^8.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ch-crop-nutrients-mcp_0.1.0_1775385546597_0.906679674796607","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/ch-crop-nutrients-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"}},"time":{"created":"2026-04-05T10:39:06.516Z","modified":"2026-05-02T05:45:37.910Z","0.1.0":"2026-04-05T10:39:06.743Z"},"bugs":{"url":"https://github.com/Ansvar-Systems/ch-crop-nutrients-mcp/issues"},"author":{"name":"Ansvar Systems","email":"info@ansvar.eu"},"license":"Apache-2.0","homepage":"https://ansvar.eu/open-agriculture","keywords":["mcp","agriculture","nutrients","grud","farming","crop-science","switzerland"],"repository":{"url":"git+https://github.com/Ansvar-Systems/ch-crop-nutrients-mcp.git","type":"git"},"description":"Swiss crop nutrient recommendations via MCP -- GRUD data, Suisse-Bilanz, soil types, NPK planning, commodity prices","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"readme":"# Switzerland Crop Nutrients MCP\n\n[![CI](https://github.com/ansvar-systems/ch-crop-nutrients-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/ansvar-systems/ch-crop-nutrients-mcp/actions/workflows/ci.yml)\n[![GHCR](https://github.com/ansvar-systems/ch-crop-nutrients-mcp/actions/workflows/ghcr-build.yml/badge.svg)](https://github.com/ansvar-systems/ch-crop-nutrients-mcp/actions/workflows/ghcr-build.yml)\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nSwiss crop nutrient recommendations via the [Model Context Protocol](https://modelcontextprotocol.io). Query GRUD (Agroscope) data, Suisse-Bilanz, soil types, NPK planning, and commodity prices — all from your AI assistant.\n\nPart of [Ansvar Open Agriculture](https://ansvar.eu/open-agriculture).\n\n## Why This Exists\n\nSwiss farmers and agronomists need fast access to GRUD nutrient norms, Suisse-Bilanz methodology, and current commodity prices when planning fertilisation and crop rotation. This data is spread across PDFs, federal websites, and industry publications. This MCP server puts it all behind a single tool interface so AI assistants can answer nutrient planning questions with cited, up-to-date Swiss data instead of guessing from training data.\n\n## Quick Start\n\n### Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"ch-crop-nutrients\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/ch-crop-nutrients-mcp\"]\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add ch-crop-nutrients -- npx -y @ansvar/ch-crop-nutrients-mcp\n```\n\n### Streamable HTTP (remote)\n\n```\nhttps://mcp.ansvar.eu/ch-crop-nutrients/mcp\n```\n\nNo authentication required.\n\n### Docker (self-hosted)\n\n```bash\ndocker run -p 3000:3000 ghcr.io/ansvar-systems/ch-crop-nutrients-mcp:latest\n```\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| `about` | Get server metadata: name, version, coverage, data sources, and links. |\n| `list_sources` | List all data sources with authority, URL, license, and freshness info. |\n| `check_data_freshness` | Check when data was last ingested, staleness status, and how to trigger a refresh. |\n| `search_crop_requirements` | Search crop nutrient requirements, soil data, and recommendations via full-text search. |\n| `get_nutrient_plan` | Get NPK+Mg fertiliser recommendation for a specific crop and soil type (GRUD-based). |\n| `get_soil_classification` | Get soil group, characteristics, pH class, and drainage for a Swiss soil type. |\n| `list_crops` | List all crops in the database, optionally filtered by crop group. |\n| `get_crop_details` | Get full profile for a crop: GRUD nutrient norms, typical yields, growth stages. |\n| `get_commodity_price` | Get latest Swiss commodity price for a crop. Warns if data is stale (>14 days). |\n| `calculate_margin` | Estimate gross margin for a crop using current or override commodity price. |\n| `get_manure_values` | Get manure nutrient content (N, P2O5, K2O) per GVE by animal category and housing system. |\n\nSee [TOOLS.md](TOOLS.md) for full parameter documentation and examples.\n\n## Data Sources\n\n- **GRUD 2017** (Agroscope) — NPK+Mg norms for all Swiss crops by soil type and altitude zone\n- **Suisse-Bilanz Wegleitung** (BLW) — Farm-level nutrient balance methodology, correction factors, tolerance ranges\n- **SBV Produzentenpreise / BLW Marktbeobachtung** — Swiss agricultural commodity prices at producer level\n- **swiss granum Richtpreise** — Cereal and oilseed reference prices\n- **swisspatat Richtpreise** — Potato reference prices\n\nSee [COVERAGE.md](COVERAGE.md) for data counts and limitations.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}