Skip to main content
Glama
Huoyuuu
by Huoyuuu

gto-recipe-mcp

GregTech Odyssey 的只读配方查询 MCP,可以查谁产 X、谁吃 X、这条配方在哪台机器上跑、跑 N 次的净进出是多少,还能按进料自动配平整条产线。数据来自游戏运行时导出,包含材料分解、矿石处理这类自动生成的配方。

内置数据为普通难度(Normal)。 难度会改写配方和数值。简单或专家难度的玩家,需要在自己的实例里运行一次 exporter/run_export.py(见「更新数据」)。导出器会按该实例 config/gtocore.yaml 中的难度重新导出,并记录到 data/runtime/meta.json。

pi 对话 工具输出

数据版本

项

值

整合包

GregTech Odyssey 0.5.6-beta · 普通难度(Normal)

模组

gtocore 0.5.6-beta · GTCEu 26.7.3 (GTO fork) · GTOLib 26.7.4

游戏

Minecraft 1.20.1 · Forge 47.4.20

内容

51714 条配方 / 183 类 · 2321 台机器与部件 · 1900 种材料

Related MCP server: sqlite-mcp-local

快速开始

git clone https://github.com/Huoyuuu/gto-recipe-mcp && cd gto-recipe-mcp
uv sync && uv run pytest -q

在 MCP 客户端的配置里加入下面这段。pi 的配置文件是 ~/.pi/agent/mcp-adapter.json,Claude Desktop 等客户端格式相同:

"gto-recipes": { "command": "uv", "args": ["--directory", "<仓库路径>", "run", "gto-mcp"] }

重开会话后,直接用中文提问即可,例如:

  • 「谁消耗萤石粉?」

  • 「溶解罐和溶解核心能跑哪些配方?」

  • 「煮解氟碳铈矿跑 10 次要补多少硝酸?」

工具

search recipe producers consumers machines_for machine material trace balance me_parts,v2 新增 plan(自动配平产线)和 balance_v(按电压超频)。

物品可以用 registry id、dust:Bastnasite、Java 字段名(dust:TerbiumNitratePowder)、中文名或模糊词来指定。每次返回约 4 KB,超出部分用 offset 翻页。producers 和 trace 默认隐藏打包、宇宙模拟这类噪音配方,传 include_all=True 可以显示。

# plan:给进料速率和步骤,算出每步 runs/s、所需台数和净缺口;make 步骤按缺口补料
plan({"dust:Bastnasite": 1}, ["fluoro_carbon_lanthanide_cerium_solution47",
     {"id": "hydrofluoric_acid_from_elements", "mode": "make"}], voltage="IV")

# 在 Python 里直接调用:uv run python
from gto_mcp import server as s
print(s.consumers("萤石粉")); print(s.D().resolve("硝酸"))

更新数据

powershell -File exporter/build.ps1
uv run python exporter/run_export.py --instance "<实例目录>"

运行时会用离线账号启动实例,约 70 秒,导出后自动退出并移除导出模组。

已知限制

  • 概率 boost 按 GTCEu 默认公式计算,未核实 GTO 是否改写。

  • 超频按 GTCEu 标准公式计算(plan / balance_v)。GTOLib 的专有并行没有复现,需要时在步骤里传 parallel。

  • 210 台 GTO 多方块的仓室信息来自静态源码。

MIT License

Available Tools

12 tools
balanceC

物料平衡。runs=[{recipe_id, runs}] 或 [{"": runs}];tier(数字或 EV/IV…) 叠加概率 boost(GTCEu 默认公式,未核实 GTO)。

ParametersJSON Schema
NameRequiredDescriptionDefault
runsYes
tierNo
formatNotext

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does disclose one real trait: tier stacks a probability boost using the GTCEu default formula, unverified for GTO. That is genuine context, but it omits whether the call is purely computational/read-only, what output shape to expect, and any cost or side-effect information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entry is a single dense line that front-loads the (nominal) purpose and then the two most important parameter conventions. There is little waste, though the extreme terseness edges toward cryptic rather than optimally structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no annotations, no output schema, and 0% schema coverage, the description leaves the 'format' parameter undocumented and never describes the result of the balance computation. It also fails to position the tool against balance_v, so an agent lacks what it needs to call and interpret it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it partially does: it spells out the accepted shapes of 'runs' ([{recipe_id, runs}] or [{"<id>": runs}]) and explains that 'tier' accepts a number or EV/IV-style values. However, the 'format' parameter (default "text") is never addressed, so the documentation remains incomplete for a 0%-coverage schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with '物料平衡' (material balance), which essentially restates the tool name 'balance' rather than stating a specific verb+resource action. It never says it computes/calculates anything, and it does not distinguish this tool from the sibling balance_v. The agent must infer purpose from the input-format syntax that follows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 mention of the obvious alternative balance_v (or plan/trace, which cover related flows). The description supplies parameter syntax only, leaving tool selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

balance_vC

balance 加电压:三栏同 balance(概率 boost 按该电压),并给每条配方超频后 EU/t、时长与机器秒。runs 同 balance,条目可加 machine/parallel/perfect。

ParametersJSON Schema
NameRequiredDescriptionDefault
runsYes
formatNotext
voltageNoIV

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the computed outputs (EU/t, time, machine-seconds) and optional per-entry fields. It says nothing about whether the operation is read-only, whether it errors on unknown voltages, or how results are ordered/returned. Partial disclosure only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the voltage variant front-loaded and no filler. The nested parentheticals and 'balance' shorthand reduce readability, but the text is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and 0% schema coverage, yet the description leaves the return shape only loosely sketched and defers the meaning of 'runs' to the sibling tool. For a 3-parameter computation tool this is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description should compensate. It explains the voltage parameter ('概率 boost 按该电压') and hints at item-level 'machine/parallel/perfect' fields, but never explains the 'runs' structure, the 'format' parameter, or the default voltage (IV). Substantial gaps remain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It says this is 'balance plus voltage' and adds per-recipe overclocked EU/t, duration and machine-seconds, which is a distinct output from the sibling 'balance'. However, the core purpose is defined only relative to that sibling ('三栏同 balance'), so an agent reading this definition alone cannot tell what balancing actually does. The verb is implied, not stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to pick balance_v over balance, nor any prerequisite or exclusion. 'runs 同 balance' tells the agent the input shape matches, not the situation in which the voltage variant is warranted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

consumersB

消耗该物品/流体的配方,按 EU/t 升序(不含不可消耗输入);降噪规则同 producers。

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYes
limitNo
formatNotext
offsetNo
include_allNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose real traits: output ordering (EU/t ascending), a filtering rule (non-consumable inputs excluded), and a noise-reduction policy inherited from 'producers'. It does not state read-only nature, pagination behavior driven by limit/offset, or what the result rows contain, leaving meaningful gaps for a 5-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely tight single sentence with no filler, and the core scope is front-loaded. The trailing cross-reference to 'producers' noise rules is compact but shifts cognitive load to a different tool, slightly reducing standalone clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with zero schema coverage and no output schema, the description is far too thin: pagination, format selection, and include_all behavior are undefined, and the result shape is unknown. The 'same noise rules as producers' clause also makes completeness dependent on reading a sibling definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are 5 parameters, yet the description only touches the 'item' parameter implicitly ('该物品/流体'). limit, offset, format, and include_all get no explanation anywhere, so an agent must guess their semantics and interactions (e.g., how include_all changes the 'exclude non-consumable' rule).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource in Chinese: recipes that CONSUME this item/fluid, which is a clear query and cleanly opposed to the sibling 'producers'. The sort order (EU/t ascending) sharpens the purpose further. It is not a tautology of the name, though it assumes the reader understands the domain (EU/t, 配方).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly frames this as the counterpart to 'producers' (consumers vs producers), and the exclusion of non-consumable inputs hints at when a result should/should not be expected. However, it never says when to pick this over siblings like 'recipe' or 'search', and '降噪规则同 producers' defers rules to another tool without stating them, forcing a lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

