← The evidence ledger
Evidence row 565072
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 4a870f1f-ec1b-44eb-8c29-aecd37100c43
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 36e05c2f751427c6bab06f5dd43bffe0040a7d49e6e7bac7b028c575ced4e3f6
- Leaf
- 0xea6dca9e46be365998768c1700ff8d40c9a497d6257afd7508003601c12a0785
What was observed
{
"count": 11,
"tools": [
{
"description": "Fetch a single Eco wiki page as Markdown. Pass a canonical wiki path such as /wiki/item/iron-bar, /wiki, or an index like /wiki/recipes.",
"inputSchema": {
"properties": {
"path": {
"description": "Canonical wiki path, e.g. /wiki/item/iron-bar",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "fetch"
},
{
"description": "Full-text search the Eco game wiki (items, recipes, skills, animals, plants, biomes, guides). Returns ranked matches with name, kind, canonical url and a snippet.",
"inputSchema": {
"properties": {
"limit": {
"description": "Max results (1-50, default 15).",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "The search query.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search"
},
{
"description": "Compute an aggregate over the wiki's entities — count / sum / avg / min / max of a numeric field across a whole kind, with an optional numeric 'where' filter. Use for 'how many…', 'what's the average/total/highest…' questions. 'count' needs no field (counts entities, or those matching 'where'); sum/avg/min/max require a 'field'. Supports the same optional 'category' scope as wiki_rank (food/item/species). Kinds and field names are the SAME as wiki_rank — see that tool's per-kind field lists. Example: { kind: \"recipe\", metric: \"count\", where: { field: \"skill_level\", op: \">\", value: 5 } } → how many recipes need skill level above 5. Scoped: { kind: \"food\", metric: \"avg\", field: \"calories\", category: \"vegetable\" } → average calories of vegetables. Optional character/server PROFILE (skill_level/skills, talents, modules/module, server) recomputes the same profile-sensitive metrics as wiki_rank (recipe labor/craft_minutes; tool damage/calories_burn/durability_burn; item harvest_yield/power_watts; species yield_total/yield_min_total); static fields ignore it (the result carries a note). No profile = base aggregate.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Optional: scope to ONE tag/category before ranking/aggregating, e.g. \"seed\", \"vegetable\", \"gun\". Only the tagged kinds (food / item / species) support this. Use the category's name from a wiki_search result; matching is case- and plural-insensitive.",
"type": "string"
},
"field": {
"description": "Numeric field for sum/avg/min/max (required for those). Optional for count — with a field, count includes only entities that have it.",
"type": "string"
},
"kind": {
"description": "Which entity set to aggregate over.",
"enum": [
"food",
"item",
"recipe",
"skill",
"species"
],
"type": "string"
},
"metric": {
"description": "Which aggregate to compute.",
"enum": [
"count",
"sum",
"avg",
"min",
"max"
],
"type": "string"
},
"module": {
"description": "A single module name/type, or a comma-separated list (alternative to modules[]).",
"type": "string"
},
"modules": {
"description": "Upgrade-module names/types installed (multiple slots stack).",
"items": {
"type": "string"
},
"type": "array"
},
"server": {
"additionalProperties": true,
"description": "Model a DIFFERENT server's difficulty (default = this server's real settings; omit for accurate answers). Fields: craftResource, craftTime, growth, garbageRatio, fuelEfficiency, foodVariety, foodTastiness, baseGain, minBalanced, maxBalanced. Only craft_minutes is server-sensitive for ranking.",
"type": "object"
},
"skill_level": {
"description": "A single skill level applied to every governing skill (profile-sensitive metrics only).",
"type": "integer"
},
"skills": {
"additionalProperties": {
"type": "integer"
},
"description": "Per-skill levels: { \"<skill FullName>\": level }. Overrides skill_level for those skills.",
"type": "object"
},
"talents": {
"description": "Talent names/types to treat as learned (profile-sensitive metrics only).",
"items": {
"type": "string"
},
"type": "array"
},
"where": {
"additionalProperties": false,
"description": "Optional single numeric filter applied before ranking/aggregating, e.g. { field: \"weight\", op: \"<\", value: 1000 }. The field must come from the same per-kind set as 'by'/'field'.",
"properties": {
"field": {
"description": "A numeric field from the kind's field list.",
"type": "string"
},
"op": {
"description": "Comparison operator.",
"enum": [
">",
">=",
"<",
"<=",
"="
],
"type": "string"
},
"value": {
"description": "The number to compare against (bools are 1/0).",
"type": "number"
}
},
"required": [
"field",
"op",
"value"
],
"type": "object"
}
},
"required": [
"kind",
"metric"
],
"type": "object"
},
"name": "wiki_aggregate"
},
{
"description": "Bill-of-materials for making a target item/recipe: the full crafting tree INCLUDING the crafted intermediate sub-components (NOT just raw leaves). This is the tool for 'how many <component> does it take to make <target>' — including components the target never lists directly (they're summed transitively across the whole tree). Differs from wiki_total_raw (raw materials only) and wiki_calc (exact one-step numbers for a single recipe). Pass an item slug (uses its primary producing recipe) OR a recipe slug. Optional: quantity (units of the target, default 1, 1..10000); ingredient (a specific component name/slug — returns just that component's total quantity + whether it's an intermediate or raw); recipe_slug (override which producing recipe to use when the item has several — the others are listed as 'alternatives'). Optional character/server setup to recompute the whole tree: skill_level/skills, talents, modules/module, and server (model a different server's difficulty). Example: { slug:\"steam-tractor\", ingredient:\"iron bar\" } → how many iron bars a steam tractor needs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ingredient": {
"description": "Optional: a specific component name or slug. Returns just that component's total quantity in the tree and its role (intermediate/raw).",
"type": "string"
},
"module": {
"description": "A single module name/type, or a comma-separated list (alternative to modules[]).",
"type": "string"
},
"modules": {
"description": "Upgrade-module names/types installed (multiple slots stack).",
"items": {
"type": "string"
},
"type": "array"
},
"quantity": {
"description": "How many units of the target to produce (default 1; clamped 1..10000).",
"type": "integer"
},
"recipe_slug": {
"description": "Optional: when the target item has multiple producing recipes, pick this one (else the primary; others are reported as alternatives).",
"type": "string"
},
"server": {
"additionalProperties": true,
"description": "Model a DIFFERENT server by overriding its difficulty/feature settings (default = THIS server's real settings, so omit for accurate answers). Fields: craftResource (× ingredient cost), craftTime (× craft time), growth (× plant growth/maturity), garbageRatio (Update 14 craft-waste ratio, 0..1; scales recipe garbage byproducts), fuelEfficiency (× every fuel item's fuel value), foodVariety (bool), foodTastiness (bool), baseGain (flat XP/day floor), minBalanced/maxBalanced (balanced-diet multiplier range for food XP).",
"type": "object"
},
"skill_level": {
"description": "A single skill level applied to EVERY governing skill in the chain (shortcut for a uniform setup).",
"type": "integer"
},
"skills": {
"additionalProperties": {
"type": "integer"
},
"description": "Per-skill levels: { \"<skill FullName>\": level }. Overrides skill_level for those skills.",
"type": "object"
},
"slug": {
"description": "The TARGET item or recipe slug (from a wiki_search result).",
"type": "string"
},
"talents": {
"description": "Talent names/types to treat as learned (applied across the whole chain). Their effect text is echoed back so you can explain why a number changed.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "wiki_bom"
},
{
"description": "Compute EXACT numbers for a chosen setup. For a RECIPE: labor calories, craft time, per-ingredient counts and throughput at a given skill level + upgrade module + talents. For a FOOD item: its STATIC calories/nutrition (eating never changes these) PLUS an estimated XP / skill-gain rate from the diet inputs (balanced/variety/tastiness/housing). For a TOOL/WEAPON: damage, calories-per-use, durability-per-use at the tool's governing-skill level + talents. For a MINEABLE BLOCK: per-block calorie/durability cost (for a representative pickaxe), yield, and calories-per-stack at a mining-skill level + talents. For a SPECIES: harvest yields recomputed with the reader's harvest-yield talents. Omit a lever to leave it at base; the response lists the available modules/talents/skill (with each talent's effect text) so you can pick valid ones and explain what changed. Optional 'server' override models a different server's difficulty (recipes honor craftResource/craftTime; mining/species honor their relevant settings; food honors foodVariety/foodTastiness).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"balanced": {
"description": "Food only: assume a balanced diet (max balanced-diet bonus) vs this food alone.",
"type": "boolean"
},
"housing": {
"description": "Food only: your housing XP contribution (additive to the skill-gain rate; default 0).",
"type": "number"
},
"module": {
"description": "Upgrade-module name or tier number (recipes only); lowers craft time/materials.",
"type": "string"
},
"server": {
"additionalProperties": true,
"description": "Model a DIFFERENT server by overriding its difficulty/feature settings (default = THIS server's real settings, so omit for accurate answers). Fields: craftResource (× ingredient cost), craftTime (× craft time), growth (× plant growth/maturity), garbageRatio (Update 14 craft-waste ratio, 0..1; scales recipe garbage byproducts), fuelEfficiency (× every fuel item's fuel value), foodVariety (bool), foodTastiness (bool), baseGain (flat XP/day floor), minBalanced/maxBalanced (balanced-diet multiplier range for food XP).",
"type": "object"
},
"skill_level": {
"description": "Governing-skill level (recipes/tools/mining); lowers labor / tunes stats.",
"type": "integer"
},
"slug": {
"description": "A recipe, food-item, or species slug (from wiki_search).",
"type": "string"
},
"talents": {
"description": "Talent names to treat as learned (recipes/tools/mining/species yields).",
"items": {
"type": "string"
},
"type": "array"
},
"tastiness": {
"description": "Food only: your current food-tastiness bonus multiplier (default 1).",
"type": "number"
},
"variety": {
"description": "Food only: your current food-variety bonus multiplier (default 1).",
"type": "number"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "wiki_calc"
},
{
"description": "Look up Eco chat (slash) commands on this server, from the game's own command registry. Pass a command name (\"give\", \"unstuck\", \"manage playtime\"), words from what it does (\"weather\", \"stuck\"), or a full line the player typed (\"/give birch seed 100\"). Returns each match's exact usage line (arguments are COMMA-separated; [bracketed] ones optional, with defaults), its shortcut, and who can use it (Everyone / Moderator / Admin). For a typed line it also returns `interpretation`: how the game would read it, argument by argument, any problems, and a `corrected` line when the arguments were separated by spaces instead of commas.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Max matches (default 6, max 25).",
"type": "integer"
},
"query": {
"description": "A command name, a typed command line, or words describing what the command does.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "wiki_commands"
},
{
"description": "Explain how Solomon's help contracts and quests work for players (the kinds available, how rewards/escrow work, how completion is verified). Use for 'how do contracts/quests work' questions.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "wiki_contract_basics"
},
{
"description": "Read full facts for one OR MANY wiki pages in a single call. Pass every page you need at once (e.g. a recipe AND its ingredient items) — batching saves round-trips. Each entry takes a slug (from wiki_search) and, ideally, its kind:\n• item — item/food/tool/placed-object/block: description, category, tags, weight/stack, fuel, food nutrition + shelf life, tool/weapon stats, placed-object stats (housing, rooms, power/fuel, storage), block facts, where obtained, recipes that make/use it. For a placed object this INCLUDES its measurements — storage slots and weight capacity, storage link range, interact distance, power-grid radius, footprint and top speed — so read the page before saying a size/range/capacity isn't tracked.\n• recipe — products (+waste), ingredients (specific items OR categories w/ examples), station, skill + level, labor, craft time, XP, throughput, and the levers that change the numbers. (wiki_calc for exact modified numbers; wiki_total_raw for the from-scratch chain.)\n• skill — tier, max level, prerequisites, recipes unlocked.\n• category — a tag's member items and the recipes that use it.\n• species — an animal OR plant/tree: description, yields; animals: diet/predator/nocturnal; plants: biomes, ideal temperature.\n• biome — the plants/trees that grow there.\nOmit kind only if unsure; an ambiguous slug returns all matches so you can re-request with the right kind.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"items": {
"description": "1–12 pages to read in one call.",
"items": {
"additionalProperties": false,
"properties": {
"kind": {
"description": "Which page type. Optional — omit only if unsure.",
"enum": [
"item",
"recipe",
"skill",
"category",
"species",
"biome"
],
"type": "string"
},
"slug": {
"description": "The page slug (lower-case, hyphenated), e.g. from a wiki_search result.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"maxItems": 12,
"minItems": 1,
"type": "array"
}
},
"required": [
"items"
],
"type": "object"
},
"name": "wiki_get"
},
{
"description": "Rank the wiki's entities by a NUMERIC field and return the top (or bottom) N. Use this for ANY 'which has the most/least/highest/lowest X' question — never guess-and-confirm with wiki_search. Choose a kind, the field to rank 'by', order (desc = highest first, the default; asc = lowest first), an optional limit (default 5, max 25), an optional 'category' to scope to one tag (food/item/species only — e.g. category \"seed\"), and an optional numeric 'where' filter. Available fields by kind (a field that doesn't apply to a given entity — e.g. a tool stat on a non-tool — simply excludes it):\n• food: calories, carbs, fat, protein, shelf_life, stack, vitamins, weight\n• item (base + placed-object + tool + block facets): air_pollution, animal_damage, block_tier, calories_burn, damage, durability_burn, fertility, fuel, fuel_jps, grid_radius, hardness, harvest_yield, housing_value, interact_distance, is_fuel, is_mintable, is_road, is_weapon, labor_max, labor_min, link_radius, max_coins, max_durability, move_efficiency, pollution, power_generated, power_watts, repair_level, room_tier, room_volume, school_value, seats, size_x, size_y, size_z, stack, storage_slots, storage_weight, tool_tier, vehicle_speed, weight\n• recipe: craft_minutes, crafting_steps, ingredients, labor, products, skill_level, skill_max_level, xp\n• skill: max_level, tier\n• species (animals ∪ plants/trees): attacks_player, calorie_value, co2_per_day, health, ideal_temp_max, ideal_temp_min, is_predator, nocturnal, yield_min_total, yield_total\nBool fields read as 1/0 (e.g. where { field: \"is_predator\", op: \"=\", value: 1 }). Example: { kind: \"food\", by: \"calories\", order: \"desc\", limit: 3 } → the 3 highest-calorie foods. Scoped example: { kind: \"food\", by: \"shelf_life\", order: \"asc\", category: \"seed\" } → the seeds that spoil fastest. Optional character/server PROFILE (skill_level/skills, talents, modules/module, server) re-ranks the profile-sensitive metrics — recipe labor/craft_minutes; tool damage/calories_burn/durability_burn; item harvest_yield/power_watts; species yield_total/yield_min_total (craft_minutes also honors server craftTime). All other fields are static facts and ignore the profile (the result carries a note). No profile = base ranking.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"by": {
"description": "Numeric field to rank by (see this tool's description for the field names valid for each kind).",
"type": "string"
},
"category": {
"description": "Optional: scope to ONE tag/category before ranking/aggregating, e.g. \"seed\", \"vegetable\", \"gun\". Only the tagged kinds (food / item / species) support this. Use the category's name from a wiki_search result; matching is case- and plural-insensitive.",
"type": "string"
},
"kind": {
"description": "Which entity set to rank.",
"enum": [
"food",
"item",
"recipe",
"skill",
"species"
],
"type": "string"
},
"limit": {
"description": "How many to return (default 5, max 25).",
"type": "integer"
},
"module": {
"description": "A single module name/type, or a comma-separated list (alternative to modules[]).",
"type": "string"
},
"modules": {
"description": "Upgrade-module names/types installed (multiple slots stack).",
"items": {
"type": "string"
},
"type": "array"
},
"order": {
"description": "desc = highest first (default), asc = lowest first.",
"enum": [
"desc",
"asc"
],
"type": "string"
},
"server": {
"additionalProperties": true,
"description": "Model a DIFFERENT server's difficulty (default = this server's real settings; omit for accurate answers). Fields: craftResource, craftTime, growth, garbageRatio, fuelEfficiency, foodVariety, foodTastiness, baseGain, minBalanced, maxBalanced. Only craft_minutes is server-sensitive for ranking.",
"type": "object"
},
"skill_level": {
"description": "A single skill level applied to every governing skill (profile-sensitive metrics only).",
"type": "integer"
},
"skills": {
"additionalProperties": {
"type": "integer"
},
"description": "Per-skill levels: { \"<skill FullName>\": level }. Overrides skill_level for those skills.",
"type": "object"
},
"talents": {
"description": "Talent names/types to treat as learned (profile-sensitive metrics only).",
"items": {
"type": "string"
},
"type": "array"
},
"where": {
"additionalProperties": false,
"description": "Optional single numeric filter applied before ranking/aggregating, e.g. { field: \"weight\", op: \"<\", value: 1000 }. The field must come from the same per-kind set as 'by'/'field'.",
"properties": {
"field": {
"description": "A numeric field from the kind's field list.",
"type": "string"
},
"op": {
"description": "Comparison operator.",
"enum": [
">",
">=",
"<",
"<=",
"="
],
"type": "string"
},
"value": {
"description": "The number to compare against (bools are 1/0).",
"type": "number"
}
},
"required": [
"field",
"op",
"value"
],
"type": "object"
}
},
"required": [
"kind",
"by"
],
"type": "object"
},
"name": "wiki_rank"
},
{
"description": "Full-text search the Eco game wiki (items, recipes, skills, categories, animals, plants, biomes). Returns matching pages with their kind, name, slug, and a snippet. Use the slug with the matching wiki_get_* tool to read full facts. ALWAYS search first to find the right slugs.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Max results (default 8).",
"type": "integer"
},
"query": {
"description": "What to search for (e.g. \"iron bar\", \"carpentry\", \"deer\").",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "wiki_search"
},
{
"description": "Flatten a recipe or craftable item to its TOTAL RAW materials across the whole production chain, with total labor calories, total craft minutes, and crafting-step count. Pass an item slug OR a recipe slug. Use for 'what does it take to make X from scratch' (the raw shopping list). For a breakdown that ALSO includes the crafted intermediate sub-components (e.g. how many iron bars), use wiki_bom instead. Optionally pass a character setup (skill_level/skills, talents, modules) AND/OR a server override to recompute the WHOLE chain for that profile.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"module": {
"description": "A single module name/type, or a comma-separated list (alternative to modules[]).",
"type": "string"
},
"modules": {
"description": "Upgrade-module names/types installed (multiple slots stack).",
"items": {
"type": "string"
},
"type": "array"
},
"server": {
"additionalProperties": true,
"description": "Model a DIFFERENT server by overriding its difficulty/feature settings (default = THIS server's real settings, so omit for accurate answers). Fields: craftResource (× ingredient cost), craftTime (× craft time), growth (× plant growth/maturity), garbageRatio (Update 14 craft-waste ratio, 0..1; scales recipe garbage byproducts), fuelEfficiency (× every fuel item's fuel value), foodVariety (bool), foodTastiness (bool), baseGain (flat XP/day floor), minBalanced/maxBalanced (balanced-diet multiplier range for food XP).",
"type": "object"
},
"skill_level": {
"description": "A single skill level applied to EVERY governing skill in the chain (shortcut for a uniform setup).",
"type": "integer"
},
"skills": {
"additionalProperties": {
"type": "integer"
},
"description": "Per-skill levels: { \"<skill FullName>\": level }. Overrides skill_level for those skills.",
"type": "object"
},
"slug": {
"description": "An item or recipe slug (from a wiki_search result).",
"type": "string"
},
"talents": {
"description": "Talent names/types to treat as learned (applied across the whole chain).",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "wiki_total_raw"
}
]
}What the leaf hashes
{"body":"36e05c2f751427c6bab06f5dd43bffe0040a7d49e6e7bac7b028c575ced4e3f6","id":565072,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138003363207,"prev":null,"subject":"4a870f1f-ec1b-44eb-8c29-aecd37100c43","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0xea6d49d8e28b7fb0ba392105c94fac2c8e27b6df471e85cb1c0679ae3e5670a9
- 0xdd66f6070c996ee3175c7c187b1d9379e1c1dd9ea8e053b279843993e64da2c2
- 0xc42fa144dc32628c812c4d4344702681f29e5b565e3ea846c923f8fd6db5f9f3
- 0x28dd769d8ea050004b70f723845134bb262a98b71d23cb11405203651ebaf03b
- 0x32a94ab2b93623c797979c333b9a7d5be2c18b55478a524618944a07b676b63a
- 0xa288452d9c62e8496d347d2bdf67b6a1252da911559f4e6e131da60a05c55a1b
- 0xa6453fbd9890ca56aa7312939be8aa9ea20c0d02e451734a3e9cf9cc718724f1
- 0x716ecab32e5cf2874f374ae714de97349724f78d00fe5acfc2f41636535046ef
- 0x5668b5deb970e2c678e613fa60d238e161a87bb10a7d0d6e35c6747081d9edbb
- 0x694f3f33268c5bc6380613bb5b291820cb4ce07a82164429442bc75b24ebcc5e
- 0x8cc7cdbb404948d6c8277e8104fbf6f6ef7bc67273321adedcf016270a69a84e
- 0x71d164c799d87b4dc25af672a70aaf73791d8dbb1786a5d4eb3ead269cb7c28a
- 0x89602081fbcc80aef8908f5df765767a1a41cc8b089111259ea78e6583a8bc4b
- 0x41f9f462759cb539183e979fb3eb967d94755cf039c44a64a9a3c4ad97523cfd
- 0x56f7109d4cde42492651beb1237c13cdcbf95e6fee2b2482391a2388e04c4629
- 0x8745bd887f5ce9f7a49558fd2b04cdcd97a05ea9f8a23f62d0e80cb13d328b0f
- 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
- 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4