Skip to main content
Glama

Good Earth

Goodearth Crop Suitability

goodearth_crop_suitability

Which crops finish on this ground, and with how much room to spare.

"What can I grow?" is not a lookup. Two farms in the same county, one on a bench and one in a hollow, have different answers — so this measures the block's own frost-free window and the heat it accumulates inside it, then judges each crop's requirement against that.

The answer that matters is not yes or no but MARGIN: how much season is left after the crop is done, in the days a grower plans in. A crop that finishes on the last warm day of an average year fails in half of them.

Requirements are yours. Published degree-day figures vary by cultivar and maturity group; Good Earth computes against your ground rather than publishing agronomy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
blockYesThe ground to answer for: a block you have saved — its id, its name, one of its aliases, or any part of its name that only one block has (e.g. "Meadow" for "Lower Meadow"). If several match, the error lists them with their ids. Blocks may overlap; each answers for its own ground. Save one with block_save first; geometry travels once, not on every call.
cropsYesThe crops to judge, with your own requirements. Each is {"crop": "Field corn", "gdd_target": 2600, "base_temp": 50} with optional "frost_hardy", "category" and "emoji".
dpop_tokenNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description must disclose behavior alone. It explains that the answer is a margin (season left after crop finishes) and notes that requirements are user-provided, not published agronomy. It does not mention that blocks must be saved first (which is in the schema for 'block') or any side effects, but it does add context about the calculation method and variability of degree-day figures.

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?

The description is somewhat verbose with rhetorical questions and conceptual framing, but it is front-loaded with the key purpose and margin concept. The added context on variability and user-supplied requirements is useful but could be more concise. Overall, it is structured with paragraphs that build understanding without excessive fluff.

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?

Given the complexity of the tool (computed margin, user-defined requirements), the description covers the main concepts and prerequisites sufficiently. It mentions that blocks must be saved first, but does not explain the output schema in detail (though output schema exists separately). The description is complete enough for an agent to understand the tool's value and how to structure input, though a note about overlapping blocks could be clearer.

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?

The schema covers most parameters, but the description adds important context: 'block' can be an id, name, or alias, and that geometry is saved via block_save. It also explains the structure of 'crops' with optional fields. This add value beyond the schema, especially for the 'block' param and the purpose of 'crops'.

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?

The description clearly states the tool evaluates crop suitability on a specific ground block, computing frost-free window and heat accumulation to judge each crop's requirements. It distinguishes itself from a simple lookup and from siblings like 'crop_gdd_status' or 'tree_suitability' by emphasizing the margin concept and ground-specific computation.

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

Usage Guidelines4/5

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

The description explains when to use it: when you need to know if crops will finish on a specific block, and emphasizes it is not a general lookup. It implies prerequisites (saving a block first) but does not explicitly mention alternative tools or exclusions, though the distinction from 'crop_gdd_status' is implied by the margin focus.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.