codex-tuanjie-mcp
Codex Tuanjie MCP
这是一个面向 Codex 的本地 STDIO MCP 适配器。它复用团结引擎中的官方
cn.tuanjie.codely.bridge Package,让 Codex 可以启动指定团结项目,并通过
Codely Bridge 操作编辑器、场景、GameObject、脚本、资源和控制台。
Codex
-> MCP STDIO
-> codex-tuanjie-mcp
-> Codely Bridge TCP
-> Tuanjie Editor本项目不会替换或修改 Codely Bridge 的实现。适配器只负责发现 Bridge、完成 TCP 协议握手、验证目标项目,并把 Bridge 命令转换为 MCP 工具。
当前能力
通过
tuanjie_start初始化并启动已经存在的团结项目。项目缺少 Bridge 时,将官方
cn.tuanjie.codely.bridge依赖加入Packages/manifest.json。修改 manifest 前在同一目录创建带时间戳的备份。
通过
tuanjie.exe open <project>启动项目;项目已打开时直接复用。等待
.com-unity-codely.json变为ready,连接动态端口并校验项目根目录。编辑器重载或端口变化后,在下一次工具调用前自动重新发现并连接。
暴露编辑器、场景、GameObject、脚本、Shader、资源、Package、UI Toolkit、 截图、Game View、输入模拟、控制台、异步任务和 C# 执行等 22 个 MCP 工具。
当前边界:MCP 必须绑定一个已经由 Tuanjie Hub 创建的项目。它目前不会从空目录 创建团结项目,也不会在多个项目之间自动切换。
Related MCP server: Unity MCP
前置步骤
1. 安装软件
Windows 10 或更高版本。
Node.js 20 或更高版本。
Codex Desktop 或 Codex CLI。
Tuanjie Cowork,以及所需版本的团结引擎和 Tuanjie Hub。
团结引擎 2021.3 或更高版本。官方 Codely Bridge 文档要求 Unity/团结引擎 2021.3 或更高版本。
安装或更新 Tuanjie Cowork 后应重新启动 Cowork 和 Codex,确保其提供的
tuanjie.exe 对 MCP 进程可见。可先验证:
tuanjie.exe --help
tuanjie.exe editors list-installed2. 在 Tuanjie Hub 创建项目
先通过 Tuanjie Hub 创建并注册项目,确认项目根目录至少包含:
Assets/
Packages/manifest.json
ProjectSettings/ProjectVersion.txt也可以使用 Tuanjie CLI 创建项目,但必须先确定公开的 1.x.x 引擎版本和准确的
模板 ID:
tuanjie.exe template list 1.10.1
tuanjie.exe projects create "MyGame" `
--path "D:\games" `
--editor-version 1.10.1 `
--template "<template-id>"不要把 2022.3.xxtxx 这类内部编辑器版本传给 --editor-version,应使用 Hub
显示的公开 1.x.x 版本。
3. 准备 Codely Bridge
通常不需要手动安装。首次调用 tuanjie_start 时,如果项目 manifest 中没有
Bridge,MCP 会查询团结官方 Package Registry、写入依赖,然后启动编辑器等待
Package Manager 完成安装。
如需手动安装,可在团结编辑器中打开:
Window -> Package Manager -> Tuanjie Registry搜索 Tuanjie AI 并安装 Codely Bridge。官方说明见
Codely Bridge 安装指南。
开发与构建
克隆仓库:
git clone https://github.com/g82v68xftk-ux/codex-tuanjie-mcp.git
Set-Location codex-tuanjie-mcp在源码目录执行:
npm ci
npm testnpm test 会先执行 TypeScript 构建,再运行协议帧、配置发现、Bridge 握手、
请求关联、Package 初始化和项目启动测试。单独构建可执行:
npm run build安装到 Codex
约定每个 MCP 使用一个独立目录:
C:\Users\<username>\.codex\mcp\codex-tuanjie-mcp把构建后的 dist、package.json、package-lock.json 和本 README 放入该目录,
然后在安装目录安装运行时依赖:
npm ci --omit=dev注册 MCP,并把它绑定到目标团结项目:
codex mcp add tuanjie -- node `
"C:\Users\<username>\.codex\mcp\codex-tuanjie-mcp\dist\src\index.js" `
--project "D:\path\to\tuanjie-project"检查注册结果:
codex mcp get tuanjie注册或更新 MCP 后,需要新建 Codex 任务或重启 Codex,当前已经运行的任务不会 动态加载新增工具。
使用方法
启动并连接项目
在 Codex 中直接要求“启动团结项目”,或显式调用 tuanjie_start:
{
"install_bridge": true,
"wait_timeout_seconds": 300
}执行流程如下:
验证项目
-> 检查/安装 Codely Bridge
-> 检查现有 Bridge 连接
-> 必要时调用 tuanjie.exe open
-> 等待 Bridge ready
-> 连接并验证项目根目录可选参数:
install_bridge:默认true。设为false时,项目必须已经安装 Bridge。bridge_package_version:指定 Bridge Package 版本;省略时查询官方 Registry。wait_timeout_seconds:等待编辑器和 Bridge 的时间,默认 300 秒,范围 10-900 秒。
检查连接
tuanjie_bridge_status:读取 Bridge 配置和当前连接状态,不主动重连。unity_refresh:重新读取动态端口、重连并验证项目根目录。
连接成功后即可使用 unity_editor、unity_scene、unity_gameobject、
unity_script、unity_asset 等工具操作项目。
配置发现顺序
适配器按以下顺序定位 Bridge:
--config <path>或TUANJIE_BRIDGE_CONFIG。--project <path>或TUANJIE_PROJECT_PATH。MCP 进程工作目录及其父目录。
建议始终在 Codex 注册参数中使用 --project 明确绑定项目,避免连接到错误的
编辑器实例。
验证和诊断
对实际项目探测 Bridge:
npm run probe -- --project "D:\path\to\tuanjie-project"通过真实 MCP STDIO 完成工具列表、启动、状态和编辑器读取验证:
npm run smoke:mcp -- --project "D:\path\to\tuanjie-project"常见问题:
找不到
tuanjie.exe:安装或更新 Tuanjie Cowork,然后重启 Cowork 和 Codex。Codex 中没有
tuanjie_start:新建任务或重启 Codex,确认codex mcp get tuanjie显示enabled: true。等待 Bridge 超时:检查编辑器是否被登录、许可证、Package 安装或编译弹窗阻塞。
项目不匹配:检查 MCP 注册中的
--project是否指向当前编辑器打开的项目。MCP 工具不可用:查看 Codex MCP 日志,以及
C:\Users\<username>\.codely\logs。
安全边界
MCP 启动时不会自动弹出编辑器;只有显式调用
tuanjie_start才会启动项目。已发送给 Bridge 的命令在连接异常后不会自动重试,避免重复执行写操作。
Play Mode 写入限制仍由官方 Codely Bridge 决定。
execute_csharp_script以及多数管理工具可以修改项目,应在 Git 工作区中使用。Bridge 已存在时不会重写
Packages/manifest.json;缺少 Bridge 时会先备份再修改。
项目结构
src/
bridge-client.ts Bridge TCP 握手、连接和请求处理
config.ts .com-unity-codely.json 发现与解析
framing.ts 8 字节大端长度帧编码/解码
project-start.ts Bridge 初始化、tuanjie.exe 启动和 ready 等待
tool-definitions.ts MCP 工具定义
index.ts STDIO MCP 服务入口
test/ Node.js 测试协议说明
Bridge 欢迎消息:
WELCOME UNITY-TCP 1 FRAMING=1 SERVER_VERSION=2。客户端帧:
CLIENT_VERSION=2、PLATFORM=codex。数据帧使用 8 字节无符号大端长度前缀。
单帧最大 64 MiB。
每条命令包含
type、params和request_id。
许可证
本项目采用 MIT License。
Available Tools
22 toolsexecute_csharp_scriptExecute C# in TuanjieADestructive
Executes inline C# or an existing .cs file through the official Bridge. Provide script or script_path. This can mutate the project or editor state.
| Name | Required | Description | Default |
|---|---|---|---|
| script | No | ||
| summary | No | ||
| script_path | No | ||
| capture_logs | No | ||
| execution_mode | No | ||
| record_game_view | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read/write and destructive, but the description adds useful concrete context: 'This can mutate the project or editor state.' It also reveals the official Bridge execution path, which is behavior beyond what the structured annotations 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 short sentences, each earning its place: the operation, the primary parameters, and the side-effect warning. It is front-loaded and contains no filler or redundant restatement of the title.
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 code-execution tool with 6 parameters, no output schema, and destructive annotations, three sentences are insufficient. It omits how logs are captured, what execution_mode editor/play changes, how record_game_view results are surfaced, and what output or response the agent should expect.
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%, so the description needed to compensate by explaining the 6 parameters. It only clarifies that script or script_path should be provided; summary, capture_logs, execution_mode, and record_game_view are left entirely to name inference.
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 clear verb ('Executes'), a specific resource ('inline C# or an existing .cs file'), and the execution channel ('official Bridge'). This distinguishes it from siblings targeting shaders, assets, packages, or custom tools, and it explicitly names the two accepted input forms.
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 given on when to use this tool versus unity_script, execute_custom_tool, or other siblings. The only directional advice is to provide script or script_path, which is invocation detail rather than usage-selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_custom_toolExecute Custom Tuanjie ToolBDestructive
Executes a custom tool registered by the official Codely Bridge package. Pass tool_name and an optional parameters object.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | ||
| parameters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already include destructiveHint=true, so the agent knows this can be destructive. The description adds the context that the tool comes from the official Codely Bridge package, but it does not disclose that executing a custom tool may have arbitrary side effects or depend entirely on the registered tool's behavior. No contradiction with annotations exists.
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 one short sentence with no filler. It front-loads the core action and includes the relevant invocation detail 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?
For a generic custom-tool executor with no output schema and arbitrary parameters, this description is incomplete. It does not mention how to discover registered tool names, what parameters mean for different tools, or that behavior and return values vary by tool. The destructive annotation covers risk partially, but the operational workflow is underexplained.
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 0% schema description coverage, the description needed to explain parameter meaning, but it only restates the names: 'Pass tool_name and an optional parameters object.' It does not clarify what tool_name values are valid, how the parameters object is structured, or how it is passed to the underlying custom tool.
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 a specific action ('Executes') and a resource class ('a custom tool registered by the official Codely Bridge package'). It is understandable on its own, though it does not explicitly differentiate itself from sibling tools like unity_custom_tools or execute_csharp_script.
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 when-to-use guidance is provided. The description tells the agent to pass tool_name and parameters, but never explains when this tool should be chosen over alternatives, when it should not be used, or how to discover valid custom tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tuanjie_bridge_statusTuanjie Bridge StatusARead-onlyIdempotent
Reads the active .com-unity-codely.json and reports the adapter connection state without reconnecting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful context beyond annotations by naming the exact config file involved and explicitly promising no reconnection 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clean sentence that front-loads the action ('Reads'), then the resource, then the outcome, and finally the key side-effect guarantee. There is no filler or redundant repetition of the tool name or annotations.
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, read-only status tool with strong annotations, the description is largely complete. The main minor gap is that no output schema exists and the description does not outline what the reported connection states look like, but this is not essential for invoking the tool 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?
There are zero parameters, so the baseline is 4. The description clarifies that the tool operates on the active config file automatically, which effectively explains why no parameters are 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?
Description states a specific verb ('Reads'), a specific resource (the active .com-unity-codely.json), and a clear outcome ('reports the adapter connection state'). It also distinguishes itself from connection-establishing operations by adding 'without reconnecting'.
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 'without reconnecting' implies this is the safe, read-only choice when only status is needed, which provides some usage context. However, it does not explicitly name alternatives or say when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tuanjie_startInitialize and Start TuanjieA
Ensures the official Codely Bridge package is present in the configured project, opens that project with tuanjie.exe, waits for Bridge readiness, and verifies the connected project. If the editor is already connected, it is reused. This can update Packages/manifest.json when the Bridge package is missing.
| Name | Required | Description | Default |
|---|---|---|---|
| install_bridge | No | ||
| wait_timeout_seconds | No | ||
| bridge_package_version | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all-neutral false flags (no readOnly/destructive/idempotent hints), so the description carries the burden. It discloses a real side effect ('This can update Packages/manifest.json when the Bridge package is missing'), the conditional reuse of an already-connected editor, and the blocking wait-for-readiness sequence. Minor gap: it never describes failure/timeout behavior, but the disclosed mutation side effect is well handled. No contradiction with 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?
The content is reasonably compact and key actions are front-loaded, but the whole description is one long run-on sentence chaining four clauses with ellipses. It would be more consumable broken into clear steps; it is denser than needed but has no wasted words.
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 complex stateful tool with no output schema, neutral annotations, and 0% parameter coverage, the description covers the core flow but omits return-value semantics, success criteria, and what happens on timeout or package-install failure. These are meaningful gaps for an agent deciding whether a call succeeded.
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%, so the description must compensate, but it only weakly maps to parameters: wait_timeout_seconds is implied by 'waits for Bridge readiness' and install_bridge by 'Ensures... package is present'. bridge_package_version is never mentioned, and the meaning of install_bridge=false is left ambiguous. With zero schema help, the description fails to fully explain the 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?
The description states a specific, multi-step verb chain ('Ensures the Bridge package is present... opens that project with tuanjie.exe, waits for Bridge readiness, and verifies the connected project') tied to a clear resource. It reads as a start/initialize operation and is clearly distinguishable from its close sibling tuanjie_bridge_status, which is the status-check counterpart.
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 conveys the workflow (ensure package, open, wait, verify, reuse existing connection) which implies this is the entry-point tool before other operations, but it never explicitly states when to use this tool versus tuanjie_bridge_status or the other unity_* siblings, nor gives any 'don't use when' guidance. Usage context is implicit, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_assetTuanjie Asset ManagerADestructive
Creates, imports, modifies, searches, and inspects project assets. Supported actions: create_batch, edit_batch, ensure_has_meta, ensure_meta_integrity, import, create, modify, delete, duplicate, move, rename, search, get_info, create_folder, get_components. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the listed actions like delete, modify, move, and duplicate are consistent with that. The description adds the useful note that action-specific parameters are passed through unchanged, but it does not disclose side effects or what happens to asset metadata.
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 compact: an opening summary, an exhaustive action list, and one valuable pass-through note. It front-loads the core purpose and avoids empty filler.
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?
This is a high-complexity dispatcher with 15 actions, an open schema, and no output schema, so per-action parameter guidance or examples are essential. The description only lists action names and gives no details on required arguments, return values, or failure behavior, leaving most actions underspecified.
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 0% and the schema only declares the action enum while allowing additional properties. The description mentions that action-specific parameters are passed through unchanged, but it names none of them, leaving the agent unable to construct parameters for actions like create_batch, edit_batch, or ensure_meta_integrity.
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 manages project assets and enumerates the supported operation families and 15 concrete actions. It is easily distinguishable from siblings like unity_shader, unity_package, and unity_scene, which target other 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 description gives clear context: use this tool for creating, importing, modifying, searching, and inspecting project assets. It does not explicitly name alternatives or exclusions, but no sibling tool covers generic asset management, so the usage context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_bakeTuanjie Bake ManagerBDestructive
Starts, waits for, or clears navigation and lighting bakes. Supported actions: bake_navmesh, bake_lighting, wait_for_bake, clear_navmesh, clear_baked_data. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag the tool as destructive, and the description adds that it can 'wait for' a bake, suggesting blocking behavior. However, it does not explain what clearing does in detail, whether waits can time out, or any side effects beyond what the annotation already conveys.
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 concise and front-loaded: the first sentence states the core purpose, the second lists valid actions, and the third explains parameter passthrough. Every sentence earns its place and there is no filler.
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 multiple actions, destructive behavior, additionalProperties, and no output schema, the description is too thin. It omits per-action parameters, return behavior, and blocking semantics, leaving a capable agent to guess at important invocation details.
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 the description largely repeats the enum values. It mentions that action-specific parameters are passed through unchanged, but it does not enumerate or explain those parameters, so the agent still lacks enough information to construct calls for non-obvious actions.
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 that the tool starts, waits for, or clears navigation and lighting bakes, and it lists the supported actions. This makes the resource and operations identifiable, though it does not explicitly distinguish itself from sibling tools by name.
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 when to use the tool—when performing bake-related operations—but it provides no explicit guidance about when not to use it or which alternatives to prefer. The action list gives some context, but exclusions and alternative routing are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_consoleTuanjie Console ReaderBDestructive
Reads or clears Tuanjie Editor console entries. Supported actions: get, clear. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description's 'clear' action aligns with them. The description adds the note that action-specific parameters are passed through unchanged, which is useful, but it does not clarify side effects of clearing or what a 'get' returns. No contradiction exists.
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 short, front-loaded, and every sentence contributes something: the first states the core behavior, and the second discloses pass-through behavior for extra parameters. It is efficient, though it sacrifices detail that would improve overall usefulness.
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?
The tool has no output schema and the description does not describe the return format for 'get', the full consequences of 'clear', or what action-specific parameters are valid. For a tool that accepts open-ended additional properties, the lack of this context makes successful invocation uncertain.
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%, so the description must compensate for parameter meaning. It only repeats the action enum from the schema and states that additional parameters are passed through unchanged, without naming or explaining any of those parameters. This leaves the parameter contract largely opaque.
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 resource (Tuanjie Editor console) and the supported actions (get, clear), using specific verbs. It is a clear, functional statement, although it does not explicitly distinguish this tool from sibling tools beyond the resource name.
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: use this tool when you need to read or clear Tuanjie Editor console entries. It does not discuss when not to use it, nor does it compare against sibling tools such as unity_dialog or execute_custom_tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_custom_toolsList Custom Tuanjie ToolsARead-onlyIdempotent
Lists custom tools registered by project extensions in the official Codely Bridge. Use the returned names with execute_custom_tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds context about what is listed (custom tools registered by project extensions in the Codely Bridge) and that the result is a set of names usable with another 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?
Two short sentences with no filler. The first sentence states the tool's action and scope; the second gives actionable guidance for using the result. Everything earns its place.
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, read-only listing tool, the description fully covers what an agent needs: what is listed, where the tools come from, and how to use the returned names. Annotations cover the safety aspects, and no output schema is necessary for such a simple list.
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 and the schema is empty, so there is nothing to document. This is the baseline for a no-parameter tool, and the description correctly avoids inventing 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?
The description uses a specific verb and resource: 'Lists custom tools registered by project extensions in the official Codely Bridge.' It also distinguishes itself from the sibling execute_custom_tool by explaining that returned names are meant for that tool.
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 clearly implies usage: call this tool to discover custom tool names, then pass them to execute_custom_tool. It does not explicitly state when not to use it, but the context is clear enough for a zero-parameter listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_dialogTuanjie Dialog ManagerBDestructive
Clicks a button in a modal editor dialog. Supported actions: click. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and non-idempotent behavior, so the safety profile is covered. The description adds that parameters are passed through unchanged and that the context is a modal editor dialog, but it does not explain what the click actually applies to or what side effects may occur.
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 short and front-loaded with the core action. Both sentences earn their place, though 'Supported actions: click' is mostly redundant with the verb 'clicks'.
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?
This is a destructive tool with no output schema and no parameter-level documentation. The description omits how the target dialog or button is identified, what the accepted pass-through parameters are, and what consequences the click may have, leaving an agent with insufficient detail to invoke it reliably.
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 the description only restates the 'click' enum value without adding meaning. The claim that additional action-specific parameters are passed through unchanged is useful, but no names, types, or purposes are provided, so the description does not compensate for the schema's total lack of parameter documentation.
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 action and resource: it clicks a button in a modal editor dialog. This distinguishes it from the sibling tools by focusing on dialog interactions, though it doesn't explicitly contrast itself with any sibling.
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 when to use the tool: whenever a click action in a modal editor dialog is needed. However, it provides no explicit when-not-to-use guidance or alternatives, leaving the selection logic largely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_editorTuanjie Editor ControllerCDestructive
Controls and inspects the Tuanjie Editor. Supported actions: publish_dirty_state_if_needed, wait_for_compile, wait_for_stop, request_compile, start_compilation_pipeline, get_compilation_summary, wait_for_idle, play, pause, stop, step, get_state, get_current_state, get_project_root, get_windows, get_active_tool, get_selection, drain_agent_input, set_active_tool, ensure_tag, add_tag, remove_tag, get_tags, ensure_layer, add_layer, remove_layer, get_layers, focus_window. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark destructiveHint=true, and the description adds little behavioral context beyond the list of action names. The pass-through note about action-specific parameters is mildly useful, but the description does not explain side effects, compilation behavior, editor state changes, or what agents should be cautious about given the destructive hint.
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 front-loaded with a clear opening, but most of it is a 28-item action list that duplicates the schema enum. This is not an efficient use of the description and pushes out room for more useful behavioral or parameter documentation.
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 28-action dispatcher with no output schema and no per-action parameter documentation, this description is grossly incomplete. It does not tell agents what any action returns, which actions are destructive, when compilation is needed, or how to invoke even common actions like play or set_active_tool 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 description coverage is 0%, and the description only repeats the action enum and says additional action-specific parameters are passed through unchanged. This gives agents no meaningful detail about what parameters each action expects, how to format them, or which ones are required for specific actions.
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 opening phrase 'Controls and inspects the Tuanjie Editor' states a clear verb and resource, and the tool is reasonably distinguished from sibling tools by targeting the editor itself. However, the purpose is extremely broad because it is a 28-action dispatcher, and the description does not clarify what each action accomplishes.
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 guidance about when to use this tool versus the many specific sibling tools such as unity_gameobject, unity_scene, or unity_script. The description neither states exclusions nor recommends this tool for particular workflows, leaving the agent to infer usage solely from the action names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_gameobjectTuanjie GameObject ManagerADestructive
Creates, modifies, finds, and inspects GameObjects and components. Supported actions: create_batch, edit_batch, ensure_component, ensure_renderer_material, ensure_mesh_collider_mesh, ensure_prefab_default_sprite, create, modify, delete, find, list_children, get_components, add_component, remove_component, set_component_property, select. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, and the description aligns by mentioning delete and modify among supported actions. It also adds the useful pass-through note for action-specific parameters. However, it does not disclose per-action side effects, required state, or return 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?
The description is front-loaded with a clear summary, but the long 'Supported actions' list duplicates the enum already present in the input schema. The pass-through note is valuable, but the enumeration adds little beyond what structured data already conveys.
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?
This is a high-complexity tool with 16 actions, no output schema, and no per-action parameter documentation. The description is sufficient for selecting the tool, but not for correctly invoking any specific action, since required parameters and return semantics are almost 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 coverage is 0%, and the description only says that action-specific parameters are passed through unchanged. It lists the action enum values that are already present in the schema, but provides no meaning, names, or formats for the additional parameters an agent would need to actually call each action.
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 first sentence clearly states the tool's scope: creating, modifying, finding, and inspecting GameObjects and components. The resource domain is explicit and distinct from sibling tools like unity_shader, unity_asset, and unity_scene.
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 clear context by naming the exact resource types and listing 16 concrete actions, so an agent can infer when this tool is appropriate. It does not explicitly name alternatives or state when not to use it, but the domain is specific enough to route most GameObjects tasks here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_gameviewTuanjie Game View ResolutionADestructive
Reads or changes the Game View resolution. Supported actions: get_resolution, set_resolution, list_resolutions. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive and non-read-only; the description reinforces this by saying it 'changes' the resolution, and it further clarifies that get_resolution is a read and set_resolution is a mutation. It adds the pass-through behavior of extra parameters, but it does not disclose side effects, reversibility, or required editor state beyond what annotations already imply.
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 two sentences with no wasted words: the first states the core operation and lists actions, and the second notes pass-through behavior. It is front-loaded and easy to scan.
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 additionalProperties=true and no output schema, the description should document the action-specific parameters and what each action returns. It provides the action enum but leaves set_resolution's required values unspecified and gives no return expectations, so an agent has to guess or look elsewhere.
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 the description merely restates the action enum that is already in the schema. The line about action-specific parameters being 'passed through unchanged' acknowledges their existence but never names or describes them, such as width/height for set_resolution, leaving the agent unable to construct a valid call from the description.
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 opens with a specific verb and resource ('Reads or changes the Game View resolution') and enumerates the three supported actions, so an agent knows exactly what the tool can do. The action list differentiates it from broader Unity tools like unity_screenshot or unity_editor.
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 supported actions imply the tool is for getting, setting, or listing resolutions, which is a clear enough context for straightforward use. However, there is no explicit when-to-use versus alternatives, no exclusions, and no mention of when a sibling such as unity_screenshot would be more appropriate. The 'passed through unchanged' clause is useful but is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_inputTuanjie Input SimulatorADestructive
Simulates mouse, keyboard, and virtual input devices, primarily in Play Mode. Supported actions: mouse_click, mouse_move, mouse_drag, mouse_scroll, mouse_down, mouse_up, key_press, key_down, key_up, type_text, create_virtual_devices, destroy_virtual_devices. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructive/non-read-only/non-idempotent behavior. The description adds that virtual devices can be created/destroyed and that extra parameters pass through unchanged, but it does not disclose effects such as OS-level input injection, required Play Mode state, or cleanup obligations.
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 with no filler; the purpose is front-loaded and the action list is compact enough to scan. Every sentence earns its place.
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 multi-action input tool with no output schema and no parameter descriptions, this is under-specified. An agent cannot determine required parameters for each action, ordering dependencies (e.g., creating virtual devices first), or return/error behavior, which are necessary to invoke the tool 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 description coverage is 0%; the only documented parameter is the action enum. The description repeats the enum and adds a pass-through note, but it never explains action-specific parameters (e.g., coordinates, buttons, key codes, text content), leaving the main invocation detail undocumented.
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 'simulates' with clear resources: mouse, keyboard, and virtual input devices. The supported action enum is listed, and 'input simulator' clearly separates this from the sibling Unity editor/tooling 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?
Gives a clear context: 'primarily in Play Mode' and enumerates exactly which actions are supported. It does not explicitly exclude alternatives, but with a single input-focused tool among siblings the usage context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_jobTuanjie Job ManagerBDestructive
Checks, lists, or cancels asynchronous Bridge jobs. Supported actions: status, check, list, cancel. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true, and the description aligns by including 'cancel'. The description adds useful context that additional parameters are passed through unchanged, but it does not disclose side effects, return format, or whether non-cancel actions are safe reads.
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 two sentences with no filler. It front-loads the core purpose and action list, making it quick to parse and appropriately sized.
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 an open and potentially destructive dispatcher with no output schema, the description lacks job targeting details, return/status semantics, and examples of supported pass-through parameters. It is not complete enough for an agent to invoke all actions 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 description coverage is 0%, so the description carries the burden of explaining parameters. It only states that extra parameters are passed through unchanged, without naming or describing action-specific parameters, leaving the agent without enough detail to construct them confidently.
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 uses specific verbs ('Checks, lists, or cancels') and identifies the resource ('asynchronous Bridge jobs'), with an explicit action list. It is clear about the tool's function, though it does not explicitly differentiate itself from siblings such as tuanjie_bridge_status.
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, nor are there any exclusions or context for choosing among status/check/list/cancel. The usage context is only implied by the action names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_packageTuanjie Package ManagerADestructive
Installs, removes, waits for, or lists UPM packages. Supported actions: install_package, remove_package, wait_for_upm, list_packages. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-read-only and destructive, and the description adds that action-specific parameters are passed through unchanged. It does not explain wait_for_upm's blocking behavior, timeouts, or side effects beyond remove/install, so behavioral coverage remains partial.
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-load the purpose and supported actions, then give the pass-through rule. No filler or duplicated schema content beyond the necessary action list.
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 dispatcher tool with one enum parameter and dynamic additional properties, the description is workable but thin: it omits what wait_for_upm waits on, what list_packages returns, and what the action-specific parameters are called. This weakens an agent's ability to invoke install_package or remove_package correctly without external knowledge.
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 one declared parameter, action, is fully enumerated by the JSON schema; the description mostly restates those enum values. The useful extra is that additional action-specific parameters are passed through unchanged, but the description does not name or explain the meaningful per-action 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?
The first sentence uses specific verbs (installs, removes, waits for, lists) attached to a concrete resource (UPM packages), and the enumerated action list matches the schema enum. This clearly identifies the tool's function and separates it from the sibling Unity/Tuanjie 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?
The description establishes clear context: use this tool for UPM package operations, with the action enum delimiting the supported operations. It does not explicitly compare against alternatives, but no sibling tool claims package management, so the resource scoping is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_refreshRefresh Tuanjie Bridge ConnectionARead-onlyIdempotent
Re-reads .com-unity-codely.json, reconnects to the current dynamic Bridge port, and verifies the project root.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it readOnly, idempotent, and non-destructive; the description adds concrete behavior by naming the exact config file re-read, the reconnect to the dynamic port, and the project-root verification. No contradiction with 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?
A single front-loaded sentence lists the full sequence of actions with no filler. Every clause earns its place.
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, idempotent refresh operation with rich annotations, the description covers the essential behaviors: config re-read, reconnect, and verification. A minor gap is not stating what happens if the config file or project root is missing, but this is low 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?
The tool has zero parameters and 100% schema coverage, so there is nothing for the description to add. Baseline 4 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 names a specific resource (.com-unity-codely.json), a clear action (re-reads and reconnects to the Bridge port), and a verification step. This is enough to distinguish unity_refresh from siblings like tuanjie_bridge_status or unity_editor.
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 explains the mechanics but gives no explicit guidance on when to call it versus alternatives such as tuanjie_bridge_status or tuanjie_start. There is no mention of prerequisites or situations where refresh is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_sceneTuanjie Scene ManagerADestructive
Creates, opens, saves, and inspects scenes. Supported actions: ensure_scene_open, ensure_scene_saved, create, load, save, get_hierarchy, get_active, get_build_settings. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds that multiple actions exist and that extra parameters pass through unchanged, but it does not disclose specifics like overwriting unsaved changes or side effects on the project. No contradiction with 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?
The description is two sentences long, front-loads the core purpose, and then provides the complete action list plus a crucial note about extra parameters. Every sentence adds value without redundancy or fluff.
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?
Despite a clear overview, the tool is a multi-action dispatcher with no per-action parameter documentation, no output schema, and no side-effect details. Agents can understand what the tool does but not reliably execute actions that require action-specific arguments, making the description incomplete for real 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 schema only documents the action enum, and the description essentially repeats those enum values. It mentions that action-specific parameters are passed through unchanged, but it does not explain what those parameters are, which actions require them, or their formats. With 0% schema description coverage, this leaves agents guessing on how to correctly call most actions.
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 scope with specific verbs ('Creates, opens, saves, and inspects scenes') and then enumerates every supported action. This makes the tool's purpose unmistakable and naturally distinguishes it from sibling tools that operate on shaders, assets, packages, or UI elements.
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 when to use the tool: whenever a scene-related operation such as opening, saving, loading, or inspecting is needed. However, it does not explicitly mention alternatives, exclusions, or when a sibling tool would be more appropriate, leaving usage guidance mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_screenshotTuanjie Screenshot CaptureBDestructive
Captures editor, scene, camera, asset, or UI views and controls Game View recording. Supported actions: capture_game_view, capture, capture_scene_view, capture_scene_camera, capture_main_camera, capture_specific_camera, capture_asset, capture_ui_toolkit, start_game_view_recording, finish_game_view_recording. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the safety profile is covered. The description adds that the tool can both capture views and control Game View recording, and that action-specific parameters are passed through unchanged, but it does not detail side effects, output artifacts, or recording lifecycle 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?
The description is compact: two sentences, front-loaded purpose, and a necessary enumeration of supported actions. There is no filler or repetition of schema data.
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, yet the description does not explain return values, output files, or effects of starting/finishing recording. With ten actions and open passthrough of extra parameters, plus a destructive annotation, the description leaves key invocation-relevant details 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?
The schema has one required enum parameter with 0% description coverage, so the description must compensate. It enumerates all ten actions and groups them conceptually as captures versus recording controls, adding meaning beyond the raw enum. However, it does not describe what the action-specific parameters are or how they affect each action, only noting that they are passed through unchanged.
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 opens with an active verb ('Captures') and names the concrete resources: editor, scene, camera, asset, and UI views, plus Game View recording control. This clearly distinguishes it from sibling tools like unity_gameview or unity_ui_toolkit, which have different scopes.
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 given about when to use this tool versus alternatives, and no exclusions or selection conditions are stated. The supported-actions list implies usage, but an agent is left to infer when this screenshot tool should be preferred over the many related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_scriptTuanjie Script ManagerCDestructive
Creates, reads, edits, validates, and deletes C# scripts under Assets. Supported actions: create, read, update, delete, apply_text_edits, validate, edit, get_sha. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description honestly lists non-destructive actions (read, validate) alongside destructive ones (update, delete), so there is no contradiction. It adds the 'under Assets' scope but does not explain side effects, file rewrite behavior, or Unity refresh implications.
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 concise and front-loaded with the resource and operations. The action list is slightly redundant ('update', 'edit', 'apply_text_edits' overlap), but there is no filler or unnecessary length.
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 multi-action destructive file-management tool with an open additionalProperties schema and no output schema, this is incomplete. It omits per-action parameter expectations, return values, and behavioral outcomes, so an agent cannot reliably invoke it without guessing.
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 schema has zero description coverage and only defines the action enum. The description says additional action-specific parameters are passed through unchanged, which is useful but vague; it does not name or document the parameters required for each of the eight actions, leaving a significant 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?
The description states a specific resource ('C# scripts under Assets') and a clear set of operations (create, read, edit, validate, delete), so an agent knows what the tool manages. It doesn't explicitly contrast with sibling tools like execute_csharp_script or unity_shader, but 'C# scripts under Assets' scopes it well 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?
There is no guidance on when to use this tool versus alternatives such as execute_csharp_script or unity_custom_tools. The description does not mention prerequisites, exclusions, or when each action should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unity_shaderTuanjie Shader ManagerCDestructive
Inspects render pipelines and manages shader compilation or previews. Supported actions: detect_render_pipeline, ensure_material_shader_for_srp, compile, preview. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the useful behavioral note that action-specific parameters are passed through unchanged, and it lists the action categories, which goes beyond the annotations. However, it stays silent on the concrete effects of compile or preview despite destructiveHint=true, so agents get no context about what may be modified.
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 concise sentences with no filler; the supported actions and pass-through behavior are front-loaded. It is compact, though it could use a bit more per-action detail 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?
For a multi-action dispatcher with no output schema and no parameter documentation, this is under-specified: per-action inputs, outputs, side effects, and failure modes are absent. The enum names convey intent but not enough to invoke compile or ensure_material_shader_for_srp 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 parameter coverage is 0% and the description mostly restates the action enum already present in the schema. The note that extra parameters are passed through is informative but does not tell the agent what parameters each action expects, leaving the additionalProperties space completely undocumented.
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 opens with a clear verb-and-resource statement, 'Inspects render pipelines and manages shader compilation or previews', and enumerates all four supported actions, distinguishing it from the sibling asset/package/scene tools. It is not a 5 because the individual actions are only named, not explained, so an agent still has to infer what each one does.
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 or comparison with alternatives such as execute_csharp_script or unity_menu. The phrase 'Inspects render pipelines' gives a rough context, but nothing tells the agent when to prefer this tool over a sibling 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.
unity_ui_toolkitTuanjie UI Toolkit ManagerBDestructive
Creates and links UI Toolkit assets. Supported actions: ensure_panel_settings_asset, link_uss_to_uxml, create_uxml, create_uss. Additional action-specific parameters are passed through unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint: true, so the description does not need to repeat that. The description adds the note that 'Additional action-specific parameters are passed through unchanged', which gives insight into how the tool handles extra parameters. However, it does not elaborate on potential side effects or overwrite behavior beyond what annotations imply, so it adds only modest behavioral 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 concise: two sentences with no fluff. The first sentence states the purpose and lists the supported actions, and the second clarifies parameter handling. The key information is front-loaded, making it easy to scan.
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?
The description is not complete enough for an agent to use the tool correctly. While it lists the action names, it does not explain what each action does or what parameters each requires. The schema also lacks descriptions, and the 'additionalProperties' are not enumerated. The agent is left with significant ambiguity about how to construct a valid call, especially for actions like 'create_uxml' or 'link_uss_to_uxml'.
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 schema has only the 'action' parameter with an enum and allows additional properties. The description lists the action values, which duplicates the enum, but also explains that extra parameters are passed through unchanged, which clarifies the additionalProperties behavior. However, it does not specify what those action-specific parameters are, so it only partially compensates for the 0% schema description 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 clearly states the tool's role: 'Creates and links UI Toolkit assets' and enumerates four specific supported actions. This distinguishes it from sibling tools like unity_asset or unity_shader by targeting UI Toolkit resources specifically. It lacks a bit of precision on what 'links' means, but the action list helps.
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 does not provide any guidance on when to use this tool versus alternatives. It does not mention conditions, prerequisites, or contrast with other Unity tools such as unity_asset or unity_shader. The agent is left to infer usage from the purpose statement alone.
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
v0.2.0- First observed
execute_csharp_script - First observed
execute_custom_tool - First observed
tuanjie_bridge_status - First observed
tuanjie_start - First observed
unity_asset - First observed
unity_bake - First observed
unity_console - First observed
unity_custom_tools - First observed
unity_dialog - First observed
unity_editor - First observed
unity_gameobject - First observed
unity_gameview - First observed
unity_input - First observed
unity_job - First observed
unity_menu - First observed
unity_package - First observed
unity_refresh - First observed
unity_scene - First observed
unity_screenshot - First observed
unity_script - First observed
unity_shader - First observed
unity_ui_toolkit
TDQS
Scored across 22 tools
Tools are grouped by clear editor subsystems (asset, scene, GameObject, package, console), so an agent can usually choose the right one from the name. A few overlaps exist—unity_asset and unity_gameobject both expose get_components, and shader/editor compile actions could be confused—but descriptions keep boundaries mostly clear.
Names are consistently lowercase snake_case and follow a recognizable prefix taxonomy: unity_* for editor subsystems, tuanjie_* for bridge lifecycle, and execute_* for generic execution. The main inconsistency is that names are domain nouns rather than verb_noun action names, with a few outliers like execute_custom_tool and unity_custom_tools.
22 tools is on the heavy side, and each tool bundles many sub-actions, making the effective surface much larger than the count suggests. The breadth is justified by the editor-automation domain, but the toolset feels borderline over-scoped rather than tight.
The server covers the major editor workflows: connection/startup, assets, scenes, GameObjects, scripts, packages, UI, input, screenshots, console, baking, and editor state. Obvious gaps like build/player settings or dedicated prefab/animation tools exist, but they are workable gaps rather than critical dead ends.
Maintenance
Related MCP Connectors
Build, run and publish 3D games in the Zero engine from Claude Code, Cursor or Codex, over MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA bridge enabling seamless communication between Unity and Large Language Models via the Model Context Protocol, allowing developers to automate workflows, manipulate assets, and control the Unity Editor programmatically.14,777MIT
- FlicenseNot gradedqualityDmaintenanceConnects Claude Code to the Unity Editor via MCP, enabling AI-driven control of scenes, assets, components, UI, animations, and more through 91 tools.2-
- FlicenseNot gradedqualityBmaintenanceEnables AI tools to connect to and control Unity/Tuanjie editors via the Codely Bridge TCP server, supporting project management, scene manipulation, and console reading.3-
- AlicenseNot gradedqualityBmaintenanceBridges the Unity Editor with AI assistants via MCP, enabling AI tools to control and interact with Unity projects. Supports multi-project routing and automatic first-launch server deployment.MIT