Skip to main content
Glama
Ranch.Bot MCP Server

Ranch.Bot MCP Server

Official
by RanchBot

Preview birth event

preview_birth_event
Read-onlyIdempotent

Validate and preview a birth event without saving farm data, showing all bundle fields and resolved details for approval before confirmation.

Instructions

Validate and preview one atomic birth event without saving farm data. Supports observation-only, existing-offspring, new-offspring and mixed bundles. Show the producer every bundle field and all resolved dam, group, protocol, and evidence details. Obtain explicit approval of this exact preview before calling confirm_birth_event. Before confirmation only, any change to the proposal or its referenced evidence requires another preview and renewed approval. For a saved birth, use preview_workflow with operation amend_birth, record_id, expected_revision and reason, then review and commit_workflow; amendment_operation entered_in_error invalidates it. Use this route only when exposed by the connected release; otherwise stop and contact https://ranch.bot/support. Do not re-record one or use generic edits as a workaround.

Input Schema

NameRequiredDescriptionDefault
bundleYes
farm_idNo
request_idYesStable request UUID. Preserve it across preview, confirmation, and retries.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changedv0.2.0
    • addedInput schema / properties / bundle / properties / custom
      Added value: +{
      +  "additionalProperties": {
      +    "anyOf": [
      +      {
      +        "maxLength": 1000,
      +        "type": "string"
      +      },
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / bundle / properties / offspring / default
      Added value: +[]
    • addedInput schema / properties / bundle / properties / offspring / items / properties / animal_id
      Added value: +{
      +  "description": "Link an existing active farm animal instead of creating a profile.",
      +  "format": "uuid",
      +  "type": "string"
      +}
    • addedInput schema / properties / bundle / properties / offspring / items / properties / birth_weight / properties / basis
      Added value: +{
      +  "description": "Weight basis; omission means unknown, never measured.",
      +  "enum": [
      +    "measured",
      +    "estimated",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / bundle / properties / offspring / items / properties / custom
      Added value: +{
      +  "additionalProperties": {
      +    "anyOf": [
      +      {
      +        "maxLength": 1000,
      +        "type": "string"
      +      },
      +      {
      +        "type": "number"
      +      },
      +      {
      +        "type": "boolean"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / bundle / properties / offspring / items / properties / identifiers
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "is_primary": {
      +        "type": "boolean"
      +      },
      +      "type": {
      +        "enum": [
      +          "BRAND",
      +          "EID",
      +          "MANAGEMENT_TAG",
      +          "NAME",
      +          "TATTOO"
      +        ],
      +        "type": "string"
      +      },
      +      "value": {
      +        "maxLength": 120,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "type",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / bundle / properties / offspring / items / properties / inventory_status
      Added value: +{
      +  "description": "Required when creating a profile; omit when linking an existing animal.",
      +  "enum": [
      +    "CURRENT",
      +    "UNKNOWN",
      +    "SOLD",
      +    "DECEASED",
      +    "NOT_MANAGED"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / bundle / properties / offspring / items / properties / sex / description
      Added value: +"Required when creating a profile; omit when linking an existing animal."
    • changedInput schema / properties / bundle / properties / offspring / items / required
      Previous value: -[
      -  "review_label",
      -  "sex"
      -]New value: +[
      +  "review_label"
      +]
    • removedInput schema / properties / bundle / properties / offspring / minItems
      Removed value: -1
    • addedInput schema / properties / bundle / properties / total_born
      Added value: +{
      +  "description": "Explicitly reported biological total, including stillborn. Omit when unknown; never derived from offspring entries.",
      +  "exclusiveMinimum": 0,
      +  "maximum": 1000,
      +  "type": "integer"
      +}
    • changedInput schema / properties / bundle / required
      Previous value: -[
      -  "dam_id",
      -  "birth_date",
      -  "offspring"
      -]New value: +[
      +  "dam_id",
      +  "birth_date"
      +]
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint/idempotentHint/destructiveHint, it discloses the approval workflow (obtain explicit approval of this exact preview before confirm), the invalidation rule (any change to proposal or evidence requires another preview), and the entered_in_error invalidation path. These are meaningful behavioral traits annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and the workflow sentences each carry distinct, load-bearing information (approval gate, re-preview rule, amendment route, release gate, workaround prohibition). It is dense but largely waste-free, though it runs long and could compress the amendment/routing tail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex nested-payload tool with no output schema, the description covers the full preview-to-confirm lifecycle, sibling routing, and fallback support path. It does not describe what the preview returns, but with annotations covering safety and no output schema the remaining gap is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% across a deeply nested bundle, so the description carries a compensation burden. It conveys conceptually that the bundle holds dam, group, protocol, and evidence details, but adds no syntax or field-level meaning beyond the schema's own descriptions, leaving most nested parameters undocumented in prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific compound verb (validate and preview) plus resource (birth event) and scope (without saving farm data). It explicitly distinguishes itself from confirm_birth_event and preview_workflow, so an agent can route without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use (before confirmation), when-not (for saved births use preview_workflow with operation amend_birth, then commit_workflow), a release-gating condition, and an anti-pattern warning (do not re-record or use generic edits as a workaround). Alternatives and conditions are all named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools