hypixel-skyblock-mcp
This MCP server gives AI clients read-only tools for Hypixel SkyBlock players, profiles, progression, inventories, economy, and wiki-style context.
Resolve Minecraft usernames/UUIDs and fetch Hypixel network player status.
List and inspect SkyBlock profiles with skills, slayers, dungeons, pets, collections, accessories, currencies, gardens, and museums.
Decode and search inventory/storage across wardrobe, armor, equipment, ender chest, backpacks, vault, sacks, and bags.
Audit profiles and produce progression levels, HOTM/HOTF trees, gear/loadout summaries, gaps, and next actions.
Estimate net worth using coins, holdings, sacks, modifier value, pricing coverage, and optional auction lowest-BIN data.
Look up items, Bazaar prices/volumes/spreads, auctions, resources such as items/skills/collections/election/bingo/news, and essence upgrade costs.
Build guide context and search or fetch a configured MediaWiki wiki source, including retired-official-wiki handling.
Decode raw SkyBlock NBT payloads and clear Hypixel/Mojang/wiki caches.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hypixel-skyblock-mcpget skyblock profile for Technoblade"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Hypixel SkyBlock MCP
An AI-facing Model Context Protocol server for Hypixel SkyBlock data. Its 23 tools cover profiles, progression, inventory/storage, Bazaar and auctions, upgrade costs, net worth, Bingo, and configured wiki sources. Results distinguish API observations, estimates, missing data, and incomplete pricing so an assistant can give grounded advice.
Requirements
Node.js 22 or newer
A Hypixel API key for private/profile endpoints
Get a key from the Hypixel Developer Dashboard and provide it as HYPIXEL_API_KEY.
Related MCP server: blizzard-wow-mcp
Setup
Add the server to your MCP client config. The package ships a hypixel-skyblock-mcp binary, so npx can run it without a manual install:
{
"mcpServers": {
"hypixel-skyblock": {
"command": "npx",
"args": ["-y", "hypixel-skyblock-mcp"],
"env": {
"HYPIXEL_API_KEY": "your-key"
}
}
}
}See .env.example for the full list of supported environment variables (cache TTL, request timeout, optional lowest-BIN source).
Running from source
npm ci
npm run build
node dist/server.js # reads HYPIXEL_API_KEY from the environmentDevelopment
npm test # run the unit tests
npm run coverage # run tests + enforce coverage thresholds
npm run smoke # exercise the compiled server over real MCP stdio
npm run check # build + coverage + stdio smoke (also before publish)GitHub Actions runs the build, coverage gate, and stdio smoke check on Node 22 and
24 (.github/workflows/ci.yml). Tests use realistic fixtures and mocked HTTP
responses; they do not need an API key. The coverage gate includes data logic,
HTTP/cache behavior, wiki integration, pricing/net-worth, and MCP registration.
Profile and audit workflows also have integration tests. A separate smoke check
starts the compiled CLI and verifies initialization, tool discovery, structured
results, errors, and shutdown. The build uses portable Node filesystem operations.
Publishing is automated (.github/workflows/publish.yml): creating a GitHub
Release whose tag matches the package.json version publishes the package to
npm with provenance. Authentication uses npm
Trusted Publishing (OIDC), so no
NPM_TOKEN secret is required — configure a Trusted Publisher for this repo and
workflow in the package's npm settings instead.
Tools
Player & profiles
resolve_player: username/UUID normalization through Mojang.hypixel_player: network status, rank, login times, karma, and selected stats.skyblock_profiles: compact list of a player's SkyBlock profiles.skyblock_profile: one profile's AI-readable context with skills, progression, slayers, dungeon classes/runs, pet levels/details, collections, essence, accessories, trophy fish, Jacob contest summaries, and optional decoded inventories.
Inventories & storage
skyblock_inventory: decode wardrobe, armor, equipment, ender chest, backpacks, vault, sacks, bags, and loadouts.skyblock_storage: merged storage search across backpacks, ender chest, vault, sacks, and bags with item grouping and sack totals.
Progression & guides
skyblock_audit: compact audit with official skill levels, full HOTM/HOTF perk trees, minions, bestiary, crimson isle, rift, essence, gear/loadouts (including essence cost to finish starring equipped gear, priced live), accessories, ranked gaps, and next actions.skyblock_guide_context: profile plus mayor and Bazaar economy signals for tailored advice.skyblock_upgrade_advisor: rank supported star and accessory upgrades by estimated coin cost, with budget filtering, pricing completeness, and explicit unsupported-source reasons. This is not a stat-gain optimizer; unknown-cost upgrades remain descriptive.
World systems
skyblock_museum: museum donations and value summary.skyblock_garden: garden plots, commissions, and composter data.skyblock_bingo: a player's event history and progress matched against current event goals when available.
Economy & resources
skyblock_networth: estimate a profile's net worth from liquid coins, decoded inventory/storage holdings, sacks, and supported item modifiers, priced with live Bazaar data. Returns a total, per-section breakdown, modifier breakdown, top items by value, and a pricing-coverage report.skyblock_item: look up an item by ID/name for official metadata and Bazaar or configured lowest-BIN prices. Metadata remains available during pricing outages.includeWiki: trueadds configured wiki context or an explicit retirement/unavailability result. Ambiguous searches return candidate IDs, and in-game names resolve to canonical IDs.skyblock_resource: items, skills, collections, election/mayor, bingo, or news.skyblock_wiki_search: search a configured MediaWiki source; see wiki availability below.skyblock_wiki_page: fetch a page with source attribution, revision time, redirects, and readable section summaries.skyblock_bazaar: Bazaar prices, volumes, and spread signals.skyblock_auctions: active pages, ended auctions, or keyed lookups.skyblock_essence_costs: exact essence, coin, and material cost for essence-funded stars on a dungeon/crimson item by SkyBlock ID, with an optional live-Bazaar coin estimate. Master Star items are not priced; higher targets are clamped to the bundled table with an explanatory note. Returnsfound: falsewith suggestions for unknown or non-upgradeable IDs.
Utilities
decode_skyblock_nbt: decode a SkyBlock NBT payload.cache_clear: clear Hypixel, Mojang, and wiki caches, including invalidating pending cache writes.server_status: inspect version, configuration availability, and cache usage without network requests or credential disclosure.
The server also exposes the skyblock://guide resource and a review_profile
prompt (required username, optional focus). Tool responses carry JSON text and
matching structuredContent; execution failures set MCP isError: true. Tool
annotations distinguish external reads, local decoding, and cache mutation.
Wiki availability
Hypixel retired its official wiki on July 21, 2026.
The default wiki tools return available: false, status: "retired", and the
announcement URL without requesting that service. To use another MediaWiki
installation, set SKYBLOCK_WIKI_BASE to its base URL (with an /api.php endpoint).
Replacement results explicitly carry source: "configured_mediawiki" and
official: false. No community provider is silently selected or endorsed.
HOTM, HOTF, and storage
HOTM (Heart of the Mountain) is summarized in member.progression.hotm and skyblock_audit:
HOTM level from reported XP, powder totals, crystal states, selected ability
Core of the Mountain perk level reported separately from HOTM level
Full unlocked perk list with human-readable names
HOTF (Heart of the Forest) is summarized in member.progression.hotf:
Forest Whispers balance and spend
Unlocked foraging perks and selected ability
Storage is best accessed through skyblock_storage:
{ "username": "Ventoy", "search": "enchanted diamond" }{
"username": "Ventoy",
"skyblockIds": ["DIVAN_HELMET", "DIVAN_CHESTPLATE"],
"sectionTypes": ["backpack", "ender_chest", "personal_vault"]
}skyblock_inventory remains the tool for raw per-section NBT when you need slot-level detail.
NBT input is bounded to 4 MiB of base64 text and 16 MiB after gzip decompression.
Malformed sections are reported as failures, and truncated scans are marked;
incomplete accessory bags do not produce claims that an upgrade is missing.
Player ratings & metrics
skyblock_profile (per member) and skyblock_audit (ratings) expose the headline numbers players compare:
Skill average (and fractional "true" average) over the eight counted skills: Farming, Mining, Combat, Foraging, Fishing, Enchanting, Alchemy, Taming.
Total slayer XP and summed slayer levels, plus per-boss XP/level.
Catacombs level, magical power, and SkyBlock level.
skyblock_audit and skyblock_guide_context also include a compact mayor summary: the active mayor, special-mayor flag, active perks, and the ongoing election leaderboard.
Net worth
skyblock_networth prices a profile from:
Liquid coins (purse + bank).
Items in decoded inventory, ender chest, backpacks, personal vault, wardrobe, armor, equipment, and bags, priced by SkyBlock ID via the Bazaar.
Sacks, priced via the Bazaar.
Physical items repeated across inventory/wardrobe views are deduplicated by their
item UUID, not their SkyBlock ID. Standalone single-enchantment books resolve to
their actual Bazaar product. Coverage reports failed/omitted sections, unpriced
and unidentified items, sack pricing, and missing balances. complete applies
only to the supported holdings; pets, museum holdings, and auction/Bazaar escrow
remain excluded. The bank balance belongs to the co-op, not solely the selected
member. A reported total is the sum of known priced holdings, not proof of the
player's complete wealth.
On top of the base SkyBlock-ID price, skyblock_networth adds modifier value for enchantments, hot potato/fuming books, recombobulators, essence/master stars, socketed gemstones, and reforge stones (set includeModifiers: false to disable). Each modifier is valued at the SkyHelper-Networth "application worth" fraction of the live Bazaar price of the component (e.g. enchantments at 85%, essence at 75%, gemstones and reforge stones at 100%), and essence/master-star costs come from the official items resource's upgrade_costs. The response reports items.modifiers (total, byType breakdown, and unpricedComponents).
The modifier categories above are the ones currently modelled. SkyHelper values several more that this server does not yet add, so total is a conservative estimate for heavily upgraded items: gemstone slot-unlock costs, runes, dyes, pet items/pet levels, art of war/peace, power scrolls, and other cosmetic or upgrade consumables are excluded.
Modifier value is only added to items that already have a base price, so auction-only gear is undervalued unless a lowest-BIN source is configured. Read the coverage report (pricedPercent) to see how much of the profile could be priced, and treat total as an estimate.
Auction-only items are priced only when an external lowest-BIN source is configured via the SKYBLOCK_LOWEST_BIN_URL environment variable (a JSON map of { SKYBLOCK_ID: price }, e.g. a Moulberry-style lowest-BIN dump). Bazaar prices always take precedence over that source. Use priceBasis to switch between buy (market/replacement value, default) and sell (liquidation value).
Notes
Hypixel profile data depends on each player's in-game API settings. Missing fields stay unknown, with privacy/coverage notes. Audits skip recommendations that require unavailable skills, magical power, slayer claims, or inventory data. Explicit profile/member selections that do not match return an error, rather than choosing a different profile or co-op member. Optional economy/mayor failures leave the profile audit usable and produce warnings.
Market results distinguish HTTP retrieval time from upstream snapshot time.
freshness.ageBasis explains which timestamp is available; external price maps
without snapshot timestamps have unknown age. Missing essence/material prices
produce pricingComplete: false, pricedSubtotalCoins, and missing-component
details; they never produce a complete upgrade-cost estimate.
Skill levels use Hypixel's official /v2/resources/skyblock/skills tables (bundled in src/skill-tables.json). SkyBlock level uses the flat 100-XP-per-level formula, pet levels use the official per-rarity XP tables (Golden/Jade/Rose Dragons cap at level 200), and Garden level uses the real Garden XP table (15 levels, capping at 60,120 XP).
Essence upgrade costs (skyblock_essence_costs) come from the NotEnoughUpdates essencecosts.json constants (bundled in src/essence-costs.json). The dataset covers essence-funded stars (1–5 for dungeon gear, up to 10 for crimson/kuudra gear); Master Stars applied with Master Star items are noted but not priced.
For profile reviews, prefer skyblock_audit over skyblock_guide_context when you want compact gaps and next actions.
The server uses the official Hypixel Public API v2. Keyed endpoints use the
API-Key header and report rate-limit headers. Transient failures retry with
bounded backoff; identical concurrent requests share one fetch. Failed responses
are not cached. Cache sizes, timeouts, and retry counts are bounded.
Bundled game tables and heuristic advice have limited scope and may need updates as the game changes. Reforge/enchant/HOTM/pet optimization and full pet/cosmetic valuation are not implemented; the upgrade advisor reports these limitations.
Available Tools
23 toolscache_clearClear MCP CacheAIdempotent
Clear this MCP server's in-memory Hypixel, Mojang, and wiki response caches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=true, openWorld=false), so the bar is lower. The description usefully names exactly which caches are affected and that they are in-memory (non-persistent), which is real added context; it stops short of stating the consequence (subsequent calls will refetch from upstream APIs).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the action first and the scope second. Every word earns its place; nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter maintenance utility with no output schema, the description covers the essential information: what is cleared and that it is the server's in-memory cache. It could add a sentence on expected effect (cache refill on next request) but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly introduces no parameter discussion, since there is nothing to document beyond the schema's empty properties object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Clear') and a precisely scoped resource ('this MCP server's in-memory Hypixel, Mojang, and wiki response caches'). No sibling tool touches caches, so an agent can immediately tell this apart from the resolve/skyblock/wiki lookup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: no indication of when a caller should invalidate caches (e.g., after data changes, before a freshness-critical query), no mention of cost, and no alternative to compare against. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decode_skyblock_nbtDecode SkyBlock NBTBRead-onlyIdempotent
Decode a Hypixel SkyBlock base64 gzipped NBT inventory/item payload into plain JSON and a compact item list.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| maxItems | No | ||
| includeRaw | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds useful context about the input encoding and the two-part output shape, but says nothing about failure behavior on malformed/corrupt Base64-gzip payloads or the input size limit that constrains large payloads.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the decode operation, the input format, and the output shape are all stated without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description's brief note about returning plain JSON plus a compact item list is helpful, and annotations carry the safety profile. However, for a 3-parameter transform tool with 0% schema coverage, the definition is not complete enough: parameter behavior and error handling are left entirely unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and three parameters (data, maxItems, includeRaw) are undocumented in both schema and description. The mention of 'plain JSON and a compact item list' only loosely gestures at includeRaw and maxItems; it never states that maxItems caps the item list or what includeRaw toggles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (decode) applied to a precise resource (a Hypixel SkyBlock base64 gzipped NBT inventory/item payload) and states the produced artifacts (plain JSON and a compact item list). No sibling in the list performs this same transform, so an agent can identify it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the input type ('base64 gzipped NBT payload'), which suggests 'use this when you already hold raw NBT'. There is no explicit when-to-use, no when-not-to-use, and no guidance on how this relates to siblings like skyblock_inventory or skyblock_storage that likely surface similar item data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hypixel_playerGet Hypixel Player StatusBRead-onlyIdempotent
Fetch Hypixel network player data: online status, rank, login times, karma, and selected network stats. Requires HYPIXEL_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description usefully adds the API-key requirement and implies external network dependency, but says nothing about rate limits, failure behavior for unknown players, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence naming the resource and its contents, followed immediately by the auth prerequisite. No padding or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the field enumeration (status, rank, login times, karma, stats) usefully sets return-value expectations, and annotations carry the safety semantics. Only the vague phrase 'selected network stats' and the absent sibling routing keep it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (uuid, username) carry their own descriptions including the dashed/undashed format. The description adds no parameter-level detail, which is the expected baseline 3 when the schema does that work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Fetch) plus resource (Hypixel network player data) with an explicit enumeration of returned fields (online status, rank, login times, karma, network stats). This lets an agent distinguish it from generic player endpoints, though it never names resolve_player or explains how the two divide labor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the prerequisite 'Requires HYPIXEL_API_KEY'. There is no statement of when to call this versus resolve_player, nor whether uuid or username should be supplied, so the agent must infer routing from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_playerResolve Minecraft PlayerBRead-onlyIdempotent
Resolve a Minecraft username or UUID into normalized UUID forms for Hypixel tools.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, covering the safety and idempotency profile. The description only adds that the output is normalized UUID form(s), without detailing formats, error behavior, or whether resolution may fail for unknown names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no padding. It is efficient, though terse enough that more operational detail could have been added without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values, and 'normalized UUID forms' remains vague — it doesn't say which forms (dashed/undashed) or whether both are returned. The core contract (accept either identifier, return UUIDs) is conveyed but incompletely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both uuid and username with format hints. The description adds only that either identifier is acceptable and gets normalized, which is essentially restating the schema's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resolve) and resource (Minecraft username or UUID) with an explicit outcome (normalized UUID forms). However, it does not differentiate itself from siblings like hypixel_player, so an agent gets no routing signal from the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for Hypixel tools' implies the usage context (a preprocessing step before other Hypixel queries), but there is no explicit when-to-use vs when-not, no named alternative, and no prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_statusInspect MCP StatusARead-onlyIdempotent
Inspect server version, configured integrations and cache use locally. Makes no API requests and never reveals credentials.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/destructive=false and openWorld=false, so the safety profile is covered. The description goes beyond them by asserting no API requests are made and credentials are never revealed, which materially clarifies the local, secret-free behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the returned data and then the two safety guarantees. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and full annotation coverage, the description supplies enough to call the tool correctly and understand its scope. A brief note on the shape of the returned integrations/cache data would be the only marginal addition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-argument tool applies. The description correctly implies no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Inspect') and enumerates the exact resources returned: server version, configured integrations, and cache use. This is immediately distinguishable from every sibling, all of which fetch remote Hypixel/Skyblock data or clear the cache.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the local nature of the tool ('locally'), but the description never states when to prefer it, e.g. for diagnostics or verifying configuration before other calls. No alternatives are named, though sibling overlap is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_auctionsFetch SkyBlock AuctionsBRead-onlyIdempotent
Fetch active auction pages, recently ended auctions, or API-key auction lookups by auction, player, or profile. Filters output for AI use.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| page | No | ||
| tier | No | ||
| limit | No | ||
| search | No | ||
| binOnly | No | ||
| category | No | ||
| profileId | No | ||
| includeRaw | No | ||
| playerUuid | No | ||
| auctionUuid | No | ||
| playerUsername | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that 'lookup' is an API-key path and that output is filtered unless raw is requested, which is genuinely useful behavioral context. It does not, however, describe pagination behavior or result caps, so it is helpful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the mode list before the lookup dimensions. The closing clause 'Filters output for AI use' is vague filler that does not earn its place, but the overall size is appropriate for the tool's surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter, zero-coverage, no-output-schema tool, the description is too thin to let an agent call it correctly. It never explains how mode interacts with page/limit/binOnly/category, nor what the filtered result shape looks like, leaving key invocation decisions to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 12 parameters, so the description carries the full explanatory burden. It clarifies only the mode enum and the auction/player/profile lookup identifiers; page, limit, tier, search, binOnly, category, includeRaw, and the UUID formats go unexplained. Most parameters are undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch) and resource (SkyBlock Auctions) and enumerates the three operating modes (active pages, recently ended, API-key lookups), which map cleanly onto the mode enum. It also names the three lookup dimensions (auction, player, profile). The only soft spot is the trailing filler phrase 'Filters output for AI use', which adds no distinguishing power.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumeration of modes implies which request shape to pick, but there is no explicit when-to-use/when-not guidance, no statement that lookup mode requires an API key or a concrete identifier, and no routing to any alternative tool. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_auditAudit SkyBlock ProfileBRead-onlyIdempotent
Return a compact profile audit with computed levels, HOTM/HOTF trees, progression gaps, gear/loadout summaries, accessory analysis, and prioritized next actions.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| focus | No | Audit focus areas: mining, foraging, farming, dungeons, slayers, money, combat, pets, accessories, skills, progression. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| includeMayor | No | ||
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| includeEconomy | No | ||
| memberUsername | No | Coop member username to inspect. Defaults to requested player. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that output is a compact/computed summary (useful vs. a raw dump) but says nothing about data freshness, caching, rate limits, or upstream API dependencies, which matters for an openWorld tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence with no filler; the verb and the return payload are front-loaded. It is essentially a comma-separated content list, which is efficient but borders on enumeration rather than prioritizing the most decision-relevant output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return sections, which is the main burden it must carry. However, for a 10-parameter tool it never explains how uuid/username/profileId/memberUuid interact, nor does it address data recency or that results are derived from upstream sources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline of 3 applies; the description references no parameter at all, including the significant `focus` list that shapes the audit. Two params (includeMayor, includeEconomy) are undocumented in both schema and description, so no compensation is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Return a compact profile audit") and enumerates the concrete derived contents: computed levels, HOTM/HOTF trees, progression gaps, gear/loadout summaries, accessory analysis, and prioritized next actions. This implies a computed analysis rather than the raw data served by skyblock_profile, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition distinguishing it from skyblock_profile, skyblock_upgrade_advisor, or skyblock_networth, and no stated prerequisites (e.g., that a resolvable player/profile is needed). The audit framing implies usage but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_bazaarFetch SkyBlock BazaarBRead-onlyIdempotent
Fetch current Bazaar product prices, volumes, and spread signals. Useful for money-making tips and crafting cost checks.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | No | ||
| sortBy | No | movingWeek | |
| includeRaw | No | ||
| productIds | No | ||
| includeOrders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds that it returns prices, volumes, and spread signals, but says nothing about pagination, rate limits, or refresh freshness, leaving the lower-bar behavioral disclosure only partially met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action, with no filler. It earns its place but is quite short given the parameter surface it must support.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with 0% schema coverage and no output schema, the description omits all parameter semantics and only gestures at the return payload. An agent cannot tell how to constrain or shape results from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters (limit, search, sortBy, includeRaw, productIds, includeOrders), so the schema does the documentation work but with no descriptions at all. The description compensates by explaining none of the parameters, so an agent gets no guidance on sorting, filtering, or the raw/orders flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Fetch) and resource (Bazaar product prices, volumes, and spread signals), which is clear and concrete. It does not distinguish this from siblings like skyblock_auctions or skyblock_item, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Useful for money-making tips and crafting cost checks" implies the use context but gives no explicit when-to-use versus alternatives (e.g., auctions for player listings). Usage is suggested rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_bingoGet SkyBlock Bingo ProgressARead-onlyIdempotent
Fetch a player's Bingo event history and optionally match the current event goals. Missing participation stays unknown. Requires HYPIXEL_API_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| limit | No | ||
| eventId | No | ||
| username | No | Minecraft username. Use this when the user gives a name. | |
| includeCurrentEvent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds two things annotations do not carry: the HYPIXEL_API_KEY requirement and the fact that absent participation is reported as unknown rather than as a failure. It still says nothing about pagination or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, with no filler. Efficient, though the 'stays unknown' clause reads slightly cryptic out of context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter tool with no output schema and low schema description coverage, the description is thin. It omits how limit controls pagination and how uuid/username are expected to be supplied (both optional, zero required), which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%, so the description is expected to compensate. It loosely maps to eventId and includeCurrentEvent ('optionally match the current event goals') and identifies the player/uuid target, but leaves 'limit' and the uuid-vs-username relationship entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch a player's Bingo event history') plus the optional enrichment ('match the current event goals'). It is clearly distinguishable from the sibling set, which contains no other Bingo tool, though it does not name a sibling it must not be confused with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the tool for Bingo data, but there is no explicit when-to-use, when-not, or alternative named. The note that 'missing participation stays unknown' hints at result conditions rather than invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_essence_costsCalculate Essence Upgrade CostARead-onlyIdempotent
Compute the exact essence, coin, and material cost to add essence-funded stars to a dungeon/crimson item by its SkyBlock ID, using authoritative per-star cost data. Optionally prices essence and materials with live Bazaar data for a coin estimate. Master Star items are not priced. Returns found=false with suggestions for unknown or non-upgradeable IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | Canonical SkyBlock item ID, for example NECRON_CHESTPLATE, HYPERION, or CRIMSON_HELMET. | |
| toStar | No | Target star level. Defaults to the dataset's maximum essence-funded star; higher requests are clamped with an explanatory note. | |
| fromStar | No | Current star level (0 = no stars). | |
| quantity | No | Number of identical items to upgrade (e.g. a full 4-piece armor set). | |
| priceBasis | No | buy = replacement cost (insta-buy), sell = liquidation value (insta-sell). | buy |
| priceWithBazaar | No | Convert essence and material costs into an estimated coin cost using live Bazaar prices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: Master Star items are not priced, unknown IDs yield found=false with suggestions, and star requests are effectively bounded by the dataset's max. It does not describe response shape or latency/caching behavior, keeping it short of 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the core computation, followed by the optional pricing mode and the edge-case behavior. No filler and every clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately discloses key return semantics (found=false plus suggestions, clamped stars, coin estimate). What remains thin is the exact shape of a successful result and how quantity interacts with per-star costs, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so itemId, toStar, fromStar, quantity, priceBasis, and priceWithBazaar are already documented with defaults, ranges, and an enum. The description reinforces the pricing concept (essence + materials, live Bazaar coin estimate) but adds no syntax or format detail the schema lacks, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compute) and resource (essence/coin/material cost of essence-funded stars) scoped to a SkyBlock item ID, with authoritative per-star data. An agent can distinguish this cost-calculation tool from siblings like skyblock_upgrade_advisor, skyblock_networth, or skyblock_item without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: it prices optionally via live Bazaar, excludes Master Star items, and returns found=false with suggestions for non-upgradeable IDs. It stops short of explicitly naming a sibling alternative or stating when another cost/advice tool should be preferred instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_gardenGet SkyBlock GardenCRead-onlyIdempotent
Fetch garden plot, commission, and composter data for a SkyBlock profile.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description adds nothing behavioral beyond that: no note on auth requirements, rate limits, or what happens with ambiguous profile selection. No contradiction with annotations, but no added value either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single economical sentence with the resource list front-loaded and no filler. It is appropriately sized, though it could be slightly richer without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no required fields, and no output schema, the description does list the three data categories returned, which partially compensates for the missing output schema. However, it does not explain selector behavior when no uuid/username is supplied or how multiple profiles are resolved, leaving the agent to infer resolution rules from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 7 parameters, and each parameter carries a meaningful description (UUID format, username fallback, member vs. profile selectors, selectedOnly default). The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Fetch) plus the concrete resources it returns: garden plot, commission, and composter data, scoped to a SkyBlock profile. That is clear enough to distinguish it from siblings like skyblock_profiles or skyblock_inventory. It stops short of explicitly naming which sibling to prefer for related garden data, so 5 is not warranted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives (skyblock_profile, skyblock_inventory, etc.), nor any prerequisites or exclusions. Usage is only implied by the resource name in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_guide_contextBuild SkyBlock Guide ContextBRead-onlyIdempotent
Fetch a profile plus current mayor and economy signals so an AI can write tailored SkyBlock progression advice. Requires HYPIXEL_API_KEY for player/profile data.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| goals | No | Guide focus areas, for example mining, farming, dungeons, money. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| includeMayor | No | ||
| maxLoreLines | No | ||
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| includeGarden | No | ||
| includeMuseum | No | ||
| includeRawNbt | No | Include simplified raw NBT for decoded sections. Very large output. | |
| includeEconomy | No | ||
| memberUsername | No | Coop member username to inspect. Defaults to requested player. | |
| decodeInventories | No | ||
| includeAllNbtData | No | Search every base64 NBT payload on the member, not only inventory-like paths. | |
| includeItemDetails | No | Include extra compact ExtraAttributes fields on decoded items. | |
| maxInventorySections | No | ||
| maxItemsPerInventory | No | ||
| inventorySectionPaths | No | Filter decoded inventory sections by case-insensitive path substring, for example wardrobe_contents or backpack_contents. | |
| inventorySectionTypes | No | Filter decoded inventory sections by type. Common values: inventory, wardrobe, armor, equipment, ender_chest, backpack, accessory_bag, potion_bag, fishing_bag, quiver, personal_vault, sack, loadout, container, unknown. Omit or include all for all inventory-like sections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so safety needs no restating. The description adds a genuinely useful disclosure the annotations lack: the HYPIXEL_API_KEY authentication requirement. It says nothing about rate limits, caching, or the size/composition of the aggregated payload for a fan-out call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the composite purpose front-loaded ahead of the prerequisite. Nothing is padded, though the auth sentence could have carried some parameter guidance instead of standing alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter, no-required-argument aggregation tool with no output schema, the description is far too thin. An agent gets no picture of output size (e.g. includeRawNbt, includeAllNbtData), how optional flags interact, or what the returned context actually contains, which is exactly what this tool's name promises.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 21 parameters and only 62% schema description coverage, the description is the only place to compensate, and it adds almost nothing: no explanation of goals, uuid vs username vs profileId vs memberUuid, or how the include*/max* toggles shape the output. The mention of 'mayor and economy signals' loosely maps to includeMayor/includeEconomy but is not a substitute for parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch') and a composite resource ('profile plus current mayor and economy signals') and frames the downstream goal (writing tailored progression advice). This is enough to distinguish it from plain data fetchers like skyblock_profile, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'so an AI can write tailored SkyBlock progression advice' clause implies the intended use case (advice generation, not raw data retrieval), and it notes the HYPIXEL_API_KEY prerequisite. However, it gives no explicit guidance on when to prefer this over skyblock_profile, skyblock_profiles, or the related advisor tools, nor on how the many include*/max* flags should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_inventoryGet SkyBlock Inventory SectionsBRead-onlyIdempotent
Fetch and decode inventory-like NBT sections for one SkyBlock profile, including wardrobe, armor, equipment, ender chest, backpacks, vault, and bags. Use filters to keep output focused.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| maxSections | No | ||
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| maxLoreLines | No | ||
| sectionPaths | No | Filter decoded inventory sections by case-insensitive path substring, for example wardrobe_contents or backpack_contents. | |
| sectionTypes | No | Filter decoded inventory sections by type. Common values: inventory, wardrobe, armor, equipment, ender_chest, backpack, accessory_bag, potion_bag, fishing_bag, quiver, personal_vault, sack, loadout, container, unknown. Omit or include all for all inventory-like sections. | |
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| includeRawNbt | No | Include simplified raw NBT for decoded sections. Very large output. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. | |
| includeRawMember | No | Include the raw selected member object. Very large output. | |
| includeAllNbtData | No | Search every base64 NBT payload on the member, not only inventory-like paths. | |
| includeItemDetails | No | Include extra compact ExtraAttributes fields on decoded items. | |
| maxItemsPerSection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that output is decoded NBT and that filtering exists, but says nothing about how heavy the default payload is or what triggers the "very large output" flags the schema hints at. Adequate but thin beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource, zero filler. The section enumeration is long but earns its place by telling the agent what data is available without opening the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters, no required fields, and no output schema, the description is quite short. It never sketches the shape of the returned sections, item structure, or how the large-output opt-ins change the response, which is a real gap for a tool whose whole job is returning a complex payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 81%, so the schema already explains nearly every parameter (uuid, username, sectionPaths, sectionTypes, includeRawNbt, etc.). The description only alludes to "filters" generically and adds no syntax, format, or interaction detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch and decode) and resource (inventory-like NBT sections for one SkyBlock profile), and enumerates what those sections cover: wardrobe, armor, equipment, ender chest, backpacks, vault, bags. It is clearly distinguishable from decode_skyblock_nbt at a conceptual level, though it never names that sibling or skyblock_storage to draw the boundary explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use filters to keep output focused" is a mild operational tip but not real when-to-use guidance. Nothing tells the agent when this tool is preferable to skyblock_storage, decode_skyblock_nbt, or skyblock_profile, nor are any prerequisites (e.g. needing a profileId first) stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_itemLook Up SkyBlock ItemARead-onlyIdempotent
Look up a single SkyBlock item by ID or name and return its official metadata (tier, category, stats, NPC price, museum/soulbound flags) plus a live value: full Bazaar buy/sell/spread/volume for Bazaar items, or a lowest-BIN price when an external source is configured, otherwise a clear auction-only note. Set includeWiki for configured MediaWiki obtaining/usage/upgrading/history context. Ambiguous searches return candidate IDs instead of guessing.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | No | Exact SkyBlock item ID, for example HYPERION or ENCHANTED_DIAMOND. | |
| search | No | Item name or substring when the exact ID is unknown. | |
| priceBasis | No | Price basis used only for the lowest-BIN fallback. | buy |
| includeWiki | No | Fetch configured wiki context (or official-wiki retirement information) for the resolved item. | |
| maxCandidates | No | Max candidate IDs to return for an ambiguous search. | |
| includeBazaarOrders | No | Include top Bazaar buy/sell order summaries for Bazaar items. | |
| maxWikiSectionChars | No | Maximum characters per wiki section when includeWiki is true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/openWorldHint already covering the safety profile, the description adds meaningful non-annotation behavior: ambiguous searches degrade to a candidate list instead of guessing, the lowest-BIN price is contingent on an external source being configured (otherwise a plain auction-only note), and wiki retrieval can include official-wiki retirement information. These conditionals are exactly the kind of runtime conduct annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences that move from lookup to returned data to optional wiki context, with no filler. Slightly dense and occasionally clausal ('otherwise a clear auction-only note'), but every sentence carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter read tool with no output schema, the description adequately covers both the return payload and the main behavioral branches (bazaar vs BIN vs auction-only, candidate fallback, wiki augmentation). The main gap is that the ID-vs-search relationship and any mutual exclusivity are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented, making 3 the baseline. The description reinforces the conditional semantics of includeWiki and priceBasis ('used only for the lowest-BIN fallback') but adds little beyond what the schema text already states, and it never clarifies that itemId and search are alternative inputs or how maxCandidates interacts with resolution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb ('Look up') with a precise resource ('a single SkyBlock item by ID or name') and enumerates exactly what is returned: metadata (tier, category, stats, NPC price, museum/soulbound flags) plus a live value. It implicitly separates itself from siblings like skyblock_bazaar and skyblock_auctions by defining its output as bazaar data *or* a BIN fallback *or* an auction-only note, so an agent can distinguish it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear conditional guidance: use includeWiki when wiki context is wanted, ambiguous searches return candidates rather than a guess, and the BIN price only exists when an external source is configured. It stops short of explicitly naming alternatives (e.g. 'use skyblock_wiki_search for pure wiki queries' or 'use skyblock_bazaar for pure market queries'), so no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_museumGet SkyBlock MuseumCRead-onlyIdempotent
Fetch museum donations and value summary for a SkyBlock profile member.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description adds nothing behavioral beyond that - no auth requirements, no rate-limit or caching notes, no statement of what the value summary contains or how it is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though arguably under-specified rather than deliberately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should characterize the return payload, but 'museum donations and value summary' is vague for a tool with seven parameters and no required fields. Annotations carry the safety profile, so this is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (uuid, username, profileId, memberUuid, profileName, selectedOnly, memberUsername) are already documented in the schema. The description adds no parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch) and resource (museum donations and value summary) scoped to a SkyBlock profile member, which distinguishes it from siblings like skyblock_inventory or skyblock_networth. It does not name a sibling or draw an explicit boundary, but the resource is concrete enough for an agent to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and never mentions alternatives, despite siblings such as skyblock_networth and skyblock_profile that overlap in the 'value/profile data' space. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_networthEstimate SkyBlock Net WorthARead-onlyIdempotent
Estimate a profile's net worth from liquid coins, decoded inventory/storage holdings, sacks, and supported item modifiers, priced with live Bazaar data (and an optional external lowest-BIN source for auction items). Returns a total, per-section breakdown, top items by value, modifier breakdown, and pricing coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| topItems | No | ||
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| priceBasis | No | buy = market/replacement value (insta-buy), sell = liquidation value (insta-sell). | buy |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| includeSacks | No | ||
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. | |
| includeUnpriced | No | List items that could not be priced. Helps explain coverage gaps. | |
| includeModifiers | No | Add modifier value (enchantments, hot potato books, recombobulator, essence/master stars, gemstones, reforge stones) on top of base item prices. | |
| includeAuctionPrices | No | Use the configured external lowest-BIN source for auction-only items when available. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds real behavioral context beyond that: pricing comes from live Bazaar data with an optional external lowest-BIN source, modifiers are only counted if 'supported', and the response includes pricing coverage - useful disclosure of dependencies and known gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler; the compute-and-price mechanics are front-loaded before the return-value summary. Slightly packed - the second sentence is a long comma list - but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description responsibly enumerates the return payload (total, per-section breakdown, top items, modifier breakdown, pricing coverage). The one gap is that with 13 optional parameters and four different player/profile identifiers, it gives no hint about which identifier combination to prefer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 85%, so the schema already documents nearly every parameter, making 3 the baseline. The description loosely maps to a few flags (sacks, modifiers, auction pricing) but adds no format or interaction detail beyond the schema, and gives no guidance on choosing among the four identity parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Estimate') plus a specific resource ('a profile's net worth') and enumerates the value sources (liquid coins, decoded inventory/storage, sacks, modifiers). This clearly differentiates it from the component-level siblings like skyblock_inventory, skyblock_storage, and skyblock_bazaar, which it aggregates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose - an agent can infer it should be used when a user asks for total value rather than raw holdings - but there is no explicit when-to-use/when-not-to-use guidance and no alternative named (e.g. 'use skyblock_inventory if you only need raw items'). Nothing misleading, just unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_profileGet SkyBlock Profile ContextBRead-onlyIdempotent
Fetch one SkyBlock profile and return compact AI-readable member context: skills, slayers, dungeons, pets, collections, currencies, accessories, and optional decoded inventories.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| maxLoreLines | No | ||
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| includeGarden | No | Fetch garden data for the selected profile. | |
| includeMuseum | No | Fetch museum data for the selected profile. | |
| includeRawNbt | No | Include simplified raw NBT for decoded sections. Very large output. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. | |
| includeRawMember | No | Include the raw selected member object. Large output. | |
| decodeInventories | No | Decode base64 gzipped NBT inventory sections when available. | |
| includeAllNbtData | No | Search every base64 NBT payload on the member, not only inventory-like paths. | |
| includeRawProfile | No | Include the raw selected profile object. Large output. | |
| includeItemDetails | No | Include extra compact ExtraAttributes fields on decoded items. | |
| maxInventorySections | No | ||
| maxItemsPerInventory | No | ||
| inventorySectionPaths | No | Filter decoded inventory sections by case-insensitive path substring, for example wardrobe_contents or backpack_contents. | |
| inventorySectionTypes | No | Filter decoded inventory sections by type. Common values: inventory, wardrobe, armor, equipment, ender_chest, backpack, accessory_bag, potion_bag, fishing_bag, quiver, personal_vault, sack, loadout, container, unknown. Omit or include all for all inventory-like sections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered without the description. The description adds only that output is 'compact AI-readable' and that decoded inventories are optional; the genuinely important cost traits (very large output for raw NBT/member/profile flags, default decodeInventories=true) live in the schema, not here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence, front-loaded with verb and resource and then the payload contents, with no filler or repetition. It is slightly over-packed with a long enumeration, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter tool with no required arguments and no output schema, the description correctly enumerates the returned context and notes that inventories are optional, so an agent knows roughly what comes back. It stops short of explaining identifier selection, the selectedOnly default behavior, or the output-size implications of the raw flags, which is what an agent most needs before calling this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 85%, so the schema already explains nearly every parameter, including defaults, bounds, and filter semantics. The description contributes only the high-level list of returned sections and does not clarify precedence among uuid/username/profileId/profileName or how selectedOnly interacts with them. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource ('Fetch one SkyBlock profile') and enumerates the returned member sections (skills, slayers, dungeons, pets, collections, currencies, accessories, inventories), which meaningfully separates it from the plural list tool skyblock_profiles and from skyblock_inventory. It never names a sibling explicitly, so the differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no routing to alternatives such as skyblock_profiles, skyblock_inventory, or skyblock_storage, all of which overlap in scope. With 20 optional parameters and no required identifier, the description gives no help on which identifier combination to pick or when a lighter sibling is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_profilesList SkyBlock ProfilesARead-onlyIdempotent
List a player's SkyBlock profiles with compact member metadata. Requires HYPIXEL_API_KEY and respects the player's API privacy settings.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| includeRaw | No | Include raw Hypixel profile objects. Large output. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world behavior, so the safety profile is covered. The description adds genuinely useful context beyond that: an auth prerequisite (HYPIXEL_API_KEY) and the fact that results are filtered by the player's API privacy settings, which can silently reduce output. It does not describe pagination or output shape, but with no output schema that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, no filler. The core purpose leads and the operational constraints follow, so an agent gets the essential facts in the first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers purpose, auth, and privacy caveats, and the schema fully documents inputs. It could be stronger by mentioning that profiles are returned compactly vs. the detail tool, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – uuid, username, and includeRaw are each documented in the schema, including the 'use this when the user gives a name' routing hint. The description adds nothing about parameter behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a player's SkyBlock profiles') plus scope ('compact member metadata'), which cleanly separates it from the singular skyblock_profile sibling. It stops short of explicitly naming that sibling or clarifying the profile-vs-detail split, so it falls just below the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives preconditions (requires HYPIXEL_API_KEY, respects privacy settings) but never says when to pick this over skyblock_profile, resolve_player, or skyblock_audit. Usage is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_resourceFetch SkyBlock ResourceCRead-onlyIdempotent
Fetch public SkyBlock resources: items, skills, collections, election/mayor, bingo, or news. Supports filtering for item and resource searches.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Item IDs to fetch when kind=items. | |
| kind | Yes | ||
| tier | No | Item tier filter when kind=items. | |
| limit | No | ||
| search | No | ||
| category | No | Item category filter when kind=items. | |
| includeRaw | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds that these are public resources spanning several kinds, but says nothing about rate limits, caching, or the shape/size of results for a multi-kind fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the verb and resource, no filler. Brevity is achieved without padding, though it is arguably too terse for a 7-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 params, 43% schema coverage, no output schema, and six distinct resource kinds behind one enum, the description leaves too much unexplained: how filtering interacts with kind, what each kind returns, and the role of includeRaw. It is under-specified for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43% and there are 7 parameters. The description gestures at filtering but never explains search, limit, includeRaw, or which filters apply to which kind beyond the hardcoded schema notes, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fetch) and resource (public SkyBlock resources), and enumerates the supported kinds: items, skills, collections, election, bingo, news. It does not, however, distinguish itself from siblings like skyblock_item or skyblock_bingo that appear to overlap on the same resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-adjacent sentence is 'Supports filtering for item and resource searches,' which describes a capability rather than when to choose this tool. With siblings such as skyblock_item, skyblock_bingo, and skyblock_wiki_search present, no routing guidance is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_storageSearch SkyBlock StorageBRead-onlyIdempotent
Decode and merge items across backpacks, ender chest, personal vault, sacks, bags, and inventory. Returns grouped item counts, sack totals, and optional per-section detail.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| search | No | Case-insensitive search across item names and SkyBlock IDs. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| itemLimit | No | ||
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| maxSections | No | ||
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| skyblockIds | No | Only include these SkyBlock item IDs. | |
| sectionPaths | No | Filter decoded inventory sections by case-insensitive path substring, for example wardrobe_contents or backpack_contents. | |
| sectionTypes | No | Filter decoded inventory sections by type. Common values: inventory, wardrobe, armor, equipment, ender_chest, backpack, accessory_bag, potion_bag, fishing_bag, quiver, personal_vault, sack, loadout, container, unknown. Omit or include all for all inventory-like sections. | |
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. | |
| includeSections | No | Include raw decoded sections. Large output. | |
| groupBySkyblockId | No | Merge duplicate item IDs across storage locations. | |
| includeItemDetails | No | ||
| maxItemsPerSection | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds real behavioral context by saying items are decoded and merged across locations and that output is grouped counts plus sack totals. However, it omits the cost/latency character of a full NBT decode, auth needs, or that large-section output is a risk, leaving moderate gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two densely packed sentences with the actor/action front-loaded and the return shape last. No filler, though the container enumeration could be tightened since sectionTypes already lists these values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully sketches the return shape (grouped counts, sack totals, optional per-section detail), which is genuinely needed. Against a 17-parameter surface with zero required params and no enums, though, it gives no guidance on the uuid/username/profileId interplay or on scoping the potentially large decode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 76%, above the baseline threshold, so the schema carries most parameter meaning; the description adds essentially none. Several tuning parameters (itemLimit, maxSections, includeItemDetails, maxItemsPerSection) are undocumented in both schema and description, so this is adequate but not compensatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action (decode and merge items) and enumerates the resources involved: backpacks, ender chest, personal vault, sacks, bags, and inventory. An agent can tell this is a storage-aggregation tool. It does not, however, distinguish itself from the sibling skyblock_inventory, whose scope overlaps heavily with this enumeration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states capability but gives no when-to-use guidance, prerequisites, or alternatives. It never says when to prefer skyblock_storage over skyblock_inventory or skyblock_networth, which is the central routing decision for this family of tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_upgrade_advisorAdvise SkyBlock UpgradesARead-onlyIdempotent
Rank the gear and accessory upgrades available to a profile that can be honestly costed today: remaining essence-star costs on equipped gear, and next-tier accessory upgrades (priced when a lowest-BIN source is configured). Returns a budget-aware, ranked action list with per-upgrade confidence and caveats, plus a coverage block that names which requested sources are not yet supported (reforge/enchant/HOTM/pet) instead of inventing stat or cost numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Minecraft UUID, dashed or undashed. | |
| limit | No | ||
| sources | No | Upgrade sources to consider. Supported today: star, accessory. Others are reported as unsupported with a reason. | |
| username | No | Minecraft username. Use this when the user gives a name. | |
| profileId | No | Specific SkyBlock profile UUID. | |
| memberUuid | No | Coop member UUID to inspect. Defaults to requested player. | |
| priceBasis | No | buy = replacement cost (insta-buy), sell = liquidation value (insta-sell). | buy |
| budgetCoins | No | Only keep priced upgrades at or below this coin budget. | |
| profileName | No | Cute profile name, for example Apple, Lemon, or Coconut. | |
| selectedOnly | No | Prefer the selected profile when multiple profiles exist. | |
| memberUsername | No | Coop member username to inspect. Defaults to requested player. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), but the description adds real behavioral context: per-upgrade confidence and caveats, budget-aware filtering, and an explicit honesty contract that unsupported sources are named rather than fabricated. It does not discuss failure modes or latency, but the gaps-instead-of-numbers disclosure is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded with the core action ('Rank the gear and accessory upgrades') and every clause carries information, including the return shape and the honesty constraint. It is dense and comma-heavy with one very long sentence, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so well: ranked action list, per-upgrade confidence and caveats, and a coverage block listing unsupported sources. Combined with 91% parameter coverage and 11 schema-documented params, an agent has everything needed to invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the baseline is 3. The description still adds value by explaining what the sources enum means operationally (star and accessory priced; reforge/enchant/hotm/pet reported unsupported) and by tying budgetCoins/priceBasis to the 'honestly costed' gating condition, which the schema does not convey on its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Rank the gear and accessory upgrades available to a profile') and narrows the scope precisely to two upgrade classes: essence-star costs on equipped gear and next-tier accessory upgrades. An agent can distinguish this from sibling tools like skyblock_essence_costs (raw cost data) or skyblock_networth without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly frames when the tool is applicable: only sources that can be 'honestly costed today,' with accessory prices requiring a configured lowest-BIN source. It does not explicitly name alternatives (e.g., use skyblock_essence_costs for raw star costs) or state when-not-to-use, so routing guidance is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_wiki_pageFetch Configured SkyBlock Wiki PageARead-onlyIdempotent
Fetch a page from the configured MediaWiki source with revision time and cleaned sections. The retired official wiki returns explicit availability information by default. Configured replacement content is labeled non-official.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Exact wiki page title, for example Hyperion or Necron's Blade Scrolls. | |
| search | No | Fallback wiki search query when title is unknown or missing. | |
| includeRaw | No | Include raw wikitext. Large and usually unnecessary. | |
| maxSectionChars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is the provenance behavior: a retired official source that returns explicit availability information by default, and replacement content that is explicitly labeled non-official. That is meaningful disclosure an agent could not infer from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core action and returning the highest-value provenance caveat alongside it. Slight redundancy between 'configured' and 'non-official' wording keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does describe what comes back (revision time, cleaned sections, availability status, non-official labeling), which is the essential return-value burden. It is nearly complete for a read tool whose annotations already declare the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75% (title, search, includeRaw are documented; maxSectionChars is not), so the schema carries most of the semantic load and the baseline of 3 applies. The description adds nothing about parameters, and notably never connects 'cleaned sections' to maxSectionChars, leaving the one undocumented param unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (fetch a page from the configured MediaWiki source) and even sketches the return shape (revision time, cleaned sections). It implicitly separates itself from the sibling wiki-search tool by being a page fetch, but never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus skyblock_wiki_search or any other sibling, and no exclusions. The only usage-adjacent note (retired official wiki returns availability info; replacement content is labeled non-official) describes content provenance rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skyblock_wiki_searchSearch Configured SkyBlock WikiARead-onlyIdempotent
Search a configured MediaWiki source for SkyBlock knowledge. The official wiki retired in July 2026; without SKYBLOCK_WIKI_BASE this returns retirement information. Results identify their source and are not assumed official.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| search | Yes | Search query, for example Hyperion, Lotus Atoll, or Armor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent, so the bar is lower. The description still adds meaningful behavior: the env-var dependency and fallback to retirement content, plus the caveat that results identify their source and are not assumed official. It omits pagination or result-shape detail, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and followed by the two genuinely decision-relevant caveats. Nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially covers returns ('results identify their source'), and it handles the important edge case of missing configuration. Only the undocumented limit parameter and return shape keep it short of full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% – the 'search' query is documented in the schema while 'limit' is not. The description adds no parameter meaning at all (no query syntax, no result-count behavior), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (a configured MediaWiki source for SkyBlock knowledge), which clearly separates it from siblings like skyblock_wiki_page or skyblock_resource. It does not explicitly name the sibling it differs from, but the 'search a source' framing is distinctive enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides real usage context: it explains the official wiki retirement and that without SKYBLOCK_WIKI_BASE the tool returns retirement information rather than results. However, it never states when to choose this over skyblock_wiki_page or other knowledge siblings, so the routing decision is left to inference.
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.
22 tool updates
v1.1.0- Changed
decode_skyblock_nbt2 fields changed- added
Input schema / properties / data / maxLengthAdded value: +4194304 - changed
Input schema / properties / data / minLengthPrevious value: -32New value: +1
- Changed
hypixel_player3 fields changed- added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
resolve_player3 fields changed- added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Added
server_status - Changed
skyblock_auctions10 fields changed- removed
Input schema / properties / auctionUuid / minLengthRemoved value: -1 - added
Input schema / properties / auctionUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / category / maxLengthAdded value: +256 - added
Input schema / properties / playerUsername / maxLengthAdded value: +64 - removed
Input schema / properties / playerUuid / minLengthRemoved value: -1 - added
Input schema / properties / playerUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / search / maxLengthAdded value: +256 - added
Input schema / properties / tier / maxLengthAdded value: +256
- Changed
skyblock_audit10 fields changed- added
Input schema / properties / focus / items / maxLengthAdded value: +256 - added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_bazaar2 fields changed- added
Input schema / properties / productIds / items / maxLengthAdded value: +256 - added
Input schema / properties / search / maxLengthAdded value: +256
- Added
skyblock_bingo - Changed
skyblock_essence_costs2 fields changed- added
Input schema / properties / itemId / maxLengthAdded value: +256 - changed
Input schema / properties / toStar / descriptionPrevious value: -"Target star level. Defaults to the item's maximum (includes master stars)."New value: +"Target star level. Defaults to the dataset's maximum essence-funded star; higher requests are clamped with an explanatory note."
- Changed
skyblock_garden9 fields changed- added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_guide_context12 fields changed- added
Input schema / properties / goals / items / maxLengthAdded value: +256 - added
Input schema / properties / inventorySectionPaths / items / maxLengthAdded value: +256 - added
Input schema / properties / inventorySectionTypes / items / maxLengthAdded value: +256 - added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_inventory11 fields changed- added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / sectionPaths / items / maxLengthAdded value: +256 - added
Input schema / properties / sectionTypes / items / maxLengthAdded value: +256 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_item3 fields changed- changed
Input schema / properties / includeWiki / descriptionPrevious value: -"Fetch official Hypixel SkyBlock Wiki context for the resolved item."New value: +"Fetch configured wiki context (or official-wiki retirement information) for the resolved item." - added
Input schema / properties / itemId / maxLengthAdded value: +256 - added
Input schema / properties / search / maxLengthAdded value: +256
- Changed
skyblock_museum9 fields changed- added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_networth9 fields changed- added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_profile11 fields changed- added
Input schema / properties / inventorySectionPaths / items / maxLengthAdded value: +256 - added
Input schema / properties / inventorySectionTypes / items / maxLengthAdded value: +256 - added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_profiles3 fields changed- added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Changed
skyblock_resource4 fields changed- added
Input schema / properties / category / maxLengthAdded value: +256 - added
Input schema / properties / ids / items / maxLengthAdded value: +256 - added
Input schema / properties / search / maxLengthAdded value: +256 - added
Input schema / properties / tier / maxLengthAdded value: +256
- Changed
skyblock_storage13 fields changed- added
Input schema / properties / memberUsername / maxLengthAdded value: +64 - removed
Input schema / properties / memberUuid / minLengthRemoved value: -1 - added
Input schema / properties / memberUuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - removed
Input schema / properties / profileId / minLengthRemoved value: -1 - added
Input schema / properties / profileId / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$" - added
Input schema / properties / profileName / maxLengthAdded value: +64 - added
Input schema / properties / search / maxLengthAdded value: +256 - added
Input schema / properties / sectionPaths / items / maxLengthAdded value: +256 - added
Input schema / properties / sectionTypes / items / maxLengthAdded value: +256 - added
Input schema / properties / skyblockIds / items / maxLengthAdded value: +256 - added
Input schema / properties / username / maxLengthAdded value: +64 - removed
Input schema / properties / uuid / minLengthRemoved value: -1 - added
Input schema / properties / uuid / patternAdded value: +"^(?:[0-9a-f]{32}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$"
- Added
skyblock_upgrade_advisor - Changed
skyblock_wiki_page2 fields changed- added
Input schema / properties / search / maxLengthAdded value: +256 - added
Input schema / properties / title / maxLengthAdded value: +256
- Changed
skyblock_wiki_search1 field changed- added
Input schema / properties / search / maxLengthAdded value: +256
4 tool updates
v1.0.4- Changed
skyblock_item2 fields changed- added
Input schema / properties / includeWikiAdded value: +{ + "default": false, + "description": "Fetch official Hypixel SkyBlock Wiki context for the resolved item.", + "type": "boolean" +} - added
Input schema / properties / maxWikiSectionCharsAdded value: +{ + "default": 900, + "description": "Maximum characters per wiki section when includeWiki is true.", + "maximum": 2500, + "minimum": 200, + "type": "integer" +}
- Changed
skyblock_networth1 field changed- changed
Input schema / properties / includeModifiers / descriptionPrevious value: -"Add modifier value (enchantments, hot potato books, recombobulator, essence/master stars) on top of base item prices."New value: +"Add modifier value (enchantments, hot potato books, recombobulator, essence/master stars, gemstones, reforge stones) on top of base item prices."
- Added
skyblock_wiki_page - Added
skyblock_wiki_search
18 tool updates
v1.0.1- First observed
cache_clear - First observed
decode_skyblock_nbt - First observed
hypixel_player - First observed
resolve_player - First observed
skyblock_auctions - First observed
skyblock_audit - First observed
skyblock_bazaar - First observed
skyblock_essence_costs - First observed
skyblock_garden - First observed
skyblock_guide_context - First observed
skyblock_inventory - First observed
skyblock_item - First observed
skyblock_museum - First observed
skyblock_networth - First observed
skyblock_profile - First observed
skyblock_profiles - First observed
skyblock_resource - First observed
skyblock_storage
TDQS
Scored across 23 tools
Many tools are clearly distinct (bazaar, auctions, wiki, garden, museum, server status), but the profile-analysis cluster—skyblock_profile, skyblock_audit, skyblock_guide_context, skyblock_upgrade_advisor, and skyblock_networth—overlaps in purpose and could cause misselection. Inventory vs. storage also blur, though detailed descriptions reduce the risk somewhat.
All tools use lowercase snake_case, mostly with domain prefixes (skyblock_, hypixel_). A few helpers lack a prefix and some names are verb-first rather than noun-first, but the overall style is predictable and consistent.
23 tools is on the heavy side; the 16-25 range is borderline per the calibration. The broad SkyBlock domain justifies many tools, but the set feels bulky and could likely be consolidated.
The surface covers player resolution, profiles, inventories/storage, bazaar/auctions, wiki, bingo, resources, NBT decoding, and analysis tools—broad read-only coverage. Minor gaps exist (e.g., no dedicated guild/friends or crafting recipe retrieval), but agents can work around them.
Maintenance
Related MCP Connectors
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
Pre-computed market data that improves agent reasoning, reduces token usage, and replaces pipelines.
Facebook data for AI agents: pages, posts, groups. Brand, market + competitor research JSON.
Savecraft serves real save game data and expert game knowledge to AI assistants.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides comprehensive World of Warcraft guild analytics, player character analysis, and auction house market data through the Blizzard Battle.net API. Supports both Retail and Classic WoW with real-time market insights, guild roster management, and demographic analytics.-
- AlicenseAqualityCmaintenanceAuction house analytics, market intelligence, crafting optimization, inventory valuation, farming routes, guild analytics, and token tracking — all through the Model Context Protocol.10MIT
- AlicenseCqualityAmaintenanceFull-stack utility API with 337+ tools including AI chat, web scraping, weather, finance, SEO, crypto, colors, readability, DNS, and more — all through a single MCP server. Pay-as-you-go credits, no API keys needed.1001Apache 2.0
- FlicenseNot gradedqualityCmaintenanceAn MCP server that fetches and filters chess.com game data, returning compact summaries instead of massive JSON, enabling LLMs to answer questions about player performance and head-to-head records.-