farmbot-agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@farmbot-agentmove the gantry to x: 450, y: 300 and tell me the current status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
farmbot-agent
Agent-native CLI and MCP server for FarmBot hardware control.
Control your FarmBot from the terminal or let AI agents manage your garden through the Model Context Protocol.
Install
npm install -g farmbot-agentQuick Start (CLI)
# Authenticate
farmbot login --email you@example.com --password yourpassword
# Check status
farmbot status
# Move the gantry
farmbot move --x 100 --y 200 --z 0
# Go home
farmbot home
# Emergency stop
farmbot e-stop
# Unlock after e-stop
farmbot unlock
# Execute Lua on device
farmbot lua 'toast("Hello from the CLI!")'All commands support --json for structured output and --timeout <ms> (default: 30s).
Quick Start (MCP Server)
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"farmbot": {
"command": "npx",
"args": ["-y", "farmbot-agent", "mcp"],
"env": {
"FARMBOT_TOKEN": "your-jwt-token-here"
}
}
}
}Claude Code
claude mcp add farmbot -- npx -y farmbot-agent mcpEnvironment Variable Auth
For MCP mode, set FARMBOT_TOKEN as an environment variable. Get your token:
curl -s -X POST https://my.farm.bot/api/tokens \
-H "Content-Type: application/json" \
-d '{"user":{"email":"you@example.com","password":"yourpassword"}}' \
| jq -r '.token.encoded'MCP Tools
Tool | Description |
| Device status: position, state, firmware |
| Current X, Y, Z position (lightweight) |
| Device config and identification |
| Move gantry to absolute or relative position |
| Home one or all axes |
| Immediately halt all movement |
| Unlock after emergency stop |
| Execute Lua code on the device |
MCP Resources
URI | Description |
| Current device state as JSON |
CLI Commands
Command | Description |
| Authenticate and store token |
| Remove stored token |
| Show device status |
| Move to position ( |
| Go home ( |
| Emergency stop |
| Unlock after e-stop |
| Execute Lua on device |
How It Works
farmbot-agent
├── CLI (Commander) → Human-friendly terminal commands
├── MCP Server (stdio) → AI agent tool interface
└── Shared Services → farmbot-js (MQTT) + FarmBot REST APIFarmBot communication uses MQTT over the farmbot npm package. Commands are sent as CeleryScript RPC requests and responses are matched by UUID. The JWT token contains MQTT broker credentials.
Safety
Coordinate bounds validation on all movement commands
Rate limiting: max 30 move commands per minute (prevents runaway agent loops)
Emergency stop is always available with short timeout
Structured errors with codes, retry hints, and recovery suggestions
Development
git clone https://github.com/kieranklaassen/farmbot-agent
cd farmbot-agent
npm install
npm run build
npm testLicense
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kieranklaassen/farmbot-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server