machineC

机器定义:配方类型、仓室能力(PartAbility)、tooltip。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
formatNotext

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden, yet it only lists data facets. It does not say whether this is a read-only lookup, whether an unknown id errors or returns empty, or how 'format' affects output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short line with no wasted words, which is good, but the brevity comes at the cost of under-specification rather than being tight and complete. Front-loading the resource name is fine.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a lookup tool with no annotations, no output schema, and 0% parameter documentation, the description should explain the id semantics and return shape. It does none of these, leaving the definition insufficient to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two parameters: the required 'id' and 'format' (default 'text'). The description never mentions these parameters, so it neither explains what 'id' identifies nor what values 'format' accepts — a real gap the agent must guess at.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('机器定义' / machine definition) and enumerates the facets it covers — recipe type, chamber capability (PartAbility), tooltip. However, it never states the verb (retrieve/lookup?) nor distinguishes itself from the close siblings 'machines_for' and 'producers', so an agent cannot confidently tell which to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives such as 'machines_for', and no prerequisites. The agent is left to infer usage purely from the name and the vague topic list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

machines_forB

能跑该配方类型(或该配方所属类型)的全部机器,多方块优先。

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNotext
recipe_type_or_idYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose one behavioral trait beyond the schema — result ordering where multiblock machines come first — which is genuinely useful, but it says nothing about permissions, cost, or whether the list is exhaustive versus filtered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence, front-loaded with the core outcome (which machines) followed by the qualifying scope. Nothing is wasted, though the parenthetical phrasing is slightly dense for non-Chinese-reading tooling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 must stand alone. It covers the return set and ordering adequately, but leaves gaps on usage versus sibling tools and on the `format` parameter, so it is only minimally sufficient for a two-parameter lookup tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify that `recipe_type_or_id` accepts either a recipe type or a recipe belonging to a type, which resolves the ambiguity of the required parameter, but the `format` parameter is left entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete result set — all machines able to run the given recipe type or the type of a given recipe — and adds a scoping rule (multiblock preferred). It is clear on its own, but it does not distinguish itself from siblings like `producers` or `machine`, so an agent must guess which one to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use statement, no exclusion, and no pointer to an alternative such as `producers` or `machine`. The agent gets no guidance on when this lookup is the right one versus its near-siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

materialC

材料:化学式、组分、flags、形态,以及会不会被自动分解(及对应分解配方)。

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
formatNotext

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the shape of the returned material data (including whether auto-decomposition occurs), but says nothing about read-only nature, error behavior for unknown names, or the meaning of the 'format' output mode.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the resource and enumerates returned attributes with no filler. It is suitably sized, though the heavily compacted list-of-fields style borders on opaque.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 partially compensates by naming the returned fields, which is the main thing an agent needs. However it leaves the format parameter, error handling, and usage context entirely unspecified for a two-parameter lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions either parameter. The required 'name' is inferable from the tool name, but the 'format' parameter (default 'text') and its possible values are undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists exactly what the tool resolves about a material: chemical formula, components, flags, form, and auto-decomposition status with its recipe. This is a specific resource with concrete returned attributes, but it omits an explicit verb and never distinguishes itself from the adjacent 'recipe' sibling, which also covers recipes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus siblings like recipe, producers, or consumers, and no prerequisites or exclusions are stated. The agent must infer usage entirely from the field list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

me_partsA

ME 相关机器部件清单(id、中文名、是否可放进多方块)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the returned fields, which helps, but does not explicitly state that this is a read-only reference list with no side effects or parameters. The noun '清单' implies a safe lookup, but the safety profile is not formally declared.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every element—resource scope and returned fields—earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the zero-parameter schema and absence of an output schema, the description adequately covers what the tool returns by listing the fields in the response. The main remaining gap is routing guidance relative to sibling tools, which is handled separately under usage guidelines.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is an empty object, so there are no parameter semantics to clarify. Per the rubric, a zero-parameter tool receives a baseline of 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource, 'ME-related machine parts,' and enumerates the returned fields (id, Chinese name, multiblock placement flag). It is clear what the tool provides, though it does not explicitly distinguish itself from siblings like machine or material.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as machine, machines_for, or material. The description simply states what the tool lists, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planB

