Skip to main content
Glama

Good Earth

Server Details

Climate timing for gardens and small farms: frost, heat, soil and planting dates for your plot.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
lonniev/goodearth-mcp
GitHub Stars
0
Server Listing
Good Earth

TDQS

B3.3/5.0

Scored across 81 tools

Disambiguation3/5

Most tools target distinct resources, and the detailed descriptions do heavy lifting to separate them. But several clusters (status/check tools, coupon deletion vs. patron forgetting, wildlife_catalog vs. nearby_species, proof vs. credential DM flows) could still be misselected by an agent, so the set is not as clean as a smaller domain would be.

Naming Consistency3/5

All tools share the goodearth_ prefix and snake_case, but the internal pattern is inconsistent: some are noun_verb (block_save, task_list), some verb_noun (delete_coupon, list_notarizations), and action verbs vary between check_, get_, list_, and bare nouns (service_status, session_status). Readable but not predictable.

Tool Count1/5

81 tools is far beyond the 25+ threshold and makes the surface hard for an agent to navigate, even though the server covers several domains. The count earns a 1 under the calibration.

Completeness4/5

The server covers its apparent domains unusually thoroughly: blocks, tasks, calendars, coupons, credentials, pricing, notarization, oracle queries, and many read-only agronomy tools. Gaps are minor (no individual block delete/update or block_item delete; no write path for crop records), and most workflows have no dead ends.

Available Tools

81 tools
goodearth_account_statementGoodearth Account StatementAInspect

Generate a patron's account statement at this operator.

Returns the patron's purchase history, active credit tranches, per-tool usage breakdown, and recent daily usage logs. This is the patron's spending account — not the operator's Authority tax balance.

Free — no credits consumed. Proof of npub ownership is required to prevent statement-scraping of arbitrary patrons.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of daily usage history to include (default 30).
npubYesThe patron's Nostr public key (npub1...).
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses that the tool is 'Free — no credits consumed', which is crucial cost information, and that proof of npub ownership is required to prevent statement-scraping, adding a security context. It also details the dpop_token format requirements, which is behavioral. However, it does not mention the output structure or any side effects, but given the output schema exists and the description covers core behavior, this is above average.

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

Conciseness5/5

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

The description is concise, direct, and front-loaded with the main purpose. Each sentence adds value: returns content, clarifies the account type, and highlights key constraints (free, proof required). No fluff or repetition of schema details. Well-structured for quick parsing.

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?

The description is complete for the tool's purpose: it clarifies what the statement contains, what it is not (authority balance), cost, and authentication prerequisites. The output schema presumably covers the return structure, so that is not a gap. Minor omission: no mention of pagination or limits, but given complexity and output schema, this is sufficient.

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?

The schema has 100% description coverage, so the schema already documents npub, dpop_token, and days. The description adds context about dpop_token's requirements (raw JSON, kind-27235, 'u' tag with tool's name) which goes beyond the schema's description, but it does not add much for npub or days beyond what's in the schema. Since coverage is high, a 3 is a fair baseline, with slight credit for enriching dpop_token semantics.

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 a specific verb ('Generate'), a specific resource ('patron's account statement'), and the scope ('at this operator'). It lists the contents (purchase history, credit tranches, usage breakdown, daily logs) and distinguishes itself from the operator's Authority tax balance, which helps set it apart from siblings like goodearth_check_balance and goodearth_check_authority_balance. This is a clear, specific purpose.

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 implies usage context: it is for accessing a patron's spending account, not the operator's tax balanceikuha. It also states the requirement of npub ownership proof via dpop_token, which guides the agent on prerequisites. However, it does not explicitly state when NOT to use this tool or compare to specific alternatives; the sibling list includes many other tools, but the description only contrasts with the authority balance, missing explicit routing guidance.

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

goodearth_account_statement_infographicGoodearth Account Statement InfographicAInspect

Generate a visual SVG infographic of your account statement.

Returns the same data as account_statement, rendered as a dark-themed SVG graphic with balance hero, metrics cards, health gauge, tranche table, and tool usage breakdown. Costs 1 api_sat per call. Proof is verified by debit_or_deny before any cost is incurred.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of daily usage history to include (default 30).
npubYesThe Nostr public key (npub1...) whose statement to render.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It adds meaningful context: the call costs 1 api_sat, proof is verified by debit_or_deny before cost is incurred, and the output is a dark-themed SVG with specific visual sections. It does not mention rate limits or state mutations, but the disclosed cost and verification behavior are genuinely useful beyond the schema.

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

Conciseness5/5

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

The description is compact: three sentences, primary purpose first, then output contents, then cost and verification. Every sentence adds distinct information with no repetition or filler.

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

Completeness5/5

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

For a tool with a rich output schema, fully documented parameters, and one highly relevant sibling, this description is complete enough. It covers what the tool produces, how it relates to account_statement, what it costs, and the verification mechanism, leaving no critical gap for an agent to call it correctly.

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 100%, so the baseline is 3 and the schema already documents npub, dpop_token, and days thoroughly. The description adds no extra meaning about parameter formats or usage beyond what the schema provides, so no bonus is warranted.

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 opens with a specific verb and resource: 'Generate a visual SVG infographic of your account statement.' It explicitly distinguishes itself from the sibling goodearth_account_statement by stating it returns the same data but rendered as a dark-themed SVG graphic, making the tool's unique role clear.

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 clarifies the tool is the visual counterpart to account_statement, which tells an agent when to prefer it: when an infographic is needed rather than raw statement data. It does not explicitly list exclusion conditions or alternative tools beyond this one comparison, so it falls just short of full 5.

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

goodearth_adoption_statusGoodearth Adoption StatusBInspect

Check this operator's adoption-request status at a chosen Authority.

Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
authority_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It does disclose a non-mutating polling action ('Polls the Authority MCP-to-MCP'), a cost trait ('Free'), and the statuses returned. However, it does not mention auth requirements, errors, or whether a prior adoption request is required, though the read-only nature is reasonably clear.

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

Conciseness5/5

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

The definition is short and front-loaded: the purpose sentence comes first, followed by the cost and mechanism detail. Every sentence earns its place, and there is no redundant or vague filler.

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

Completeness3/5

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

An output schema exists, so return-value documentation is not the description's job. However, for a tool with two parameters and no annotations, the description still omits relevant context: when an adoption request must already exist, how the Authority is chosen, and what dpop_token does. It is adequate for a simple status poll but not fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description barely compensates. 'Chosen Authority' maps to authority_npub, but the format and meaning of that parameter are not explained, and dpop_token is never mentioned. The agent gets little beyond the bare parameter names and the default value from the schema.

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 opens with a specific verb and resource: 'Check this operator's adoption-request status at a chosen Authority.' This is unique among siblings and not easily confused with goodearth_request_adoption or goodearth_check_proof_status. It also lists the possible statuses, clarifying what the tool returns.

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

Usage Guidelines2/5

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

The description gives no explicit when-to-use guidance, prerequisites, or alternatives. An agent can infer that checking status is the purpose, but nothing says when to call this instead of goodearth_request_adoption or other status/check tools. No exclusions or fallback routing are provided.

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

goodearth_almanacGoodearth AlmanacAInspect

The sky's own record for this ground — normal, actual, and what is coming.

Degree days say what the season is doing to the plants. This says what the season is doing: temperature, dew point, rain, wind, sunshine and day length, each against what is normal here, what has actually happened, and the fortnight ahead. Plus the sun and moon, which are astronomy and so are computed exactly rather than forecast.

Growers read these together with the heat. A week of high dew points is disease weather whatever the degree-day total says, and a dry August is an irrigation decision that heat accumulation cannot make for you.

One call covers every measure — three upstream requests regardless.

ParametersJSON 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.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the disclosure burden. It explicitly lists the data dimensions and the normal/actual/forecast comparison, notes that sun and moon are computed exactly rather than forecast, and reveals an aggregation cost: 'three upstream requests regardless.' It does not explicitly state read-only behavior, but the 'record' framing and absence of mutation language make that apparent.

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 three short paragraphs that front-load the normal/actual/forecast framing before listing the data and usage context. Every sentence contributes scope, data, or usage guidance, though the opening is poetic rather than purely operational. It is concise enough for an agent to parse quickly.

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?

An output schema is present, so explaining return values is not required. The description covers the data dimensions, time horizons, aggregation behavior, and usage rationale, while the schema handles block identification and billing prerequisites. It could name sibling alternatives more explicitly, but 'One call covers every measure' partially compensates.

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?

The schema already describes block and npub in detail, and the description adds no parameter-specific guidance beyond reinforcing the block-as-ground concept. It does not explain dpop_token or add constraints beyond what the schema provides. With 67% schema description coverage, the description's lack of parameter detail is acceptable but not additive.

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

Purpose4/5

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

The description clearly identifies the resource (a block/ground) and the delivered data: temperature, dew point, rain, wind, sunshine, day length, sun, and moon, each against normal, actual, and fortnight-ahead values. It differentiates itself from the many specialized siblings by emphasizing 'One call covers every measure.' It is slightly indirect because it relies on 'says' and 'record' rather than a direct verb like 'retrieves' or 'returns.'

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 positions the tool as the complement to heat/degree-day data: 'Growers read these together with the heat,' and it explains when high dew points or a dry August make degree-day totals insufficient. It also implies broad use instead of multiple specialized calls with 'One call covers every measure.' It does not name specific sibling tools or explicit exclusions, but the usage context is clear.

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

goodearth_block_item_listGoodearth Block Item ListAInspect

What you grow, watch for, or saw on a plot — a page at a time.

as_of is how a past season answers: the record as it stood that day, rather than as it stands now.

Sorting and searching happen in the database, over as many rows as the block holds rather than the page you are looking at.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesOne of: planting, pest, wildlife, observation.
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
pageNoZero-based page number.
as_ofNoRead the record as it STOOD on this date (YYYY-MM-DD) — what was live then, including anything you have retired since.
blockYesThe ground to read — its id, its name, or an alias.
sinceNoOnly observations on or after this date (YYYY-MM-DD).
untilNoOnly observations on or before this date (YYYY-MM-DD).
searchNoCase-insensitive regex over the name and the event, e.g. 'migration' finds both of a bird's. Empty matches everything.
seasonNoLimit to one season year. Ignored for observations.
sort_colNoOrder by one of: name, event, driver, starts_on, target_gdd, observed_on, season, created, updated. Omit for the default order — sightings newest first, everything else by when it was added.
sort_dirNo'asc' or 'desc'.asc
page_sizeNoRows per page, up to 200.
dpop_tokenNo
include_retiredNoInclude what you have retired.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It adds useful non-obvious behavior: as_of returns historical state, and sort/search execute over all block rows, not the displayed page. It does not state read-only safety, authentication/billing requirements, or rate limits, which would be material in the absence of annotations.

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?

Three short sentences with no filler, and each sentence contributes a distinct point: list scope, historical semantics, and database-wide search/sort behavior. It loses one point because the opening sentence is oblique rather than a direct statement of the operation.

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

Completeness3/5

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

The detailed schema and output schema carry most of the load, and the description covers the two non-obvious runtime behaviors. However, with no annotations, authentication/billing via npub and the read-only safety profile are left implicit rather than stated in the description.

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 93%, so the baseline is 3; the description adds value beyond the schema by explaining as_of's historical semantics and by disclosing that sort/search operate across the whole block. It does not add parameter syntax, but the extra behavioral nuance is genuinely helpful.

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

Purpose4/5

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

The title and description together identify the resource: a page of records for things grown, watched for, or seen on a plot, which maps to the planting/pest/wildlife/observation kinds in the schema. It lacks an explicit 'Lists...' verb, but the intent is recoverable and distinguishable from sibling block_list and block_item_save tools.

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

Usage Guidelines3/5

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

The description implies when to use the tool: fetching block-item records, including historical state via as_of, and clarifies that sorting/searching span the block's full data rather than the page. It never names alternatives or gives when-not-to-use guidance, leaving an agent to infer selection from the sibling names.

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

goodearth_block_item_saveGoodearth Block Item SaveBInspect

Record what you grow, watch for, or saw on a plot.

A whole batch in one call, because an afternoon in the field produces several notes at once and each one should not be its own fare.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesOne of: planting, pest, wildlife, observation.
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
blockYesThe ground this belongs to — its id, its name, or an alias.
itemsNoWhat to record, as a list. A planting is {crop, gdd_target, set_out}; a pest is a model as pest_threshold takes it; wildlife is an event as wildlife_calendar takes it; an observation is {observed_on, tag, note} plus whatever you saw. Pass item_id to amend something already recorded.
seasonNoThe season year these belong to. Defaults to this one.
dpop_tokenNo
retire_idsNoIds to retire. They stay readable as history; nothing is deleted.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. It says 'Record' and mentions 'fare,' hinting at billing, but it does not disclose that the operation persists writes, requires an npub for credit billing, supports amendment via item_id, or that retire_ids only retires items without deleting them. These side effects are left to the schema.

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

Conciseness5/5

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

The description is two short sentences with the action front-loaded and the rationale second. It avoids restating parameter names or schema content, and the 'afternoon in the field' rationale earns its place by explaining the batch-call design.

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

Completeness3/5

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

The tool has 7 parameters, no annotations, and an output schema signal, so the description alone is not fully self-sufficient. The schema fills in most parameter-level details, but the definition still lacks explicit behavioral framing for a mutating, billing-related write tool. It is adequate if the agent reads the schema carefully, but not complete on its own.

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 86%, so most parameters are already documented. The description's 'what you grow, watch for, or saw' adds a light conceptual mapping to the kind values, but it does not clarify item shapes, the npub requirement, season defaults, or retire semantics beyond what the schema provides. This matches the baseline for high schema coverage.

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

Purpose4/5

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

The opening clause 'Record what you grow, watch for, or saw on a plot' is a specific verb-plus-resource statement and maps well to the tool's planting/pest/wildlife/observation item kinds. The batch framing makes the write intent clear, though it does not explicitly distinguish itself from siblings such as goodearth_block_item_list or goodearth_block_save.

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

Usage Guidelines3/5

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

The second sentence gives a clear context: use one call for many field notes rather than a separate fare per note. However, it does not explicitly name alternatives or state when not to use the tool, so the usage guidance is implied rather than fully articulated.

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

goodearth_block_listGoodearth Block ListAInspect

The ground you have saved, with its bounds.

The blocks themselves and nothing else — what grows on them, what you watch for, and what you have seen are their own listing, so this answer stays the same size whether you farm one plot or forty.

A grower who has saved nothing gets the worked example, marked as such, so there is always somewhere to stand.

Blocks can overlap — a meadow drawn inside the farm that contains it is two blocks, each answered for its own ground. Read an overlap as intent, not as one outline being wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
dpop_tokenNo
include_retiredNoInclude ground you have retired.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It reveals notable traits: the response size stays constant regardless of plot count, empty results include a marked worked example, overlapping blocks are treated as multiple separate blocks, and overlaps should be read as intent. It does not mention auth or billing behavior, but the schema covers npub and the operation is a list/read.

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 compact at roughly 70 words and each sentence adds behavioral or scoping information: scope, item exclusion, empty behavior, and overlap semantics. The style is somewhat poetic and lacks a front-loaded verb phrase, but the structure is logical and avoids waste.

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 output schema exists and the sibling set includes related block/item tools, the description covers the key contextual cases: empty results, overlap semantics, and scope boundary. It is sufficient for an agent to select this tool and understand its unusual behaviors, though it leaves the undocumented dpop_token parameter to be inferred from convention.

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

Parameters2/5

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

The description adds no parameter-level meaning beyond the schema. Schema description coverage is 67%, with npub and include_retired documented in the schema, but dpop_token remains undescribed. Since the tool description itself never mentions include_retired, npub, or dpop_token, it does not compensate for the undocumented parameter or add value beyond the input schema.

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

Purpose4/5

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

The description identifies the resource ('the ground you have saved') and scope ('with its bounds'), and explicitly narrows the result to 'the blocks themselves and nothing else,' which separates it from block_item_list. It lacks a direct verb like 'list' and relies on the tool name for the action, but the resource and boundary are clear.

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 gives an implicit routing cue: content like 'what grows on them, what you watch for, and what you have seen are their own listing,' signaling that this tool is only for blocks themselves and another sibling handles items. It also explains the empty-state behavior ('a grower who has saved nothing gets the worked example'), though it does not explicitly name the alternate sibling tool.

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

goodearth_block_saveGoodearth Block SaveAInspect

Save a plot of land, so every other tool can work it by name.

Its area and sample count are measured here from the bounds you give, and returned — they are facts about the geometry, so there is nothing for you to keep in step.

Blocks may overlap or nest. A grower who saves the whole farm and then the meadow inside it has asked two questions about two pieces of ground, and both are right; the overlap is not a drawing error to correct.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWhat you call this ground, e.g. 'North Field'. Unique among your blocks.
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
blockNoOmit to create. Pass an existing block's id to update it.
aliasesNoOther names you call it. Only needed for a name that shares no words with the saved one — any unambiguous part of the name already works. Omit to keep the aliases it has; pass [] to clear them.
retiredNoTrue to retire it. Nothing is deleted — its record stays readable.
geometryYesIts bounds: a GeoJSON Polygon, or {lat, lon, radius_m}. It may overlap or sit inside another block — a meadow within the farm around it is two blocks, each answered for its own ground.
base_tempNoThe base temperature this ground's growing degree days count from.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

The description usefully discloses that area and sample count are computed from the provided bounds and need not be tracked externally, and that overlapping blocks are valid. With no annotations, it still does not disclose mutation/update side effects, billing requirements, or persistence behavior, leaving part of the safety burden unmet.

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

Conciseness5/5

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

The description is compact, front-loaded with the core action, and every sentence contributes a distinct point: prerequisite relationship, computed outputs, and overlap validity. The grower example is slightly narrative but directly prevents a common misunderstanding.

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 tool with no annotations and 8 parameters, the description plus a rich input schema covers the essential mental model: create/update via block id, geometry bounds, overlap tolerance, and computed outputs. It could add an explicit mutation warning or billing mention, so it is not a perfect 5.

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 coverage is 88%, so the schema carries most parameter documentation. The description adds real meaning beyond the schema by explaining that geometry drives computed, authoritative outputs (area and sample count) and by reaffirming the geometry param's overlap semantics. It does not elaborate on name/alias/base_temp, but those are already well covered in the schema.

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 opening sentence names a specific verb and resource ('Save a plot of land') and states the upstream purpose ('so every other tool can work it by name'). This clearly differentiates block_save from list/read siblings like goodearth_block_list and goodearth_block_item_save.

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?

It gives clear context for when to call the tool: before other tools can reference ground by name. It also explains the allowed overlap/nesting rather than leaving the agent to assume duplicates are errors; no exclusion criteria are given, so it stops one step short of an explicit when-not-to-use statement.

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

goodearth_calendar_datasetGoodearth Calendar DatasetAInspect

Compute this block's dated season as a dataset, and store it for publishing.

Every dated thing this block knows about: crop targets, pest stages, wildlife and husbandry dates, the frost record, and your tasks. Returned as structured rows — a calendar is one rendering of them, and a caller wanting a table or a notification wants the same data.

An iCalendar rendering is stored alongside under a feed token, which the Good Earth site serves at a subscribable URL. Point any iCal or Google Calendar client at it and the season appears next to the school run and the market stall, which is where a grower will actually see it.

This is the computed act: it reads the weather feeds and rebuilds everything. Pass the same token again to recompute in place — subscribers keep their subscription and the events update rather than duplicating.

Nothing is passed in but the block: what it grows, what it watches for and what is due are read from the record. That is what makes a refresh safe — while those collections travelled as arguments, nobody could recompute an existing feed without knowing what had been handed to it the first time, so a refresh silently published a smaller season than the one it replaced.

ParametersJSON 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.
tokenNoPass an existing feed's token to REFRESH it in place; omit to create one.
seasonNoWhich season to publish. Defaults to this one.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses the important side effects: the dataset is stored, an iCalendar feed is published under a token, recomputation happens in place, and refreshes update events rather than duplicating them. It also explains why refresh is safe by tying the computation to the block record. It does not mention billing or authorization, but the core mutation and idempotency behavior is transparent.

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

Conciseness2/5

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

The core sentence is front-loaded, but the description becomes quite long and includes illustrative material like 'appears next to the school run and the market stall' and a historical rationale for why refresh is safe. These add color and rationale, but the prose is noticeably longer than needed for an agent to decide how to invoke the tool.

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 compute-and-store tool with no annotations, it covers the operation, the structured-row output, the iCalendar feed artifact, and token lifecycle behavior. The input schema covers prerequisites like saving a block first, and an output schema exists, so the main missing piece is explicit routing to sibling calendar tools rather than invocation-critical context.

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 80%, so the baseline applies and the schema already documents most parameter meaning. The description adds useful context for token and for what the block conceptually contributes, but it introduces a slightly confusing line: 'Nothing is passed in but the block,' which could be read as conflicting with the schema's real parameters like npub, season, and dpop_token.

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

Purpose4/5

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

The opening sentence names a specific operation and resource: 'Compute this block's dated season as a dataset, and store it for publishing.' Phrases like 'stored alongside', 'feed token', and 'recompute in place' make it clear this creates or refreshes a dataset rather than fetching or listing one. It does not explicitly name sibling alternatives, so an agent must infer the boundary with calendar_fetch/list/revoke.

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

Usage Guidelines3/5

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

The description gives a clear create-vs-refresh condition: pass an existing token to recompute in place, omit it to create. However, it never explicitly says when to use this tool over the calendar_fetch, calendar_list, or calendar_revoke siblings, so routing guidance is implied rather than stated.

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

goodearth_calendar_fetchGoodearth Calendar FetchAInspect

Read a stored calendar dataset by its feed token.

This exists for the Good Earth site, which serves the subscribable URL: a calendar client speaks HTTP and knows nothing about MCP, JSON-RPC or npub proofs, so the site fetches through here and renders the response as text/calendar.

The unguessable token is the credential — there is nowhere in an iCalendar subscription to put a proof. Serving is a separate act from computing, and every read is counted so the operator can see how hard a feed is worked.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesThe feed token from calendar_dataset.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses that reads are counted, that the unguessable token is the credential, and that this is a read/serving operation separate from computing. It does not detail error behavior, but the output schema covers return shape.

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 in the opening sentence, and the following paragraphs add necessary security and serving context. At roughly 90 words it is appropriately sized and every sentence contributes; slight verbosity in the MCP/JSON-RPC/npub enumeration keeps it from 5.

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 one-parameter read tool with an output schema, the description explains what it reads, why it exists, how the token authenticates, and that reads are metered. The only minor gap is no explicit mention of when to prefer sibling calendar tools, but the serving context covers that.

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 already documents 'token' at 100% coverage, so the baseline is 3. The description adds meaningful semantics by explaining the token is an unguessable credential because iCalendar subscriptions cannot carry a proof, which goes beyond the schema's one-line description.

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 first sentence states a specific verb ('Read') and resource ('stored calendar dataset') keyed by feed token. This clearly differentiates it from sibling management tools like calendar_list or calendar_revoke by focusing on retrieval for serving.

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 second paragraph gives clear context: this tool exists for the Good Earth site to serve a subscribable URL to calendar clients that cannot speak MCP or handle npub proofs. It does not explicitly name sibling alternatives, but the serving scenario is unambiguous.

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

goodearth_calendar_listGoodearth Calendar ListCInspect

The calendar feeds you have published, and how often each is polled.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It implies a read-only operation but says nothing about authentication requirements, rate limits, side effects, or the nature of the response. The description is too sparse to inform the agent of any operational nuances.

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 a single, concise sentence with no redundancy. It front-loads the core purpose. However, it is so minimal that it sacrifices informative content, though that is more a completeness issue than a conciseness issue.

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

Completeness2/5

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

For a list operation with an output schema present, the description should at least indicate what information is returned (e.g., feed names, polling intervals). It also lacks any mention of authentication or the need for an npub, which is a required parameter. The description is inadequate for an agent to confidently invoke the tool without additional context.

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

Parameters2/5

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

Schema description coverage is 50%: npub is described in the schema but dpop_token is not. The tool description adds no information about either parameter, failing to clarify the role of dpop_token or how npub should be formatted. It does not compensate for the schema gap.

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

Purpose4/5

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

The description identifies the resource ('calendar feeds you have published') and the action (listing them, implied by 'feeds you have published' plus the context of listing). It also adds the detail about polling frequency, which distinguishes it from siblings like fetch or revoke. However, it does not use an explicit verb like 'list', so it relies on inference.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as goodearth_calendar_fetch or goodearth_calendar_revoke. It doesn't mention prerequisites (e.g., having published feeds) or scenarios where this is the appropriate choice. The description is purely declarative with no contextual direction.

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

goodearth_calendar_revokeGoodearth Calendar RevokeCInspect

Stop publishing a feed. Subscribers stop receiving updates. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key.
tokenYesThe feed token to stop publishing.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations provided, so the description must carry the full burden of behavioral disclosure. While it clearly says 'Stop publishing' (implying a state change) and 'Free' (implying no cost), it does not reveal whether the operation is reversible, whether it requires authentication beyond the token, or what the effect is on subscribers if the feed is re-published later. It also doesn't describe the response format or whether any side effects occur (e.g., deletion of historical data).

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 extremely concise: only three short sentences, all of which add value. It is front-loaded with the primary action ('Stop publishing a feed'), followed by a consequence and a cost note. There is no verbosity or redundancy, and it is easy for an agent to parse quickly.

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

Completeness3/5

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

Given that an output schema exists (though not provided in the input), the description does not need to explain return values. However, for a mutating tool with no annotations, the description is somewhat sparse. It omits any mention of required authentication context (e.g., whether the token must belong to the caller), error conditions, or reversibility. The simplicity of the operation (stop publishing) means it is mostly complete at a high level, but the lack of behavioral detail is a gap.

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?

The schema covers two of three parameters with descriptions (npub and token), giving a schema description coverage of 67%, which is moderately high. The description adds no parameter-specific meaning beyond what the schema provides. The 'token' parameter is described as 'The feed token to stop publishing', which is adequate. 'dpop_token' is left undocumented in the schema and description, but it is optional with a default and may not require elaboration. Overall, the description is neutral and does not add significant value over the schema.

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

Purpose4/5

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

The description states 'Stop publishing a feed' with a clear verb and resource, and then clarifies the consequence ('Subscribers stop receiving updates'). It is distinct from the sibling tools such as goodearth_calendar_fetch or goodearth_calendar_list. However, there is minor ambiguity in 'feed' — it is not explicitly tied to 'calendar' — but the tool name makes the context clear.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It does mention a consequence ('Subscribers stop receiving updates') which helps an agent infer usage, but there is no comparison with siblings like goodearth_calendar_dataset or goodearth_calendar_fetch, and no indication of prerequisites such as having a valid token or being the feed owner.

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

goodearth_calibrationGoodearth CalibrationAInspect

Turn a block's own field reports into a correction on the model.

Every other tool here answers from a 9 km grid refined by a physical terrain model. What that cannot know is the part that makes a farm particular — the hedgerow, the pond, the outlet the cold air drains through. Your observations measure exactly that gap.

Returns two corrections, kept separate because they fix different things: a bias in heat from crop stages (this ground accumulates more or less than the grid credits) and a bias in days from observed frost (this ground frosts earlier or later than the region).

Nothing is applied silently. A correction appears only once several observations agree, implausible values are set aside rather than averaged in, and the reports behind every figure come back with it.

ParametersJSON 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.
seasonNoWhich season's reports to calibrate against. Defaults to this one.
base_tempNoBase temperature in °F the stage targets are counted at.
dpop_tokenNo
observationsNoOptional. Omit and this reads the field reports already recorded for the block. Pass a list to calibrate against those instead, without recording them: a frost report is {"kind": "frost", "observed_on": "2026-10-02"}; a crop stage is {"kind": "stage", "observed_on": "2026-07-31", "crop": "Dahlia", "stage": "first bloom", "gdd_target": 1200, "set_out": "2026-05-24"}. Both accept an optional note.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that corrections are returned separately, that 'nothing is applied silently', that corrections appear only after multiple observations agree, that implausible values are set aside rather than averaged, and that the source reports are returned. It does not mention authentication, rate limits, or explicit side effects (beyond billing via npub, which is in the schema), but the provided behavioral notes are meaningful and non-obvious.

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

Conciseness5/5

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

The description is well-structured and front-loaded: a one-sentence summary, a paragraph of context, a paragraph on return values, and a paragraph on behavioral principles. Each sentence serves a purpose: distinguishing the tool, explaining outputs, and setting expectations about safety and consensus. No wasted or redundant wording.

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 tool's complexity, the presence of an output schema, and the rich input schema, the description covers the essential operational and behavioral aspects an agent needs. It explains the output structure at a high level, the consensus requirement, and the fact that reports are returned. It does not explicitly state prerequisites like 'block must be saved first', but the input schema already handles that. Overall, it is sufficiently complete for correct invocation and selection.

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 coverage is 83%, so the schema already documents the parameters well; the baseline is 3. The description adds conceptual context about why observations matter (measuring the gap left by the grid model) and what the two corrections respectively address, but it does not add detailed parameter-level semantics beyond what the schema already states. It is adequate but not compensating for any schema gap.

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 a specific action ('Turn a block's own field reports into a correction on the model') and distinguishes this tool from all siblings by contrasting it with the 9 km grid used by 'every other tool here.' The return of two distinct corrections (heat bias and days bias) further clarifies its unique purpose. An agent can easily tell this is the tool for farm-specific calibration rather than grid-based estimates.

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 gives strong contextual guidance by explaining that other tools rely on a coarse grid and cannot capture local features (hedgerow, pond, cold-air outlet), and that this tool's observations measure that gap. This implies when to use the tool, but it stops short of explicitly naming alternative tools or stating 'use X instead when Y'. The guidance is clear enough for an agent to infer the appropriate scenario.

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

goodearth_check_authority_balanceGoodearth Check Authority BalanceAInspect

Check this operator's tax balance at the Authority.

Returns the sats available for certifying patron credit purchases. When this balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits on the Authority.

This is the operator's own funding — not a patron balance. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the return value semantics (sats available for certifying purchases), the consequence of a zero balance (top-ups cannot be certified), and a clarifying trait (operator's own funding, free). It does not explicitly state the operation is read-only, but 'Check' implies non-mutating, and no side effects are mentioned; a 4 is warranted for covering the key behavioral aspects.

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

Conciseness5/5

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

The description is four sentences, each earning its place: purpose, return value, consequence+next step, and ownership distinction. It is front-loaded with the core action and avoids redundancy or filler. The structure is logical and compact.

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

Completeness5/5

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

For a zero-parameter tool with an output schema present, the description covers everything an agent needs: what the value represents, what happens when it is zero, the required follow-up action, and a caveat to prevent misuse. It is complete for correct invocation and decision-making.

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 tool has zero parameters and the input schema is empty, so there is no parameter ambiguity to resolve. Schema description coverage is trivially 100%. The description adds no parameter details, but none are needed, so the baseline 4 for zero-parameter tools applies.

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 opens with a specific verb and resource: 'Check this operator's tax balance at the Authority.' It clearly differentiates this from the sibling goodearth_check_balance by stating 'This is the operator's own funding — not a patron balance.' This leaves no ambiguity about which balance is being checked.

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 provides clear context for when to use the tool: it returns the sats available for certifying patron credit purchases, and states that when the balance reaches zero, the operator must call purchase_credits on the Authority. It also explicitly warns against confusing this with a patron balance. However, it does not explicitly name alternative check tools like goodearth_check_balance or state 'use this instead of X,' so it stops short of full exclusion guidance.

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

goodearth_check_balanceGoodearth Check BalanceAInspect

Check a patron's credit balance at this operator.

This is the patron's spending balance — credits purchased via Lightning for tool calls at this operator. For the operator's own balance at the Authority (needed to certify patron purchases), use authority_check_balance instead.

Free — no credits required. Proof of npub ownership is required to prevent anyone-with-the-registry from enumerating balances.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) whose balance to check.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

No annotations exist, so the description carries the burden. It discloses two non-obvious behaviors: the call is free ('Free — no credits required') and requires proof of npub ownership to prevent balance enumeration. It doesn't explicitly state read-only semantics, but 'Check' plus the free note make the operation's nature reasonably clear.

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

Conciseness5/5

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

Three short, front-loaded paragraphs: purpose, distinction from sibling, and cost/auth caveats. Every sentence adds information; no filler.

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

Completeness5/5

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

For a two-parameter tool with fully described schema and an output schema, the description covers purpose, scope, cost, authentication requirement, and the main alternative. The only minor issue is the imprecise sibling name, which does not undermine calling this tool correctly.

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 100%, so the baseline applies. The description adds no new parameter-level detail beyond the schema; the 'proof of npub ownership' sentence reinforces the dpop_token requirement but is already implied by the schema's description.

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?

Opens with a specific verb and object: 'Check a patron's credit balance at this operator.' It then defines that balance as 'patron's spending balance — credits purchased via Lightning for tool calls at this operator' and explicitly distinguishes it from the operator's own Authority balance, so it is not confusable with goodearth_check_authority_balance.

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?

Explicitly states when to use the sibling: 'For the operator's own balance at the Authority ... use authority_check_balance instead.' It also notes the call is free, which is relevant to choosing it. However, the named alternative is not exactly the sibling's name (goodearth_check_authority_balance), introducing a small routing ambiguity.

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

goodearth_check_paymentGoodearth Check PaymentAInspect

Check the payment status of a Lightning invoice.

Call after paying the invoice from purchase_credits. Free — no credits required. Proof of npub ownership is required to prevent credit-grant front-running by an observer of the invoice ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) that purchased the invoice.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.
invoice_idYesThe invoice ID returned by purchase_credits.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden and does well: it discloses that the call is free, requires proof of npub ownership, and explains the security rationale about preventing credit-grant front-running. It does not detail failure modes or explicitly state read-only behavior, but the purpose verb 'check' and the explanation provide solid transparency.

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

Conciseness5/5

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

Four short sentences, each earning its place: purpose, call timing, cost, and auth rationale. The most important operational guidance is front-loaded, and there is no filler or repetition of schema content.

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

Completeness5/5

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

Given a rich input schema and an output schema, the description supplies the missing operational context: when to call, that it is free, and why the dpop_token proof is required. An agent has everything needed to select and invoke this tool correctly.

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 100%, so the schema already documents all three parameters thoroughly, including the exact source of invoice_id and the raw JSON form of dpop_token. The tool description adds workflow context but no new parameter-level meaning beyond the schema. Baseline 3 is appropriate.

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: 'Check the payment status of a Lightning invoice.' This clearly differentiates it from sibling check tools like check_balance, check_price, and check_proof_status. It also anchors the workflow by referencing purchase_credits.

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?

Explicitly says when to call: 'Call after paying the invoice from purchase_credits.' It also gives cost context ('Free — no credits required') and an auth requirement, though it does not name alternative tools or exclusions. This is clear usage guidance without needing to reference siblings.

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

goodearth_check_priceGoodearth Check PriceAInspect

Preview the effective cost of a tool call.

Shows the base cost and any constraint effects (discounts, free trials, surge pricing). Free — no credits required.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo
tool_idYesEither the tool's UUID (from the pricing model) or a bare capability string (e.g. ``"deal_scenario"``). FE callers usually have the capability name; this resolves both so the FE doesn't need to derive UUIDs locally.
dpop_tokenNo
tool_kwargsNoOptional JSON object with tool call parameters for ad valorem / categorical-multiplier pricing preview (e.g. '{"amount_sats": 5000}' or '{"difficulty": "sovereign", "mode": "live"}').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It explicitly states that the operation is free and requires no credits, and the word 'Preview' implies no side effects. It does not mention authentication dependencies such as npub or dpop_token, but the cost-related behavior that matters most is disclosed.

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

Conciseness5/5

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

The description is concise, front-loaded with the core purpose, and every sentence adds value: what it shows and that it is free. There is no redundancy or filler.

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

Completeness3/5

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

The tool is relatively simple and has an output schema, so return-value documentation burden is reduced. However, the description lacks any usage context around authentication parameters and does not compare against sibling pricing tools. It is adequate but not fully complete for an agent unfamiliar with the environment.

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

Parameters2/5

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

Schema description coverage is 50%; tool_id and tool_kwargs are documented in the schema, but npub and dpop_token are left undocumented. The description adds no parameter-level context, so it does not compensate for the gap. This is a missed opportunity to explain connection/auth parameters.

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 uses a specific verb ('Preview the effective cost of a tool call') and clearly names the resource and scope: base cost plus constraint effects such as discounts, free trials, and surge pricing. This differentiates it from related lookup tools like goodearth_get_pricing_model by focusing on the realized, after-constraint price.

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 makes the use case clear: preview costs before executing a call, and emphasizes this preview is free with no credits required. It does not name alternative tools or explicitly state when not to use it, but the context is strong enough for an agent to decide appropriately.

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

goodearth_check_proof_statusGoodearth Check Proof StatusAInspect

Check whether a previously-cached dpop_token is still valid.

Mirrors check_oauth_status for the npub-proof flow: a calling agent can ask "will my next paid call accept this dpop_token?" before burning credits on a guaranteed failure.

Free, no side effects — does not evict the cache or touch relays.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNoRequired. The dpop_token phrase returned by ``request_npub_proof`` / ``receive_npub_proof``.
patron_npubNoRequired. The patron's npub (npub1...).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it states the operation is free, has no side effects, does not evict the cache, and does not touch relays. This goes beyond the name and gives the agent confidence about safety.

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

Conciseness5/5

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

Three short sentences: the purpose is front-loaded, the usage context follows, and side-effect disclosure closes it. No filler or redundancy.

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

Completeness5/5

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

For a low-complexity status-check tool with an output schema and fully documented parameters, the description covers purpose, usage timing, and behavioral guarantees. Nothing essential is missing.

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 100%, and both parameters already have clear descriptions in the schema. The tool description adds useful context about the dpop_token being previously cached, but it does not substantially enrich parameter semantics beyond the schema.

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 states a specific verb and resource: check whether a previously-cached dpop_token is still valid. It distinguishes this tool from other check_* siblings by tying it to the npub-proof flow and even names its analogue, check_oauth_status.

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 gives clear context for when to call this tool: before a paid call to avoid wasting credits on a guaranteed failure. It references check_oauth_status as the corresponding flow, though it could more explicitly say 'use that for OAuth tokens'.

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

goodearth_crop_gdd_statusGoodearth Crop Gdd StatusAInspect

Where every planting on a block stands, and whether it finishes before frost.

Returns, per planting: heat accumulated since set-out against its target, the projected date it reaches that target at the season's recent rate, and a verdict on whether that lands before the median first frost.

One call answers the whole block. The season curve and the frost record are shared across plantings, so asking about eight beds costs one round trip rather than eight.

ParametersJSON 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.
base_tempNoDefault base temperature in °F for plantings that do not set their own.
plantingsYesThe block's plantings. Each is {"crop": "Lisianthus", "gdd_target": 1050, "set_out": "2026-07-06"} with an optional "base_temp" in °F when the crop counts from something other than the block default.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that the season curve and frost record are shared across plantings, that one call answers the whole block, and that geometry travels once if saved with block_save. It doesn't mention error behavior for ambiguous block matches, but the schema does. It also doesn't state whether this is a read-only operation, but the description's framing ('Returns...') implies a read. Given no annotations, this is reasonably transparent.

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

Conciseness5/5

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

The description is well-structured: a one-line summary, then a clear breakdown of what is returned, then a practical usage note. Every sentence earns its place. It is front-loaded with the core purpose and adds efficiency context without bloat.

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?

The tool has an output schema, so return values are covered there. The description explains the core behavior, the shared-curve optimization, and the block reference flexibility. It doesn't explicitly state prerequisites like needing to save a block first, but the block parameter description covers that. It also doesn't mention what happens if the block is not found or if plantings are invalid, but the schema and error listing hint at it. Overall, it is complete enough for an agent to call 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 coverage is 80%, so the schema already documents most parameters. The description adds meaning for the 'block' parameter by explaining how to reference a block (id, name, alias, unique partial name) and the ambiguity error behavior. It also clarifies the 'plantings' structure with an example. The 'npub' and 'dpop_token' parameters are not described in the description, but the schema covers them. The description adds value beyond the schema for the key parameters.

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 what the tool does: it returns, per planting, heat accumulated, projected completion date, and a frost verdict. It names the resource (block plantings) and the specific outputs. It also distinguishes itself from siblings by emphasizing one call answers the whole block, which differentiates it from per-planting or per-block tools.

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 where every planting on a block stands and whether it finishes before frost. It also gives a strong usage hint: one call covers the whole block, so asking about eight beds costs one round trip. It doesn't explicitly name alternatives or exclusions, but the context is clear enough.

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

goodearth_crop_suitabilityGoodearth Crop SuitabilityAInspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

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.

goodearth_delete_couponGoodearth Delete CouponAInspect

Delete a coupon. Cascades to all patron redemptions.

Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings.

RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it delivers: it discloses cascading deletion to patron redemptions, the no-op behavior for chain references, Studio warnings for orphans, and the operator/proof requirement. This is thorough behavioral disclosure for a destructive tool.

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

Conciseness5/5

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

Four short sentences, front-loaded with the core action. Each sentence adds essential information: the action, the cascade, the no-op reference behavior, and the authorization constraint. No wasted words.

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 destructive tool with no annotations and an output schema, it covers the essential behavioral and authorization context well. The main gap is the dpop_token parameter: what it is, where it comes from, and how it relates to 'requires proof' is left unspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions coupon_id in passing but does not define it as the identifier of the coupon to delete. dpop_token is never named or explained; 'requires proof' only hints at an authentication token. Parameter meaning is inadequately covered.

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: 'Delete a coupon.' The tool is clearly distinguished from sibling coupon operations like mint_coupon, redeem_coupon, update_coupon, and list_coupons by its destructive action. The cascade and operator restriction further narrow its purpose.

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

Usage Guidelines3/5

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

