Skip to main content
Glama
Ranch.Bot MCP Server

Ranch.Bot MCP Server

Official
by RanchBot

Confirm birth event

confirm_birth_event
Idempotent

Saves a producer-approved birth bundle only after approval of the exact preview. Preserves request_id, bundle, and confirmation_hash; retries return the saved event.

Instructions

Save one complete producer-approved birth bundle. Only call after the producer explicitly approves the exact preview. Preserve its request_id, bundle, and confirmation_hash exactly; never generate the hash or silently obtain and approve a fresh preview. An unchanged retry of the exact approved tuple returns the already-saved event; it is a retrieval, not a correction. If a confirmation outcome is uncertain, reconcile with reads before any further write. 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.
confirmation_hashYes

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.7/5.0
Behavior5/5

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

Goes well beyond the annotations (idempotentHint, destructiveHint=false) by explaining the retry contract: 'An unchanged retry of the exact approved tuple returns the already-saved event; it is a retrieval, not a correction.' It also states the hash must never be generated and that uncertain outcomes must be reconciled with reads before further writes. This is exactly the mutation-safety context the annotations cannot carry.

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?

Front-loaded with the core action and the approval precondition, then the hash/retry rules, then the amendment route and fallback. Dense but every sentence carries an actionable constraint; nothing is decorative, though the block is long enough to be slightly heavy for a single call.

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-bundle write with no output schema, the description supplies the lifecycle context (preview → confirm → amend), the idempotency behavior, and the failure fallback. It leaves farm_id semantics unstated and return shape undefined, but the agent has enough to invoke it correctly.

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

Parameters4/5

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

Schema description coverage is only 25%, so the description must compensate, and it does for the critical parameters: preserve request_id, bundle, and confirmation_hash exactly and never generate the hash. farm_id is left unaddressed, but the high-risk tuple semantics are made explicit.

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 verb and resource: 'Save one complete producer-approved birth bundle.' It clearly distinguishes itself from preview_birth_event by requiring the producer to have approved the exact preview, and from the amendment route (preview_workflow/commit_workflow). An agent can tell exactly what this does without opening the schema.

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?

Explicit precondition ('Only call after the producer explicitly approves the exact preview'), a named alternative for corrections ('use preview_workflow with operation amend_birth ... then review and commit_workflow'), an explicit prohibition ('Do not re-record one or use generic edits as a workaround'), and a fallback path ('otherwise stop and contact ... support'). Both when-to-use and when-not-to-use are covered.

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