自动配平产线(全部为每秒速率)。feed={物品: 每秒数量};steps=[配方id 或 {id, mode=use|make, share, drive, target, machine, parallel, voltage, runs, perfect}]。 use(默认):按驱动输入可用量定次数,驱动缺省=第一个属于进料或 use 产物、且不是 make 目标的输入;make:按 target 净缺口补料(如氢+氟→氢氟酸);runs:固定次数/秒。 输出净外部需求/净产出/进料剩余/内部循环、总 EU/t,以及每步 runs/s、机器、超频、所需台数。

ParametersJSON Schema
NameRequiredDescriptionDefault
feedYes
stepsYes
formatNotext
voltageNoIV

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose outputs (net demand/output, leftover feed, internal loops, total EU/t, per-step runs/s, machines, overclock, machine count), which is useful behavioral context, but it never states whether the tool is a pure computation with no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: purpose first, then parameter syntax, then mode semantics, then outputs. It is appropriately sized for a complex nested-schema tool, though the run-on style mixes prose with field syntax and slightly taxes readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with no annotations, no output schema, and 0% schema coverage, the description is substantial: it explains inputs, the steps object, the three modes, and the return contents. The main gap is the undocumented top-level format and voltage parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: it documents the feed={item: rate/s} shape and the full steps item schema (id, mode, share, drive, target, machine, parallel, voltage, runs, perfect) plus mode semantics. Only the top-level format and voltage parameters are left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name "plan" is generic, and the description's opening "自动配平产线" (automatically balance a production line) does state a concrete function, but never differentiates it from the very similar siblings balance, balance_v, and trace. An agent can infer it computes a balanced production plan, but not why it should pick this over its near-duplicates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use/make/runs mode explanations describe how steps behave, but there is no guidance on when to choose this tool over balance, balance_v, or trace, and no prerequisites are stated. Usage is implied through the internal mode semantics rather than any when/when-not framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

producersB

产出该物品/流体的配方,按 EU/t 升序;默认隐藏打包/解包/宇宙模拟/回收类,产物>8 种的排后(include_all=True 关闭)。

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYes
limitNo
formatNotext
offsetNo
max_eutNo
include_allNo

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses real behavior beyond structured fields: the EU/t ascending sort, the default-hidden recipe categories, the >8-output ordering, and the include_all override. It omits return shape and pagination behavior, but the filtering/ordering disclosure is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the purpose, then appends sorting and default-filter clauses; every clause carries information. It is slightly packed but has no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No annotations and no output schema, so the description should ideally cover return format, pagination, and max_eut behavior. It covers purpose, sorting, and default filters, but leaves the remaining five parameters and the response shape unexplained, leaving clear gaps for a 6-param query tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, so the description must compensate. It explains only include_all (disables default hiding); limit, offset, format, max_eut, and item are left with bare titles and defaults, so most parameter semantics are undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: recipes that produce the given item/fluid, with a sort order (ascending EU/t). This clearly separates it from the inverse 'consumers' sibling, though no sibling is named explicitly. An agent can identify the tool's role 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The note that default filtering hides packaging/unpacking/universal-simulation/recycling recipes and that include_all=True disables it is actionable usage guidance, effectively 'when you need those categories, toggle this'. However, there is no explicit when-to-use-vs-alternatives statement (e.g., vs consumers, recipe, search), leaving sibling selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recipeC

单条配方全文。id 可为完整 id、type/tail 或唯一的 tail。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
formatNotext

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It reveals that id accepts several forms and that a tail must be unique (implying an ambiguity/precondition error case), but says nothing about the 'format' behavior, error handling, or failure on non-unique tails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the core purpose front-loaded and no filler. It is efficient, though arguably under-specified rather than maximally information-dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, and 0% schema coverage, the description should carry more weight. It leaves the 'format' parameter, return shape, and error conditions undocumented, which is inadequate for a 2-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does add real meaning for 'id' (full id, type/tail, or unique tail) beyond the bare string type, but it completely omits the 'format' parameter and its default, so compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns the full text of a single recipe ('单条配方全文'), which is a clear resource + implied retrieval action. The word '单条' (single) gives a soft contrast against the sibling 'search' tool, but it never names alternatives, so differentiation remains implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like 'search' or 'machine'. It only explains id formats, leaving the agent to infer that this is the detail-fetch counterpart to a list/search tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

traceB

文本树展开上游(up=谁产它、它要什么)/下游(down=谁吃它、产出什么),每层取 EU/t 最低的 per_level 条。

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYes
depthNo
directionNoup
per_levelNo
include_allNo
exclude_typesNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose a non-obvious trait beyond the schema: the result is a truncated ranking that keeps only the per_level entries with the lowest EU/t at each layer, and that output is a text tree. It says nothing about whether the call is read-only, any limits/rate constraints, or how deep the traversal truly goes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense sentence with no filler, and the direction semantics plus the per-level ranking rule are front-loaded. Given six parameters and no supporting schema descriptions, it is arguably terse to the point of under-specification, but as a conciseness measure it wastes nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and 0% schema description coverage over 6 parameters means the description is the only source of truth, and it only covers direction and per_level. The roles of include_all and exclude_types, the meaning of depth, and the actual shape of the returned text tree are all missing, so an agent cannot call this reliably without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, so the description must compensate and only partly does. It usefully supplies the otherwise-missing values for direction (up/down) and explains per_level's selection rule, but item, depth, include_all, and exclude_types are left entirely undocumented, leaving a majority of parameters opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource: it expands a text tree of an item's upstream producers/inputs or downstream consumers/outputs. It is concrete about the traversal direction and ranking rule, so an agent knows exactly what the tool returns. It does not, however, distinguish itself from siblings like producers, consumers, or machines_for, which sound like they cover related ground.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied through the inline definitions of direction: up = who produces it / what it needs, down = who consumes it / what it produces. This tells the agent which direction to pick for a given question. But there is no explicit when-to-use guidance versus the overlapping siblings (producers, consumers, machines_for), and no stated prerequisites or exclusions.

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.

  1. 12 tool updatesv0.1.0
    • First observedbalance
    • First observedbalance_v
    • First observedconsumers
    • First observedmachine
    • First observedmachines_for
    • First observedmaterial
    • First observedme_parts
    • First observedplan
    • First observedproducers
    • First observedrecipe
    • First observedsearch
    • First observedtrace

TDQS

B3.2/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target distinct queries (recipe, producers, consumers, machine, material, me_parts). Some conceptual overlap exists: trace (upstream/downstream tree) relates to producers/consumers (flat lists), and balance vs balance_v differ only by added voltage, though detailed descriptions clearly delineate them.

Naming Consistency4/5

All names use consistent lowercase snake_case, which is readable and predictable. Minor deviations exist: singular/plural mix (machine vs machines_for), a _for suffix, and the balance/balance_v abbreviation, but no chaotic mixing of conventions.

Tool Count5/5

12 tools sit comfortably in the ideal 3-15 range. Each tool exposes a distinct capability (search, lookup, relationship tracing, balancing, planning) that earns its place for a complex recipe-mod domain.

Completeness4/5

The surface covers the recipe lifecycle well: search, recipe detail, producers/consumers, machine and material definitions, tracing, material balancing, production-line planning, and ME parts. Coverage is broad for the domain; only niche gaps (e.g. dedicated item/ore lookups) remain, which search can partially handle.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only querying of a local SQLite database via MCP, with tools to list tables, retrieve schema, and execute SELECT/WITH/EXPLAIN queries.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to query a live Factorio 2.0 world through bounded read-only operations covering spatial, inventory, resource, and diagnostic data over loopback RCON.
    1
    -