Gives a clear authorization constraint: 'RESTRICTED to operator — requires proof.' This implies when the tool may be used but does not explicitly contrast it with alternatives like forget_coupon or state when not to use it. Usage context is implied rather than fully specified.

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

goodearth_delete_operator_credentialGoodearth Delete Operator CredentialAInspect

Remove a single operator secret field.

Deletes one key from the operator's encrypted credential blob without touching the others — the field-level counterpart to forget_credentials, which wipes the whole row. Use it to retire a leftover after an SDK cutover (a Prefect key after Modal, or a stored but untemplated orphan like anthropic_api_key) without taking the operator down for a full re-delivery.

Stored-but-untemplated fields are first-class: the delete is keyed on what is vaulted, not on what the current template declares. Idempotent — already-absent fields report removed: false without rewriting the vault. RESTRICTED to the operator — requires proof (nsec-signed kind-27235 or a cached dpop_token phrase); patron proofs are rejected. A deletion is as destructive as a write.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesThe operator credential field to remove (templated or not).
dpop_tokenYesOperator proof for this tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the behavioral burden. It discloses idempotency (already-absent fields report 'removed: false' without rewriting the vault), the destructive nature ('as destructive as a write'), the proof requirements (nsec-signed kind-27235 or cached dpop_token), and the operator-only restriction. It also clarifies the field-keyed-on-vaulted-not-template behavior. This is comprehensive transparency.

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 well-structured and front-loaded with the core action in the first line. Each subsequent sentence adds essential context (use case, behavior, restrictions, idempotency, destructive nature). It is slightly verbose, but every clause earns its place. A minor reduction could tighten it, but it remains concise relative to the information conveyed.

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

Completeness5/5

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

Given the tool's complexity (destructive operation, auth requirements, idempotency, field semantics), the description covers all necessary aspects. It explains what the tool does, when to use it, its behavioral guarantees, and its constraints. Since an output schema exists (indicated by 'Has output schema: true'), the description need not detail the return format. Nothing critical is missing for an agent 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 coverage is 100% for both parameters, so the baseline is 3. The description adds meaningful nuance beyond the schema by explaining that the delete is keyed on what is vaulted rather than the current template, which applies directly to the 'field' parameter. It also contextualizes the 'dpop_token' as the operator proof, though the schema already calls it 'Operator proof'. This added semantic depth justifies a 4.

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 states a specific verb ('Remove'/'Delete'), a precise resource ('single operator secret field'), and explicitly distinguishes it from 'forget_credentials' (wipes the whole row). It also differentiates from the sibling 'delete_patron_credential' by restricting to operator. This makes the purpose unambiguous and distinguishes it from nearby tools.

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?

The description provides concrete use cases ('retire a leftover after an SDK cutover') and explicitly contrasts with the alternative 'forget_credentials' for full re-delivery. It also specifies the constraint that only operators can use it and that patron proofs are rejected, giving clear when-to-use and when-not-to-use guidance.

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

goodearth_delete_patron_credentialGoodearth Delete Patron CredentialAInspect

Remove a single patron credential field.

Deletes one field from stored credentials without affecting other fields. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
fieldYesThe credential field name to remove.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

The description discloses that it is a write to a sensitive credential vault, requires proof of ownership, and is free. It also states that other fields are unaffected. However, it does not mention reversibility, idempotency, or error behavior. With no annotations, this is a moderate disclosure but not exhaustive.

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

Conciseness5/5

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

The description is concise, with the purpose stated in the first line and additional details in a second sentence. It avoids redundancy, front-loads the primary action, and every sentence adds value without waste.

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?

The description covers the essential context for a delete operation: what it does, its scope (single field), cost, and authentication requirement. Since an output schema exists, return values are not needed. It lacks details on idempotency or error handling, but these are minor given the full parameter schema and clear scope.

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?

The schema already fully documents all three parameters (npub, field, dpop_token) with detailed descriptions, including dpop_token's format and constraints. The tool description does not add any additional parameter-specific guidance beyond what the schema provides, so it meets the baseline for high schema coverage.

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 removes a single patron credential field, distinguishing it from updating or forgetting all credentials by specifying 'one field' and 'without affecting other fields'. It also identifies the resource as 'patron credential vault' and implies a write operation.

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

Usage Guidelines3/5

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

The description provides context that this is a write operation requiring proof of npub ownership and is free, but it does not explicitly name alternatives or conditions for when not to use it. An agent can infer usage from the description, but it lacks explicit routing to sibling tools like goodearth_update_patron_credential or goodearth_forget_credentials.

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

goodearth_disease_riskGoodearth Disease RiskAInspect

Hours of leaf wetness on this ground, and what the disease models make of them.

Returns the estimated wet hours since the season began, every qualifying infection period each model found, which of its criteria were met and which were not, and the wet stretch the forecast implies next.

Degree days are the wrong clock for a fungus. What decides an infection is how long the leaf stayed wet and how warm it was while it did, which is why a dry August that accumulated heat all month grows no botrytis. A season with nothing qualifying is reported as exactly that — risk that is absent is as useful to a grower as risk that is present.

WETNESS IS ESTIMATED, NEVER MEASURED. No feed publishes a leaf wetness sensor for arbitrary ground, so it is inferred from modelled humidity and rain, and every answer names the estimator and the feed that fed it. That matters more here than elsewhere: humidity crosses the 90% line in a step, and two feeds a couple of degrees apart on dew point can differ threefold on the hours they count.

Good Earth runs published models against your ground. It does not publish plant pathology and it never recommends a treatment — registration is jurisdiction-specific and a label rate is law. Take the decision to your extension service, whose word counts where this service's does not.

ParametersJSON 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.
modelsNoWhich published models to run, as a list. Omit for all of them. Each row names one: {"model": "hutton"} for potato and tomato late blight, {"model": "botrytis"} for grey mould on cut flowers, and likewise "mills" (apple scab), "wallin" (early blight) and "powdery_mildew". Add "ref" to carry a saved row's id back on the answer. Do NOT invent a model name — the five are the ones this service runs.
seasonNoA past season year to count instead of this one. Omit for the season to date.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so thoroughly: it discloses that wetness is estimated, never measured, that the estimation source is named, and that the service does not provide pathology expertise or treatment advice. This is substantial behavioral context beyond a simple summary.

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

Conciseness3/5

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

The opening sentences are well front-loadednewlinewith the result summary, but the 'dry August' and 'degree days' section is illustrative rather than essential. Woven-in metaphor adds readability but lengthens the definition; it is appropriately sized for domain complexity but not maximally concise.

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 output schema exists and schema descriptions are rich, the description covers the domain-specific caveats an agent needs: estimation uncertainty, model limited set, and non-advice boundary. It could mention authentication or billing implications, but the npub parameter already covers billing in schema.

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 80%, so the schema already documents parameters like block, models, and season. The description adds conceptual meaning but does not clarify parameter formats or edge cases beyond what the schema states. It earns the baseline 3 without pushing higher.

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 names a specific verb and resource ('Returns the estimated wet hours', 'what the disease models make of them') and clearly enumerates the outputs: infection periods, criteria met, and forecasted wet stretch. It is unmistakably distinct from siblings like frost or pest tools through its focus on leaf wetness and disease models.

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

Usage Guidelines2/5

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

The description explains what the tool does and what it does not do (no treatment recommendations), but it never states when to prefer this tool over alternatives such as goodearth_pest_threshold or goodearth_crop_suitability. No explicit exclusions or sibling routing is provided.

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

goodearth_drying_windowGoodearth Drying WindowAInspect

When the dew burns off this ground, the dry days ahead, and the next rain.

Answers "is it dry enough yet?" for a grower planning to cut flowers, pick, mow or make hay. Returns this morning's and tomorrow morning's dew-off hour (the first hour the leaves are estimated to stay dry for two hours running), the first run of forecast days with no rain, the next hour of rain, and per day the rain, wet hours, reference evapotranspiration (FAO-56 ET0) and peak vapour-pressure deficit — how hard the air is pulling water out of anything wet. Ten days ahead, from one forecast call.

Not wet is not drying: a still, overcast, humid day wets nothing and dries little, which is why ET0 travels with every day. Wetness is ESTIMATED from modelled humidity and rain, never measured, as in disease_risk.

Conditions only. Good Earth never says a crop is ready to cut or that hay will cure — that depends on the crop, the swath and the field — and it publishes no agronomy.

ParametersJSON 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.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does this well. It discloses that wetness is ESTIMATED, never measured, that ET0 is included to explain drying, that this is 'Conditions only', and explicitly says Good Earth publishes no agronomy. It also defines the dew-off hour precisely.

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

Conciseness3/5

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

The description is informative and every substantive paragraph earns its place, but the opening line is poetic rather than functional, so the core purpose is not front-loaded. It is longer than strictly necessary, though still well-organized into 'what', 'returns', and 'limitations'.

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

Completeness5/5

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

For a complex forecasting tool with an output schema, the description is remarkably complete: it explains the question answered, the time horizon (ten days ahead), the per-day fields, the estimation caveat, and the scope boundary. Nothing needed to correctly invoke and interpret the result is missing.

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 coverage is 67%, and the description adds no parameter-level meaning. The block and npub parameters are already well described in the schema, but dpop_token remains undocumented and the description does not compensate for that gap.

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 names a specific verb and resource: it 'Answers "is it dry enough yet?"' for a grower planning to cut flowers, pick, mow or make hay, and lists the exact outputs (dew-off hours, dry-day runs, rain hour, ET0, VPD). This is clearly distinguishable from sibling window/frost tools by content even without naming them.

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?

It gives explicit context for when to call the tool (grower planning to cut flowers, pick, mow or make hay) and clarifies limitations ('Conditions only'). However, it never explicitly names alternatives or tells an agent when not to use this tool versus related window tools.

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

goodearth_forget_couponGoodearth Forget CouponAInspect

Remove a coupon from this patron's redemption list.

Cosmetic only — the coupon itself still exists at the operator, and the patron can re-redeem the same code later while the window allows. Free — requires proof of npub.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well: it discloses that the action is non-destructive, reversible (re-redeemable), free, and requires proof of `npub`. Some ambiguity remains about what 'proof of npub' means operationally, but the core side effects and persistence of the coupon are clearly stated.

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

Conciseness5/5

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

Three short sentences, each earning its place: the primary action, the key caveat about cosmetic effect, and the cost/auth note. It is front-loaded and free of 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 simple schema, the output schema presence, and no annotations, the description is largely complete: it explains the effect, non-destructiveness, re-redeemability, cost, and auth requirement. It could add a bit more about prerequisites or failure modes, but those are not essential for this straightforward operation.

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 0%, so the description must compensate. It gives meaning to `npub` (patron identity with proof requirement) and `coupon_id` (the coupon being removed) implicitly, but it says nothing about the optional `dpop_token` parameter. This is partial compensation, not full coverage.

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 states a specific action ('Remove a coupon from this patron's redemption list') with a clear resource and subject. It distinguishes itself from the sibling `goodearth_delete_coupon` by explicitly saying the coupon still exists at the operator, so an agent can tell these apart.

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 gives clear context for when to use this tool: when the goal is only to remove a coupon from a patron's list, not to permanently delete it. The 'Cosmetic only' qualifier implies when not to use it, though it does not explicitly name the alternative tool or provide an explicit when-not statement.

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

goodearth_forget_credentialsGoodearth Forget CredentialsAInspect

Delete vaulted credentials for a specific service and npub.

For operator credentials, pass the operator's own npub. For patron credentials, pass the patron's npub. Always requires proof of npub ownership — a deletion is as destructive as a write.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) whose credentials to forget.
serviceYesThe credential service to forget.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

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

There are no annotations, so the description carries the full behavioral burden. It clearly discloses that the operation deletes vaulted credentials, always requires proof of npub ownership, and is destructive. This is strong transparency for a mutating tool.

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

Conciseness5/5

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

The description is three tight sentences with no filler. The action and destructive consequence are front-loaded, and the operator/patron nuance is concise. Every sentence adds useful information.

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 3-parameter tool with a rich output schema and detailed dpop_token documentation in the schema, the description is largely complete: it identifies what is deleted, how to pick npub, and the required proof. The only notable gap is the lack of guidance distinguishing this tool from the delete_* sibling tools.

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 input schema already covers all three parameters at 100%, so the baseline is 3. The description adds value by explaining the operator/patron distinction for the npub parameter and reinforcing that the deletion destroys credentials, going beyond the schema's generic descriptions.

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

Purpose4/5

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

The description has a clear verb and resource: 'Delete vaulted credentials for a specific service and npub.' It also adds useful operator-vs-patron context. However, it does not differentiate this tool from sibling deletion tools like goodearth_delete_operator_credential and goodearth_delete_patron_credential, so it earns a 4 rather than a 5.

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

Usage Guidelines2/5

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

The description gives within-tool guidance about which npub to pass for operator vs patron credentials, but it never states when to choose this tool over the sibling delete_* tools or when to avoid it. With multiple credential-deletion siblings present, the lack of explicit alternatives leaves the agent to infer selection criteria.

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

goodearth_forget_my_groundGoodearth Forget My GroundAInspect

Delete every block you have here, and everything recorded on them.

Blocks, crops, plantings, pest models, wildlife watches, field reports, tasks, published calendar feeds and the cached weather read for your ground. A real delete, not a retirement: every other removal in this service keeps the row as history, and this one does not, because a grower who asks to be forgotten and is quietly kept has been told something untrue. Any calendar feed you published stops resolving at once.

You remain a patron. Your balance and your purchase history are not touched — those are the network's ledger rather than this operator's record of your farm, and there is no name, email or KYC in this system to forget. Sign in again with the same npub and you can start over on new ground.

Requires proof of the npub, like any call that reads your record. Free: charging someone to leave is a toll on the door out.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) — whose ground to forget.
confirmNoMust be exactly "FORGET MY GROUND". A phrase rather than a boolean, because this cannot be undone and confirm=true is what gets sent by reflex.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the behavioral burden: it discloses irreversibility, the difference from soft-delete, immediate calendar feed invalidation, preserved patron balance and purchase history, the ability to re-onboard with the same npub, proof-of-npub requirement, and no cost. This is exceptionally transparent for a destructive tool.

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 front-loaded with the core action and data inventory, and the longer explanations about irreversibility, patron status, auth, and pricing all earn their place. A bit of rhetorical flourish could be trimmed, but it does not obscure the operational contract.

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

Completeness5/5

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

For a destructive operation with no annotations, the description supplies all essential context: destructive scope, side effects, exclusions, authentication requirements, cost, and post-delete behavior. An output schema exists for return values, so no material information is missing.

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 already documents npub and confirm with clear descriptions. The tool description adds semantic value by requiring proof of the npub and noting that the same npub can sign in again afterward. The dpop_token parameter remains undocumented in both the schema and description, leaving a small gap at 67% coverage.

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 opens with a precise destructive verb and resource: 'Delete every block you have here, and everything recorded on them.' It then enumerates the concrete data categories affected and explicitly contrasts itself with other removals that retain history, making its purpose unmistakable.

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?

It clearly establishes the intended scenario—a grower who asks to be forgotten and expects a true delete rather than a soft delete—and differentiates itself from 'every other removal in this service' that keeps history. It does not name sibling alternatives or provide an explicit when-not-to-use list, so it stops short of a 5.

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

goodearth_frost_windowGoodearth Frost WindowAInspect

When frost normally arrives on this ground, and whether it is coming this week.

Returns first-frost dates from the last ten seasons, how far the region's own terrain spreads that, and a night-by-night assessment of the coming forecast for the coldest ground rather than the average.

The spread is the answer's point. Frost forms on still, clear nights when cold air drains off high ground and pools in low, so a single forecast low is optimistic for a hollow and pessimistic for a bench on the same block.

ParametersJSON 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.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It explains the tool's analytical approach (comparing last ten seasons, terrain spread, coldest ground rather than average) and the physical rationale. However, it doesn't disclose side effects, prerequisites beyond saving a block, or what happens if the block isn't found, though the schema covers the error case partially.

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 compact and front-loaded with the core question ('when frost arrives... and whether it is coming this week'), then adds the analytical detail and the physical rationale. Every sentence earns its place, though the final sentence about cold air drainage is explanatory rather than operational, which is slightly more than strictly necessary.

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 output schema exists and the tool is a read-style query, the description covers the key context: what data is returned (first-frost dates, spread, nightly assessment), the coldest-ground perspective, and the block reference mechanism. It doesn't mention billing/credits or the dpop_token, but the schema covers npub's billing purpose. The description is complete enough for an agent 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 coverage is 67%, and the description adds meaningful context for the 'block' parameter by explaining how to reference a saved block (id, name, alias, unique partial name) and that blocks may overlap. The npub and dpop_token parameters are not described in the description, but the schema covers npub's purpose. The description compensates well for the block parameter's semantics.

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

Purpose4/5

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

The description clearly states the tool answers when frost normally arrives on a specific ground and whether it is coming this week, returning first-frost dates, terrain spread, and night-by-night forecast for the coldest ground. It distinguishes itself from generic weather tools by emphasizing the coldest-ground perspective, though it doesn't explicitly name a sibling alternative.

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 implies when to use it: when you need frost timing for a specific saved block, and it explains the terrain-based reasoning (cold air drains to low ground) that justifies the coldest-ground focus. It doesn't explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to select it for frost-related queries.

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

goodearth_gdd_season_curveGoodearth Gdd Season CurveBInspect

Growing degree day accumulation across a region, season to date.

Returns accumulation with its spread across your ground, the band of the last ten seasons to read it against, a 7-day forecast extension, and a projection at the recent rate.

The spread is the answer's point: it says how much the same field varies from bench to hollow, which is what decides whether one planting date serves the whole block.

ParametersJSON 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.
base_tempNoCrop base temperature in °F — the threshold below which the crop does not accumulate heat. 50 °F is the field-corn convention; cool-season crops use 32-40 °F.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does clarify that this is a non-mutating 'Returns' operation with forecast and projection behavior. It does not disclose billing/auth implications, prerequisites such as block_save, or latency/error behavior, though the schema partially covers billing and prerequisites.

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 compact and front-loaded: one sentence for purpose, one for output components, and one for interpretation. All three earn their place, though the interpretive final sentence is a slight luxury rather than essential.

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

Completeness3/5

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

The tool has an output schema and mostly well-described parameters, so the description need not re-explain returns or param syntax. It is still missing explicit routing guidance and behavioral caveats, and relies on the schema for prerequisites and billing, making it adequate but not complete.

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?

The schema already covers three of four parameters with detailed descriptions, so the description does not need to repeat them; it adds conceptual context about ground variability ('bench to hollow'). It does not compensate for the undocumented dpop_token field, leaving that parameter's meaning to inference.

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

Purpose4/5

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

The opening 'Growing degree day accumulation across a region, season to date' clearly specifies the metric and temporal scope, and the next sentence enumerates the returned components. It does not explicitly contrast with sibling tools like crop_gdd_status or soil_temp_projection, so it stops short of a 5.

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

Usage Guidelines3/5

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

The description implies when to use it by emphasizing that the spread 'decides whether one planting date serves the whole block,' which gives decision context. However, it never states when not to use it, names alternatives, or specifies conditions that would route to another tool.

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

goodearth_get_nostr_profileGoodearth Get Nostr ProfileAInspect

Read an npub's public Nostr profile (NIP-01 kind-0 metadata).

Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile if none is published.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral transparency burden. It discloses that the operation is a read, is free and public, returns latest metadata fields, and fallbacks to an empty profile if none exists. It does not cover error handling, relay behavior, or the meaning of an omitted npub, which prevents a 5.

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

Conciseness5/5

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

The description is two short sentences with no fluff, front-loading the core purpose before adding cost and return behavior. Every clause earns its place.

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 one-parameter read tool with an output schema, the description is nearly complete: it covers purpose, public access, no-proof requirement, returned fields, and empty fallback. The only notable gap is the optional/npub default behavior, since the input schema marks it as not required.

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?

The description identifies the sole 'npub' parameter as the subject being read and lists the returned metadata fields, adding some meaning beyond the bare schema. However, schema coverage is 0% and the schema marks npub optional via default '', while the description never explains what happens when npub is omitted or empty.

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?

Description opens with a specific verb and resource: 'Read an npub's public Nostr profile (NIP-01 kind-0 metadata),' which clearly distinguishes it from the write-related sibling goodearth_publish_nostr_profile. It avoids tautology and tells an agent exactly what operation is performed.

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 gives clear context: 'Free, no proof — the data is already public on relays,' which tells the agent when this tool can be invoked without authentication. It implies a read-vs-write distinction from sibling publish_nostr_profile but does not explicitly name alternatives or when-not conditions, so it stops short of a 5.

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

goodearth_get_notarization_proofGoodearth Get Notarization ProofAInspect

Generate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
notarization_idYesThe notarization record ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully explains that the tool generates a proof rather than mutating data, but it does not explicitly state that the operation is read-only, whether authentication is required, or what happens if the patron's balance was not included in the snapshot.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and resource, then provides the necessary context. There is no redundant wording or repetition of the title, making it highly efficient.

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?

