hayday-mcp-server
This server provides read-only access to live HayDay game data (sourced from hayday.info), enabling AI agents to look up game mechanics and plan farming strategies.
Search for items by product name or machine name (e.g., "wheat", "bakery", "bread")
Get full details for a specific product by exact name
List all machine/category names (e.g., Crops, Bakery, Dairy — 48 total)
Browse all products from a specific machine (e.g., Bakery, Dairy)
Get all crop data including field crops, trees, and bushes
Get all animal product data (eggs, milk, bacon, wool, etc.)
Look up what unlocks at a specific player level
See all content available up to a given level
Find the most profitable items ranked by profit/hour, with optional level and result-count filters
Compare profit/time efficiency across a list of specific products
Force a live data refresh by clearing the 1-hour in-memory cache
Click on "Install 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., "@hayday-mcp-serverWhat's the most profitable crop at level 15?"
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.
🧑🌾 HayDay MCP Server
Live HayDay game data — crops, products, animals, machines, and level unlocks — served as MCP tools for any AI agent.
Works with opencode, Claude Desktop, Cursor, VS Code, and any MCP-compatible client.
Not a bot. Not an auto-player. This is a read-only data lookup tool. It does not interact with the HayDay game, does not send inputs, does not automate gameplay, and cannot be used to play on your behalf. It only answers questions about game mechanics — like a wiki you can query from your AI.
Why?
HayDay is a deep game with hundreds of items, recipes, and levels. Keeping track of what to plant, what to craft, and what unlocks next is tedious. This MCP server gives your AI assistant the full game data so it can help you plan your farm — not play it for you.
Related MCP server: mcp-taskflow
How It Works
AI agent → MCP protocol → HayDay Data MCP → hayday.info API (live) → structured data
↓
1-hour in-memory cacheData is fetched live from hayday.info on every tool call, with a 1-hour cache to avoid rate limits. When Supercell updates the game, your AI sees the new data automatically — no manual updates needed.
Quick Start
git clone https://github.com/Mohib1992/hayday-mcp-server.git
cd hayday-mcp-server
npm install
node server.jsThe server starts and listens for MCP connections via stdio. Nothing happens until an AI client connects.
Tools
Tool | Description | Example |
| Search items by name or machine |
|
| Full details for a specific product |
|
| List all 48 machine/category names | — |
| All products from a machine |
|
| All field crops + trees/bushes | — |
| All animal products (eggs, milk, etc.) | — |
| What unlocks at a specific level |
|
| Everything available up to a level |
|
| Top items by profit/hour |
|
| Compare profit/time for specific items |
|
| Force refresh from live source | — |
Example Queries
"What's the most profitable crop at level 15?"
→ Call get_best_profit(minLevel: 1, limit: 5) and filter by machine: "Crops".
"Compare bread vs corn bread"
→ Call compare_profit(products: ["Bread", "Corn bread"]).
"What do I unlock at level 30?"
→ Call get_level_unlocks(level: 30).
Client Setup
opencode
Add to opencode.jsonc in your project root:
{
"mcpServers": {
"hayday-data": {
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/hayday-data-mcp"
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"hayday-data": {
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/hayday-data-mcp"
}
}
}Cursor
Settings → Features → MCP → Add new server:
Field | Value |
Name |
|
Type |
|
Command |
|
VS Code (Continue.dev)
Add to ~/.continue/config.json:
{
"experimental": {
"mcpServers": {
"hayday-data": {
"command": "node",
"args": ["server.js"],
"cwd": "/path/to/hayday-data-mcp"
}
}
}
}Data Source
All data comes from hayday.info — a community-run HayDay database. The /api/production-data endpoint returns 348 items across 48 categories. Data is cached in memory for 1 hour.
What's included:
Field crops + trees & bushes
Animal products (eggs, milk, bacon, wool, etc.)
All machine-made products (Bakery, Dairy, BBQ Grill, etc.)
Level unlock information
Profit/hour calculations (provided by source)
XP and XP/hour
What's not included:
Ingredient/recipe details (which items combine to make a product)
Building upgrade costs
Derby / boat / town data
Architecture
hayday-mcp-server/
server.js # MCP server (JSON-RPC over stdio, zero framework deps)
lib/
hayday.js # Fetches & indexes live data from hayday.info
cache.js # 1-hour TTL cache
test/
api.test.js # API layer smoke tests
mcp.test.js # MCP protocol smoke tests
package.json
CHANGELOG.md
LICENSE # MITTroubleshooting
Problem | Likely Cause | Fix |
Server starts but tools return nothing | Client not connected to server | Check MCP config path in your client settings |
"API returned 429" or slow responses | Rate limited by hayday.info | Wait 1 hour (cache auto-cools down), or call |
"Product not found" for a known item | Case mismatch or item name changed | Use |
"Machine not found" | Name mismatch | Use |
Server crashes after stdin closes | Expected behavior (stdio transport ended) | Just restart the server |
Data seems outdated | Cache hit (1hr TTL) | Call |
Testing
npm testRuns 20+ smoke tests covering the API layer and MCP protocol using Node.js built-in node:test.
Contributing
Fork the repo
Create a feature branch
Run
npm testto verifyOpen a pull request
License
MIT
Legal notice
This project is an independent data tool and is not affiliated with, endorsed by, or connected to Supercell Oy. HayDay is a trademark of Supercell Oy. All game data is sourced from publicly available community resources. This tool is read-only and does not interact with the HayDay game client, its servers, or its APIs. It is designed for informational and educational purposes only.
Available Tools
11 toolsclear_cacheA
Force refresh data from live source (discard cached data)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the core behavioral trait (discards cached data, forces refresh from live source). However, it does not specify scope (e.g., global or per-user), idempotency, or potential performance impact. With no annotations, the description carries the burden, and it leaves some ambiguity.
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?
The description is a single, front-loaded sentence that conveys the essential information without any fluff. Every word adds value, and it is appropriately sized for a simple tool with no parameters.
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 tool with no parameters and no output schema, the description is reasonably complete. It explains the core action. However, it could benefit from noting scope (e.g., 'global cache') or any side effects, but given simplicity, it is mostly adequate.
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 has zero parameters, so baseline is 4. The description adds no parameter information since there are none, but it correctly describes the tool's action. Schema coverage is 100%, so no compensation needed.
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 clearly states the tool's purpose: to force refresh data by discarding cached data. It uses a specific verb ('clear' inferred from name) and resource ('cache'). The sibling tools are all data retrieval tools (get, search), so this tool is clearly distinguished as a cache invalidation operation.
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 provides no explicit guidance on when to use this tool versus alternatives. However, given the sibling tools are all read-only, the usage context is generally implied: use when you need to ensure the latest data from the live source. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_profitB
Compare profit/time efficiency for a list of specific products
| Name | Required | Description | Default |
|---|---|---|---|
| products | Yes | Array of product names to compare (e.g. ['Wheat', 'Corn', 'Bread']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose behavior like whether it modifies data, output format, permissions, or side effects. Only states it compares efficiency.
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 wasted words. Every word contributes to understanding the tool's purpose.
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?
Lacks description of return value or output format, which is critical given no output schema. The simple tool with one parameter still needs to specify what the comparison yields (e.g., a table, rankings).
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 100% with the single required parameter having a description. The tool description adds an example but no additional semantic meaning beyond the schema.
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 clearly states the tool compares profit/time efficiency for a list of specific products, distinguishing it from siblings like get_best_profit (single product best) and get_by_machine.
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 implies usage when you have a list of products to compare, but lacks explicit guidance on when not to use it or alternatives. No exclusion criteria or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_animalsA
Get all animal product data (eggs, milk, bacon, wool, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read-only operation but doesn't disclose behavioral details like rate limits, side effects, or data freshness. Adequate for a simple retrieval tool but lacks depth.
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?
Single sentence with no extraneous words. Efficiently conveys the core purpose and examples.
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?
Given no parameters and no output schema, the description is mostly complete. It specifies the data category and examples, though it could hint at the structure or use cases more explicitly.
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?
There are 0 parameters, so schema coverage is trivially 100%. The description adds no parameter info, but the baseline for 0 params is 4. It provides examples of returned data, adding value beyond the schema.
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 clearly states the verb 'Get', the resource 'animal product data', and includes examples like eggs, milk, bacon, wool. It's distinct from sibling tools like get_crops.
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?
No guidance on when to use this tool versus alternatives like search_items or get_item. No context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_profitA
Get top N items ranked by profit per hour
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| minLevel | No | Minimum level filter (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent; description is minimal and does not disclose behaviors like data freshness, pricing assumptions, or whether time-to-produce is factored. Adequate for a simple read tool but lacks detail.
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?
Single sentence, no fluff, front-loaded with key action and metric.
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?
Tool is simple with no output schema; description provides bare minimum. Could mention output fields or default sorting, but not required.
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 covers both parameters with descriptions; description adds no extra meaning. Baseline score of 3 applies as schema already documents 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?
Description clearly states the tool returns top N items ranked by profit per hour, using a specific verb and resource. It distinguishes from sibling tools like compare_profit and get_item.
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?
Implies usage for profit ranking but lacks explicit when-to-use or when-not-to-use guidance. No mention of alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_machineA
Get all products that a specific machine produces
| Name | Required | Description | Default |
|---|---|---|---|
| machine | Yes | Machine name (e.g. 'Bakery', 'Crops', 'Dairy') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the operation reads and returns products, which is a read-only behavior, but does not elaborate on side effects, rate limits, or output structure.
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?
The description is a single concise sentence that communicates the core function without superfluous words. It is front-loaded with the verb and object.
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?
Given the tool's simplicity (one parameter, no nested objects), the description is mostly complete. However, it does not describe the return format or if there are limits, which would be helpful but not critical for a straightforward query.
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 input schema already describes the 'machine' parameter with examples (100% coverage). The description adds no additional meaning beyond referencing 'specific machine', so it meets the baseline but does not exceed.
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 clearly states the verb 'Get' and the resource 'products that a specific machine produces', making the tool's purpose unambiguous. It distinguishes itself from sibling tools like 'get_machines' and 'get_crops' by focusing on products by machine.
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 implies usage when needing products for a given machine, but does not explicitly state when to use or avoid this tool compared to alternatives. No exclusion criteria or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cropsA
Get all crop data including field crops and trees/bushes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description lacks behavioral details such as whether the data is cached, requires authentication, or has limits. It only states the basic action without additional context.
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?
The description is a single, clear sentence that conveys the tool's purpose efficiently. No unnecessary words or repetition.
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?
Given no output schema, no annotations, and a simple get-all operation, the description is mostly complete. It could mention the return format, but the purpose is clear.
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?
There are no parameters, so the baseline is 4. The description does not need to add meaning beyond the schema, which has 100% coverage.
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 explicitly states 'Get all crop data including field crops and trees/bushes', which is a specific verb-resource combination. It clearly differentiates from siblings like get_animals or get_item by specifying crop types.
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?
No guidance is provided on when to use this tool versus alternatives. The description only states the function without any context for selection or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_itemB
Get detailed info for a specific product by exact name
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Exact product name (e.g. 'Bread') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for behavioral transparency. It states 'Get detailed info' but does not disclose what the detail includes, whether it is read-only, or any other behavioral traits. For a retrieval operation, basic safety is implied but not confirmed.
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?
The description is a single short sentence that front-loads the purpose. Every word contributes meaning, and there is no unnecessary detail.
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 and minimal annotations, the description is somewhat adequate for a simple retrieval tool but lacks clarity on return format, pagination, or error behavior. It is complete enough for basic use but not fully informative.
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 100%, and the parameter description already specifies 'Exact product name'. The description adds 'by exact name', which reinforces but does not significantly extend the schema. Baseline of 3 is appropriate.
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 clearly states the action ('Get detailed info') and the resource ('specific product by exact name'). It distinguishes from sibling tools like 'get_animals' or 'get_crops' by focusing on products, but does not explicitly call out this differentiation.
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?
No guidance is provided on when to use this tool versus alternatives like 'search_items' or other 'get_' tools. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_level_unlocksB
Get everything that unlocks at a specific player level
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Player level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. It states 'Get everything that unlocks' but does not clarify whether this includes only new unlocks at that level, cumulative unlocks up to that level, or any potential side effects or permissions required. The description is too brief to provide adequate transparency.
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?
The description is a single concise sentence that conveys the tool's core purpose without any extraneous words. It front-loads the key 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?
Given the tool's simplicity (one required parameter, no output schema, no nested objects), the brief description is largely sufficient for an AI agent to understand its basic use. However, it could be slightly more explicit about the scope of 'unlocks' (e.g., whether it includes features, items, or abilities) to achieve 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 description coverage is 100% (parameter 'level' with description 'Player level'), but the tool description adds no additional meaning beyond what the schema provides. Consequently, the description does not improve upon the baseline score of 3 for high-coverage schemas.
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 clearly states the tool retrieves everything that unlocks at a specific player level. It uses a specific verb (Get) and resource (unlocks) and effectively distinguishes from sibling tools like get_unlocks_upto by specifying 'at a specific' level versus cumulative.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention that get_unlocks_upto might be more appropriate for cumulative lookups or any other context. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_machinesA
List all machine/category names (Crops, Bakery, Dairy, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates 'list all' which implies read-only behavior with no side effects. However, no annotations are provided, and the description does not explicitly state safety, auth needs, or cost. Adequate for a simple listing but could be more explicit.
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?
Extremely concise, single sentence front-loaded with key information. No unnecessary words. Efficient.
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?
Given no parameters and no output schema, description is adequate but could be more precise about whether it returns machine names, categories, or both. With many sibling tools, clarifying the exact output nature would be beneficial.
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?
No parameters exist, so baseline is 4. Description adds meaning by stating what is returned (machine/category names with examples), which is helpful beyond the empty schema.
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?
Description clearly states the tool lists all machine/category names, with examples like Crops, Bakery, Dairy. It uses a specific verb and resource, distinguishing it from siblings like get_animals or get_crops.
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?
No explicit when-to-use or when-not-to-use guidance. Usage is implied by the purpose, but no alternative tools are mentioned. For a simple list tool, this may suffice, but lacks differentiation from other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unlocks_uptoC
Get all items available up to a given level
| Name | Required | Description | Default |
|---|---|---|---|
| level | Yes | Maximum level |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states a simple retrieval, but does not mention any side effects, auth requirements, or response characteristics. For a read operation, minimal transparency is acceptable but still lacking.
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?
The description is a single sentence with no wasted words. It is appropriately front-loaded and efficient. However, it could be restructured to include usage 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?
With no output schema and no annotations, the description does not explain return format, what 'items' constitute, or any edge cases (e.g., invalid level). The tool is simple but the description is too minimal to be fully 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% with a single parameter 'level' described as 'Maximum level'. The description says 'up to a given level', which adds no new meaning beyond the schema. Baseline score 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?
The description clearly states 'Get all items available up to a given level', which specifies the verb, resource, and condition. The name 'get_unlocks_upto' aligns with this purpose. However, it does not explicitly differentiate from sibling tool 'get_level_unlocks', which likely returns unlocks at a specific level rather than cumulative.
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?
No guidance is provided on when to use this tool versus alternatives or any prerequisites. The description only states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_itemsA
Search for items by product name or machine name (e.g. 'wheat', 'bakery', 'bread')
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keyword |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose search behavior (e.g., fuzzy matching, case sensitivity, pagination, or multiple results). Agent is left guessing how the search operates.
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?
Single concise sentence with examples front-loaded. No wasted words; every part contributes to understanding.
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?
Simple tool with one param and no output schema; the description covers the search capability. However, it omits details like whether searches are case-sensitive or support partial matches, which would fully close 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 describes 'query' as 'Search keyword', but description adds real-world meaning: items can be searched by product name or machine name, with concrete examples. This enriches semantic understanding.
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 'search' and resource 'items' with explicit examples (product name, machine name) and examples like 'wheat', 'bakery', 'bread' clearly distinguish it from sibling tools like get_item or get_by_machine.
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?
No explicit when-to-use or when-not-to-use guidance. The examples imply usage context (search by name or machine), but no comparison with alternatives like get_item or get_by_machine.
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.
11 tool updates
v1.0.0- First observed
clear_cache - First observed
compare_profit - First observed
get_animals - First observed
get_best_profit - First observed
get_by_machine - First observed
get_crops - First observed
get_item - First observed
get_level_unlocks - First observed
get_machines - First observed
get_unlocks_upto - First observed
search_items
TDQS
Scored across 11 tools
Each tool targets a distinct resource or action, such as specific data types (animals, crops, machines), profit analysis, or level unlocks, with no overlap.
All tool names follow a consistent verb_noun snake_case pattern (e.g., get_crops, search_items, clear_cache), making them predictable.
11 tools cover the essential data access patterns for a game data server without being excessive or insufficient.
The tool set covers most key data lookups (items, machines, animals, crops, levels, profit comparison) but lacks write operations, which may be intentional, and there is no broad 'get all items' tool, only search.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server that provides cryptocurrency project data to AI agents11MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that gives AI agents structured task planning, execution tracking, and guided research workflows.11MIT
- AlicenseBqualityBmaintenanceRead-only MCP server that reads Stardew Valley saves and answers questions about your farm state, calculates processing/planning, and verifies game rules against the wiki.49MIT
- AlicenseAqualityAmaintenanceMCP server for Project CPU, a blockchain game on EVM. It lets an AI agent play on your behalf: read the world map, reveal cells, build and mine, craft, move resources, trade at marketplaces, and cash out to on-chain $CPU.67775MIT