johgee
Enables users to produce explainable UK garden watering recommendations as deterministic millimetres, litres and runtime from self-reported garden details or an optional postcode, without controlling irrigation hardware.
README
Johgee Open Irrigation
Open-source, AI-native watering advice for UK home gardens.
v1 turns what you already know — garden type, soil, sun, how you water, recent rain and how the soil feels — into an explainable plan: millimetres, litres and runtime. It does not control taps, timers or irrigation hardware. It does not confirm a hosepipe ban for your street.
Numeric recommendations come from a versioned deterministic core. A language model may explain those facts. It must not change millimetres, litres, runtime, restriction status, variant ids or sources.
Status
Public data mode is dynamic after D-01 (2026-08-23): a postcode may use the
Met Office DataHub free Global Spot feed, cached by coarse grid. If weather
cannot be fetched, the API falls back to manual self-report and never invents
millimetres. Restriction status stays unknown; hosepipe and sprinkler advice
fail-closed until v3. fixture is test-only.
What you can do today
- Call
POST /v1/recommendationswith amanual_context(no postcode required). - Optionally send a UK postcode; weather is on-demand and free-tier only.
- Run the same calculation through the MCP tools
calculate_watering(manual, no network) andget_watering_advice(optional postcode; weather if the server has a free-tier key). - Mount the Theme section on a Shopify page, or open the local demonstration page.
- Read the first UK knowledge pages (HTML, JSON and JSON-LD).
Requirements
- Node.js 22.23.2
- pnpm 11.5.2 through Corepack
The exact runtime is recorded in .node-version and package.json.
Quick start
corepack enable
pnpm install --frozen-lockfile
pnpm check
pnpm dev:api
The API listens on http://localhost:8787. Try:
curl -sS http://localhost:8787/v1/recommendations \
-H 'Content-Type: application/json' \
-d '{
"garden_type": "borders",
"area_m2": 12,
"soil_class": "loamy",
"establishment": "established",
"irrigation_method": "watering_can",
"manual_context": { "recent_rainfall": "light", "soil_feel": "moist" }
}'
The response header must be X-Johgee-Data-Mode: manual. A fixture header is
test-only.
Local planner page: apps/public-web/watering-plan.html (pointed at the local API).
MCP
Build the stdio server, then point Cursor or Claude Desktop at it. No API key.
pnpm --filter @johgee/contracts build
pnpm --filter @johgee/irrigation-core build
pnpm --filter @johgee/ai-tools build
{
"mcpServers": {
"johgee": {
"command": "node",
"args": ["packages/ai-tools/dist/stdio.js"]
}
}
}
Tools: calculate_watering (manual self-report) and get_watering_advice
(UK postcode; weather on demand, otherwise the same self-report fallback).
Invalid input returns a structured problem; the tools do not guess numbers.
Skill draft: packages/ai-tools/SKILL.md.
A stranger should be able to run the MCP tool in about ten minutes from a clean clone: install, build the three packages above, start the stdio server.
Architecture
Shopify page / MCP client
│
▼
Public API (Hono) ── MCP stdio (@johgee/ai-tools)
│ │
└────────────┬────────────┘
▼
irrigation-core
(pure functions)
- Storefront: Shopify page + Theme section (
extensions/watering-planner). - Public API:
https://api.johgeeirrig.co.uk/v1(CORS: Johgee storefront). - Core:
@johgee/irrigation-core— no network, database or model. - Anonymous share links expire in 30 days. Tokens are stored as hashes.
- Knowledge:
apps/public-web/knowledge,llms.txt, sitemap, robots.
Exact UK postcodes must not enter databases, logs, traces, local storage or Git.
Repository map
apps/ Local public-web demo
extensions/ Shopify Theme section
services/ API
packages/ Core, contracts, planner-ui, ai-tools, content
api/ OpenAPI 3.1
schemas/ JSON Schema
docs/ Product, architecture, ADRs
Contributing
See CONTRIBUTING.md. Also SECURITY.md and GOVERNANCE.md.
Licence
Johgee-owned code is licensed under MIT. Third-party data and content keep their own terms and must be registered before use or redistribution.
Public source: github.com/hongzhizuo/johgee-open-irrigation.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.