A demo, not a mock-up
Real controls.
A simulated orchard.
This isn’t just a game. Everything that decides whether a pump or valve may run is Sankhya’s production code, the same code that switches real equipment on a farm. Only the orchard around it is simulated, so you and your AI can try it without risking a tree.
Real · production code
The controls
Every demo farm runs Sankhya’s irrigation hub and MCP tools unchanged, wired to a virtual controller board that speaks the real firmware’s protocol.
- Valve and pump runs, daily schedules and the run log.
- The pump interlock, and the four-minute cap on a pump run nobody approved.
- The board’s own deadline on every output.
- The Approve step: an AI’s schedule change waits for a person.
Simulated · the game
The orchard
Around the controls is a simulation of weather, soil and trees, so there is something to irrigate and something to lose.
- Pick a tree crop and a climate: fruit, berries, nuts or timber.
- Soil water, salts and pH, the season, the store, the farmhand and the harvest.
- Money in S$ (Sankhya dollars), a made-up currency: not Singapore dollars or any real money.
- It runs on its own servers with no connection to any real farm. Nothing it does can touch a real valve.
On a real farm, the same hub drives real pumps and valves through Sankhya’s controller, the sensor nodes report the real soil, and every schedule change still waits for the operator’s Approve. Talk to us about running it on yours →
The safe cyber-physical pattern
Four rules beneath every caller.
An AI that can switch a pump is only as safe as the layers under it. Ours are enforced in the hub and the firmware, beneath the dashboard, the schedules and the AI alike — and the demo runs the same code.
Runs, not switches
A tool asks for an output to run for a set time; there is no “turn it on and forget”. A pump run that no person asked for is capped at four minutes, in code.
An interlock for everyone
The pump won’t start unless a zone valve is open, whoever asks. If the last open valve closes, the pump stops with it, and the run log says so — so a mistake shows up instead of hiding.
Deadlines on the board
The controller keeps its own timer for every output. If the connection, the cloud or the AI goes away mid-run, the run still ends on time.
Proposals wait for a person
No tool changes a schedule. An AI proposes a change with its reasoning, and it reaches the controller only when a person clicks Approve — the same function as the dashboard’s, so nothing can be queued that the button couldn’t apply.
And chemistry, in the demo. The tank won’t take calcium nitrate with sulphates or phosphates: mixed together they settle out and block the emitters. Every demo tool carries a title and read-only or destructive hints, so your client can ask before anything changes.
What the demo exposes
25 tools.
Thirteen are the production tools, registered by the same code Sankhya runs in production production. The other twelve are the game: weather, the store, the fertigation tank, the farmhand, harvest and time. File uploads and hand-typed stock entries are left out — in the demo, the store keeps the books.
| Tool | What it does |
|---|---|
get_farm_status | Everything at a glance: the date on the farm, weather, the crop’s stage, money, the controller, the tank, the store, deliveries, the farmhand, zones, sensors, alerts and the advisors’ notes. Start here. |
get_forecast | Temperatures, chance of rain and evapotranspiration for the days ahead. |
list_devicesproduction | The controller, its five zone valves and pump, and the daily schedules. |
get_runsproduction | The irrigation run log: planned and actual times, and how each run ended. |
get_readingsproduction | Soil moisture, temperature, EC and pH from the sensor nodes, hourly. |
get_orchard_logproduction | The orchard journal. |
get_recommendationsproduction | Proposals waiting for the player’s approval, and recent decisions. |
get_inventoryproduction | Stock by product and nutrient, deliveries and invoices. |
| Tool | What it does |
|---|---|
run_outputproduction | Run a valve or the pump for a set time, through the interlock and the four-minute cap. |
stop_outputproduction | Switch an output off. |
propose_recommendationproduction | Propose a schedule change; it waits for the player’s Approve. |
add_orchard_log_entryproduction | Write in the orchard journal. |
order_supplies | Order fertiliser, soil products, sensor nodes or host seedlings; the truck comes in one to three days. |
mix_tank | Have the farmhand mix a batch in the fertigation tank. Refused if the products would settle out together. |
set_tank_tap | Open or shut the tap between the tank and the venturi. |
place_sensor_node | Have the farmhand move a sensor node to another plant. |
spread_by_hand | Spread fertiliser, sulphur, gypsum or compost on a zone. |
flush_zone | Acid-flush a zone’s drip lines to clear blocked emitters. |
plant_host_trees | Sandalwood only: plant the host seedlings it needs beside it. |
advance_time | Move the farm’s clock on — up to a week, or whole years for a new planting or timber — and report what happened. |
| Tool | What it does |
|---|---|
update_orchard_log_entryproduction | Correct a journal entry. |
delete_orchard_log_entryproduction | Delete a journal entry. |
update_invoiceproduction | Check and confirm a delivery’s draft invoice. |
drain_tank | Drain and rinse the fertigation tank, discarding what’s in it. |
harvest | Call the picking crew in the harvest window, or thin or fell a timber stand. |
Connect
Bring your own AI.
One address for every client. When you connect, the demo’s connect page lets you start a new farm, pick the farm you last played in this browser, or enter a farm’s code — then Allow. There’s no account to make.
Claude
- In Claude on the web or the desktop app, open Customize → Connectors and click Add custom connector.
- Paste
https://demo.sankhyafarms.com/mcpas the server address and add it. - Click Connect. On the demo’s connect page, choose a farm and click Allow.
- In a chat, turn the connector on from the + menu, then ask Claude to look after the orchard.
On a Team or Enterprise plan, an owner adds the connector first (Organization settings → Connectors, then Add → Custom); members then connect it from Customize → Connectors.
Claude Code
claude mcp add --transport http sankhya-demo https://demo.sankhyafarms.com/mcp
Then run /mcp in Claude Code and choose sankhya-demo to sign in. The connect page opens in your browser.
ChatGPT
On a paid plan, on the web: turn on Developer mode under Settings → Apps → Advanced settings, create an app with the server address, and sign in when asked. Then pick it from the + menu in a chat.
Cursor and other clients
Any client that speaks MCP over Streamable HTTP with OAuth can connect. In Cursor, add the server to ~/.cursor/mcp.json and sign in when it asks:
{
"mcpServers": {
"sankhya-demo": { "url": "https://demo.sankhyafarms.com/mcp" }
}
}
Things to ask
“Look over my demo orchard and tell me what needs doing this week.”
“Mix a week’s feed for the trees, open the tank’s tap and tell me when it runs.”
“The forecast is hot. Propose a morning schedule for the next ten days.”
“Move the clock on a week and give me the report.”
For developers
- Transport
- MCP over Streamable HTTP, stateless:
POST https://demo.sankhyafarms.com/mcp - Authorization
- OAuth 2.1 with PKCE. Dynamic client registration or a Client ID Metadata Document; https callbacks, loopback callbacks on any port, or an app’s own scheme. Metadata at
/.well-known/oauth-protected-resource/mcp. - Sign-ins
- One farm per sign-in. Access tokens last an hour and refresh for up to 90 days, or 14 days unused, and end when the farm is deleted.
- Farms
- Deleted 14 days after the last visit. Each farm keeps its own clock (“farm time”), which runs only while someone is playing or calling. Prices are in S$ (Sankhya dollars), a made-up game currency: not Singapore dollars or any real money.
- Tool annotations
- Every tool has a title and
readOnlyHint,destructiveHint,idempotentHintandopenWorldHintannotations: 8 read-only, 12 that change the farm, 5 destructive. - Errors and limits
- A refused action comes back as a tool result marked
isError, in plain words your assistant can act on (a pump that won’t start without an open valve, say). Each farm takes up to 90 tool calls a minute; past that, the server answers with an error and the call can be retried a minute later. - Support
- admin@sankhyafarms.com, and the questions and answers below.
- Terms
- Use is under our Terms of Use (Section 9) and the privacy notice below.
Questions
Questions, answered.
Is this just a game?
Can the demo switch a real pump or valve?
Is S$ real money?
Do I need an account?
Which AI clients can connect?
What can my AI change without asking me?
Can I watch what my AI does?
How long does a farm last?
My client says the farm no longer exists. What now?
It says I’ve started too many farms, or that the demo is busy.
Can these controls run on my farm?
How do I report a bug or a security issue?
Privacy
What the demo keeps.
This notice covers the demo orchard: the game at sankhyafarms.com/play and the demo server at demo.sankhyafarms.com. The rest of our site and the Sankhya dashboard are covered by our privacy policy.
No account
The demo asks for no name, email or sign-up. Nothing in it identifies you unless you type it in.
Your farm
- Each farm is kept on our servers (Cloudflare) under a random code: its simulated weather, plants, store, run log and journal, and what you or your AI type into it, such as its name and journal notes.
- Anyone with a farm’s code can open it, so don’t write anything private in one.
- A farm is deleted 14 days after its last visit. To delete one sooner, email us its code.
Connecting an AI
- When an app connects, the demo server keeps its registration — the name it gives and where to send you back — and its tokens, so it knows which farm each sign-in plays. Tokens expire on their own and are revoked when the farm is deleted.
- The demo sees only the tool calls your assistant makes. It keeps the last 60 in the farm’s activity feed, with shortened arguments, and deletes them with the farm. Your conversation stays with your AI provider, under its terms.
Your browser
- The game remembers your farm’s code in this browser’s storage, and the demo server sets one cookie on demo.sankhyafarms.com (
sf_demo_farm, for 14 days) so its connect page can offer “Your farm”. - The code sits in the page’s address after the #, so it isn’t sent to our servers’ logs or to analytics.
- Pages on sankhyafarms.com use Google Analytics, as our privacy policy describes.
Network addresses
To keep one visitor from starting too many farms in a day, the demo server uses a salted, daily hash of your IP address. It is held in memory only and never stored.
How we use it
Only to run the demo, keep it secure, and fix and improve it. We don’t use demo data to train models, we don’t sell it, and we don’t combine it with anything else we hold.
Who else sees it
- Cloudflare, which hosts the demo, processes its requests to deliver and protect it.
- Your AI provider sees what the tools return to your assistant, under its own terms.
- Anyone with a farm’s code can open that farm.
- No one else, unless the law requires it.
Contact
Questions, or a farm to delete: admin@sankhyafarms.com. Sankhya Ventures LLC.
Support
Questions, ideas, a bug?
Write to admin@sankhyafarms.com; we reply personally. Release notes are on the Updates page, and the demo’s terms are in Section 9 of our Terms.