The tool has only two required parameters, both fully described in the schema, and an output schema exists, which reduces the need to document return values. The description explains the tool's purpose sufficiently for an agent to invoke it correctly, though it could be slightly more complete by noting where the notarization_id originates.

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 100%, so the baseline is 3. Both parameters are minimally documented in the schema ('Nostr public key' and 'notarization record ID'), and the description adds little beyond linking them to the patron balance and notarized snapshot context. This is adequate but does not elevate the semantics further.

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 states a specific verb ('Generate') and a precise resource ('Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot'). This clearly differentiates it from related siblings such as goodearth_list_notarizations, goodearth_notarize_ledger, and goodearth_check_proof_status, because the proof-generation purpose is explicit and unique.

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

Usage Guidelines3/5

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

The description implies the tool should be used when a Merkle inclusion proof for a patron's balance in a notarized snapshot is needed. However, it does not explicitly state when to use this tool over alternatives, nor does it mention any exclusions or prerequisites such as first listing notarizations to obtain a notarization_id.

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

goodearth_get_operator_onboarding_statusGoodearth Get Operator Onboarding StatusAInspect

Report this operator's configuration readiness.

Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It goes beyond a label by specifying what the report shows and that it includes delivery instructions for missing values. 'Report' and 'Shows' strongly imply a read-only operation, though it stops short of describing data sources or edge cases.

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

Conciseness5/5

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

