Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Farmbot Agent

FreeNot checked

An MCP server and CLI for controlling FarmBot hardware, enabling AI agents to manage gardening tasks through tools like gantry movement and device status monito

GitHubEmbed

About

An MCP server and CLI for controlling FarmBot hardware, enabling AI agents to manage gardening tasks through tools like gantry movement and device status monitoring. It supports executing Lua scripts and core hardware commands like homing and emergency stops via the Model Context Protocol.

README

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-agent

Quick Start (CLI)

# Authenticate
farmbot login --email [email protected] --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 mcp

Environment 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":"[email protected]","password":"yourpassword"}}' \
  | jq -r '.token.encoded'

MCP Tools

Tool Description
farmbot_status Device status: position, state, firmware
farmbot_get_position Current X, Y, Z position (lightweight)
farmbot_get_device_info Device config and identification
farmbot_move Move gantry to absolute or relative position
farmbot_home Home one or all axes
farmbot_emergency_stop Immediately halt all movement
farmbot_unlock Unlock after emergency stop
farmbot_lua Execute Lua code on the device

MCP Resources

URI Description
farmbot://device/status Current device state as JSON

CLI Commands

Command Description
farmbot login Authenticate and store token
farmbot logout Remove stored token
farmbot status Show device status
farmbot move Move to position (--x, --y, --z, --speed, --relative)
farmbot home Go home (--axis, --speed)
farmbot e-stop Emergency stop
farmbot unlock Unlock after e-stop
farmbot lua <code> 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 API

FarmBot 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 test

License

MIT

from github.com/kieranklaassen/farmbot-agent-cli-mcp

Installing Farmbot Agent

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/kieranklaassen/farmbot-agent-cli-mcp

FAQ

Is Farmbot Agent MCP free?

Yes, Farmbot Agent MCP is free — one-click install via Unyly at no cost.

Does Farmbot Agent need an API key?

No, Farmbot Agent runs without API keys or environment variables.

Is Farmbot Agent hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Farmbot Agent in Claude Desktop, Claude Code or Cursor?

Open Farmbot Agent on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Farmbot Agent with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs