MCP server
The Roots MCP server lets any MCP client read and run your farm: Claude, ChatGPT, Cursor, VS Code, Windsurf, OpenClaw, Hermes or your own agent. It speaks Streamable HTTP at:
https://mcp.roots.sh/mcp
It acts with the access of the key you give it, and nothing more. Give it a test key to try it on the sample farm.
Connect
Claude Code
claude mcp add --transport http roots https://mcp.roots.sh/mcp --header "Authorization: Bearer rk_test_…"
Cursor, VS Code, Windsurf (mcp.json)
{ "mcpServers": { "roots": { "url": "https://mcp.roots.sh/mcp", "headers": { "Authorization": "Bearer rk_test_…" } } } }
roots mcp prints these with your own key filled in.
Tools
| Tool | What |
|---|---|
list_farms |
List the farms on this account. |
farm_brief |
What needs attention on the farm right now, ranked: open alerts, tasks due, each Roost’s feed, water, climate and doors, and devices that have gone quiet. Start here. |
list_alerts |
Alerts on the farm, most urgent first. |
update_alert |
Acknowledge an alert (someone is on it) or resolve it. |
find_animals |
Search animals by tag, EID, name or breed, or filter by species, group or paddock. |
get_animal |
One animal’s record with its recent history (treatments, weights, moves) and trackers. |
add_animal |
Add an animal to the farm. |
log_event |
Log something that happened: a treatment, weight, birth, move, sale, note or anything else. Attach it to an animal, group, paddock or device. |
list_groups |
Herds, flocks, pens and litters. |
list_paddocks |
Paddocks with acres, rest targets and when each was last grazed. |
list_devices |
Roost houses, trackers (bolus, tag, band, guardian), water and weather sensors, with battery and last report. |
get_readings |
Time series from a device: temperature, ammonia, feed and water levels, battery and more. |
roost_status |
Every Roost on the farm: feed, water, climate, power, doors, move, floor and recent commands. |
roost_command |
Send a command to a Roost: doors.open, doors.close, move.start, move.stop, move.to_paddock, feed.dispense, spines.set_height, climate.set_mode, climate.set_target, awnings.set, fans.set, heaters.set, floor.deploy, floor.retract, lights.set. Confirm with the farmer before moving the house or opening doors at night. |
list_tasks |
Open tasks for the crew. |
add_task |
Give the crew a task. |
complete_task |
Mark a task done. |
get_catalog |
Every metric devices report, every Roost and tracker command with its parameters, and the default alert rules. |
Tools that change things (roost_command, add_animal, log_event, add_task, complete_task, update_alert) are marked as not read-only, so clients ask before running them.
Try it with curl
curl https://mcp.roots.sh/mcp \
-H "Authorization: Bearer $ROOTS_API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"farm_brief","arguments":{}}}'