Skip to main content
Glama

Server Details

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

The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.

If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.

Status
Unhealthy
Uptime
96.0% over 35 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP
URL
Repository
lonniev/goodearth-mcp
GitHub Stars
0
Server Listing
Good Earth

TDQS

A3.5/5.0

Scored across 85 tools

Disambiguation3/5

The 85 tools span several subsystems (farm agronomy, weather/soil/pests, calendars, tasks, payments, credentials, coupons, pricing, Authority/Nostr). Overlapping clusters such as service_status/session_status/get_operator_onboarding_status, check_balance/check_authority_balance/account_statement, and pest_catalog/pest_threshold create real misselection risk, though the unusually detailed descriptions and explicit cross-references mitigate much of it.

Naming Consistency5/5

Every tool uses the same goodearth_ prefix and snake_case, with predictable noun/verb phrasing. There is no mixing of casing or chaotic verb styles, so the naming surface is easy to scan and anticipate.

Tool Count1/5

85 tools is an extreme mismatch for a single MCP server, far beyond the 50-tool threshold for over-scoping. Many unrelated subsystems are bundled into one surface, making the set difficult to navigate as a coherent whole.

Completeness4/5

The server covers an enormous domain with CRUD/lifecycle support for most areas: blocks, plantings, tasks, calendars, payments, credentials, coupons, pricing, and Authority/Nostr interactions. Minor gaps exist (e.g., no per-block or per-block-item delete outside the global forget_my_ground, and no explicit task get), but agents can work around them.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedgoodearth_pest_threshold1 field changed
      • changedInput schema / properties / pests / description
        Previous value: -"The pests to evaluate, in any of three shapes.\n1. 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.\n2. 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.\n3. Something you simply keep an eye out for: {\"pest\": \"Vole\", \"watch\": true} — no stages, no dates.\nDo NOT invent degree-day figures to fill shape 1. Use 2 or 3."New value: +"The pests to evaluate, in any of three shapes.\n1. 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 the season's start: Jan 1, or Jul 1 south of the equator.\n2. 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.\n3. Something you simply keep an eye out for: {\"pest\": \"Vole\", \"watch\": true} — no stages, no dates.\nDo NOT invent degree-day figures to fill shape 1. Use 2 or 3."
  2. 66 tool updates
    • Changedgoodearth_account_statement1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_account_statement_infographic1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_adoption_status2 fields changed
      • addedInput schema / properties / authority_npub / description
        Added value: +"The npub of the Authority the request was sent to."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_almanac2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_block_item_list2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_block_item_save2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_block_list2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_block_save2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_block_transform2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_calendar_dataset2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_calendar_list2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_calendar_revoke2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_calibration2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_check_balance1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_check_payment1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_check_price2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"Optional patron npub; with it, the preview includes that\npatron's coupons and constraint effects."
    • Changedgoodearth_check_proof_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The grant envelope returned by\n``receive_npub_proof``."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_companions2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_crop_gdd_status2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_crop_suitability2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_delete_coupon2 fields changed
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the coupon to delete (from list_coupons)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_delete_operator_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Operator proof for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_delete_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_disease_risk2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_drying_window2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_forget_coupon3 fields changed
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the redeemed coupon to remove (from\nlist_my_coupons)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedgoodearth_forget_credentials1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_forget_my_ground2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) — whose ground to forget."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_frost_window2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_gdd_season_curve2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_get_nostr_profile1 field changed
      • addedInput schema / properties / npub / description
        Added value: +"The Nostr public key (npub1...) whose profile to read."
    • Changedgoodearth_get_patron_credential_fields1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_get_patron_onboarding_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by patron_npub for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_list_coupons1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_list_my_coupons2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedgoodearth_mint_coupon1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_nearby_species2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_oracle_lookup_member1 field changed
      • addedInput schema / properties / npub / description
        Added value: +"The Nostr public key (npub1...) of the member to look up."
    • Changedgoodearth_pest_catalog2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_pest_threshold2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_plan_the_season2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_planting_window2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_purchase_credits1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_receive_credentials1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The session phrase returned by\nrequest_credential_channel for this exact channel."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_receive_npub_proof1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The dpop_token returned by request_npub_proof."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_redeem_coupon3 fields changed
      • addedInput schema / properties / code / description
        Added value: +"The coupon code the operator shared."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
      • addedInput schema / properties / npub / description
        Added value: +"The patron's Nostr public key (npub1...)."
    • Changedgoodearth_report_issue1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_request_adoption1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"operator-npub ownership proof (inline kind-27235 or cached token)."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_reset_pricing_model1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_restore_credits1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"A kind-27235 Nostr event signed by the OPERATOR's nsec\nfor this tool. Patron proofs are rejected."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_restore_neon_schema1 field changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
    • Changedgoodearth_review_roster2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_set_pricing_model2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
      • addedInput schema / properties / model_json / description
        Added value: +"The complete pricing model as a JSON object; it\nreplaces the active model."
    • Changedgoodearth_soil_temp_projection2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_sunlight2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_task_delete2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_task_list2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_task_save3 fields changed
      • addedInput schema / properties / done / description
        Added value: +"True records the task as already done."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_task_set_done2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_tree_suitability2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_tree_year2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_update_coupon11 fields changed
      • addedInput schema / properties / clear_total_uses / description
        Added value: +"True makes total redemptions unlimited."
      • addedInput schema / properties / clear_uses_per_patron / description
        Added value: +"True makes discounted calls per patron unlimited."
      • addedInput schema / properties / coupon_id / description
        Added value: +"The id of the coupon to change (from list_coupons)."
      • addedInput schema / properties / discount_percent / description
        Added value: +"A new percentage off the base price (0-100)."
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name."
      • addedInput schema / properties / name / description
        Added value: +"A new code for patrons to type."
      • addedInput schema / properties / tool_ids / description
        Added value: +"The tools the coupon discounts: tool ids or MCP tool names,\n[\"*\"] for every paid tool, [] to unbind it."
      • addedInput schema / properties / total_uses / description
        Added value: +"A new number of redemptions across all patrons."
      • addedInput schema / properties / uses_per_patron / description
        Added value: +"A new number of discounted calls per patron."
      • addedInput schema / properties / valid_from / description
        Added value: +"A new ISO-8601 datetime when the coupon becomes active."
      • addedInput schema / properties / valid_until / description
        Added value: +"A new ISO-8601 datetime when the coupon expires."
    • Changedgoodearth_update_operator_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Operator proof for this tool."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_update_patron_credential1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name."
    • Changedgoodearth_wildlife_calendar2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
    • Changedgoodearth_wildlife_catalog2 fields changed
      • addedInput schema / properties / dpop_token / description
        Added value: +"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag."
      • changedInput schema / properties / npub / description
        Previous value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
  3. 1 tool update
    • Addedgoodearth_request_echo
  4. 2 tool updates
    • Changedgoodearth_block_list1 field changed
      • addedInput schema / properties / group
        Added value: +{
        +  "default": "",
        +  "description": "Only the ground in this group, or in a group inside it, e.g. 'North Farm'.",
        +  "type": "string"
        +}
    • Changedgoodearth_block_save2 fields changed
      • changedInput schema / properties / blocks / description
        Previous value: -"Several blocks in one call, each {name, geometry, block?, aliases?, base_temp?, retired?} — the fields above, per block. A garden laid out as beds is one call, not one per bed. Up to 100; all are checked before any is saved, and one problem refuses the lot."New value: +"Several blocks in one call, each {name, geometry, block?, aliases?, base_temp?, retired?, groups?} — the fields above, per block. Regrouping many plots is one call. A garden laid out as beds is one call, not one per bed. Up to 100; all are checked before any is saved, and one problem refuses the lot."
      • addedInput schema / properties / groups
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The groups this ground belongs to. A group inside a group is a path: 'North Farm / Orchard' is in 'North Farm' too. Omit to keep the groups it has; pass [] to clear them."
        +}
  5. 1 tool update
    • Addedgoodearth_block_transform
  6. 1 tool update
    • Changedgoodearth_block_save9 fields changed
      • addedInput schema / properties / blocks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Several blocks in one call, each {name, geometry, block?, aliases?, base_temp?, retired?} — the fields above, per block. A garden laid out as beds is one call, not one per bed. Up to 100; all are checked before any is saved, and one problem refuses the lot."
        +}
      • removedInput schema / properties / geometry / additionalProperties
        Removed value: -true
      • addedInput schema / properties / geometry / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / geometry / default
        Added value: +null
      • changedInput schema / properties / geometry / description
        Previous value: -"Its 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."New value: +"Its 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. Omit when passing `blocks`."
      • removedInput schema / properties / geometry / type
        Removed value: -"object"
      • addedInput schema / properties / name / default
        Added value: +""
      • changedInput schema / properties / name / description
        Previous value: -"What you call this ground, e.g. 'North Field'. Unique among your blocks."New value: +"What you call this ground, e.g. 'North Field'. Unique among your blocks. Omit when passing `blocks`."
      • removedInput schema / required
        Removed value: -[
        -  "name",
        -  "geometry"
        -]
  7. 3 tool updates
    • Changedgoodearth_calibration1 field changed
      • changedInput schema / properties / observations / description
        Previous value: -"Optional. 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."New value: +"Optional. 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. A sunlight report ({\"kind\": \"sunlight\", ...}) is goodearth_sunlight's and is only counted here."
    • Changedgoodearth_mint_coupon1 field changed
      • addedInput schema / properties / tool_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "The tools this coupon discounts — tool ids or MCP\ntool names, or ``[\"*\"]`` for every tool priced above zero."
        +}
    • Changedgoodearth_update_coupon1 field changed
      • addedInput schema / properties / tool_ids
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
  8. 1 tool update
    • Changedgoodearth_sunlight2 fields changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "default": "summary",
        +  "description": "\"summary\" (default) or \"grid\": every cell's numbers, packed for a map overlay.",
        +  "pattern": "^(summary|grid)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / point
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maxLength": 64,
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "A spot inside the block as \"lat,lon\" — adds its card: horizon, sun paths, monthly hours, solar figures."
        +}
  9. 1 tool update
    • Changedgoodearth_sunlight2 fields changed
      • addedInput schema / properties / panel_azimuth_deg
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 360,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Panel facing, degrees clockwise from north (180 = south). Default: toward the equator."
        +}
      • addedInput schema / properties / panel_tilt_deg
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 90,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Panel tilt from flat, 0–90. Default: the latitude, no steeper than 40."
        +}
  10. 1 tool update
    • Addedgoodearth_sunlight
  11. 1 tool update
    • Addedgoodearth_companions
  12. 1 tool update
    • Changedgoodearth_check_proof_status1 field changed
      • changedInput schema / properties / dpop_token / description
        Previous value: -"Required. The dpop_token phrase returned by\n``request_npub_proof`` / ``receive_npub_proof``."New value: +"Required. The grant envelope returned by\n``receive_npub_proof``."

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
    11 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes eighteen garden-planning tools to AI agents over stdio, enabling crop calendar and planting-window lookups, companion planting graphs, crop rotation and succession planning, pest and disease intelligence with beneficial-insect cross-references, and USDA zone plus climate classification. All data is curated and served offline, so agents can answer climate-aware scheduling questions without live API calls.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    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
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.