moonlight-garden-handytools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOONLIGHT_GARDEN_MCP_URL | Yes | Required. The Moonlight Garden MCP address. Public addresses must use HTTPS. | |
| MOONLIGHT_GARDEN_MCP_TOKEN | No | Optional. Bearer token for the connection, if required. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| daily_routineA | On invocation only, run three garden jobs and optionally fetch the latest 50 recipes, select the five highest sell_value recipes and update the local ledger. No bait purchase or fishing. The recipe fetch and ledger update share one configuration switch. UTC 00:00 daily idempotency preserves completed raw results; work_limit counts as already completed and continues to recipes. Any failure stops remaining steps and retains successes. Unknown action outcomes stop safely. The Agent must not choose a recovery option without the user's explicit decision. |
| farm_briefA | Read and compress farm, watering, chicken, configurable cabbage-gap, bee-hive, bee-trip, and waiting-young state; pets/doorstep, all three kitchen jars (including empty IDs), brews, current festival, park plays/tickets and fish remaining casts/wallet/five bait IDs, names, unit prices and inventory. Queries farm/coop/bee/pet/kitchen/festival/park/fish status and fish shop only; never buys bait, fishes, tends pets, opens jars, plays park games or performs garden/bee actions, and never calls inventory list. pet status implicit overnight settlement is not yet confirmed. UTC checkedAt is an aggregation basis, not a simultaneous upstream snapshot; textual countdowns are approximate. maturesIfWateredPlotIds contains only 1–1800-second plots; also check watering cooldown. Bee backAt is null if upstream lacks an absolute time; backInText retains its countdown. Unknown jar scent stays unknown. Source failures omit the affected block and report errors, retaining other blocks. No action recommendations. |
| recipe_checkA | Validate ledger recipes against live inventory and today's cooking quota; rank cookableNow and missingOne by valueAdded, max five each. Cooking wine brew_cooking_* and vinegar brew_sour_* count as ingredients; ordinary drinking wine does not. Upstream ingredient IDs match literally; Chinese names require unique authoritative name/ID mappings, never guessed meat IDs. Value added subtracts one unit's inventory sell_value per ingredient, not stock quantities or seed price. Missing prices return null and missingIngredientSellValueUnavailable status. Only if the ledger has no material-complete recipe, inspect the latest 50 with usedLatest50Fallback and per-candidate sources. Unresolved recipes return counts/name summaries, not long lists. canCookAnyNow also requires quota>0. Missing/invalid ledger, inventory or quota returns source errors, not fake empty candidates. It never cooks or sells, but the upstream inventory list may auto-claim pending gifts; claimed gifts are returned with a UTC receipt time. |
| fishing_tripA | ACTION TOOL: automatically spends moon to buy missing bait from the shop, then fishes. Five optional nonnegative integer cast counts: bread (小面包虫), moonworm (月光虫), stardust (星纹蚯蚓), moonhalo (月华饵), fullmoon (满月秘饵); omitted=0. All zero succeeds without queries, purchases or casts. Check live daily quota, bait stock, shop prices and wallet first; subtract held stock for each bait, SUM ALL missing-bait costs, and buy NOTHING/cast NOTHING if quota or the entire bill is insufficient. No separate purchase confirmation inside this tool. Complete all necessary purchases before casting, in fixed order fullmoon→moonhalo→stardust→moonworm→bread, one cast 1 per rod. Return confirmed quantities/costs and EVERY purchase/cast raw result (including empty casts or automatic fish sales when inventory is full). Empty casts also consume bait/quota. remainingCastCountBefore is PRE-execution quota, not remaining afterwards. purchaseTotalsComplete:false means totals include only confirmed purchases; unknown purchases may have spent moon. Any purchase or cast failure stops ALL remaining steps, retains successes, and identifies the failed bait/castNumber. Timeout/disconnect/unconfirmable response means outcome UNKNOWN, never automatic retry; inspect fish status/log before deciding a new invocation. No daily-once restriction; each invocation rechecks quota, with a local per-profile concurrency lock. No automatic scheduling or refunds. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool targets a different activity—automated daily routine, read-only status brief, recipe validation, and fishing—but daily_routine and recipe_check both interact with the recipe ledger and latest-50 recipes, creating some overlap. The descriptions are highly detailed and explicitly state exclusions, so an agent can usually distinguish them.
All names are snake_case, two-word descriptive noun phrases (daily_routine, farm_brief, recipe_check, fishing_trip). There is no mixing of conventions or vague verbs; the pattern is consistent across the set.
Four tools is a reasonable size for a focused handytools set, but the domain spans many game systems and each tool is overloaded with multi-step logic, so the surface feels slightly under-decomposed. Still within the healthy 3–15 range.
The surface covers status, daily routine, recipe checking, and fishing, but lacks explicit operations for cooking, selling, pet care, jar opening, park games, or inventory management. These are notable gaps for a game assistant, though daily_routine may cover some garden jobs.