The description is two tight sentences: the first front-loads the core action, and the second adds output detail, the sibling distinction, and the cost note. There is no filler or repeated schema information.

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 zero-parameter report backed by an output schema and no annotations, the description covers purpose, output scope, sibling distinction, and cost. It doesn't explain the mechanism or data source, but those are not necessary for correct invocation, so it is nearly complete.

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 tool has zero parameters and the schema coverage is trivially 100%, so the baseline is 4. The description correctly adds no parameter syntax details; the phrase 'this operator' indicates the tool operates against ambient operator context rather than requiring an explicit argument.

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 opens with a specific verb-resource pair ('Report this operator's configuration readiness') and then enumerates exactly what the report contains: which settings are configured, which are missing, and how to deliver each missing value. It also distinguishes itself from the nearest sibling, get_patron_onboarding_status, so an agent can tell the two apart.

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?

The description explicitly gives the when-not and the alternative in one clear sentence: 'For patron-level credential status, use get_patron_onboarding_status instead.' It also signals there is no cost barrier with 'Free.' This is explicit guidance for choosing between siblings.

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

goodearth_get_patron_credential_fieldsGoodearth Get Patron Credential FieldsAInspect

List stored patron credential field names (not values).

Returns the names of fields stored for a patron, plus each field's delivered_at ISO-8601 timestamp when known (null for secrets vaulted before timestamps were recorded). Values are never exposed — use this to verify which fields are configured and how old each one is. Free. Proof of npub ownership is required: the list of configured fields is itself sensitive (reveals which integrations a patron has set up).

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states values are never exposed, the operation is free, proof of npub ownership is required, the field list itself is sensitive, and delivered_at may be null for older vaulted secrets. This gives an agent essential behavior and safety context beyond a simple read operation.

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

Conciseness5/5

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

The description is compact and front-loaded with the core message ('List stored patron credential field names (not values)'), followed by concise details about return data, cost, and authentication. Every sentence contributes meaningful information without redundancy.

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

Completeness5/5

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

Given the tool's moderate complexity, the presence of an output schema, and the lack of annotations, the description covers all essential aspects: what it lists, what it does not return, cost, auth requirement, and why the data is sensitive. Nothing an agent needs to call it correctly is missing.

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?

The input schema already provides 100% coverage with detailed parameter descriptions, so the baseline is 3. The description adds context about npub ownership and sensitivity, but it does not need to explain parameter syntax further because the schema is thorough.

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 uses a specific verb ('List') with a clear resource ('stored patron credential field names') and explicitly distinguishes names from values. It also states the tool's purpose: verifying which fields are configured and their age, which separates it from sibling mutation tools like update_patron_credential and delete_patron_credential.

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 gives clear context for when to use the tool: 'use this to verify which fields are configured and how old each one is.' It does not explicitly mention alternatives or exclusion conditions, but its use case is specific enough that an agent can decide when it applies.

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

goodearth_get_patron_onboarding_statusGoodearth Get Patron Onboarding StatusAInspect

Report a patron's credential readiness for this operator.

For set-once services (eXcalibur, TheBrain), shows which patron secrets are configured and which are missing. For dynamic/OAuth2 services (Schwab), reports that no patron credentials are needed. Free. Proof of npub ownership is required because credential presence is sensitive information about the patron's setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYesA kind-27235 Nostr event signed by patron_npub for this tool.
patron_npubYesThe patron's Nostr public key (npub1...).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It adds valuable context: the tool is free, requires proof of npub ownership, and treats credential presence as sensitive. It does not explicitly state side-effect freedom, but 'Report' and 'shows' strongly imply a read-only operation.

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

Conciseness5/5

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

The description is compact and front-loaded: the core purpose appears in the first sentence, and every subsequent sentence adds distinct value (service behavior, cost, auth requirement). No filler or redundant restatement of the schema.

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 two-parameter read-only status tool with an output schema, the description covers the essential operational context: service-type differences, cost, and authentication. It could be slightly more complete by pointing to related credential-management siblings, but that is more of a usage-guideline refinement.

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 100% and both parameters (patron_npub, dpop_token) are already well-documented in the input schema. The description adds only the contextual mention of proof-of-ownership, not new parameter-level semantics, so the baseline of 3 is appropriate.

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 opens with a specific verb and resource: 'Report a patron's credential readiness for this operator.' It then distinguishes patron-level status from sibling goodearth_get_operator_onboarding_status and explains service-specific meanings, leaving little ambiguity about what this tool does.

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 gives clear context: it reports readiness, explains the two service categories (set-once vs OAuth2), and notes the proof-of-ownership requirement. However, it never explicitly references alternatives like goodearth_get_patron_credential_fields or states when not to use this tool, so exclusions are only implied.

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

goodearth_get_pricing_modelGoodearth Get Pricing ModelAInspect

Get the active pricing model for this operator. Free.

If no model exists, self-initializes a scaffold with all registered tools at 0 sats. No economic data from code.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full transparency burden and does well. It discloses that the call is free, that a missing model causes self-initialization of a scaffold with all registered tools at 0 sats, and that output contains 'No economic data from code.' This surfaces a meaningful side effect and a likely misconception, going well beyond a terse 'Get pricing model'.

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

Conciseness5/5

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

Three short sentences with no filler. The core purpose is front-loaded first, followed by two high-value clarifications about cost and initialization behavior. Every sentence earns its place.

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

Completeness5/5

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

For a zero-parameter tool with an output schema, this description is complete. It covers what is fetched, for whom, the cost, the edge case of no existing model, and the nature of the returned data. Nothing needed to safely invoke the tool is missing.

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 tool has zero parameters and the schema already documents this fully with 100% coverage. The baseline for 0 params is 4, and the description appropriately focuses on behavior rather than parameter details, since there are no parameters to clarify.

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 a specific verb and resource: 'Get the active pricing model for this operator.' It differentiates from the many sibling tools by naming the exact object returned and adding delimiting facts like 'Free' and 'No economic data from code.' An agent can distinguish this from set_pricing_model, reset_pricing_model, and check_price without guessing.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you need the active pricing model for the current operator. However, it does not explicitly say when to prefer this over alternatives, nor does it mention related siblings like set_pricing_model or reset_pricing_model. It provides context but leaves the comparison to the agent.

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

goodearth_list_canonical_identitiesGoodearth List Canonical IdentitiesAInspect

Return canonical (tool_id, mcp_name, …) for every tool the wheel exposes.

The authoritative source for any client (Studio, agents, FE) that needs to know how this MCP identifies its tools. Reconcile uses this output to UUID-join against the stored pricing model — no name-based UUID derivation, no guessing.

Includes both ToolIdentity-seeded tools and any UUID recorded by @paid_tool that is missing from the registry. The latter appear with registered: false (and in the top-level unregistered array) so Reconcile can flag deploy drift instead of silently reporting clean when a live tool was never seeded (#174).

If the operator renames a function or rebrands a slug, the mcp_name in this output changes but tool_id stays. That's the whole point of the canonical-UUID design.

Also diffs the live FastMCP wire surface against the registry. Tools exposed on the wire but absent from the registry appear in unregistered so Reconcile can flag deploy drift instead of silently under-reporting (issue #175).

Free, no side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool is free and has no side effects, includes both ToolIdentity-seeded tools and UUIDs recorded by @paid_tool missing from the registry, and explains the registered:false flag and unregistered array for drift detection. It also explains the canonical-UUID design (mcp_name changes, tool_id stays). This is rich behavioral context beyond a simple 'list' description.

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 longer than strictly necessary, with some redundancy (the unregistered/drift point is made twice, referencing both #174 and #175). However, it is front-loaded with the core purpose and each paragraph adds meaningful context. The repetition of the drift-detection point costs a point, but the structure is otherwise clear.

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

Completeness5/5

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

For a zero-parameter, read-only listing tool with an output schema, the description is complete. It explains what the output contains, why it matters, how to interpret the registered flag, and the design invariant (tool_id stability). An agent has everything needed to call and interpret this tool 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?

The tool has zero parameters, so the schema is trivially complete. The description doesn't need to explain parameters, and it doesn't. Baseline 4 for zero-param tools is appropriate; the description adds no parameter info because there is nothing to add.

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 states a specific verb ('Return') and resource ('canonical (tool_id, mcp_name, …) for every tool the wheel exposes'), and clearly distinguishes this from siblings by explaining it is the authoritative source for tool identity mapping. It also names the consumer (Reconcile) and the purpose (UUID-join against pricing model), which removes any ambiguity about what this tool does.

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?

The description explicitly says when to use this tool: any client that needs to know how the MCP identifies its tools, and specifically Reconcile for UUID-join. It also states what not to do ('no name-based UUID derivation, no guessing'), which is a clear exclusion. This is strong usage guidance.

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

goodearth_list_constraint_typesGoodearth List Constraint TypesAInspect

List all available constraint types and their parameter schemas.

Returns the type, category, description, and parameter specs for every constraint that can be used in a pricing pipeline. Free — no credits required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It explicitly states what will be returned (type, category, description, parameter specs) and that no credits are required. The verb 'List' implies a read-only operation, and the cost note adds useful operational context beyond the schema.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence states exactly what the tool does, and the second adds return-field details and the cost implication. Every sentence earns its place with no filler or redundancy.

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

Completeness5/5

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

For a zero-parameter list operation with an output schema, the description is complete. It identifies the domain (pricing pipeline), the returned fields, and the fact that the call is free. An agent has everything it needs to select and invoke this tool 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?

The tool has zero parameters, so the description does not need to explain parameter behavior. The schema already reflects this with an empty properties object and 100% schema description coverage. The baseline of 4 for zero-parameter tools applies.

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 uses a specific verb and resource: 'List all available constraint types and their parameter schemas.' It clearly identifies the scope (constraint types usable in a pricing pipeline) and the returned fields, distinguishing it from the many sibling tools without needing to reference them.

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 gives clear context: this is the tool to discover constraint types and their parameter schemas for pricing pipelines. It also notes that it is free and requires no credits, which is useful for an agent deciding whether to call it. It does not name exclusions or alternatives, but no close alternative is evident among the siblings.

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

goodearth_list_couponsGoodearth List CouponsBInspect

List every coupon this operator has minted (newest first).

Each row carries the current times_redeemed counter — the Studio renders a progress bar from this against total_uses. RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

No annotations are provided, so the description must carry the behavioral burden. It discloses a meaningful restriction ('RESTRICTED to operator — requires proof'), a sorting behavior ('newest first'), and the presence of a times_redeemed counter with a rendering note about Studio's progress bar. This gives an agent useful information about state and constraints beyond just 'lists coupons.' It stops short of clarifying auth requirements in detail or pagination behavior.

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 compact and front-loaded with the primary action and scope, followed by a useful rendering note and a restriction warning. Every sentence carries information. Minor structural inefficiency: the 'RESTRICTED to operator — requires proof' line is arguably central and could have been placed earlier, and the reverse-quoted counter label is a formatting quirk.

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

Completeness3/5

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

An output schema exists, so return-value shape is presumably covered. For calling it correctly, the agent knows this is an operator-scoped read of minted coupons with a proof requirement. Gaps remain: how to satisfy the proof requirement, whether listing is paginated, and what the exact semantics of 'this operator' are relative to goodearth_list_my_coupons. These are material for a restricted tool, so completeness is only partial.

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?

The input schema has one parameter (dpop_token) with 0% schema description coverage, so the description would carry the burden in a high-stakes case. However, the description both implicitly and explicitly mentions the operator/proof requirement, which is likely tied to the token parameter. It does not explicitly explain how dpop_token is used or what value to supply, so it provides only partial compensation for the missing schema description.

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

Purpose4/5

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

The description states a specific verb+resource ('List every coupon this operator has minted') and includes a sorting detail (newest first). However, the scope is somewhat ambiguous because two sibling tools have very similar names: goodearth_list_my_coupons and goodearth_list_coupons. The description does not explicitly distinguish itself from those siblings, so it is clear but not fully differentiating.

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

Usage Guidelines2/5

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

The description implies that this is for operators minting coupons and notes it is 'RESTRICTED to operator — requires proof.' It does not mention when to choose this over goodearth_list_my_coupons or other coupon-related tools (mint_coupon, redeem_coupon, update_coupon, delete_coupon, forget_coupon). There is no explicit when-to-use or alternative guidance.

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

goodearth_list_my_couponsGoodearth List My CouponsAInspect

List the coupons this patron has redeemed on this operator.

Returns both active and exhausted redemptions with a per-row status (active / window_closed / patron_limit / total_limit). Free — requires proof of npub.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states that both active and exhausted redemptions are returned, enumerates the possible per-row status values, and notes that the operation is free and requires npub proof. It does not mention pagination or error behavior, but the core behavior is well disclosed.

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

Conciseness5/5

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

The description is concise and front-loaded with the purpose, followed by a compact status vocabulary and a short cost/auth note. Every sentence adds useful information without filler.

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 simple two-parameter listing tool with an output schema present, this description is nearly complete: purpose, return statuses, and proof requirement are all covered. The main gaps are the role of dpop_token and a clearer word about which sibling tools it should be preferred over.

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?

The schema description coverage is 0%, so the description must add parameter meaning. It does clarify that npub is the required proof identifier, which is helpful. However, the optional dpop_token is left unexplained, and the description does not fully compensate for the schema's lack of semantic detail.

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

Purpose4/5

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

The description opens with a specific verb and resource: 'List the coupons this patron has redeemed on this operator.' It further clarifies the scope by saying it returns both active and exhausted redemptions. However, it never explicitly distinguishes itself from the sibling goodearth_list_coupons, so sibling differentiation is only implicit.

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

Usage Guidelines3/5

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

The description implies its use case: checking a patron's redeemed coupon statuses, with statuses like active and exhausted. It does not explicitly state when to use this instead of alternatives, nor does it mention exclusions, leaving routing decisions to the agent.

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

goodearth_list_notarizationsGoodearth List NotarizationsBInspect

List recent Bitcoin notarization records.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (default 20).
statusNoOptional filter (e.g., 'submitted', 'confirmed').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the burden falls entirely on the description. It only states that the tool lists records and calls them 'recent', but doesn't explain ordering guarantees, time window, side effects, access requirements, or whether the results are derived from the Bitcoin blockchain. The term 'recent' is vague and unquantified.

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

Conciseness5/5

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

The description is a single focused sentence with no filler words. It efficiently conveys the core action and resource, front-loading the essential purpose without unnecessary details.

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

Completeness3/5

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

The output schema and parameter schema cover the technical details, but the description lacks clarification of what 'recent' means (e.g., a default time window) and how it might relate to status values. For a tool with no annotations, this leaves the agent with some ambiguity about the exact result scope, though the basics are sufficient.

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?

The schema description coverage is 100%, providing clear explanations for both 'limit' and 'status'. The description itself adds no extra meaning to the parameters, so the baseline of 3 applies since the schema already carries the parameter semantics.

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 'List recent Bitcoin notarization records' uses a specific verb and resource, clearly identifying the operation. It is distinct from sibling tools like notarize_ledger (which creates) and get_notarization_proof (which retrieves a single proof), so an agent can easily differentiate them.

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

Usage Guidelines2/5

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

No guidance is given on when to choose this tool over related siblings such as get_notarization_proof or check_proof_status. The description lacks any context for when listing is appropriate versus retrieving a specific proof or creating a notarization.

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

goodearth_mint_couponGoodearth Mint CouponAInspect

Create a new operator-owned discount coupon.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe catchy code patrons type to redeem (operator-scoped uniqueness).
dpop_tokenNo
total_usesNoAggregate cap across all patrons (default None = unlimited).
valid_fromYesISO-8601 datetime when the coupon becomes active.
valid_untilYesISO-8601 datetime when the coupon expires.
uses_per_patronNoHow many tool calls one patron can claim the discount on (default 1; pass null/None for unlimited within the window).
discount_percentYesPercentage off the base price (0-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It only says 'Create', which implies mutation, but it does not disclose side effects, uniqueness conflicts, ownership verification, or any constraints beyond the schema. This is a significant gap for a state-changing tool.

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

Conciseness5/5

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

The description is a single, tightly worded sentence with no filler. It front-loads the action and object clearly, making it easy for an agent to parse quickly.

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

Completeness3/5

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

The schema is rich with parameter details and an output schema exists, so the description does not need to explain return values. However, the description omits operational context such as authentication prerequisites, how operator ownership is enforced, and the distinction between this tool and update_coupon. The undocumented dpop_token parameter further contributes to the gap.

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 high at 86%, and parameter descriptions are detailed. The tool description adds no parameter-specific meaning, but the schema already documents name, discount_percent, valid_from, valid_until, total_uses, and uses_per_patron well.

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 verb ('Create'), the resource ('discount coupon'), and the ownership scope ('operator-owned'). This differentiates it from update, delete, list, and redeem coupon siblings without needing to inspect schemas.

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 establishes a clear usage context: creating a new operator-owned coupon. It does not explicitly name alternatives like update_coupon or delete_coupon, but the 'create a new' phrasing provides enough context for an agent to select this tool over its siblings.

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

goodearth_nearby_speciesGoodearth Nearby SpeciesAInspect

Search what is actually recorded near this ground, a page at a time.

This replaces asking for a whole catalogue. There are more than three thousand insect and spider species recorded around one Vermont block; the old answer showed forty of them and said nothing about the rest, and fetching all of them costs eleven round trips to build a list nobody reads. So: search, twenty to a page, and the true total on every page.

Species are a landscape fact, not a field one. A nine-hectare hayfield contains almost no observations, so the search widens to the surrounding country and the answer says how wide it looked. Every other tool here answers about the drawn ground and nothing outside it; this one cannot.

The count measures observers as much as organisms. A roadside is better recorded than a back hayfield, so a high count is evidence somebody was standing there — not that a thing is common on your ground.

No judgement of any kind. iNaturalist does not say which of these is a pest, a weed, or worth planting, and sorting them into those would be adding a claim the feed never made.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoNarrow by name — 'bumble', 'maple', 'Bombus'. Empty returns the most-observed first.
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
pageNoWhich page. 20 to a page.
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.
kingdomYesWhat to look for: 'plants', 'insects' (which includes spiders), 'wildlife' (birds, mammals, amphibians, reptiles) or 'fungi'.
dpop_tokenNo
with_lifecycleNoOnly the ones USA-NPN publishes a life cycle for. The count then counts those, not everything recorded here — thirty-nine of 2,416 insects around one block have one.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the transparency burden and reveals the non-obvious behaviors: 20-per-page results with the true total shown, search expansion beyond the block with a reported search width, counts reflecting observer presence rather than abundance, and zero added judgement. It also names iNaturalist as the source, adding useful context.

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 core sentence is front-loaded and bold lead-ins group related caveats, making the long description scannable. The illustrative Vermont/hayfield/roadside examples are useful for understanding the results, but they make the description more narrative than strictly necessary.

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

Completeness5/5

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

For a search tool with an output schema and high-coverage input schema, the description explains everything an agent needs to know beyond the schemas: pagination, true total, geographic widening, observer-bias caveat, and non-judgmental output. The absence of annotations is fully compensated on the points that matter for calling and interpreting this tool.

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 coverage is high (86%) and the schema already gives strong descriptions for block, kingdom, q, page, npub, and with_lifecycle. The prose mainly reinforces page size and the meaning of the totals; it does not add new meaning or syntax for individual parameters, so the baseline of 3 is appropriate.

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 opening sentence states the exact action and resource: 'Search what is actually recorded near this ground, a page at a time.' It also distinguishes the tool from its siblings by explicitly saying that every other tool answers only for the drawn ground, while this one widens to the surrounding country.

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?

It tells an agent when to choose it: 'This replaces asking for a whole catalogue' and instructs 'search, twenty to a page.' It also gives a when-not by stating that every other tool answers strictly for the drawn ground and warning that no pest, weed, planting suitability, etc. judgement is made, which prevents misrouting and misinterpretation.

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

goodearth_notarize_ledgerGoodearth Notarize LedgerAInspect

Build a Merkle tree of all patron balances and submit the root to Bitcoin via OpenTimestamps.

Operator-only background task. Bitcoin confirmation takes 1-6 hours. Free — no credits required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Given there are no annotations, the description carries the full burden. It discloses the operation's nature (background, slow), the cost (free), and the access level (operator-only). It doesn't detail what happens to existing notarizations or whether it can be run multiple times, but for a no-parameter tool, these are minor. The description adds value beyond the schema.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action and purpose. The second sentence clarifies usage context. Every sentence is essential and provides critical information for the agent to decide and invoke correctly.

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?

The tool is simple (no parameters) and has an output schema, so the description covers the main behavioral aspects: what it does, who can use it, how long it takes, and cost. Minor gaps include any retry behavior or side effects, but for a zero-parameter background task, this is adequate.

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 input schema has no parameters, so the description has no parameter semantics to clarify. The baseline for 0 params is 4. The description doesn't need to add parameter details, but it does not explain the output format either. However, the output schema is present, so return values are covered.

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 action: build a Merkle tree of patron balances and submit the root to Bitcoin via OpenTimestamps. This is specific and distinct from other notarization-related tools like get_notarization_proof or list_notarizations. The resource (ledger) and purpose (notarization) are clear.

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?

The description explicitly marks this as an operator-only background task, which tells the agent when to use it (only for operators, as a background operation). It also provides timing expectations (1-6 hours for confirmation) and notes it's free, which helps the agent decide if it's appropriate. No alternatives are named, but the use-case is clear enough to distinguish.

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

goodearth_oracle_aboutGoodearth Oracle AboutCInspect

Describe the DPYC ecosystem via the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool is 'Free' (likely no cost) and that it describes the ecosystem, but it does not state whether it makes network calls, requires authentication, has rate limits, or what kind of output to expect. The behavior is mostly opaque beyond the basic action.

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 extremely short: 'Describe the DPYC ecosystem via the Oracle. Free.' It is concise and front-loaded, but the second sentence is a fragment and the phrase 'via the Oracle' is unclear. It earns points for brevity but loses some for cryptic wording.

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

Completeness2/5

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

Given that there is an output schema, the return value may be partially documented elsewhere, but the description still lacks context about what 'the Oracle' is, what 'DPYC ecosystem' means in practice, and what an agent should expect. For a general informational tool with no annotations, this is thin but not completely empty.

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 tool has zero parameters, so there is no parameter semantics burden. The description does not need to explain parameters, and the schema already confirms an empty object. Baseline 4 is appropriate for a no-parameter tool.

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

Purpose3/5

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

The description says 'Describe the DPYC ecosystem via the Oracle. Free.' It identifies a verb ('describe') and a resource ('DPYC ecosystem'), but 'via the Oracle' is vague and doesn't clarify what the Oracle is or what kind of description will be returned. It is distinguishable from siblings only in that it is a general about/overview tool, but the wording is too loose to be fully clear.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many sibling tools. The word 'Free' hints that it may be a no-cost informational call, but there is no explicit context, no exclusions, and no mention of alternatives. An agent would have to infer that this is a general-purpose overview tool.

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

goodearth_oracle_get_tax_rateGoodearth Oracle Get Tax RateAInspect

Get the current DPYC certification tax rate. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. 'Get' implies a read-only query and 'Free' implies no financial side effects, but nothing else is disclosed, such as authentication requirements, rate limits, or whether the value can change over time. For a zero-parameter getter this is mostly acceptable, though not exhaustive.

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

Conciseness5/5

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

The description is two short sentences and every word earns its place. It front-loads the core purpose and adds the 'free' disclosure without unnecessary elaboration or boilerplate.

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 zero-parameter tool with an output schema, this description covers the essential facts an agent needs to invoke it correctly: what resource is being fetched and that no cost is incurred. The only missing contextual detail is when to prefer it over the price-related siblings, but that has already been scored under usage guidelines.

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 tool has zero parameters and the schema's coverage is 100%, so there are no parameter semantics to explain. A 4 is the correct baseline because the description is not required to compensate for any undocumented inputs.

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 states a very specific verb and resource: 'Get the current DPYC certification tax rate.' This is immediately distinguishable from siblings like check_price, get_pricing_model, and set_pricing_model, so an agent can identify exactly what this tool returns 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 Guidelines2/5

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

No guidance is given for when to prefer this tool over alternatives, and no context is provided for when it should not be used. 'Free' hints at lower cost but does not explain how this relates to the broader pricing and coverage tools available in the sibling group.

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

goodearth_oracle_how_to_joinGoodearth Oracle How To JoinAInspect

Get DPYC onboarding instructions from the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full behavioral burden. The word 'Get' implies a read-only action and 'Free' implies no cost, but there is no explicit mention of authentication needs, side effects, or rate limits. This is minimal disclosure.

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

Conciseness5/5

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

The description is extremely concise: two short sentences, the first stating the action and resource, the second a one-word benefit. No filler or repetition, and the main purpose is front-loaded.

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 zero-parameter, informational retrieval tool with an output schema, the description covers the essentials: what it retrieves and the cost. It does not mention whether login or other prerequisites are needed, but the schema and simplicity make it largely complete.

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 tool has zero parameters and schema description coverage is 100%, so there are no parameter semantics to clarify. Baseline of 4 applies because the input schema is fully defined and the description adds nothing extra, which is appropriate for a parameterless tool.

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 uses the verb 'Get' with a direct object 'onboarding instructions' and names the resource 'the Oracle', clearly indicating what the tool does. The title 'How To Join' and the reference to 'DPYC onboarding' sufficiently distinguishes this from sibling tools like oracle_about or oracle_network_advisory.

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

Usage Guidelines2/5

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

The description does not give any when-to-use guidance, exclusions, or alternatives. It only states the function and that it is free, leaving the agent to infer that it should be used when onboarding instructions for DPYC are needed. No comparison to other Oracle-family tools is provided.

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

goodearth_oracle_lookup_memberGoodearth Oracle Lookup MemberCInspect

Look up a DPYC community member by npub. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full transparency burden, but it only adds the behavioral trait 'Free' and relies on the verb 'look up' to imply read-only behavior. It does not mention authentication, error behavior, side effects, or any other operational characteristic an agent might need.

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

Conciseness5/5

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

The description is extremely concise and front-loaded with the main purpose, followed by a short cost note. It contains no fluff or redundant wording and efficiently conveys the core action.

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

Completeness2/5

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

Given a one-parameter tool with no annotations and the presence of an output schema, the definition misses important context: when to use this specific lookup tool versus the many similar siblings, expected behavior for unknown npubs, and format constraints. It is minimal but not complete enough for an uncertain agent.

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

Parameters2/5

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

The input schema provides no description for the 'npub' parameter (0% coverage), so the description is the only textual hint. Saying 'by npub' clarifies that npub is the search key, but it does not provide format, example, constraints, or how the value is interpreted, leaving an agent with incomplete information for building a valid request.

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

Purpose4/5

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

The description uses a specific verb ('Look up') and resource ('DPYC community member') and identifies the lookup key ('npub'). It clearly establishes what the tool does, but it does not differentiate this tool from siblings such as goodearth_get_nostr_profile or goodearth_list_canonical_identities.

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

Usage Guidelines2/5

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

The description offers no use-case guidance, conditions, prerequisites, or exclusions relative to the many sibling tools. It simply restates the tool's function without explaining when to choose it over alternatives.

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

goodearth_oracle_network_advisoryGoodearth Oracle Network AdvisoryAInspect

Get active network advisories from the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden: 'Get' signals a read-only operation and 'Free' indicates no payment is required. The description does not mention authentication or failure behavior, though for a zero-parameter read tool this is a minor gap.

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

Conciseness5/5

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

Two short sentences deliver the essential information with no filler. The main action is front-loaded before the cost qualifier.

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 zero-parameter read operation with an output schema present, the description covers what the tool does and its cost. It relies on the tool name and context for what an 'Oracle advisory' is, but that is acceptable given the low complexity.

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 input schema has zero parameters, so there is nothing for the description to add. The description correctly avoids inventing parameter details.

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 uses a specific verb ('Get') and resource ('active network advisories from the Oracle'), making the tool's function immediately identifiable. It is distinct from sibling Oracle tools like oracle_about or oracle_lookup_member.

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?

Usage context is clear: call this when you need currently active advisories from the Oracle. It does not explicitly compare to sibling tools or state when not to use it, so it misses the top score but is not misleading.

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

goodearth_pest_catalogGoodearth Pest CatalogBInspect

Which pest stages are modelled for this ground this season.

Read from the USA-NPN degree-day forecasts rather than from a list in this service, so a model they publish next season appears here without anyone editing anything, and a Georgia orchard gets Georgia's dates.

Only layers measured to encode a day of year become dated events. Some carry accumulated heat instead, and one of those reads 281 in Vermont — a convincing 8 October that is really a heat sum. Those are counted and named as unreadable rather than rendered as dates.

The insects recorded nearby come from iNaturalist and are a landscape fact: one field holds almost no observations, so the search is widened to the surrounding country and the answer says how far.

ParametersJSON 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.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Since no annotations are provided, the description carries full responsibility for disclosing behavior. It does so effectively: it states the tool 'Read[s] from the USA-NPN degree-day forecasts' rather than a local list, explaining external dependency. It discloses that some layers carry accumulated heat and are 'counted and named as unreadable rather than rendered as dates,' and that insect observations come from iNaturalist with possible search widening to surrounding country. These are meaningful behavioral caveats that affect interpretation. It implicitly signals a read-only operation, though it does not explicitly mention authentication or side effects, which are covered by schema parameters.

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

Conciseness3/5

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

The description is verbose, spanning three paragraphs. It front-loads the purpose in the first sentence, then explains data provenance and quirks. While every paragraph adds useful context about data reliability, the text is longer than necessary and could be tightened. It is not excessively padded, but it is not concise either. It earns a 3 for being structured and informative without being wasteful.

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 query tool with an output schema (the signal indicates one exists), the description does not need to explain return values. It explains the data sources, the interpretation caveats (unreadable heat sums, iNaturalist observation widening), and the block parameter is thoroughly described in the schema. It does not mention billing or npub, but those are captured in the schema's npub description. Overall, the tool is adequately specified for an agent to understand what it does, how data behaves, and how to invoke it correctly.

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?

The tool description does not discuss any parameters; it relies entirely on the input schema. Schema coverage is 67% (two of three parameters have descriptions). The block parameter description is detailed, explaining how to reference saved blocks and the behavior on multiple matches. The description adds no further meaning to parameters, so it does not compensate for the missing dpop_token description. Given coverage is above 50% but below 80%, the baseline of 3 is appropriate.

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

Purpose4/5

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

The first sentence clearly states the tool's purpose: 'Which pest stages are modelled for this ground this season.' This is a specific verb (answer/retrieve) with a resource (pest stages for a block). It distinguishes itself from siblings like pest_threshold (likely thresholds) and wildlife_catalog by focusing on pest stages per season, but it does not explicitly name alternatives. The description adds context about data provenance but the core purpose is clear.

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

Usage Guidelines2/5

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

The description does not provide explicit when-to-use or when-not-to-use guidance. It explains how data is sourced and interprets some quirks, but never directs the agent to prefer this tool over siblings like pest_threshold or crop_gdd_status. No alternatives are mentioned, nor are conditions for exclusion. The agent must infer usage from the schema and context.

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

goodearth_pest_thresholdGoodearth Pest ThresholdAInspect

Where a pest model's degree-day stages stand on this ground.

Returns, per model: heat accumulated since its biofix, which stages have been crossed, and the projected date of the next one — plus a short list of which pests to go and look for this week.

Good Earth computes when your models arrive on your ground. It does not publish entomology: the thresholds are yours, because the authoritative numbers belong to your extension service and vary by region and biotype.

ParametersJSON 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.
pestsYesThe pests to evaluate, in any of three shapes. 1. Your own thresholds, from an extension bulletin: {"pest": "Aster leafhopper", "base_temp": 50, "biofix": "2026-05-01", "stages": [{"stage": "second flight", "gdd": 1850}]}. biofix is optional; without it the count runs from Jan 1. 2. A published model, cited rather than restated: {"pest": "Japanese beetle", "model": "usa-npn"} — the dates come from USA-NPN for your ground, and re-resolve each season instead of freezing whatever was pasted in. 3. Something you simply keep an eye out for: {"pest": "Vole", "watch": true} — no stages, no dates. Do NOT invent degree-day figures to fill shape 1. Use 2 or 3.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden. It explicitly states that Good Earth does not publish its own entomology thresholds and that authoritative numbers come from the user's extension service, preventing the agent from assuming built-in science. It also notes that geometry is sent once (on block save) rather than on every call, though that detail lives in the schema.

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 five sentences, front-loads the core purpose, and uses compact phrasing. Each sentence earns its place — no filler.

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?

The description explains the key conceptual model (degree-day accumulation), the three ways to supply pest data, and the warning against inventing degree-day figures. Combined with a rich 'pests' schema and an existing output schema, the agent has enough context to call the tool correctly. Minor gaps like authentication are covered by the 'npub' schema description.

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 75%, and the two required parameters (block, pests) have thorough descriptions, including disambiguation rules and the three input shapes. The tool description itself adds little beyond the schema, so a baseline of 3 is appropriate.

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 opens with a clear statement of what the tool computes — where degree-day stages stand per pest model — and lists the exact returns (heat accumulated, stages crossed, next projected date, and a list of pests to watch). This distinguishes it from sibling tools like crop GDD or disease risk by focusing on user-supplied pest thresholds.

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

Usage Guidelines3/5

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

The description implies the trigger (evaluate pest models on a given ground) but does not explicitly contrast with other evaluation tools. However, the detailed 'pests' parameter schema includes three usage shapes and a clear warning, which substantially compensates for the missing when/alternatives guidance.

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

goodearth_plan_the_seasonGoodearth Plan The SeasonBInspect

The season-planning interview, as a workflow to follow.

The same text the plan_the_season MCP prompt carries. It exists twice because prompt support is uneven: a client that surfaces prompts offers this as a command, and one that does not can still reach it by calling a tool. Both read one constant, so they cannot drift into two different interviews.

Follow the returned steps in order, asking one question at a time. The ordering is the point — it moves from the grower's decision to its consequences rather than from the available data to a report.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses that the tool returns ordered steps, that the order matters, and that it is an interview rather than a report generator. However, it does not state whether the call is read-only, what billing or side effects apply, or how the returned workflow should be presented beyond asking one question at a time.

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 purpose is front-loaded in the first line and the operational instruction ('Follow the returned steps in order') comes near the end in its own paragraph. The duplication rationale is somewhat meta and could be trimmed, but the description is still compact and readable.

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

Completeness3/5

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

For a low-complexity tool with an output schema, the description covers the core interaction pattern and the reasoning behind the ordering. It is less complete on invocation conditions: parameter requirements and billing/cost behavior are left to the sparse schema, and no explicit statement about side effects or prerequisites exists.

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

Parameters2/5

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

The description never discusses `npub` or `dpop_token`, and schema coverage is only 50% (`dpop_token` has no description). It also leaves a conflict: the schema labels npub 'Required' in its description, but the parameter is not in required and has a default empty string, which may mislead an agent.

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

Purpose4/5

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

The opening line identifies the resource ('season-planning interview') and frames it as 'a workflow to follow,' with follow-up instruction to 'Follow the returned steps in order.' It reads clearly as a distinct plan-the-season workflow, though it does not explicitly distinguish itself among the many sibling tools.

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?

It explicitly explains when the tool should be used instead of the `plan_the_season` prompt: clients that do not surface prompts can still reach the same interview by calling this tool. No exclusions or sibling alternatives are given, but this is a useful routing/usage clarification.

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

goodearth_planting_windowGoodearth Planting WindowAInspect

When to start seed, when to put it out, and the last day it still finishes.

Heat requirement answers whether a crop CAN finish here. It says nothing about when to start, which is the decision actually made with a seed packet in hand in February. This answers three separate questions:

Start seed indoors — counted back from the day it can go out, for a transplanted crop. Out — the earliest the frost record and the soil allow, whichever is later; a tender crop waits for the last spring frost, a hardy one uses the shoulder before it, a direct sowing waits for the soil, which lags the air by weeks. Latest — the last day a sowing still has enough heat left to beat the first fall frost, which is what decides whether an August succession is worth the seed.

All from this block's own record rather than a zone map. The requirements are yours.

ParametersJSON 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 date, with your own requirements. Each is {"crop": "Tomato", "gdd_target": 1300, "base_temp": 50} plus any of "frost_hardy", "direct_sow", "min_soil_f" (germination soil temperature) and "start_indoors_weeks". Add "succession_days" (3–60) to get the succession schedule: a sowing every that many days from the first day out to the last that still finishes, each with its typical finish date, its margin before the median first frost, and whether it lands after the earliest frost on record.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses meaningful behavior: dates are derived from the block's own frost/soil record rather than a zone map, and the algorithm for start/out/latest is explained. However, it never explicitly states that the call is read-only or what happens on ambiguous matches, leaving some behavioral traits implicit.

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 key sentence is front-loaded and the three questions are formatted as a scannable bullet-like structure. It is longer than strictly necessary, with a few illustrative phrases, but each section earns its place by clarifying hardy vs tender, direct sowing, and succession decisions.

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 rich input schema, the output schema, and the detailed prose, an agent has enough to understand the model and call the tool correctly. The description covers the core calculation semantics and data source; remaining gaps like explicit read-only status and named sibling alternatives are not fatal.

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 75%, so the schema already documents block and crop parameters well. The description adds conceptual context ('requirements are yours', block record rather than zone map) but does not deepen individual parameter semantics beyond what the schema provides, which keeps it at baseline.

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 states a specific outcome: it computes when to start seed indoors, when to transplant or direct sow, and the latest date a sowing can still finish. It also distinguishes itself from heat-requirement/can-finish questions, helping an agent tell it apart from related crop tools.

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 explicitly contrasts this tool with 'Heat requirement' and says it answers the practical 'when to start' decision made with a seed packet. It clearly implies when to use this tool, but it does not name a sibling tool such as crop_suitability or gdd_status as the alternative, so it misses the explicit routing of a top score.

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

goodearth_publish_nostr_profileGoodearth Publish Nostr ProfileAInspect

Publish a CLIENT-SIGNED kind-0 profile to relays for an npub.

The wheel never holds a patron nsec. The frontend signs the kind-0 metadata event with the patron's session key or a NIP-07 extension and passes the signed event (JSON) here; the wheel verifies the signature matches the npub, then relays it to public relays. The signature is the authorization — no proof token, no key custody. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe patron's Nostr public key the event must be signed by.
signed_eventNoA JSON-encoded, client-signed kind-0 event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well: it discloses that the server never holds the nsec, that the server verifies the signature matches the npub, and that the signature itself is the authorization. It stops short of describing failure modes or relay behavior, but the core behavioral contract is clear.

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 appropriately sized and front-loaded with the primary purpose. The subsequent sentences explain the security model and verification flow without excessive padding. Slightly more compact formatting could help, but every sentence contributes useful information.

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 tool with only two well-documented parameters and an output schema, the description covers the essential context: the signing requirement, the verification step, and the trust model. It doesn't detail error handling or relay specifics, but those are already less critical given the output schema and strong parameter documentation.

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 coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema descriptions: the signed_event must be a client-signed kind-0 event, and the npub must match the event's signature. This clarifies the relationship between the two parameters.

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 states a specific action ('Publish a CLIENT-SIGNED kind-0 profile to relays') and a specific resource ('for an npub'). This clearly distinguishes it from the sibling read tool goodearth_get_nostr_profile and other nostr-related utilities.

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 gives clear context on when to use this tool: when a client-signed kind-0 event needs to be published without the server holding the nsec. It doesn't explicitly name alternatives or exclusions, but the workflow constraints ('The frontend signs... passes the signed event here') make the intended usage unambiguous.

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

goodearth_purchase_creditsGoodearth Purchase CreditsAInspect

Buy credits via Bitcoin Lightning.

Creates a Lightning invoice. Pay it with any Lightning wallet, then call check_payment to confirm. Proof of npub ownership is required so credits land in the correct ledger.

Free — no credits required to call.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) the credits will fund.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.
amount_satsNoSatoshis to purchase (default 1000).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that the tool creates an invoice, requires proof of ownership, and requires a follow-up call to confirm payment. This gives the agent a realistic model of the asynchronous purchase flow. It does not mention invoice expiry or whether repeated calls create multiple invoices, but the core behavior is well covered.

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

Conciseness5/5

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

The description is short, front-loaded with the core action, and each sentence earns its place: what it does, how the flow works, the prerequisite, and the cost. The line breaks separate distinct facts cleanly without padding.

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?

The description is complete enough for an agent to follow the purchase flow: it names the follow-up tool (check_payment), states the ownership proof requirement, and clarifies the free-to-call aspect. An output schema exists, so return values need not be described. Minor omissions like invoice expiry or idempotency keep it from a 5.

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 100%, so the baseline is 3; the description adds context around the npub/dpop_token relationship ('Proof of npub ownership is required') but does not add new parameter-level semantics beyond what the schema already provides. It does not discuss amount_sats, but the schema documents it fully.

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 opens with a specific verb and resource: 'Buy credits via Bitcoin Lightning.' It then clarifies the concrete first step ('Creates a Lightning invoice'), making the tool's function unmistakable and distinct from siblings like check_payment or restore_credits.

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 clearly lays out the usage flow: create the invoice, pay with any Lightning wallet, then call check_payment to confirm. It also states a key prerequisite ('Proof of npub ownership is required') and a cost condition ('Free — no credits required to call'), though it does not explicitly discuss when not to use this tool or name alternatives.

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

goodearth_receive_credentialsGoodearth Receive CredentialsAInspect

Pick up credentials from the Secure Courier.

Completes the CREDENTIAL-DELIVERY flow (the ownership-proof counterpart is receive_npub_proof).

Call this only after the user confirms they have replied. Deterministic, one-shot retrieval: name the response you want with (sender_npub, service, dpop_token) and the tool drains ONLY the rendezvous relay that channel was pinned to. Every popped DM with the wrong session phrase is deleted and its sender is NACK'd; the first DM with the matching phrase is accepted (ACK'd) and the scan stops. If none match, the queue is drained and a courier_not_found result is returned. Do NOT poll, loop, or retry.

If a credential_card (ncred1...) is provided, it is redeemed directly without any relay access (dpop_token not required for that path). On success, the payment processor client is reinitialized from the new credentials — no server restart needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoRequired. The credential service name (must match the service used in request_credential_channel).
dpop_tokenNoRequired. The session phrase returned by request_credential_channel for this exact channel.
sender_npubNoRequired. The npub that sent the credentials.
credential_cardNoOptional. An ncred1... card to redeem directly (bypasses the relay drain; dpop_token not needed).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full disclosure burden, and it delivers: deterministic one-shot retrieval, draining of only the pinned rendezvous relay, deletion/NACK of wrong DMs, acceptance/ACK of the first match, courier_not_found on no match, and client reinitialization without restart. This is unusually complete behavioral context.

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 longer than average but dense and well-structured, with the key warning front-loaded. Each sentence contributes behavioral or routing detail; a small amount of protocol terminology (ACK/NACK, scan stops) could be trimmed without losing value.

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

Completeness5/5

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

An output schema exists, so return values are covered externally. The description covers prerequisites, the main relay path, the alternative card path, failure behavior, side effects, and explicit anti-polling guidance, making it complete for a complex 4-parameter tool with no annotations.

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 coverage is 100%, so baseline is 3, but the description adds meaningful semantics beyond the schema: it defines the retrieval tuple (sender_npub, service, dpop_token), explains that dpop_token is not needed on the credential_card path, and clarifies that service must match the one used in request_credential_channel.

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 opens with a specific verb and resource: 'Pick up credentials from the Secure Courier.' It clearly states the tool completes the CREDENTIAL-DELIVERY flow and distinguishes itself from its ownership-proof counterpart, receive_npub_proof, so an agent can tell it apart from siblings.

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 call conditions are given: only call after the user confirms they have replied, and do NOT poll, loop, or retry. It also explains the alternative credential_card path that bypasses relay access, giving clear situational routing.

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

goodearth_receive_npub_proofGoodearth Receive Npub ProofAInspect

Receive npub ownership confirmation from a patron.

Completes the npub-OWNERSHIP-PROOF flow (the credential-delivery counterpart is receive_credentials).

Call this only after the user confirms they have replied. Deterministic, one-shot retrieval: name the response with (patron_npub, dpop_token) — the dpop_token being the value returned by request_npub_proof. The tool drains ONLY the pinned rendezvous relay that challenge was published on, stopping at the DM whose phrase matches. Mismatched DMs are deleted and NACK'd (without revealing the expected phrase). If called before the user replies, their message will never be found. Do NOT poll, loop, or retry.

The signed DM itself proves npub ownership (the patron's nsec signed it). On success, returns the dpop_token — the same token. The calling application MUST remember it and pass it as the dpop_token parameter on every subsequent paid tool call. The proof (a hash of the token) is stored in the vault keyed by that hash — the MCP never stores the raw token itself. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNoRequired. The dpop_token returned by request_npub_proof.
patron_npubNoRequired. The patron's npub to receive proof from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it delivers substantially: one-shot deterministic retrieval, draining only the pinned rendezvous relay, stopping at the matching-phrase DM, deletion/NACK of mismatched DMs without leaking the expected phrase, and the security contract that only a hash of the token is stored while the raw token travels to the caller. This exceeds typical behavioral disclosure.

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 long, but nearly every sentence is load-bearing — usage constraints, relay behavior, security guarantees, and caller obligations. It is front-loaded with purpose and each paragraph earns its place. Minor structural deduction only because the density could have been trimmed without losing meaning (e.g., the signed-DM proof rationale).

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

Completeness5/5

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

For a multi-step flow with security and relay subtleties, nothing an agent needs is missing: when to call, what the tool does on success (returns dpop_token), what the caller must remember, what is stored and how, and the 'Free' cost note. No output schema is given, but the description states the return value, so the absence is not a gap.

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

Parameters5/5

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

The input schema's only parameter (dpop_token) carries no description of its own, so schema description coverage is near zero. The description compensates fully by explaining its provenance ('the value returned by request_npub_proof'), its precise role in naming the response, and its onward obligation (must be passed on every subsequent paid call). No semantic gap remains.

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 opens with a specific verb+resource pair ('Receive npub ownership confirmation from a patron') and immediately situates itself in a flow, naming its counterparts receive_credentials and request_npub_proof. This disambiguates it from the credential-delivery sibling and the challenge-issuing sibling in one stroke, leaving no doubt what it does and what it is not.

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 temporal guidance is given: 'Call this only after the user confirms they have replied,' reinforced by the warning 'If called before the user replies, their message will never be found.' It also forbids retry patterns ('Do NOT poll, loop, or retry') and explains the destructive consequence of premature calls. Related tools (receive_credentials, request_npub_proof) are named to anchor the workflow.

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

goodearth_redeem_couponGoodearth Redeem CouponAInspect

Claim a coupon by its name (the code the operator shared).

Looks up the operator's coupon by code, validates the window and total cap, and records a per-patron redemption row. Subsequent paid tool calls on this MCP auto-apply the discount until uses_per_patron is exhausted.

Free — no credits required. Requires proof of npub. Idempotent: redeeming the same code twice returns the existing redemption.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses validation behavior (window and total cap), side effects (records a redemption row, auto-applies discount until uses_per_patron is exhausted), cost (free), authentication requirement (proof of npub), and idempotency.

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

Conciseness5/5

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

The description is compact and front-loaded, with the core action in the first sentence and each subsequent sentence adding distinct value: mechanics, downstream effect, cost, auth, and idempotency. There is no filler or repetition.

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 three-parameter tool with an output schema and no annotations, the description covers purpose, behavior, side effects, cost, auth, and idempotency well. It is slightly incomplete on error/edge-case behavior and on how dpop_token factors into the proof requirement, but an agent can generally invoke it correctly.

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 coverage is 0%, so the description must compensate. It usefully explains that code is the operator-shared coupon code and that npub requires proof, but it never mentions the dpop_token parameter or how the proof should be supplied. This leaves a meaningful gap for an agent selecting parameters.

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 opens with a specific verb and resource: 'Claim a coupon by its name (the code the operator shared).' It goes on to explain the coupon lookup, validation, and redemption recording, which clearly separates this from coupon creation, listing, update, and delete siblings.

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 gives clear context for when to call it: a patron claiming an operator-shared coupon, with downstream effects on subsequent paid calls. It also notes the action is free and requires proof of npub, but it does not explicitly name sibling alternatives like mint_coupon or list_coupons or state exclusion conditions.

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

goodearth_report_issueGoodearth Report IssueAInspect

File a field report about this service as a GitHub issue on the operator's repo.

Found a tool's metadata or response wrong or confusing? Report it where the tool lives. The author of record is your npub — no npub / no proof, no issue — and it is stamped into the issue so the report is attributed to you, not the operator. Costs a small fee (a free write to an issue tracker would be abused). The report is PUBLIC and goes to the maintainers' normal triage; nothing is verified here.

Returns the filed issue's repo, number, and url. If this operator has not enabled field reports, returns an "issue reporting not configured" situation and you are not charged.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe details — which tool, what was wrong, what you expected.
npubYesYour Nostr public key (npub1...); the report's author of record.
titleYesOne-line summary of the problem.
tool_nameNoOptional: the specific tool the report is about (e.g. "schwab_get_option_chain").
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries full disclosure burden and does so thoroughly: the author of record is the npub, a fee is charged, the report is public and unverified, it goes to maintainers' triage, and it explicitly states the not-configured case results in no charge. It also details the required dpop_token format, adding significant behavioral context.

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 well-structured, front-loading the main purpose and then detailing important caveats (fee, attribution, public nature, not-configured fallback). It is slightly verbose but every sentence adds value, so it earns a 4 rather than a 5.

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

Completeness5/5

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

The description covers all essential aspects: what the tool does, cost implications, attribution, public visibility, verification status, return values, and the not-configured case. The output schema exists and the description even summarizes the return format, making it fully complete for an agent to call it correctly.

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 coverage is 100%, so the schema already documents all five parameters in detail, including the dpop_token's specific requirements. The tool description adds no additional parameter-specific meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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 opens with a specific verb and resource: 'File a field report about this service as a GitHub issue on the operator's repo.' It clearly distinguishes itself from the large sibling list by being the only reporting tool, and the action is unambiguous.

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?

It provides a clear trigger: 'Found a tool's metadata or response wrong or confusing?' and explains the workflow (report it where the tool lives). It does not explicitly mention when not to use it or name alternatives, but given there are no similar siblings, the guidance is sufficient.

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

goodearth_request_adoptionGoodearth Request AdoptionAInspect

Ask a chosen Authority to adopt this operator (deferred courtship).

RESTRICTED to the operator — requires proof the caller controls this operator's npub. Resolves the Authority's MCP endpoint from the community registry, mints an inline ownership proof with this operator's nsec, and delivers the request MCP-to-MCP. The Authority records it as pending; its owner approves on their own time. Poll adoption_status for progress; the operator flips to ready once the Authority provisions it.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNooptional message for the Authority owner.
dpop_tokenNooperator-npub ownership proof (inline kind-27235 or cached token).
service_urlNothis operator's MCP endpoint (advertised to the Authority).
authority_npubYesnpub of the Authority to request adoption from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries full disclosure burden and does so thoroughly: it explains proof requirements, endpoint resolution, inline ownership-proof minting with the operator's nsec, MCP-to-MCP delivery, pending state, and eventual ready transition. This is far beyond a vague 'requests adoption' summary.

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 dense but organized: one-sentence purpose, restriction, process, then outcome/follow-up. It is front-loaded and each sentence adds information, though the parenthetical 'deferred courtship' and several protocol terms make it slightly heavier than necessary.

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

Completeness5/5

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

The description covers prerequisites, mechanism, side effects, expected next step, and final state. The output schema covers return values, and the remaining registry/parameter details are not essential for an agent to select and invoke the tool correctly.

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 100%, so the baseline applies. The tool description adds general context around proof minting and the Authority endpoint, but it does not clarify when dpop_token must be supplied versus auto-minted, or how service_url is used when omitted.

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 opening sentence states a concrete action ('Ask a chosen Authority to adopt this operator') and clearly identifies the resource and scope. It differentiates itself from the sibling goodearth_adoption_status, which is for polling progress rather than initiating the adoption.

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 gives strong context: it is restricted to the operator, requires proof of npub control, and tells the user to poll adoption_status afterward. It does not explicitly name a sibling as the alternative for checking status, but the follow-up instruction and restriction make the intended use clear.

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

goodearth_request_credential_channelGoodearth Request Credential ChannelAInspect

Open a Secure Courier channel for credential delivery.

This is the CREDENTIAL-DELIVERY flow — use it to hand over a service secret (API keys, tokens). To merely prove you control an npub (the usual answer to a proof_required error), use request_npub_proof instead. Note: dynamic/OAuth2 services (e.g. Schwab) need NO couriered secret — check service_status first.

Sends a welcome DM with a credential template. The recipient must read the DM in their Nostr client, fill in the fields, and reply manually. This is a human-in-the-loop flow.

After calling this tool, STOP and tell the user what to do. Wait for the user to confirm they have replied before calling receive_credentials. Do NOT poll or retry — each receive_credentials call destructively drains the relay mailbox.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoRequired. The credential service name (e.g., from get_operator_onboarding_status or get_patron_onboarding_status).
sender_npubNoRequired. The npub to send the template to.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description bears the full burden of behavioral disclosure, and it delivers richly. It explains that the tool sends a welcome DM with a credential template, that the flow is human-in-the-loop, that the recipient must reply manually, and that receive_credentials destructively drains the relay mailbox and must not be retried. These are precisely the behavioral facts an agent needs.

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

Conciseness5/5

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

The description is longer than typical, but every sentence earns its place: summary, flow classification, sibling distinction, OAuth2 caveat, human-in-the-loop warning, and post-call sequencing. Key warnings are front-loaded and bolded, making the critical constraints hard to miss. This is well-structured despite its length.

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

Completeness5/5

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

For a tool embedded in a delicate human-in-the-loop workflow with a destructive downstream call, the description is complete. It covers the tool's action, when to use it, when not to use it, what happens after, and how the agent should sequence subsequent steps, including stopping and waiting for user confirmation. The presence of an output schema means return-value documentation is not the description's job.

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?

The input schema already provides 100% description coverage for both parameters, describing service as the credential service name and sender_npub as the npub to send the template to. The description adds useful context about the overall credential-delivery domain, but it does not add meaningfully new per-parameter semantics beyond what the schema already states. Baseline 3 is appropriate.

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 opens with a specific verb and resource: "Open a Secure Courier channel for credential delivery." It clearly identifies the tool's purpose as handing over service secrets (API keys, tokens), and explicitly differentiates it from request_npub_proof, which is a distinct proof-of-control flow. This leaves no ambiguity about what the tool does or how it differs from its closest sibling.

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?

The description provides explicit when-to-use guidance: use this for the CREDENTIAL-DELIVERY flow, not for mere npub control, and check service_status first for dynamic/OAuth2 services. It also gives concrete post-call instructions: STOP, inform the user, wait for confirmation, and avoid polling or retrying with receive_credentials. This is exemplary usage guidance.

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

goodearth_request_npub_proofGoodearth Request Npub ProofAInspect

Request npub ownership proof from a patron via Nostr DM.

This is the npub-OWNERSHIP-PROOF flow — use it when a call returns proof_required. It proves the caller controls an npub; it does NOT deliver any service secret. To hand an operator its API keys or OAuth secrets, use request_credential_channel instead.

Sends a challenge DM that the patron must sign and reply to using their Nostr client. This is a human-in-the-loop flow.

After calling this tool, STOP and tell the user to check their Nostr client and reply to the challenge. Wait for the user to confirm they have replied before calling receive_npub_proof. Do NOT poll or retry — each receive_npub_proof call destructively drains the relay mailbox.

Returns a dpop_token — the demonstrated-proof-of-possession token that the calling application MUST remember and pass as the dpop_token parameter on every subsequent paid tool call. The MCP does not retain this value across restarts.

Lifecycle: The cached proof expires after the patron's chosen duration. When it expires, call request_npub_proof again for a fresh challenge, then wait for the user, then call receive_npub_proof.

Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional. A human-readable purpose for the request ("I'm working on your request XYZ and need the Operator to do ABC for you"). Signed into the provenance attestation and shown in the DM, so the recipient sees *why* they are being asked — especially useful when the signer is unknown to them.
verify_atNoOptional. A free-form statement of WHERE you (the initiating agent) already showed this proof's one-time code to the user — a URL, or "your Claude.ai conversation", "the Grok session". The OAuth 2.0 Device Grant ``verification_uri``, generalized: the user approves only if the code in the DM matches the one you displayed there, so an unsolicited request they've never seen is refused. Signed into the attestation.
patron_npubNoRequired. The patron's npub to request proof from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the human-in-the-loop nature, the destructive drain of the relay mailbox on the paired receive call, that the dpop_token must be persisted by the caller (the MCP does not retain it across restarts), and that proof expires after the patron's chosen duration. This is rich, actionable behavioral context beyond a simple mutation alert.

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

Conciseness5/5

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

Although longer than a one-liner, the description is tightly segmented: a one-sentence summary, flow trigger, human-in-the-loop warning, explicit after-steps, return contract, and lifecycle. Each paragraph serves a distinct operational purpose and is front-loaded with the core action; there is no filler.

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

Completeness5/5

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

The description fully covers the trigger condition, the follow-up with a sibling tool, the step-by-step user interaction, the destructive-receive caution, the dpop_token handling, and expiration lifecycle. An agent has all the context necessary to call this tool correctly and sequence it with receive_npub_proof.

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?

The input schema has 100% description coverage for all three parameters, so the schema already explains reason, verify_at, and patron_npub. The tool description does not add parameter-specific meaning beyond what the schema covers, so it meets the baseline without exceeding it.

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 opening sentence names the verb, resource, and channel: 'Request npub ownership proof from a patron via Nostr DM.' It also explicitly differentiates from a sibling by stating what it does NOT deliver ('does NOT deliver any service secret') and points to request_credential_channel for secrets, making the purpose unambiguous.

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?

The description gives an exact trigger condition ('use it when a call returns proof_required'), names the alternative for secrets, and provides explicit post-call sequencing: STOP, tell the user to check Nostr, wait for confirmation, then call receive_npub_proof. It also warns against polling/retrying and gives lifecycle timing, leaving no ambiguity about when to invoke it.

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

goodearth_reset_pricing_modelGoodearth Reset Pricing ModelAInspect

Erase all pricing models and restore a viable default.

Deletes every stored model, then self-initializes a fresh one from the tool registry — all tools at 0 sats with proper UUIDs. Returns the new model.

RESTRICTED to operator — requires proof (nsec-signed).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it discloses the destructive nature ('Deletes every stored model'), the reinitialization behavior, and the return value. It also flags the operator authorization requirement. It could add failure modes or reversibility, but the core behavioral traits are transparent.

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

Conciseness5/5

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

The description is three short, purposeful segments: a one-line summary, implementation detail, and restriction. Every sentence adds information; no filler or redundancy.

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 destructive admin tool with an output schema present, the description covers what is destroyed, what is created, the authorization requirement, and the return. It omits the meaning of dpop_token and any preconditions beyond operator status, but these are covered well enough for an agent to call the tool safely.

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

Parameters2/5

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

The input schema has one parameter, dpop_token, with zero description coverage, and the tool description never mentions it. The 'requires proof' line hints at authentication but does not tie it to the parameter, leaving an agent to guess what value to supply or whether it is required despite being optional in the schema.

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 states a specific action (erase and restore) on a specific resource (pricing models), and distinguishes from siblings like goodearth_get_pricing_model and goodearth_set_pricing_model by its destructive reset semantics. It is immediately clear what this tool does and how it differs from read/update alternatives.

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

Usage Guidelines3/5

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

It gives an explicit restriction (operator only, nsec-signed proof) and implies the use case of recovering from a bad pricing configuration. However, it does not name alternative tools or provide guidance on when to prefer this over set_pricing_model, leaving some inference required.

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

goodearth_restore_creditsGoodearth Restore CreditsAInspect

Credit a patron's ledger from a BTCPay-settled invoice.

RESTRICTED to the operator — the operator owns the books and is the only party who can issue a manual credit grant. Patrons who believe they paid but never got credits must escalate to the operator's support, who then invokes this tool on their behalf.

Use cases: cold-start vault races during check_payment, ncred delivery hiccups, patrons closing Top-Off sheets before settle, any infrastructure incident that left an invoice settled at BTCPay but uncredited on the operator's ledger.

Idempotent — if the invoice is already credited (in the patron's credited_invoices), returns success with credits_granted=0.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYesA kind-27235 Nostr event signed by the OPERATOR's nsec for this tool. Patron proofs are rejected.
invoice_idYesThe BTCPay invoice ID to verify and credit.
patron_npubYesThe patron's npub whose ledger receives the grant.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses idempotency ('if the invoice is already credited... returns success with credits_granted=0') and the operator-only access restriction. It also clarifies the precondition: the invoice must be settled at BTCPay but uncredited on the ledger. It does not cover failure modes or full ledger side effects, but the key behavioral traits are present.

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

Conciseness5/5

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

The description is front-loaded with a bolded operator restriction, followed by a compact list of use cases and an idempotency note. Every sentence contributes operational information, with no filler or repetition.

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 presence of an output schema and fully documented parameters, the description provides sufficient context: when to use, who may use, and idempotent behavior. Minor gaps such as explicit failure handling or reversibility remain, but the core operational context is complete.

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 coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds meaning by tying invoice_id to the idempotent re-credit behavior and by reinforcing the operator restriction that aligns with dpop_token semantics. This goes slightly beyond the schema without duplicating it.

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: 'Credit a patron's ledger from a BTCPay-settled invoice.' The operator-only restriction and idempotency detail further distinguish it from sibling tools like goodearth_check_payment or goodearth_purchase_credits. It clearly identifies the tool's unique function.

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?

Explicitly restricts the tool to the operator and provides concrete use cases: cold-start vault races, ncred delivery hiccups, Top-Off sheets closing before settle, and infrastructure incidents. It also states who should not call it directly (patrons must escalate to support), giving clear when-to-use and when-not-to-use guidance.

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

goodearth_restore_neon_schemaGoodearth Restore Neon SchemaAInspect

Re-run ensure_schema() on every NeonVault this operator uses.

Diagnostic / recovery tool for the case where the Neon HTTP SQL API is returning persistent 4xx errors and the operator suspects the schema isn't there or grants are wrong. Idempotent — uses CREATE TABLE IF NOT EXISTS so a successful re-run is harmless.

Returns the per-step result. If any step raises, surfaces the Neon error message inline (0.31.0 reads the SQL error body that earlier wheels swallowed behind raise_for_status).

RESTRICTED to operator — requires proof (nsec-signed).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden — and it delivers richly: idempotency via CREATE TABLE IF NOT EXISTS, per-step return behavior, error surfacing behavior with a version-specific nuance (0.31.0 reading the SQL error body), and the nsec-signed proof requirement. This is exemplary disclosure for an unannotated tool.

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

Conciseness5/5

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

Four tight paragraphs, each earning its place: core action, triggering condition, idempotency/return behavior, and security restriction. Front-loaded with the action verb and followed by the decision-relevant context. Dense but not verbose given zero annotation coverage.

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?

With an output schema present, return values need no further explanation. The description covers success behavior (harmless re-run), failure behavior (inline error surfacing), and access restriction (operator-only proof). The only residual gap is the unexplained dpop_token parameter, which is optional with a default. Nearly complete for a recovery tool with rich annotations elsewhere.

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 coverage is 0% and the description never mentions dpop_token. However, the parameter is optional with a default value, its name is self-descriptive, and the description's mention of 'nsec-signed' proof provides relevant auth context. The description does not add meaning beyond the schema, but for a single defaulted auth-token parameter this is a minor gap rather than a blocking gap.

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 ('Re-run ensure_schema() on every NeonVault'), then characterizes the tool as a diagnostic/recovery tool. The description distinguishes it from the large sibling list by naming the exact failure scenario it addresses rather than just restating the name.

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?

Explicitly states when to use it: when the Neon HTTP SQL API returns persistent 4xx errors and the operator suspects schema/grants. It also says it is restricted to the operator. It does not name sibling alternatives or give explicit when-not conditions, but the triggering condition is specific enough that an agent can route correctly.

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

goodearth_review_rosterGoodearth Review RosterAInspect

Audit a roster against what this ground's record actually knows.

Asked "are these the right pests to watch?", an agent will answer from its own training data — unverifiable, different per model, and confidently wrong exactly at the margins where a review matters. This answers from the record instead: the degree-day models USA-NPN publishes for these coordinates, and what iNaturalist has recorded nearby.

Three findings:

  • out_of_range — listed, and this ground's record does not know it.

  • absent — the record knows it well and the roster does not list it.

  • implausible — an observation that cannot be right, with what makes it wrong. This is the one that matters: observations feed goodearth_calibration, which shifts the heat and frost bias for the whole block, so a junk entry degrades every later answer rather than merely showing a wrong row.

Every reason is about the RECORD, never about the animal. "Not recorded within 16 km" is a fact; "does not live here" is natural history, which Good Earth does not publish. Nothing is removed — the grower who genuinely saw the odd thing is precisely the case worth learning from, so findings are proposed and the patron decides.

ParametersJSON 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.
pestsNoThe pests being watched: [{"pest": "Codling moth"}, ...].
seasonNoWhich season's roster to audit. Defaults to this one.
wildlifeNoThe creatures being tracked: [{"species": "American robin"}, ...].
dpop_tokenNo
observationsNoField reports to sanity-check: [{"kind": "frost", "observed_on": "2026-07-04"}, {"kind": "pest", "species": "Walrus", "observed_on": "2026-06-03"}].

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It explains that findings are about the record, never natural history, that nothing is removed, and that implausible observations feed goodearth_calibration and degrade later answers. This gives meaningful behavioral context beyond a simple 'audit' label.

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 longer than strictly necessary, with a motivational framing paragraph, but it is well-structured and front-loaded with the core purpose. Each subsequent section—findings, record-only constraint, patron decision—earns its place by clarifying behavior an agent needs before calling the tool.

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 conceptually complex tool with no annotations, the description covers the essential behavioral and conceptual context: sources, finding types, downstream consequences, and the non-destructive nature of the audit. It relies appropriately on the schema for parameter details and on the output schema for return structure, though it does not address permissions or prerequisites itself.

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 86%, so the schema already documents most parameters. The description adds conceptual context about 'the record' and the meaning of findings, but it does not add details about individual parameters beyond what the schema provides. The baseline score of 3 is appropriate.

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 opens with a specific verb and resource: 'Audit a roster against what this ground's record actually knows.' It names three distinct finding types (out_of_range, absent, implausible) and clarifies the tool is record-based rather than training-data-based, making it easy to distinguish from knowledge-answer tools.

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 gives a clear usage context: when asked 'are these the right pests to watch?' and when the answer should come from the record rather than the model's own knowledge. It does not explicitly name alternative sibling tools or when-not-to-use conditions, so it stops short of full exclusionary guidance.

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

goodearth_service_statusGoodearth Service StatusAInspect

Check the health and configuration of this service. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral transparency burden. 'Check' implies a read-only operationaine; no side effects are mentioned. The note 'Free' adds useful cost information. However, it does not explicitly state that no changes are made, nor disclose any rate limits or access requirements.

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

Conciseness5/5

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

The description is extremely concise, containing only two short sentences. The main action is front-loaded, and 'Free.' is an efficient and useful addition. No wasted words or redundant content.

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

Completeness5/5

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

For a zero-parameter health-check tool with an output schema, the description is complete: it states what is checked (health and configuration) and adds cost behavior. The output schema can document return values, so nothing critical is missing.

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 input schema has zero parametership and schema description coverage is 100% trivially. With no parameters, the baseline is 4. The description adds no parameter-specific detail because none is needed.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Check the health and configuration of this service.' This clearly identifies a status/health operation. It does not explicitly differentiate from sibling tools such as goodearth_session_status, but the phrase 'this service' helps distinguish the overall service health from session-specific status.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternative status-related siblings like goodearth_session_status or goodearth_oracle_about. There are no usage conditions, prerequisites, or exclusions. The agent must infer when this tool is appropriate.

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

goodearth_session_statusGoodearth Session StatusAInspect

Check operator readiness. Returns the operator lifecycle state and clear guidance on what to do next. Free.

Lifecycle states:

  • ready: Operator is warm and fully operational — vault AND pricing model verified. Proceed with tool calls.

  • warming_up: Operator is initializing (cold start). Try a tool call — it will warm up on demand.

  • misconfigured: Persistence rejected a query with a permanent SQL error (permission denied, missing relation). Paid tools will fail until the operator repairs the database — retrying does not help.

  • quota_exceeded: The persistence provider (Neon) answered HTTP 402 — the operator's database has exhausted its compute/storage quota, so the books are locked for billing. Paid tools fail; retrying does NOT help. The operator's Authority must restore capacity (upgrade the plan or wait for the quota reset). Free tools remain available.

  • not_registered: Operator has no Authority relationship yet. Call register_operator first.

  • no_identity: Operator nsec is not configured. Deployment issue.

ParametersJSON Schema
NameRequiredDescriptionDefault
patron_npubNoOptional. If supplied, the response includes an ``upstream_oauth`` block with the patron's stored OAuth token expiry (runtime-derived from vault state) so a client can refresh proactively rather than reactively after a stale-token failure.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure and does so well. It explains that the tool is free, lists all lifecycle states, and details state-dependent behavior such as paid tools failing on quota_exceeded and free tools remaining available. It does not explicitly state whether the tool has side effects, though 'Check' implies read-only.

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

Conciseness5/5

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

The description is front-loaded with the core purpose ('Check operator readiness') and then uses a well-structured bulleted list for the lifecycle states. Each bullet is actionable and necessary; there is minimal repetition beyond the intentionally repeated 'retrying does not help' emphasis in the failure states.

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

Completeness5/5

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

Given the tool's simplicity — one optional parameter, no annotations, and an output schema present — the description is complete. It explains every possible state, what to do in each, and how paid vs. free tools are affected. An agent can confidently decide when and how to call this tool based solely on the description.

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 100%, so the input schema already fully documents patron_npub, including its optionality and the upstream_oauth block it triggers. The description adds no parameter-level meaning beyond that, making the baseline score of 3 appropriate.

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

Purpose4/5

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

The description clearly specifies the purpose: 'Check operator readiness' and says it returns the operator lifecycle state plus next-step guidance. It distinguishes the tool's focus on operator readiness and lifecycle status from nearby siblings like adoption_status or onboarding_status, though it does not explicitly name those alternatives.

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 gives clear, state-specific guidance on what to do next, such as 'Proceed with tool calls' when ready, 'Try a tool call' when warming up, and 'Call register_operator first' when not_registered. It also explains when paid tools will fail and that retrying does not help in misconfigured/quota_exceeded states. It does not explicitly contrast this tool with sibling status-checking tools, so it stops short of a 5.

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

goodearth_set_pricing_modelGoodearth Set Pricing ModelBInspect

Set the active pricing model. RESTRICTED to operator.

Requires a valid proof (Schnorr-signed kind-27235 event) proving the caller holds the operator's nsec.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
model_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden of disclosing behavior, and it does so for the most critical aspects: it is a restricted mutation and requires a Schnorr-signed proof. This adds real auth context beyond the raw schema. It does not mention reversibility or side effects, but the core behavioral traits are disclosed.

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

Conciseness5/5

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

The description is compact and front-loaded: the core operation appears first, followed by the critical restriction. Every sentence earns its place and there is no filler.

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

Completeness2/5

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

The description covers the operation and auth requirement, and an output schema exists, so return values need no explanation. However, parameter semantics are entirely absent, and there is no comparison to related pricing-model tools, leaving meaningful gaps for an agent deciding how to invoke it.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain model_json or dpop_token at all. The proof requirement hints at authentication but is not tied to the parameters. With no schema descriptions and no compensating detail, the agent cannot determine what values to provide.

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 states a specific action and resource: 'Set the active pricing model.' This clearly differentiates from siblings like get_pricing_model and reset_pricing_model. The RESTRICTED-to-operator note adds useful scope without ambiguity.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives such as get_pricing_model or reset_pricing_model. The auth requirement is stated, but the description does not address selection context or exclusions.

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

goodearth_soil_temp_projectionGoodearth Soil Temp ProjectionAInspect

When the soil on this ground crosses a planting threshold.

Returns the near-term forecast at planting depth, the date it crosses within that horizon if it does, and when the crossing normally happens here — so a grower knows both "plant this week?" and "how long have I got?".

Soil lags air by weeks and is the steadier signal. It is what decides whether a clove or a seed should go in, not one warm afternoon.

ParametersJSON Schema
NameRequiredDescriptionDefault
bandNo'planting' for 7-28 cm (~3-11 in, the default) or 'shallow' for 0-7 cm.planting
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.
directionNo'cooling' for an autumn window, 'warming' for a spring one.cooling
thresholdNoThe soil temperature in °F that opens or closes the window. Garlic goes in below about 60.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It is transparent that the result is a forecast, that the crossing date is returned only 'if it does' occur within the horizon, and that a local normal is also reported. However, 'near-term' is vague, and the description does not mention horizon length, data recency, or billing/side effects, leaving some behavior to be inferred from the schema and output schema.

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 front-loaded with the trigger, then the returns, then the rationale; all parts contribute to understanding. It is compact, though the first line is a sentence fragment and the soil-vs-air metaphor is somewhat decorative rather than strictly operational.

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

Completeness3/5

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

For a six-parameter tool with an output schema, the description provides the core semantics and lets the output schema cover return shapes. It does not define the forecast horizon, mention required authentication or credit billing, or explicitly differentiate this from siblings like planting_window, so an agent still has some selection uncertainty.

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 documentation covers about 83% of parameters, so the baseline is 3. The description adds little parameter-level meaning beyond the schema; 'planting depth' maps to the 'band' parameter, but the schema already explains the depth ranges more precisely than the description does.

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 opens with the specific trigger ('crosses a planting threshold') and states the verb 'Returns' with a clear resource: a near-term soil-temperature forecast at planting depth, including the crossing date and the climatological normal. It also distinguishes itself from air-temperature tools by explaining that soil is the steadier signal and the real decision driver, not a single warm afternoon.

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 gives clear context for when to call it: when a grower needs to know whether to plant this week and how much time remains, based on soil rather than air temperature. It stops short of 5 because it does not explicitly name sibling alternatives or state when not to use this tool.

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

goodearth_task_deleteGoodearth Task DeleteAInspect

Remove one task.

Scoped to the caller's npub in the WHERE clause, so a known id is not on its own enough to delete somebody else's task.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
task_idYesThe task's id.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses an important trait: deletion is scoped to the caller's npub, preventing deletion of others' tasks. However, it does not state whether deletion is permanent, what happens to associated data, or any idempotency/error behavior. This is minimally adequate but not comprehensive.

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

Conciseness5/5

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

The description is two short sentences with no filler. The core action is front-loaded, and the scoping nuance is stated succinctly. Every word adds value.

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 simplicity of the delete operation, an output schema exists (so return values are documented), and the key authorization behavior is mentioned. The description is complete enough for an agent to call the tool correctly, though it could mention permanence or side effects for extra safety.

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 coverage is 67% (task_id and npub described, dpop_token not). The description adds meaning to npub by explaining its role in the WHERE clause for scoping, and clarifies that task_id alone is insufficient. This goes beyond the schema's basic descriptions, though it doesn't mention dpop_token.

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 opens with a specific verb and resource: 'Remove one task.' This clearly distinguishes it from sibling tools like goodearth_task_save (create/update), goodearth_task_set_done (mark done), and goodearth_task_list (list). The scoping note further clarifies the exact operation.

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

Usage Guidelines3/5

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

The description implies usage (a delete operation) and gives a security constraint about npub scoping, but it does not explicitly state when to prefer deletion over alternatives like task_set_done or what prerequisites exist. No exclusions or alternative tool references are provided, leaving some inference to the agent.

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

goodearth_task_listGoodearth Task ListAInspect

One page of a region's tasks, ordered and filtered by the database.

The sorting, the timeframe filter and the search all happen in SQL, so a long list costs one page rather than the whole table.

sort_col names a column rather than supplying one: it indexes a fixed map and falls back to the due date, so an unrecognised value gives the default order rather than an error — and can never reach the query.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
pageNoZero-based page number.
searchNoOptional POSIX regular expression, matched against title and note.
sort_colNodue, title, done, starts, created or updated.due
sort_dirNoasc or desc.asc
page_sizeNoRows per page, capped at 200.
region_idYesThe saved region whose tasks to list.
timeframeNoday, week, month, season or all. 'season' means this farm's season.all
dpop_tokenNo
season_startNoOptional YYYY-MM-DD, so 'season' means the grower's season.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden, and it does add meaningful behavior: sorting, filtering, and search execute in SQL so a long list costs one page; and sort_col uses a fixed map, falling back to due date when unrecognized instead of erroring. It does not discuss auth/rate limits, but the disclosed behaviors go well beyond a generic read.

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?

Three front-loaded sentences convey purpose, performance characteristics, and a non-obvious edge case without redundancy. Each sentence earns its place; it is compact but not underspecified.

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?

Combined with a highly descriptive schema and an output schema, the description gives an agent enough to invoke the tool correctly for paginated region-task listing. The main missing elements are usage comparisons and explicit auth/permission context, already penalized in other dimensions.

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 high (90%), so the baseline is 3.access The description adds real value for sort_col by explaining the fixed-map behavior and silent fallback to due date, which the schema does not convey. It also frames search/timeframe as server-side SQL filters, enriching the parameter understanding.

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

Purpose4/5

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

The opening sentence makes clear that the tool returns a page of a region's tasks, ordered and filtered by the database. It is distinguishable from task_save/task_delete/task_set_done by its list natureto, but it uses a noun phrase rather than an explicit verb like 'lists', so it falls just short of a 5.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives such as task_save, task_delete, or the other list tools. The SQL/pagination note implies usefulness for server-side pagination, but no when/when-not boundaries or alternative names are provided.

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

goodearth_task_saveGoodearth Task SaveAInspect

Create or update one task.

Single-day by design: one date and optional clock times on it. No recurrence and no multi-day spans — a farm list is a list of days.

ParametersJSON Schema
NameRequiredDescriptionDefault
dueNoYYYY-MM-DD. The day it is for.
doneNo
noteNoOptional detail.
npubNoRequired. Your Nostr public key (npub1...).
titleYesWhat needs doing.
ends_atNoOptional HH:MM on the due date.
task_idNoOmit to create; pass an existing id to update.
region_idYesThe saved region this task belongs to.
starts_atNoOptional HH:MM on the due date.
dpop_tokenNo
reminder_onlyNoTrue publishes a reminder; false publishes an entry that takes the slot.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses key behavioral constraints (single-day, no recurrence) and implies a write operation, but it does not mention required authentication (npub, dpop_token are in schema), side effects, or failure modes. It adds some value beyond schema by explaining the design philosophy, but lacks depth on operational behavior.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action ('Create or update one task') followed by the key design constraint. Every sentence earns its place with no redundancy, making it efficiently structured.

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 tool's complexity (11 parameters, no annotations), the description explains the core domain model (single-day tasks) but omits operational details like authentication requirements or error handling. An output schema exists, which reduces the need to explain return values, but the description could be more complete about prerequisites. Still, it suffices for an agent to understand the tool's intent.

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 coverage is 82%, so the schema already documents most parameters. The description adds minimal new parameter meaning beyond the schema; it explains the single-day constraint and the reminder_only distinction, but does not elaborate on dpop_token, npub, or how to use task_id for update. Since coverage is high, baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool creates or updates one task, which is a specific verb-resource combination. It distinguishes from task_delete and task_list by indicating it handles create/update. However, it does not explicitly contrast with task_set_done, which is also a form of update, so it lacks full sibling differentiation.

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 explicitly notes the single-day design and absence of recurrence, providing clear context for when to use this tool. It does not explicitly state when not to use it or name direct alternatives, but the context is sufficient for an agent to understand its scope, especially given sibling tool names like task_list and task_delete infer alternatives.

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

goodearth_task_set_doneGoodearth Task Set DoneBInspect

Mark one task done, or put it back.

ParametersJSON Schema
NameRequiredDescriptionDefault
doneNoTrue to tick it off.
npubNoRequired. Your Nostr public key (npub1...).
task_idYesThe task's id.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the toggling action and reversibility ('put it back'), but does not mention auth requirements, side effects, validation behavior, or consequences of setting done=false.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no wasted words. It communicates the core behavior efficiently and is easy to parse at a glance.

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

Completeness3/5

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

A simple toggle tool with an output schema, so return details are not necessary. However, the description omits that npub is required for authentication and gives no usage contrast with task_save, leaving an agent with modest ambiguity for a mutating operation.

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?

The schema already documents 3 of 4 parameters meaningfully (75% coverage), and the description adds only the false-side meaning of 'done' via 'put it back'. It does not clarify the npub field's contradictory 'Required' text while npub is not in the required array.

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

Purpose4/5

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

The description 'Mark one task done, or put it back' clearly names the action (mark done/un-done) and the resource (a task), and it implies a toggle rather than a general update. It distinguishes itself from task_delete and task_list, though it does not explicitly contrast with task_save.

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

Usage Guidelines2/5

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

The description gives no guidance about when to use this tool versus related siblings like task_save or task_delete. It communicates the basic operation but does not state prerequisites, exclusions, or alternative routing.

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

goodearth_tree_suitabilityGoodearth Tree SuitabilityAInspect

Whether a tree survives and gets its chill on this ground.

A tree is not asked "does it finish before frost" — that is a question only something that must finish in one season can be asked. It is asked two others, both settled before it goes in the ground:

  • Will it survive? Every winter on record has a coldest night; a cultivar has a limit. The answer is how often the first went below the second.

  • Will it fruit? A deciduous fruit tree needs chill hours to break dormancy cleanly. The answer is how many winters on record delivered them.

Both come back as a FREQUENCY across the record rather than a yes. A tree that survives nine winters in ten is a different proposition from one that survives five, and any single word hides the difference.

Chill is counted as hours in the 32-45 °F band between 1 November and 15 February — the window the published chill-hour figures were derived against. A wider window would bank more hours against a requirement calibrated to a narrower one and report a tree comfortable where it is not.

The requirements are yours. Hardiness limits and chill hours are cultivar figures that vary widely within a species; Good Earth computes what this ground delivered against them and does not publish agronomy.

ParametersJSON 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.
treesYesThe trees to judge, with the figures from their nursery tags. Each is {"tree": "Honeycrisp apple", "chill_hours": 800, "hardy_to_f": -30} with optional "category" and "emoji". Both figures are optional: a tree with neither is recorded and reported as unrated rather than refused.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does substantial work: it discloses that results are frequencies rather than yes/no answers, defines the exact chill-hour band and date window, and clarifies that hardiness/chill requirements are user-supplied cultivar figures. It does not explicitly state whether the call has side effects, but 'computes what this ground delivered' and the overall query framing make read-only behavior reasonably clear.

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 well organized with bolded questions and bullets, making the two core evaluative axes easy to scan. It is longer and more rhetorical than strictly necessary, with phrases like 'gets its chill on this ground' and the extended frost/frost finish framing adding flavor rather than operational precision, but each paragraph contributes meaningful conceptual context.

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 that an output schema exists and parameter mechanics are covered in the input schema, the description is nearly complete for an agent: it explains calculation semantics, historical-record frequency, chill-window constraints, and the user's responsibility for cultivar figures. The only notable gap is the lack of explicit routing guidance against nearby sibling tools and an explicit read-only/no-side-effects statement.

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 75%, so the schema already documents block, trees, and npub. The main description adds real parameter meaning by defining how chill_hours should be counted (32–45 °F, November 1–February 15) and what hardy_to_f represents (the cultivar's coldest-night limit compared against the record). This goes beyond the schema fields.

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

Purpose4/5

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

The description clearly frames the tool as judging whether a tree cultivar will survive and receive sufficient chill on a specific block, and it explains the survival/fruit questions with specific frequency-based answers. It distinguishes itself from one-season/crop tools via the 'does it finish before frost' contrast, though it never names a sibling tool directly. A crisper imperative like 'returns suitability frequencies for tree cultivars' would make the operation fully explicit.

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

Usage Guidelines3/5

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

The description implies when to use this tool: when assessing perennial fruit trees against a saved block, and it implicitly excludes annual crops that must finish before frost. However, it does not explicitly name alternatives such as goodearth_crop_suitability or goodearth_tree_year, and the block-save prerequisite appears only in the input schema rather than the main description.

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

goodearth_tree_yearGoodearth Tree YearAInspect

When spring reached this ground, and what the sap did.

First leaf and first bloom, from USA-NPN's Spring Index, dated for this block and set against its own thirty-year normal. "Spring is early this year" is a headline; "leaf-out reached this block seven days before its normal" is something to act on.

First bloom is also when the pollen starts. That is a restatement of what bloom is, not a pollen forecast — Good Earth has no pollen feed, models none, and says nothing about what anyone should do about it.

The sap run, for a block with maple, birch or walnut on it. Sap moves on freeze and thaw rather than on warmth: a night below freezing followed by a day above it. Counted off this ground's own season record, so it costs no extra call. A block with nothing tappable gets no sap section — the count would be just as true there and would answer a question nobody on that ground asked.

The trees are read from the block's own record; nothing needs passing.

ParametersJSON 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.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does it well: it discloses the data source, the comparison to a 30-year normal, the explicit statement that this is not a pollen forecast, the absence of pollen models, conditional output sections, and that all data comes from the block's own record with nothing else to pass.

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?

Bold section headers and a clear opening line make the structure easy to scan. Some prose is ornate and the pollen caveat is repeated, but each section earns its place by explaining meaningful behavioral nuance.

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?

An output schema exists, so return values do not need explanation. The description covers data source, baseline comparison, conditional sections, and the input model. It does not address how this tool relates to seasonal siblings, but that is not required to invoke it correctly.

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?

The schema already documents npub and block in detail, and the description adds that tree data is read from the block record so nothing else needs passing. However, dpop_token remains undocumented and the description does not compensate for that gap.

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

Purpose4/5

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

The description clearly identifies the tool's purpose: reporting when spring reached a saved block (first leaf, first bloom, sap run) using USA-NPN Spring Index data compared to the block's own 30-year normal. It names the specific resource (a block) and the kind of answer, but does not explicitly distinguish it from related sibling tools.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: it describes what the tool reports and notes conditional sections like the sap run only applying to blocks with maple, birch, or walnut. It gives no explicit when-to-use guidance or alternatives among the many sibling tools.

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

goodearth_update_couponGoodearth Update CouponAInspect

Patch a coupon's editable fields.

Pass only the fields you want to change. To set a cap to unlimited (NULL in the schema), pass clear_uses_per_patron=true or clear_total_uses=true. Renaming the code is allowed — existing patron redemption rows survive (they key on coupon id).

RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
coupon_idYes
dpop_tokenNo
total_usesNo
valid_fromNo
valid_untilNo
uses_per_patronNo
clear_total_usesNo
discount_percentNo
clear_uses_per_patronNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral burden and does real work: it discloses partial-patch semantics, the clear-to-NULL mechanism, that renaming the code keeps existing patron redemption rows because they key on coupon id, and an authorization requirement. Remaining unstated behaviors, such as date-validity checks or conflict handling, are minor gaps in an otherwise disclosure-rich text.

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?

Four short blocks, front-loaded with the core purpose, then usage semantics, then the restriction — no filler sentences. The parenthetical '(NULL in the schema)' is a slight internal reference but earns its place by disambiguating the clear flags.

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

Completeness3/5

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

For a 10-parameter mutation with no annotations and 0% schema coverage, the description covers the non-obvious behaviors but leaves several parameters and edge conditions unexplained. The presence of an output schema relieves the return-value burden, keeping this at an acceptable minimum rather than failing.

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 0%, so the description must compensate. It adds meaning for clear_uses_per_patron and clear_total_uses (unlimited/NULL semantics) and implies that `name` is the coupon code via the rename note. However, several parameters — dpop_token, valid_from/valid_until formats, discount_percent semantics, and coupon_id — receive no explanatory value beyond their type names.

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?

Opens with a specific verb-resource pair — 'Patch a coupon's editable fields' — that names the operation, target, and scope in one sentence. This cleanly separates it from siblings like goodearth_delete_coupon, goodearth_mint_coupon, goodearth_list_coupons, and the credential-update tools, without needing to inspect any schema.

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?

Gives concrete operational guidance: pass only the fields you want to change, use the clear_* flags to null out caps, and notes the tool is restricted to operators with proof. It does not explicitly name alternatives or exclusion conditions, but the update-vs-create/delete/read split among siblings is easily inferable from the tool names.

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

goodearth_update_operator_credentialGoodearth Update Operator CredentialAInspect

Add or update a single operator secret field.

Merges into the operator's stored credentials without touching the others — the field-level counterpart to re-delivering the whole bundle over Secure Courier. Use it to rotate one secret (a reissued btcpay_api_key, say) without restating the six you did not change, where any field omitted from a courier reply is destroyed.

The value is never echoed back. RESTRICTED to the operator — requires proof (nsec-signed kind-27235 or a cached dpop_token phrase); patron proofs are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesThe operator credential field to set. Must be declared in the operator's credential template.
valueYesThe value to store.
dpop_tokenYesOperator proof for this tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It states that the value is never echoed back, that it merges without touching other fields, and details the authentication proof requirements (nsec-signed kind-27235 or cached dpop_token) and rejection of patron proofs. This is strong coverage for a mutation tool.

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

Conciseness5/5

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

The description is concise yet information-dense, with each sentence adding distinct value: purpose, merge semantics, usage example with caution, no-echo guarantee, and auth restriction. It is front-loaded with the primary action and avoids redundant restatement of the tool name.

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

Completeness5/5

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

For a mutation tool with security constraints, the description covers purpose, when to use, behavioral guarantees, and authentication requirements. It distinguishes itself from sibling tools (operator vs patron, field-level vs bundle) and relies on the existing output schema for return details. Nothing critical is missing for an agent to call 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 coverage is 100%, so parameters are already documented. The description adds a concrete example (btcpay_api_key) and clarifies the semantic of 'field' as a single credential field within the operator's template. It also ties the dpop_token to the proof requirement, adding context beyond the schema's generic 'Operator proof for this tool'.

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 opens with a specific verb-resource pair, 'Add or update a single operator secret field', and immediately clarifies its scope as the field-level counterpart to whole-bundle delivery. It also explicitly distinguishes operator from patron credentials, making it unambiguous among siblings.

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?

It gives a concrete use case (rotating one secret like a reissued btcpay_api_key) and explains when not to use it (patron proofs rejected, and the contrast with re-delivering the whole bundle where omitted fields are destroyed). It does not name the exact sibling tool (e.g., goodearth_update_patron_credential) but clearly implies the operator-only scope.

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

goodearth_update_patron_credentialGoodearth Update Patron CredentialAInspect

Add or update a single patron credential field.

Merges into existing stored credentials without affecting other fields. Useful for setting an account identifier after OAuth, changing a default brain, etc. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
fieldYesThe credential field name to set.
valueYesThe value to store.
dpop_tokenYesRaw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its `u` tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random `nonce` tag recommended. Or a cached dpop_token phrase.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that this is a write operation, that it merges without affecting other fields, that it is free, and that proof of npub ownership is required. It also flags the sensitive nature of the credential vault. It does not detail failure modes or whether the operation is idempotent, but the merge semantics and proof requirement are meaningful behavioral disclosures beyond the schema.

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

Conciseness5/5

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

The description is compact and front-loaded: the core action is in the first sentence, followed by merge semantics, use cases, cost, and auth requirement. Every sentence earns its place, and the warning about the sensitive vault is placed at the end as a natural emphasis. No fluff or repetition of schema details.

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 tool's complexity (4 required params, sensitive write, no annotations), the description covers the key operational context: what it does, merge behavior, use cases, cost, and proof requirement. The output schema exists, so return values don't need explanation. A minor gap is that it doesn't mention what happens if the field already exists (overwrite vs. merge) beyond 'merges', and it doesn't state whether the operation is reversible, but these are not critical for an agent 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 100%, so the baseline is 3. The description adds value by explaining the merge behavior and the purpose of the field/value pair, and it reinforces the dpop_token requirement contextually. However, it doesn't add much detail about the 'field' parameter's allowed values or format beyond the schema, and the dpop_token schema description is already very detailed. The description's contribution is moderate but real.

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 states a specific verb ('Add or update'), a specific resource ('a single patron credential field'), and the merge semantics ('Merges into existing stored credentials without affecting other fields'). It also gives concrete use cases (setting an account identifier after OAuth, changing a default brain), which distinguishes it from sibling tools like goodearth_delete_patron_credential or goodearth_get_patron_credential_fields.

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 gives clear context for when to use the tool ('after OAuth', 'changing a default brain') and states it is a write to a sensitive vault. It does not explicitly name sibling alternatives or state when NOT to use it, but the use cases and merge semantics imply the distinction from delete/get credential tools. A small gap: it doesn't mention that this is for a single field vs. bulk operations, though 'single patron credential field' covers that.

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

goodearth_wildlife_calendarGoodearth Wildlife CalendarAInspect

When the other creatures working your season arrive.

A farm is not only its crops. Robins arrive, woodchucks wake, squirrels start caching. The same drivers that time a crop time the animals — heat accumulation, day length, and the calendar the sun keeps — so they can be computed for your ground rather than read off a regional average.

Three clocks, because animals do not all run on one: a degree-day threshold, a photoperiod threshold (migration runs on this, which is why it barely moves between a warm year and a cold one), or a date from your own record.

The thresholds are yours. Good Earth works out when they arrive here; it does not publish natural history.

ParametersJSON 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.
eventsYesThe events to time, with your own thresholds. Heat-driven: {"species": "Woodchuck", "event": "emergence", "driver": "heat", "gdd": 120, "base_temp": 43}. Daylight-driven: {"species": "Robin", "event": "first arrival", "driver": "daylight", "daylight_hours": 11.5, "rising": true}. From your own record: {"species": "Grey squirrel", "event": "nut caching", "driver": "calendar", "typical_on": "09-15"}. All accept an optional emoji and note.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does convey that the tool computes rather than publishes natural history, and that thresholds are user-supplied. However, it does not disclose error behavior (e.g., ambiguous block names listing matches), billing implications beyond npub, or what the output contains.

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

Conciseness3/5

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

The description is evocative and well-written but spends several sentences on natural-history framing before getting to the functional core. The 'Three clocks' paragraph is genuinely useful, but the opening two paragraphs could be compressed. It is not front-loaded with the operational purpose.

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 output schema exists and the input schema is detailed, the description covers the conceptual model well. It explains the three driver types, that thresholds are user-defined, and that results are computed for the user's ground. It does not mention error cases or the relationship to block_save, though the schema covers that.

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 coverage is 75%, and the description adds meaningful context for the events parameter by explaining the three driver types and giving concrete example objects. The block parameter's matching semantics (id, name, alias, partial name) are well explained in the schema itself. The description adds value by explaining why thresholds matter and how the three clocks differ.

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

Purpose4/5

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

The description explains the tool computes wildlife phenology timing for a specific ground using three driver types (heat, daylight, calendar), which distinguishes it from generic calendar tools. However, it never uses a direct verb like 'compute' or 'predict' in a single crisp sentence, and the poetic framing obscures the core function until the schema is read.

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 the conceptual model (three clocks, thresholds are yours) and the schema clarifies that blocks must be saved first via block_save. It does not explicitly name sibling alternatives like goodearth_wildlife_catalog or goodearth_calendar_fetch, so an agent must infer when this tool is the right choice versus those.

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

goodearth_wildlife_catalogGoodearth Wildlife CatalogAInspect

Which animals are actually recorded around this ground.

Birds, mammals, amphibians and reptiles observed near here, ranked by how often each has been seen — so the answer for a Vermont lakeshore is not the answer for a Georgia orchard, and neither is a roster someone typed.

Species are a landscape fact. A nine-hectare field contains almost no observations of anything, so the search widens to the surrounding country and the response reports how wide it looked; treating that footprint as the farm would be the dishonest version.

The ranking measures observers as much as animals — a roadside is better recorded than a back field — so the counts travel with the answer.

Pass a scientific name as species and this answers with that animal's life-cycle phenophases instead — nest building, nestlings, fledged young, calls or song, emergence above ground. Those come from USA-NPN, which publishes them; they are not written into this service. Roughly half the species recorded around a farm have them, and one that does not returns an empty list rather than a guess, because "not tracked" and "does nothing" are different claims.

Set with_events to get those phenophases for EVERY species in the list at once, as habit_events. Ask for it before writing a roster: an agent left to name events from memory writes "rut onset" and "southbound flights", words this service has never used, where NPN says "Nest building" and "Fledged young". It costs one upstream call per species, which is why it is off by default.

The event name is not load-bearing. A wildlife row is dated by its DRIVER — heat, daylight, an interval, a calendar date — and the label is the grower's own words. habit_events is a courtesy to a caller looking for the right word, never a list of the only acceptable ones: "Big Night crossing" is a real thing a salamander does and no catalogue holds it.

Good Earth times an event you set. It does not publish natural history.

ParametersJSON 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.
speciesNoOptional. A scientific name from a previous catalogue answer, e.g. 'Strix varia'. Given one, this returns that animal's life-cycle phenophases instead of the regional list.
dpop_tokenNo
with_eventsNoInclude each species' known phenophases as `habit_events`, so a roster can be written from the published vocabulary rather than from memory. Costs one upstream call per species.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, and it excels. It discloses that the search widens to surrounding country when observations are sparse, that the response reports the footprint width, that counts reflect observer effort, that phenophases come from USA-NPN and are not written into the service, that untracked species return an empty list rather than a guess, and that the event name is not load-bearing. It even warns that the service does not publish natural history and that it times events the user sets. This is exemplary transparency.

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 long but every paragraph earns its place: it explains the ranking philosophy, the widening footprint, the phenophase source, the `with_events` cost, and the non-load-bearing nature of event names. It is front-loaded with the core purpose and then layers detail. It could be tightened slightly, but the length is justified by the conceptual complexity of the tool. The bolded warning about event names is a high-value addition.

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

Completeness5/5

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

Given the tool's complexity, the output schema presence, and the absence of annotations, the description is remarkably complete. It covers what the tool returns, how the ranking works, how the footprint is reported, what the phenophase mode does, what the `with_events` flag costs, and what the service does not do. An agent has everything needed to decide when to call it and how to interpret the response. The only minor gap is not describing the exact output shape, but the output schema exists and the description explicitly says the response reports the footprint width.

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 coverage is 80%, so the baseline is 3. The description adds significant meaning beyond the schema: it explains the `species` parameter's behavior (returns phenophases instead of the list), the `with_events` parameter's cost and purpose, and the `block` parameter's matching semantics (partial names, ambiguity errors, overlap). The only parameter not enriched is `npub`, which the schema already describes as required for billing. The description compensates well for the 20% gap and adds context that the schema alone does not provide.

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's core function: listing animals actually recorded around a given ground, ranked by frequency, with a distinct mode for species phenophases. It distinguishes itself from siblings like goodearth_nearby_species and goodearth_wildlife_calendar by emphasizing that this is a catalog of observed species, not a calendar or a simple nearby-species lookup. The verb 'recorded' and the explicit contrast with 'a roster someone typed' make the purpose unmistakable.

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?

The description gives explicit when-to-use guidance: pass a scientific name as `species` to get phenophases, set `with_events` to get phenophases for every species, and save a block first with block_save. It also warns against using the tool for events not in the published vocabulary, and explains the cost tradeoff of `with_events`. This is far beyond typical usage guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 81 tool updates
    • First observedgoodearth_account_statement
    • First observedgoodearth_account_statement_infographic
    • First observedgoodearth_adoption_status
    • First observedgoodearth_almanac
    • First observedgoodearth_block_item_list
    • First observedgoodearth_block_item_save
    • First observedgoodearth_block_list
    • First observedgoodearth_block_save
    • First observedgoodearth_calendar_dataset
    • First observedgoodearth_calendar_fetch
    • First observedgoodearth_calendar_list
    • First observedgoodearth_calendar_revoke
    • First observedgoodearth_calibration
    • First observedgoodearth_check_authority_balance
    • First observedgoodearth_check_balance
    • First observedgoodearth_check_payment
    • First observedgoodearth_check_price
    • First observedgoodearth_check_proof_status
    • First observedgoodearth_crop_gdd_status
    • First observedgoodearth_crop_suitability
    • First observedgoodearth_delete_coupon
    • First observedgoodearth_delete_operator_credential
    • First observedgoodearth_delete_patron_credential
    • First observedgoodearth_disease_risk
    • First observedgoodearth_drying_window
    • First observedgoodearth_forget_coupon
    • First observedgoodearth_forget_credentials
    • First observedgoodearth_forget_my_ground
    • First observedgoodearth_frost_window
    • First observedgoodearth_gdd_season_curve
    • First observedgoodearth_get_nostr_profile
    • First observedgoodearth_get_notarization_proof
    • First observedgoodearth_get_operator_onboarding_status
    • First observedgoodearth_get_patron_credential_fields
    • First observedgoodearth_get_patron_onboarding_status
    • First observedgoodearth_get_pricing_model
    • First observedgoodearth_list_canonical_identities
    • First observedgoodearth_list_constraint_types
    • First observedgoodearth_list_coupons
    • First observedgoodearth_list_my_coupons
    • First observedgoodearth_list_notarizations
    • First observedgoodearth_mint_coupon
    • First observedgoodearth_nearby_species
    • First observedgoodearth_notarize_ledger
    • First observedgoodearth_oracle_about
    • First observedgoodearth_oracle_get_tax_rate
    • First observedgoodearth_oracle_how_to_join
    • First observedgoodearth_oracle_lookup_member
    • First observedgoodearth_oracle_network_advisory
    • First observedgoodearth_pest_catalog
    • First observedgoodearth_pest_threshold
    • First observedgoodearth_plan_the_season
    • First observedgoodearth_planting_window
    • First observedgoodearth_publish_nostr_profile
    • First observedgoodearth_purchase_credits
    • First observedgoodearth_receive_credentials
    • First observedgoodearth_receive_npub_proof
    • First observedgoodearth_redeem_coupon
    • First observedgoodearth_report_issue
    • First observedgoodearth_request_adoption
    • First observedgoodearth_request_credential_channel
    • First observedgoodearth_request_npub_proof
    • First observedgoodearth_reset_pricing_model
    • First observedgoodearth_restore_credits
    • First observedgoodearth_restore_neon_schema
    • First observedgoodearth_review_roster
    • First observedgoodearth_service_status
    • First observedgoodearth_session_status
    • First observedgoodearth_set_pricing_model
    • First observedgoodearth_soil_temp_projection
    • First observedgoodearth_task_delete
    • First observedgoodearth_task_list
    • First observedgoodearth_task_save
    • First observedgoodearth_task_set_done
    • First observedgoodearth_tree_suitability
    • First observedgoodearth_tree_year
    • First observedgoodearth_update_coupon
    • First observedgoodearth_update_operator_credential
    • First observedgoodearth_update_patron_credential
    • First observedgoodearth_wildlife_calendar
    • First observedgoodearth_wildlife_catalog

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that gives coding agents structured plant data for garden planning: species care profiles, companion checks that explain themselves, and frost-date planting windows derived from ten years of observed weather.
    4
    21 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides astrology-aware garden care planning by combining lunar phase, Vedic panchang, weather, and soil forecasts into structured care plans with rationales and confidence scores.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying historical and future climate projections (1950–2050) for temperature and precipitation, and comparing climate models to assess agreement and uncertainty.
    6 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.