EasyAR MCP Server
The EasyAR MCP Server helps registered EasyAR users connect AI coding tools (e.g., Codex, Claude) to authorized EasyAR Unity workflows, focusing on local Unity project assistance for AR development (Image Tracking, Cloud Recognition).
Server Status & Account Management
easyar_server_status– Get server version, capabilities, resources, authorization state, and recommended next stepseasyar_auth_status– Check EasyAR account environment config without exposing secretseasyar_official_info– Retrieve official EasyAR links and documented package versionseasyar_generate_client_config– Generate MCP client config snippets for Codex, Claude Desktop, or generic stdio
Sample Discovery & Planning
easyar_list_samples– List known EasyAR Unity sample categories and their setup requirementseasyar_generate_sample_plan– Generate a step-by-step plan for preparing and running a specific EasyAR sample
Unity Project Inspection & Validation
easyar_inspect_unity_project– Inspect a Unity project for packages, assets, scenes, and EasyAR readiness signalseasyar_check_sample_readiness– Check whether a project has everything needed to run a specific EasyAR sampleeasyar_validate_local_config– Validate the local EasyAR config file without exposing secretseasyar_unity_environment– Inspect Unity executable configuration before batch mode runs
Project Setup & Code Generation
easyar_prepare_unity_project– Prepare a Unity project with editor helpers, local config templates, and secret ignore ruleseasyar_create_sample_runner– Create an Editor script for opening EasyAR sample scenes by nameeasyar_create_mobile_settings_helper– Create an Editor script for Android/iOS player settings and camera permissionseasyar_create_build_settings_helper– Create an Editor script for adding sample scenes to Unity Build Settingseasyar_create_device_build_helper– Create an Editor script for building for Android, iOS, or standaloneeasyar_create_mono_behaviour– Generate MonoBehaviour templates for common EasyAR workflowseasyar_write_csharp_file– Safely create or replace any.csfile inside a Unity projecteasyar_review_csharp_scripts– Review Unity C# scripts for common EasyAR and security risks
Debugging & Execution
easyar_run_unity_method– Execute a Unity static editor method in batch modeeasyar_analyze_unity_log– Analyze Unity Editor/build logs for EasyAR, permission, license, compile, and build issues
Provides tools for inspecting Unity project structure, diagnosing sample readiness, generating editor scripts and MonoBehaviour templates, and preparing Unity projects for EasyAR development.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EasyAR MCP Serverinspect my Unity project for EasyAR setup"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-easyar
English | 日本語 | Tiếng Việt | 简体中文
mcp-easyar 帮助 EasyAR 注册用户通过 Codex、Claude 等 AI 工具,安全地完成 EasyAR Unity Sample 的配置、构建、真机验证和项目编程辅助。
当前公开版本是 local-key MVP:用户在 EasyAR 官网注册、登录、下载官方插件并创建本地 license / CRS key;MCP 只做引导、检查和 Unity 自动化,不接触官网密码、验证码、license key、API Secret 或 appSecret。
v0.1.0-local-key.41 同时提供微信小程序 Sample 支持:先覆盖 wechat-mega 和 wechat-crs,提供项目结构检查、微信开发者工具 CLI 检测、本地配置表、官方本地包导入、DevTools 检查、日志分析、preflight、run sequence、真机验证清单、run result、completion report 和小程序 scope status。小程序路径仍走官方网页/官方工具 handoff,不自动登录、不绕过下载授权、不在聊天里收集密钥。
当前状态
当前 GitHub 预发布版:
v0.1.0-local-key.41官方中文文档快照:
2026-07-01,当前官方版本见 docs/zh-CN/OFFICIAL_DOCS_2026-07-01.md当前已跑通并具备 safe release evidence 的 Sample:
Image Tracking
CRS / Cloud Recognition
Mega(已有 Unity 2022.3.62f3 Android 手机、PICO 4 Ultra Enterprise 和 XREAL Air 2 Ultra 真机证据;XREAL 路径已验证 Native Session Manager、企业相机授权、APK 安装启动与 Mega
Found定位)
暂缓目标:
Hello AR
Surface Tracking
其他 EasyAR Sense Unity Plugin 官方 Sample
新增小程序目标:
WeChat Mini Program Mega(本地检查、本地官方包导入、DevTools 检查和 runbook)
WeChat Mini Program CRS / Cloud Recognition(本地检查、本地官方包导入、DevTools 检查和 runbook)
Unity 验证基线:
2022.3.62f3GitHub Release tarball、CI、安装 smoke、安全检查均已通过。
Related MCP server: Unity MCP Server
安装正版包
请从 GitHub Release 下载正版包:
npm install -g https://github.com/terri1982/mcp-easyar/releases/download/v0.1.0-local-key.41/mcp-easyar-0.1.0.tgz
easyar-mcp-check安装检查通过后,把 MCP client 配到 easyar-mcp 这个 package binary 即可。
工具数量
mcp-easyar 默认使用 core 工具集,启用工具数约 70 个,低于常见 MCP 客户端 80 个工具的警告线。
如果维护仓库、调试官方 API 合同或需要全部工具,可以用 full profile:
MCP_EASYAR_TOOL_PROFILE=full easyar-mcp日常给 Codex / Claude 使用时,建议保持默认 core profile。
推荐首次调用
easyar_server_status
easyar_list_miniprogram_samples
easyar_check_client_setup client=codex entrypointMode=package-bin includeTokenPlaceholder=false
easyar_first_run_guide accountStage=not-registered sampleId=cloud-recognition platform=android
easyar_account_onboarding accountStage=not-registered sampleId=cloud-recognition platform=android同时阅读 MCP resource:
easyar://acceptance/fresh-project
easyar://acceptance/wechat-miniprogram
easyar://official/docs-2026-07-01
easyar://samples/wechat-miniprogram
easyar://roadmap/full-goal
easyar://workflow/programming本地 key 路线
当前版本走 local-key 路线:
用户在浏览器里打开 EasyAR 官网并注册/登录。
用户下载官方 EasyAR Sense Unity Plugin。
用户在官网开发中心创建或找到 license。
CRS / Cloud Recognition 用户创建或找到 AppId、识别服务地址、API KEY、API Secret;Mega 用户在已登录的 EasyAR 网页端或 Mega Studio 中找到云定位库、Mega Block storage、Block 名称和 Block ID。
Image Tracking / CRS 用户在本机填写
ProjectSettings/EasyAR/easyar.local.json;Mega 用户只在Assets/XR/Settings/EasyAR Settings.asset填写 package License 和 Global Mega Block 字段,不创建通用 JSON 配置。MCP 只检查字段是否存在、是否像占位符,不输出 secret。
Unity 构建和真机验证使用本地配置运行,不需要在运行时登录官网。
Mega 路径必须先区分
项目里有两个名字相近、但不能互相替代的 Mega Sample:
mega:Unity Mega Sample。目标是 Android 手机、PICO、XREAL 或 visionOS,验收必须包含真实设备上的 Mega 定位/跟踪证据。wechat-mega:微信小程序 Mega Sample。目标是微信开发者工具预览和真实微信设备,Unity 工程、Android APK、PICO 或 XREAL 证据都不能替代它。
Unity Mega 推荐从 easyar-run-mega prompt 开始;微信小程序 Mega 使用 easyar-run-wechat-miniprogram 并传入 sampleId=wechat-mega。不要用一个路径的产物去声称另一个路径已完成。
Unity Mega 的完成门槛不是“生成了文档”或“APK 打包成功”,而是 Onsite 模式下真实设备启动并完成所选 Mega Block 的定位/跟踪,随后由 MCP 写入 RUN_RESULT.md 和 COMPLETION_REPORT.md,且报告中的 runThroughComplete=true。
运行 Unity batch 前,EASYAR_UNITY_PATH 必须指向真实 Unity Editor:macOS 为 Unity.app/Contents/MacOS/Unity,不能使用 ~/.unity/bin/Unity 这类 Unity CLI。easyar_write_unity_environment_report 会检查可执行类型、软链接目标和工程版本;外置盘上的 Unity Hub 版本软链接失效时,应先挂载或恢复目标盘。
微信小程序 Sample
当前小程序支持先覆盖两类官方 Sample:
wechat-mega:EasyAR Mega 微信小程序 Sample。wechat-crs:EasyAR CRS / Cloud Recognition 微信小程序 Sample。
推荐调用:
easyar_list_miniprogram_samples
easyar_check_wechat_devtools
easyar_find_miniprogram_official_package sampleId=wechat-mega searchRoots='["/Users/you/Downloads","/Users/you/Documents"]'
easyar_write_miniprogram_official_package_search projectPath=/path/to/miniprogram sampleId=wechat-mega searchRoots='["/Users/you/Downloads","/Users/you/Documents"]'
easyar_create_miniprogram_sample_workspace projectPath=/path/to/miniprogram sampleId=wechat-mega appId=wx-your-appid
easyar_write_miniprogram_local_config_form projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_import_miniprogram_sample_from_local_package projectPath=/path/to/miniprogram sampleId=wechat-mega packagePath=/path/to/official/package-or.zip dryRun=true
easyar_inspect_miniprogram_project projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_run_through_status projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_preflight projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_run_miniprogram_devtools_check projectPath=/path/to/miniprogram sampleId=wechat-mega mode=open dryRun=true
easyar_run_miniprogram_devtools_check projectPath=/path/to/miniprogram sampleId=wechat-mega mode=preview dryRun=true
easyar_analyze_miniprogram_devtools_log projectPath=/path/to/miniprogram sampleId=wechat-mega logPath=easyar-generated/wechat-mega/DEVTOOLS_CHECK.log
easyar_write_miniprogram_run_sequence projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_device_validation_checklist projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_run_result_form projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_completion_report projectPath=/path/to/miniprogram sampleId=wechat-mega
easyar_write_miniprogram_scope_status projectPath=/path/to/miniprogramCRS 小程序把 sampleId 改成 wechat-crs。用户仍需自己在 EasyAR 官网和微信开发者工具中完成注册、登录、下载、license / CRS key 创建和真机预览。
官方包查找工具会按 EasyAR 官方文件名在本机目录里找用户已下载的包,并可把结果写到 easyar-generated/<sampleId>/OFFICIAL_PACKAGE_SEARCH.json 和 .md。例如 Mega 目标包是 easyar-mega-wechat-miniprogram-plugin-2.0.3-1077.647aaae_samples.zip;CRS 目标包是 EasyAR-miniprogram-WebAR-Demo-tracking.zip。如果没找到,用户仍需在自己的 EasyAR 官网登录会话里下载,MCP 不代下、不绕过授权。
支持 prompts 的 MCP 客户端可以从 easyar-run-mega 开始跑 Unity Mega,或从 easyar-run-wechat-miniprogram 开始跑微信小程序 Mega/CRS。两个 prompt 会先声明项目类型和完成边界,禁止在聊天里收集密钥,并要求对应的真实设备证据后才允许声明完成。
Unity CLI 工作流
easyar_unity_cli_status 用于检查本机 Unity CLI、beta 通道最新版本和 Pipeline 状态;easyar_unity_cli 提供受限的 preflight、import-sample、prepare、configure、validate 和 build-android 流程,不接受任意命令或任意 C# 方法名。当前真机回归使用 Unity CLI 1.0.0-beta.3 与 Unity 2022.3.62f3。
Android 手机使用 deviceProfile=android-phone。XREAL 使用 deviceProfile=xreal,并要求官方 com.xreal.xr 3.1.0+ 与 XREAL Enterprise 授权文件;在 prepare 时通过 xrealLicensePath=/local/path/nrsdk_license.bin 指定授权文件。MCP 只把二进制授权复制为项目内 TextAsset,不读取或返回授权内容。configure 会按 EasyAR 官方 XREAL 配置要求开启 Enable Native Session Manager;validate 和 build-android 会在缺少 SDK、授权、Native Session Manager、XR Loader 或 OpenGL ES 3 配置时停止。EasyAR 文档没有要求另行下载 com.xreal.xr.enterprise Unity 包。
如果项目尚未安装 XREAL 包,可在 prepare 中传入 xrealSdkPackagePath=/local/path/com.xreal.xr.tar.gz。MCP 会校验包的 package.json 名称和最低版本,再安全写入 Packages/manifest.json。
安全边界
不要把以下内容发到聊天、提交到 GitHub 或写进公开日志:
EasyAR 官网密码
邮箱/手机验证码
license key
Cloud Recognition API KEY / API Secret
appKey / appSecret
signing key
APK、Unity package、含密钥的本地日志
MCP 不应绕过 EasyAR 登录、license 检查、下载授权、企业权限或限流规则。
Mega PICO 4 Ultra Enterprise
最新官方文档快照:2026-07-01,EasyAR Sense Unity Plugin / for Mega 4003.0.0,EasyAR Mega 支持包与 Mega Studio 2.13.0,XR 设备扩展包 4000.0.1。详见 docs/zh-CN/OFFICIAL_DOCS_2026-07-01.md。
PICO 4 Ultra Enterprise sample 已验证的基线:
Unity
2022.3.62f3包名
com.easyar.mega.xrtestEasyAR Sense Unity Plugin
4002.0.0EasyAR Mega
2.12.6EasyAR Unity XR 设备扩展包
4000.0.0PICO Unity Integration SDK
3.4.0(EasyAR 文档要求3.1.0或更新版本)官网 license 类型:
4.x XR正式版
注意:PICO 和 XREAL 的 Mega 头显验收包也应使用 LocationInputMode=Onsite。如果眼镜中出现 EasyAR Simulator diagnostics caution,说明场景仍处于 Simulator/非现场输入模式,需要先切到 Onsite 后重新打包。验收以眼镜内 VST 实景可见、Mega 返回 Found、并定位到对应办公室 block 为准。adb screencap 可能抓不到 PICO 的透视合成层。
使用 4003.0.0 或更新版本新建 Mega 工程时,优先按官方 MegaBlockController 流程处理;旧 Mega Studio 生成节点组、多 block 配置选项和 BlockRoot 中心化流程不应作为新的默认路径。
中文文档目录
英文文档
当前结论
Image Tracking 和 CRS / Cloud Recognition 的 local-key MVP 已经跑通并发布。后续扩展 Sample 时,先调用:
easyar_generate_sample_expansion_plan sampleId=hello-ar platform=android unityVersion=2022.3.62f3然后按生成的验收清单补 import、build、真机 evidence 和 completion report。
Available Tools
19 toolseasyar_analyze_unity_logC
Analyze Unity Editor or build logs for common EasyAR, permission, license, compile, and build issues.
| Name | Required | Description | Default |
|---|---|---|---|
| logText | No | Unity log text to analyze. | |
| logPath | No | Path to a Unity Editor.log or build log file. | |
| maxIssues | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the tool analyzes logs but fails to disclose whether it is read-only, destructive, or requires specific permissions. The behavioral footprint is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 13 words that directly states the tool's purpose with no wasted words. It is highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema, no annotations), the description is insufficient. It does not explain how to provide input (e.g., that at least one of logText or logPath should be used), nor does it describe the output format. The agent lacks critical context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 67% of parameters with descriptions (logText and logPath have descriptions). The tool description does not add additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes Unity logs for common EasyAR, permission, license, compile, and build issues. While specific, it does not explicitly differentiate from sibling tools; however, it is the only log analysis tool among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not clarify if one of logText or logPath is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_auth_statusA
Report whether EasyAR account environment variables are configured without exposing secret values.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions that secret values are not exposed. It does not disclose other behavioral traits such as required permissions, side effects, or whether it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status check with no parameters and no output schema, the description is mostly complete. It states what is reported and that secrets are not exposed. However, it does not specify the return format (e.g., boolean), which could be added.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description adds value by explaining the tool's purpose beyond the empty schema. Baseline for 0 parameters is 4.
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 reports whether EasyAR account environment variables are configured, which is a specific verb+resource. It distinguishes from sibling tools that perform different actions like analyzing logs or creating builds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. No when-not-to-use or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_check_sample_readinessA
Check whether a Unity project has the local pieces needed to run a specific EasyAR sample workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| sampleId | Yes | Sample id from easyar_list_samples. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It hints at a read-only check ('Check whether...') but does not explicitly confirm no side effects, nor does it describe return format or potential errors. Significant gaps for a mutation-free 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?
Single sentence, directly stating purpose with no redundant phrases. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimal. It covers the 'what' but omits 'how' (return value, error conditions, side effects). For a simple check tool, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The description adds no extra meaning beyond the schema (e.g., file format or constraints). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks readiness of a Unity project for an EasyAR sample workflow, using specific verb 'check' and resource 'sample readiness'. It distinguishes from sibling tools like easyar_prepare_unity_project (prepares) and easyar_list_samples (lists).
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 context (before running a sample to verify readiness), but does not explicitly state when not to use it or contrast with alternatives. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_create_build_settings_helperB
Create a Unity Editor script that adds the matching EasyAR sample scene to Build Settings and optionally switches the active build target.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| sampleId | Yes | Sample id from easyar_list_samples. | |
| platform | No | Optional Unity build target to switch to. | none |
| overwrite | No | Whether to replace an existing helper script. |
TDQS
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 discloses the main side effect (creating/overwriting a script) and mentions the 'overwrite' parameter, but does not clarify whether it modifies existing Build Settings, requires Unity to be open, or handles errors (e.g., missing sample). The behavioral impact is under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the core functionality without extraneous words. It front-loads the action and includes key optional behavior, making it efficient for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (2 required) and no output schema, the description is too terse. It does not explain what the tool returns (e.g., success message, path to generated script), error conditions (e.g., invalid sampleId), or prerequisites (e.g., Unity project must exist). The complexity warrants more detail for an AI agent to use it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description minimally adds beyond the schema: it reiterates the 'optional' build target switching and implies the script is 'Unity Editor' related. It does not provide additional context like format expectations or relationships between parameters (e.g., how sampleId ties to list_samples output).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: creating a Unity Editor script that adds an EasyAR sample scene to Build Settings and optionally switches the build target. It uses a specific verb and resource, and the mention of 'matching EasyAR sample scene' ties it to the sibling easyar_list_samples, distinguishing it from other create helpers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when one wants to add a sample scene to Build Settings and optionally change the build target, but it provides no explicit guidance on when to prefer this tool over other easyar_create_* siblings or what prerequisites are needed. The context is clear enough for a basic use case, but lacks differentiation and exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_create_device_build_helperB
Create a Unity Editor script that builds the configured EasyAR sample scenes for Android, iOS, or standalone targets.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| platform | Yes | Target platform for the generated build helper. | |
| outputPath | Yes | Build output path, for example Builds/EasyARSample.apk or Builds/iOS. | |
| developmentBuild | No | Whether to create a Unity development build. | |
| overwrite | No | Whether to replace an existing helper script. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavioral traits. It only states the tool creates a script, but omits what happens on overwrite, error cases, or side effects on the project. This is insufficient for a tool that modifies project files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is efficient and front-loaded with key action and target. Could include more structure (e.g., bullet points) but not necessary. Conciseness is good, but lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 5 parameters, the description is too sparse. It does not explain what the generated script does exactly, what files are touched, or prerequisites like Unity installation. Incomplete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate. No additional semantic context for parameters like 'developmentBuild' or 'overwrite' behavior.
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 creates a Unity Editor script for building EasyAR sample scenes, specifying target platforms (Android, iOS, standalone). It distinguishes well from siblings like easyar_create_build_settings_helper or easyar_create_sample_runner.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention any prerequisites, comparisons, or exclusion conditions, leaving the user uncertain about selection among similar sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_create_mobile_settings_helperC
Create a Unity Editor script that applies Android/iOS player settings commonly required by EasyAR camera samples.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| platform | Yes | Target mobile platform. | |
| sampleId | No | Optional sample id used to generate a stable default bundle identifier. | |
| bundleIdentifier | No | Application bundle/package identifier. Defaults to a sample-specific com.easyar.generated.* id. | |
| cameraUsageDescription | No | iOS camera usage description. Defaults to an EasyAR AR camera message. | |
| minSdkVersion | No | Android minimum SDK API level. Defaults to 23. | |
| overwrite | No | Whether to replace an existing helper script. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It mentions creating a script and implies modification of player settings, but does not detail side effects like file overwriting, permissions, or reversibility. The 'overwrite' parameter hints at replacement, but no explicit behavioral context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the tool's purpose and scope. Every word serves a purpose, with no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters and no output schema. The description does not explain what the tool returns (e.g., script path, success message) or the full effect on the project. It only says 'creates a script', leaving the agent unsure of what to expect after 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?
Schema description coverage is 100%, so the baseline is 3. The description adds context that the settings are 'commonly required by EasyAR camera samples', which provides slight extra meaning beyond the schema, but overall the schema already describes each parameter adequately.
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 creates a Unity Editor script for applying Android/iOS player settings required by EasyAR camera samples. The verb 'create' and resource 'mobile settings helper' are specific, though it does not differentiate itself from sibling tools like 'easyar_create_build_settings_helper'.
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 about when to use this tool versus alternatives. Sibling tools include other creation helpers, but the description gives no criteria for choosing this one, such as when player settings vs build settings are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_create_mono_behaviourC
Create a Unity C# MonoBehaviour template for common EasyAR sample development tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| relativePath | Yes | Relative .cs path inside the Unity project, for example Assets/Scripts/ImageTargetContentController.cs. | |
| className | Yes | C# class name. | |
| kind | Yes | Template kind to generate. | |
| overwrite | No | Whether to replace an existing script. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full responsibility. It only states basic creation action without disclosing side effects (e.g., file overwrite behavior, error handling, or permissions). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. It is front-loaded and easy to parse.
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 5 parameters and no output schema, the description is incomplete. It does not explain what the tool returns, how the templates differ by kind, or what happens on error. Lacks sufficient detail for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds no new meaning to parameters. The description's generic statement does not enhance understanding beyond the schema's own descriptions.
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 it creates a Unity C# MonoBehaviour template for EasyAR sample development, which distinguishes it from generic file-writing tools like easyar_write_csharp_file. However, it doesn't explicitly mention the template kinds available.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., easyar_create_sample_runner). The description implies usage for EasyAR samples but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_create_sample_runnerB
Create a Unity Editor script that opens EasyAR sample scenes by name.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| sampleId | Yes | Sample id from easyar_list_samples. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It states the tool 'creates a Unity Editor script' but does not elaborate on side effects (e.g., file creation location, naming convention, whether it overwrites existing files), permissions needed, or what the script does beyond opening scenes. This lack of detail reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it could be more informative by including key behavioral details (e.g., script name, location) while remaining concise. It serves its purpose but misses an opportunity for compact completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the tool's action (creating a script), the description should clarify what the script does, its naming, and any dependencies on other tools (e.g., 'easyar_list_samples' for sample ID). It does not address these, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'projectPath' and 'sampleId' have clear descriptions in the schema. The tool description does not add any additional meaning beyond what the schema already provides. According to guidelines, when coverage is high, baseline is 3, so no extra points.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a Unity Editor script that opens EasyAR sample scenes by name.' It uses a specific verb ('Create') and resource ('Unity Editor script'), and the action ('opens EasyAR sample scenes') distinguishes it from siblings like 'easyar_create_build_settings_helper' or 'easyar_create_mono_behaviour'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., need to list samples first with 'easyar_list_samples') or when not to use it. The agent is left to infer usage context from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_generate_client_configB
Generate MCP client configuration snippets for connecting Codex, Claude Desktop, or another stdio MCP client.
| Name | Required | Description | Default |
|---|---|---|---|
| client | Yes | Target MCP client config style. | |
| serverPath | No | Absolute path to dist/index.js. Defaults to this process entrypoint. | |
| includeTokenPlaceholder | No | Whether to include EASYAR_API_TOKEN placeholder text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says it 'generates' snippets, which implies a non-destructive read-like operation, but does not mention if it makes network calls, requires permissions, or has any side effects. More behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is to the point with no unnecessary words. It is front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description is somewhat minimal. It provides the purpose but lacks details about the output format or any behavioral traits. Adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three parameters having descriptions. The description does not add significant meaning beyond the schema, except for listing the client options, which are already in the enum. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'MCP client configuration snippets' for specific clients (Codex, Claude Desktop, or other stdio MCP client). It distinguishes from sibling tools, which focus on other tasks like analyzing logs or creating build helpers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description only states what it does, without providing context for when it's appropriate or when other tools might be better. No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_generate_sample_planB
Generate a step-by-step plan for preparing and running an EasyAR Unity sample.
| Name | Required | Description | Default |
|---|---|---|---|
| sampleId | Yes | Sample id from easyar_list_samples, for example image-tracking. | |
| unityVersion | No | Unity version used by the project. | |
| platform | No | unknown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure but only states the action without mentioning safety, idempotency, or 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?
The description is a single sentence of 13 words, concisely stating the purpose without any 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?
The description lacks details about the output format, return structure, or any prerequisites like using list_samples, leaving the agent with incomplete context for a planning tool.
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 67% (high), so baseline is 3. The description adds no extra parameter information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and the resource 'step-by-step plan for preparing and running an EasyAR Unity sample,' which is specific enough to distinguish it from direct execution or creation tools among siblings.
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 implied usage is when a step-by-step plan is needed before running a sample, but there is no explicit guidance on when not to use it or alternatives like easyar_create_sample_runner.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_inspect_unity_projectB
Inspect a Unity project and report EasyAR/sample readiness signals.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute or current-working-directory-relative Unity project path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. However, it only says 'report readiness signals' without explaining what exactly is reported, whether the project is modified, or any side effects. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundancy. It directly states the tool's purpose and scope, though it could benefit from a bit more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one well-documented parameter and no output schema, the description is adequate but vague. It mentions 'readiness signals' without defining them, leaving some ambiguity. However, for a simple inspection tool, it provides a reasonable overview.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter (projectPath) is fully described in the schema. The description adds no additional meaning beyond what the schema already provides, meeting the baseline of 3.
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 inspects a Unity project and reports EasyAR/sample readiness signals. This distinguishes it from sibling tools like easyar_analyze_unity_log and easyar_prepare_unity_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites, context, or exclusions, leaving the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_list_samplesA
List known EasyAR Unity sample categories and setup requirements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits like side effects, authentication needs, or rate limits. The tool is read-only, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the verb 'list' and is concise with zero 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?
Given the tool's simplicity (no parameters, no output schema), the description is complete enough. It tells what the tool returns (categories and setup requirements). It could mention the output format or that it returns a list, but not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter meaning. The schema coverage is 100% (no parameters), and the description appropriately omits parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'EasyAR Unity sample categories and setup requirements', which is specific and distinguishes this tool from siblings that have different actions (e.g., check, inspect, generate).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For instance, it does not mention that this tool should be used before generating a sample plan or checking readiness, which are natural next steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_official_infoA
Return official EasyAR links and package versions captured by this MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It accurately states the tool returns links and versions, but does not disclose specifics like the format or completeness of data. It is adequate but not rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 12 words, front-loaded with the verb and resource. No wasted words, perfectly concise for a simple, parameterless tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description is mostly complete. However, it could list example links or mention that output includes version numbers. Still, for a basic info retrieval tool, it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description does not add parameter-level meaning, but no parameters exist. For a zero-parameter tool, baseline 4 is appropriate; the description implies no input needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns official EasyAR links and package versions. It uses a specific verb 'Return' and a clear resource, distinguishing it from sibling tools that focus on analysis, checking, or project setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Since there are many sibling tools, explicit when-to-use or when-not-to-use instructions would help the agent decide. The description lacks exclusion criteria or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_prepare_unity_projectC
Prepare a Unity project for an authorized EasyAR sample workflow by creating editor helpers, local config templates, and secret ignore rules.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| sampleId | Yes | Sample id from easyar_list_samples. | |
| overwrite | No | Whether to replace existing generated files. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it fails to disclose important behaviors such as whether the tool modifies existing files, idempotency, or side effects. The 'overwrite' parameter hints at replaceability but is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core function 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?
Given the 3 parameters and no output schema, the description omits crucial context such as preconditions, verification steps, and what happens if the project is already prepared. The agent lacks enough information for safe usage.
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?
All parameters are described in the schema, meeting the baseline. The description adds no additional context beyond the schema, providing no extra meaning or usage hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Prepare a Unity project') and the specific outcomes ('creating editor helpers, local config templates, and secret ignore rules'), making the tool's purpose evident and moderately distinct from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like easyar_generate_client_config or easyar_create_build_settings_helper. The context of use (e.g., first step in a workflow) is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_run_unity_methodC
Run a Unity static editor method in batch mode for project automation.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| executeMethod | Yes | Fully qualified static method, for example EasyAR.EditorTools.EasyARSampleRunner.OpenSampleScene. | |
| unityPath | No | Unity executable path. Defaults to EASYAR_UNITY_PATH or Unity on PATH. | |
| timeoutSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'run in batch mode' but does not disclose side effects, required permissions, blocking behavior, or return values. Important behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core purpose with no wasted words. It could be slightly expanded without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (4 params, 2 required), the description lacks information about what the agent should expect after execution (e.g., process output, side effects, error handling). It is not complete enough for reliable 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?
Schema description coverage is 75%, so the baseline is 3. The description adds no parameter-specific details beyond the schema. It does not explain timeout defaults or the role of unityPath, but the schema provides reasonable context.
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 runs a Unity static editor method in batch mode for automation. It uses a specific verb and identifies the resource, but does not explicitly differentiate from sibling tools that might also execute tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It mentions 'project automation' but does not specify prerequisites, context, or situations where it is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_server_statusA
Return mcp-easyar server version, capability summary, resources, authorization state, and recommended next steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral information. It discloses return content but not side effects, error conditions, or authorization requirements. For a read-only status check, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information. No wasted words. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists all returned elements. It is sufficient for a status check tool, though it lacks details on output format or what 'authorization state' means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description adds no parameter info, which is appropriate. Baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns server version, capability summary, resources, authorization state, and next steps. It uses specific nouns and distinguishes easily from siblings that perform different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No context about prerequisites or situations where this tool is appropriate. The description is purely declarative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_unity_environmentB
Inspect local Unity executable configuration and common install locations without launching Unity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions the tool does not launch Unity, which is a key behavioral trait. However, it doesn't disclose other aspects like required permissions, side effects, or whether it reads from registry or filesystem. The description is minimally transparent but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence ('Inspect local Unity executable configuration and common install locations without launching Unity.') with no redundancy. It is concise, front-loaded with the action, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description provides a basic understanding. However, it lacks details about what specific information is returned (e.g., paths, versions) and does not mention if the tool outputs structured data or plain text. For a simple tool, it is passable but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100% (vacuously). The description adds no parameter-specific meaning, but according to guidelines, baseline score for 0 parameters is 4. The description does not hinder understanding and keeps the tool's simplicity clear.
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 inspects local Unity executable configuration and install locations. The verb 'inspect' and resource are specific, and the phrase 'without launching Unity' distinguishes it from tools that might launch Unity. However, it could be more precise about what configuration details are inspected.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. It does not mention prerequisites or scenarios where alternative tools like 'easyar_inspect_unity_project' might be more appropriate. The usage context is implied but not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_validate_local_configC
Validate ProjectSettings/EasyAR/easyar.local.json without returning secret values.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| configPath | No | Optional config path. Defaults to ProjectSettings/EasyAR/easyar.local.json inside the project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It reveals that secret values are not returned, which is a useful safety guarantee. However, it omits any detail about validation outcome (e.g., returns success/failure, error messages), side effects, required permissions, or whether it is read-only. This is insufficient for an agent to predict behavior confidently.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core action and a key output constraint. It is front-loaded with the verb and resource. No extraneous words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description still falls short. It does not explain what 'validate' means operationally, what the return value is (beyond hiding secrets), or any success/failure indicators. An agent would lack critical context for correct invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for both 'projectPath' and 'configPath', including the default path for configPath. The tool description adds no new meaning beyond confirming the config file location. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Validate' and the resource 'ProjectSettings/EasyAR/easyar.local.json', and notes a key output trait (no secrets). It is sufficiently specific to distinguish from sibling tools like easyar_generate_client_config or easyar_inspect_unity_project. However, a more precise definition of what validation entails (e.g., schema checks, value constraints) would improve clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or compare with siblings like easyar_generate_client_config (which likely creates or updates the config). The utility is implied but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
easyar_write_csharp_fileB
Create or replace a C# script inside a Unity project. The file must stay inside the project and end with .cs.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Unity project path. | |
| relativePath | Yes | Relative file path inside the Unity project, for example Assets/Scripts/Foo.cs. | |
| contents | Yes | Complete C# file contents. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Mentions 'create or replace' implying overwrite, but no details on permissions, side effects, or return values. Minimal 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?
Single sentence efficiently conveys purpose and constraints. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple file write tool, but lacks error handling details, validation, or any output description. With no annotations, more context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. Description adds no extra meaning beyond schema constraints; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates or replaces a C# script in a Unity project, with specific constraints (must stay inside project, end with .cs). This distinguishes it from sibling tools like easyar_create_mono_behaviour.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like easyar_create_mono_behaviour or easyar_create_sample_runner. Implied usage for writing C# files, but no exclusions or context.
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.
19 tool updates
v0.1.0- First observed
easyar_analyze_unity_log - First observed
easyar_auth_status - First observed
easyar_check_sample_readiness - First observed
easyar_create_build_settings_helper - First observed
easyar_create_device_build_helper - First observed
easyar_create_mobile_settings_helper - First observed
easyar_create_mono_behaviour - First observed
easyar_create_sample_runner - First observed
easyar_generate_client_config - First observed
easyar_generate_sample_plan - First observed
easyar_inspect_unity_project - First observed
easyar_list_samples - First observed
easyar_official_info - First observed
easyar_prepare_unity_project - First observed
easyar_run_unity_method - First observed
easyar_server_status - First observed
easyar_unity_environment - First observed
easyar_validate_local_config - First observed
easyar_write_csharp_file
TDQS
Scored across 19 tools
Most tools have distinct purposes, but there is some overlap among the three build helpers (build_settings, device_build, mobile_settings) and between prepare_unity_project and the individual helper creators. Overall, descriptions are clear enough to avoid major confusion.
All tools follow a consistent 'easyar_verb_noun' pattern with snake_case. No mixing of conventions, making the set predictable and easy to navigate.
19 tools is slightly above the typical well-scoped range of 3-15, but each tool addresses a specific aspect of EasyAR Unity development, justifying the count. It's still manageable for an agent.
The tool set covers the core workflow: analysis, preparation, build helpers, validation, and automation. Minor gaps exist, such as lacking a tool to directly query EasyAR SDK version or manage licenses, but the stated domain (sample workflow) is adequately covered.
Maintenance
Related MCP Connectors
- alloyOAuthai.usealloy
Connect Claude, Cursor, Codex, and other AI tools to your robotics mission data.
Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
- OolkinOAuthcom.oolkin
AI colleagues that keep your standards, your project and their reasoning between sessions
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to interact with Unity projects through multimodal vision, code analysis, asset management, and scene manipulation. Supports real-time Unity editor control, project search, script creation, and visual debugging through screenshots.33MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with Unity Editor projects through 68+ tools for manipulating scenes, GameObjects, components, and assets, plus live access to console logs, hierarchies, and test results.9 npm9MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to interact with Unity projects programmatically, supporting project management, asset creation, and build automation.1MIT
- AlicenseCqualityBmaintenanceIntegrates AI assistants with the Unity Editor for scene manipulation, asset management, and testing, plus Unity documentation search via RAG.8419 npmMIT