Skip to main content
Glama
Ranch.Bot MCP Server

Ranch.Bot MCP Server

Official
by RanchBot
README.md
# Ranch.Bot MCP Server

Read and write cattle and sheep records through a local MCP server on your own computer. It uses
your Ranch.Bot account over the stdio transport and exposes one farm at a time. Hosted connections
are not public yet. ChatGPT access is a private pilot. Ranch.Bot’s Claude connector is in review;
you can still connect it privately as a custom connector.

Requirements: Node.js 22 or newer, a Ranch.Bot account, and access to a farm.

## Install and sign in

These commands install this source package's version (0.2.0). For the recommended public release,
use the pinned command on [MCP setup](https://ranch.bot/docs/mcp-setup), the source of truth for
setup; release status and promotion rules live in [MAINTAINING.md](MAINTAINING.md). Stop older CLI
and MCP processes before upgrading; never remove their active lock files.

```bash
npm install -g @ranchbot/mcp-server@0.2.0
ranchbot-mcp --version
ranchbot-mcp login
```

Open the printed URL, sign in, and explicitly approve the displayed code and requested access in
your browser. No API key is needed. If login expires, run `ranchbot-mcp login` again; sign out with
`ranchbot-mcp logout`. See
[Troubleshooting](https://github.com/RanchBot/mcp-server/blob/main/docs/troubleshooting.md) for
access-denied and session problems, and keep passwords and token files out of assistant messages.

## Configure a local stdio client

Point an MCP client at the installed command with no arguments:

```json
{
  "mcpServers": {
    "ranchbot": { "command": "ranchbot-mcp", "args": [] }
  }
}
```

If the client cannot find the command, use its absolute executable path. Restart the client after
changing configuration. `ranchbot-mcp --help` and `ranchbot-mcp --version` work without
authentication. Any MCP client that can run a local stdio server works; this is not a certification
of any named client.

## First successful read

Ask the client to call these tools in order:

1. `list_my_farms` with `{}`. Choose the intended farm ID. If more than one farm is plausible and
   the producer did not name one, ask instead of guessing.
2. `list_animals` with `{"farm_id":"<farm_id>"}`, replacing the placeholder with that ID.

An empty list is a successful read. Pass `farm_id` explicitly on every scoped call; setting a
default with `set_default_farm` is optional. If access is denied, check the account and farm
membership; missing authentication means terminal login, then retry. Tool calls never start browser
approval. A different account clears the process's default farm.

`list_animals` accepts `query`, `match_mode` (`exact` default, or `partial`) and
`identifier_type`; exact matches saved identifiers and the current profile name, partial is literal
substring discovery over profile names and `NAME`/`MANAGEMENT_TAG` identifiers. `list_records`
accepts `animal_id`, `group_id`, `include_group_context` and explicit inclusive/exclusive
`applied_from`/`applied_before` RFC3339 bounds; the first three and the bounds activate bounded
history mode. Scoped credentials need the matching extra read scope for a target filter.

A useful read-only task: "Summarize the selected farm's current inventory." Read the complete
relevant population, follow each operation's pagination (`skip`/`take`) and returned `total`, and
report incomplete retrieval rather than presenting a first page as the whole answer.

## Writing farm data

Ordinary writes save directly under your server permissions, without the app confirmation screen
or its Change History. Before any mutation, present the operation, farm, resolved targets, exact
values, and consequences and get explicit approval. Read the result back afterwards. If the outcome
is uncertain, reconcile with reads before proposing another write.

Roles and scopes both apply: Readers can read, including the safe `lookup_animal_by_eid`; Editors or
Owners can create and update and confirm a birth; deleting animals, groups, records, or identifiers
needs Owner access. Birth confirmation also needs the `write:records`, `write:animals`, and
`write:groups` scopes. A missing scope and a missing role are separate problems.

Direct births use `preview_birth_event` → approval → `confirm_birth_event`. Saved amendments and
entered-in-error use `preview_workflow` with `operation: "amend_birth"`, the record revision and a
reason, then exact approval and `commit_workflow`, when exposed by the connected release. Never
re-record a birth as a correction; if capability is missing, stop and contact
[support](https://ranch.bot/support). Read the
[birth events reference](skills/ranchbot/references/birth-events.md) before handling births.

Farms can configure a versioned `record_birth` template that drives the shared
`preview_workflow` → approval → `commit_workflow` flow. The `list_workflow_templates`,
`get_workflow_template`, `create_workflow_template`, `publish_workflow_template_version`,
`update_workflow_template_state`, and `set_default_workflow_template` tools manage that
configuration (Owner writes with `write:farms`). After upgrading from a login that lacks
`write:farms`, run `ranchbot-mcp login` and approve a fresh authorization. Refresh preserves the
existing grant; it cannot add scopes. A new grant does not elevate your farm role.
Commit requires the exact `preview_hash` read back from a fresh
preview; a stale hash is rejected. Templates change
labels, visibility, defaults, and custom observations only — the meaning and review controls of
core birth fields do not change. See the [workflow guide](docs/workflows.md) for the run and
configuration steps.

## Agent skill

The package ships the public Agent Skill bundle at `skills/ranchbot` (`SKILL.md` plus
`references/`). It is optional guidance, not a capability or a security boundary; installation
details are in the [MCP reference](skills/ranchbot/references/mcp.md).

## Task references

- [MCP reference](skills/ranchbot/references/mcp.md) — connection, tool discovery, farm context,
  errors, and optional skill installation.
- [Birth events reference](skills/ranchbot/references/birth-events.md) — preview, confirmation,
  retry, saved amendments, and capability limits.
- [Exports reference](skills/ranchbot/references/exports.md) — archive create, poll, cancel, and
  download.
- [Mixed-source reconciliation](skills/ranchbot/SKILL.md#mixed-source-reconciliation) — historical
  imports, coverage ledgers, and lender-document caveats.

## Jobs for an external assistant

A producer can authorize a local assistant to reconcile years of lambing spreadsheets, iPhone notes,
messages, and livestock PDFs against one farm, produce custom reports, or compare farm history with
an authorized lender or AgriStability snapshot for the same population and date. Totals are
aggregate evidence, not individual animals or proof of current group membership; this is livestock
reconciliation, not financial advice. Follow the
[mixed-source reconciliation](skills/ranchbot/SKILL.md#mixed-source-reconciliation) recipe and the
[workflow](https://github.com/RanchBot/mcp-server/blob/main/docs/workflows.md) pagination rules; MCP
does not persist the coverage ledger.

## Package guides

- [Workflows](https://github.com/RanchBot/mcp-server/blob/main/docs/workflows.md) — find an animal,
  save an ordinary record, and preview and confirm a birth, with inputs, pagination, and recovery.
- [Architecture](https://github.com/RanchBot/mcp-server/blob/main/docs/architecture.md) — the
  request path and which component enforces each guarantee.
- [Troubleshooting](https://github.com/RanchBot/mcp-server/blob/main/docs/troubleshooting.md) —
  login, farm selection, lock, and access problems.
- [Development](https://github.com/RanchBot/mcp-server/blob/main/docs/development.md) —
  credential-free checks, the authenticated development server, and packaging.
- [Contributing](https://github.com/RanchBot/mcp-server/blob/main/CONTRIBUTING.md) — how changes
  reach this exported repository and where to send feedback.
- [Security](https://github.com/RanchBot/mcp-server/blob/main/SECURITY.md) — how to report a
  vulnerability privately.

## Maintainer instructions

See [MAINTAINING.md](MAINTAINING.md) for development, admin login, local installations, EID
migration, authentication troubleshooting, and detailed credential-lock recovery. For shell
commands, use [CLI setup](https://ranch.bot/docs/cli-setup). For everyday record entry, use
[SMS and web setup](https://ranch.bot/docs/getting-started). Support:
[support@ranch.bot](mailto:support@ranch.bot).

## License

MIT. See [LICENSE](LICENSE).

TDQS

B3/5.0

Scored across 82 tools

Disambiguation3/5

Descriptions work hard to separate overlapping tools, but the set still has genuinely confusable clusters: three EID lookups (lookup_animal_by_eid, find_or_create_animal_by_eid, and the deprecated find_animal_by_identifier), two parallel birth-recording routes (preview_birth_event/confirm_birth_event vs preview_workflow/commit_workflow with amend_birth), and create_record vs create_traceability_event for similar dated events. get_birth_source_evidence vs get_birth_history_evidence and farm_archive's multiplexed list/status/create/cancel/download add further selection risk.

Naming Consistency4/5

The overwhelming majority follow a clean snake_case verb_noun pattern (list_animals, create_record, update_location, archive_location). Deviations are minor and readable: farm_archive uses noun_verb order and bundles five operations into one name, and a few tools are noun-only (traceability_report, recent_transport_suggestions) with no verb.

Tool Count2/5

82 tools is far beyond the 25+ threshold and includes redundancy (a deprecated alias, two birth submission pipelines, multiple near-duplicate evidence readers). The livestock domain is broad, but the surface still feels bloated rather than each tool earning its place.

Completeness4/5

Coverage is deep and largely full-lifecycle: animals, groups, locations, records, traceability events, births, chute sessions, rations/feedings, imports, workflow templates, tasks, and protocols all have read/write/archive paths. Minor gaps exist, e.g. list_memories has no corresponding create/delete memory tool in the surface, and rations/feedings/chute sessions lack delete operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues