Skip to main content
Glama
jijiutong

Xiaozhi Desktop MCP

by jijiutong

Xiaozhi Desktop MCP

把小智、MCP Client 和本机 Mac 工作流连接起来的安全桌面工具层。

xiaozhi-desktop-mcp 是一个运行在本机的 MCP Server。它把 Obsidian 记忆、App 控制、Claude Code / Codex 会话、Xcode、浏览器、Finder、剪贴板等桌面能力封装成可控工具,让语音助手或 AI Client 能安全地调用本机能力。

它不是新的小智后端,也不是任意 shell 执行器。这个项目的核心是:用 MCP / HTTP 接口暴露能力,同时用白名单、路径限制、待确认动作、鉴权和可观测日志把桌面自动化收进安全边界。

API · Desktop Control Roadmap · 4.0 Upgrade Plan · 4.0 Migration · macOS E2E · 3.0 Migration · Client Examples · Operations · Security · Xiaozhi Integration

License: MIT · Version: 4.0.0 · Python · FastMCP · FastAPI


What It Does

flowchart LR
    U["Voice / MCP Client / HTTP Client"]
    T["Transport Layer<br/>stdio / Streamable HTTP / HTTP API"]
    R["Intent & Dispatch<br/>desktop_intent / api_v1"]
    S["Safety Boundary<br/>allowlists / path checks / pending actions"]
    W["Mac Workflow<br/>Obsidian / Apps / Codex / Xcode / Browser"]

    U --> T --> R --> S --> W

典型场景:

  • “小智,记一下...” -> 写入 Obsidian vault

  • “打开这个项目的 Claude Code” -> 在允许项目里启动可见会话

  • “让 cc 检查 README” -> 创建或发送受控任务

  • “打开 Xcode 并构建” -> 只操作白名单项目

  • “搜索 Obsidian / 打开浏览器 / 控制音乐 / 读写剪贴板” -> 通过统一桌面意图执行


Related MCP server: macos-sys-assist

Why This Exists

语音助手和 LLM 真正接入桌面时,难点不是“能不能调用命令”,而是“能不能安全、稳定、可追踪地调用本机能力”。

这个项目把桌面自动化里的风险收束成明确规则:

  • App、项目、Xcode、Obsidian 都有白名单或路径边界

  • 中风险动作先进入 pending action,再由用户确认

  • MCP Client 可以走标准协议,普通程序可以走 HTTP API

  • 每次请求都有 request id,方便从客户端追到工具调用

  • HTTP 暴露到非 localhost 时必须开启 token 鉴权


Transports

入口

命令

默认地址

适合场景

MCP stdio

xiaozhi-desktop-mcp

标准输入输出

Claude Desktop、小智 bridge、本机 MCP client

MCP Streamable HTTP

xiaozhi-desktop-mcp-streamable

http://127.0.0.1:8766/mcp

支持 MCP over HTTP 的客户端

HTTP API v1

xiaozhi-desktop-http

http://127.0.0.1:8765/api/v1

Java / Python / Go / 稳定客户端

HTTP API v2

xiaozhi-desktop-http

http://127.0.0.1:8765/api/v2

schema 校验、策略、审计、工作流

如果你接的是标准 MCP Client,优先使用 stdioStreamable HTTP

如果你只是从普通程序里调用桌面能力,使用 /api/v1/dispatch

如果你在做新客户端,可以先读 /api/v2/actions 获取参数 schema 和策略说明,再按需调用 /api/v2/dispatch


Capabilities

能力

说明

Obsidian

保存记忆、创建/打开/追加笔记、每日笔记、搜索、最近记忆

Claude Code / Codex

打开项目、发送指令、slash 命令、切模型、状态查询、继续、聚焦、停止

Project Alias

CC_ALLOWED_PROJECTS 生成安全项目别名

Apps

打开、关闭、聚焦或查询 ALLOWED_APPS 白名单内的 macOS App

Xcode

打开项目、build、test、clean、查看最近错误

Browser / Finder / Clipboard

标签页读取与控制、打开搜索、Finder 定位、剪贴板读写

Desktop Perception

全屏/窗口截图、macOS Vision OCR、MCP 图像内容

Accessibility UI

UI 树、元素状态,以及确认后的点击、输入、滚动、拖拽、菜单和文件选择

Verified Execution

短期 Observation、窗口/目标重校验、幂等动作和操作后自动验证

Music

Apple Music 状态/音量控制、网易云播放和客户端内搜索

Pending Actions

SQLite 持久化、TTL、原子确认、防重复执行

Workflows

多步骤计划、暂停确认、重启恢复、继续和取消

Dynamic Workflows

只读重试、受限等待、条件分支和显式安全补偿

Audit

SQLite 脱敏审计,只保存参数名,不保存参数值

Diagnostics

健康检查、配置摘要、工具目录、会话清理

Observability

X-Request-Id、请求日志、工具调用耗时、错误追踪


Quick Start

git clone git@github.com:jijiutong/xiaozhi-desktop-mcp.git
cd xiaozhi-desktop-mcp

python3 -m venv .venv
. .venv/bin/activate
pip install -e .

cp .env.example .env

编辑 .env,至少确认这些配置:

OBSIDIAN_VAULT=/path/to/your/obsidian-vault
DESKTOP_MCP_CONFIG=desktop-mcp.yaml

DEFAULT_PROJECT_ROOT=/path/to/your/project
CC_ALLOWED_PROJECTS=/path/to/your/project
XCODE_ALLOWED_PROJECTS=/path/to/your/project

ALLOWED_APPS=Obsidian,Xcode,Google Chrome,Safari,Music,Finder,Terminal
APP_ALIASES=chrome=Google Chrome,netease=网易云音乐,网易云=网易云音乐
APP_PROCESS_ALIASES=网易云音乐=网易云音乐|NetEaseMusic|NeteaseMusic
APP_AUTOMATION_ALIASES=网易云音乐=NeteaseMusic

DESKTOP_MCP_STATE_DB=~/.local/share/xiaozhi-desktop-mcp/state.db
DESKTOP_MCP_PENDING_TTL_SECONDS=600
DESKTOP_MCP_OBSERVATION_TTL_SECONDS=120
DESKTOP_MCP_WORKFLOW_LEASE_SECONDS=300
DESKTOP_MCP_AUDIT_ENABLED=true
DESKTOP_MCP_BROWSER_CONTROL_ENABLED=true
# 留空允许任意 http(s) 域名;生产环境可配置 example.com,docs.example.com
DESKTOP_MCP_BROWSER_ALLOWED_DOMAINS=

启动普通 HTTP API:

xiaozhi-desktop-http

检查服务:

curl http://127.0.0.1:8765/api/v1/health
curl http://127.0.0.1:8765/api/v1/actions
curl http://127.0.0.1:8765/api/v2/actions

启动标准 MCP Streamable HTTP:

xiaozhi-desktop-mcp-streamable

默认 endpoint:

http://127.0.0.1:8766/mcp

HTTP Dispatch

普通客户端推荐统一调用:

POST /api/v1/dispatch

请求示例:

{
  "request_id": "client-001",
  "action": "desktop_intent",
  "params": {
    "category": "docs",
    "intent": "search",
    "params": {
      "query": "desktop mcp"
    }
  }
}

响应示例:

{
  "success": true,
  "request_id": "client-001",
  "action": "desktop_intent",
  "spoken_message": "找到了 3 条相关笔记。",
  "error_spoken_message": "",
  "error": "",
  "data": {}
}

客户端建议:

  • 成功时读 spoken_message

  • 失败时读 error_spoken_message

  • 调试和结构化数据读 data

  • 日志串联使用 request_id

更多 Java / Python / Go 示例见 Client Examples


Common Actions

任务

Action

通用桌面意图

desktop_intent

截图 / 窗口截图 / OCR

desktop_screenshot / desktop_window_screenshot / desktop_ocr

创建短期桌面观察

desktop_observe

重校验、执行一次并验证

desktop_execute_step

UI 能力 / UI 树 / UI 操作

accessibility_capabilities / accessibility_tree / accessibility_action

查看分类能力

category_registry

保存一条记忆

remember

搜索 Obsidian

search_obsidian

新建 / 打开 / 追加笔记

create_note / open_note / append_daily_note

列出允许项目

list_projects

按项目名交给 Claude Code

ask_cc_project

查看 Claude Code 状态

check_cc

让 Claude Code 继续 / 停止

continue_cc / stop_cc

发送 slash 命令 / 切模型

cc_send_slash_command / cc_switch_model

打开 / 关闭 App

app_open / app_close

聚焦 / 查询 App

app_focus / app_status

浏览器打开 / 搜索

browser_open / browser_search

浏览器标签页 / 当前页

browser_tabs / browser_current

浏览器控制 / 能力

browser_control / browser_capabilities

音乐控制 / 状态 / 音量

music_control / music_status / music_set_volume

网易云客户端搜索

music_search_app

App Driver 能力

app_capabilities

工作流计划 / 执行 / 查询 / 取消

workflow_plan / workflow_execute / workflow_get / workflow_cancel

审计记录

audit_list

Xcode 构建 / 测试 / 清理

xcode_build / xcode_test / xcode_clean

查看 Xcode 最近错误

xcode_last_errors

创建 / 确认待执行动作

pending_create / pending_confirm

桌面环境自检

health

查看工具目录

tool_catalog


Voice Examples

小智,记一下:这个项目先做成桌面 MCP。
小智,打开这个项目的 Claude Code。
小智,把这个任务交给 cc:检查 README 是否清楚。
小智,让 cc 执行 /status。
小智,看看 cc 现在卡在哪。
小智,搜索 Obsidian 里关于桌面 MCP 的笔记。
小智,打开 Xcode 项目并构建。
小智,音乐下一首。
小智,用浏览器搜索 desktop mcp。
小智,列出 Chrome 的标签页。
小智,切到 Chrome 第二个标签页。
小智,看看 Apple Music 正在播放什么。
小智,在网易云音乐客户端搜索周杰伦。
小智,把这段话复制到剪贴板。

Security Model

边界

策略

任意 shell

不提供

App

只能操作 ALLOWED_APPS

项目

只能进入 CC_ALLOWED_PROJECTS

Xcode

只能操作 XCODE_ALLOWED_PROJECTS

Obsidian

只能访问 OBSIDIAN_VAULT

Finder

只能打开 Obsidian、任务目录、允许项目内路径

Accessibility

窗口/UI 目标必须是白名单 App;UI 写操作必须单独确认

中风险动作

先创建 pending action,确认后执行

HTTP 鉴权

非 localhost 绑定必须设置 DESKTOP_MCP_AUTH_TOKEN

HTTP Token 权限

DESKTOP_MCP_AUTH_SCOPES 限制 screen:readstate:readdesktop:control

工作流恢复

租约防止并发 owner;崩溃后只读步骤可恢复,未知写操作结果会停机

可观测性

请求和工具调用记录 request id、状态、耗时,不打印 token

HTTP API 和 Streamable HTTP 都支持:

Authorization: Bearer <token>
X-Desktop-Mcp-Token: <token>

更多细节见 Security Model


Project Structure

路径

作用

src/xiaozhi_desktop_mcp/server.py

标准 MCP stdio / Streamable HTTP 工具入口

src/xiaozhi_desktop_mcp/http_server.py

FastAPI HTTP 服务

src/xiaozhi_desktop_mcp/api_v1.py

多语言统一 dispatch API

src/xiaozhi_desktop_mcp/api_v2.py

Schema、策略、错误码和审计执行入口

src/xiaozhi_desktop_mcp/storage.py

pending、workflow、audit SQLite 状态库

src/xiaozhi_desktop_mcp/workflows_v2.py

可恢复多步骤工作流

src/xiaozhi_desktop_mcp/tools/

Obsidian、App、cc、项目、Xcode、pending actions 等工具

desktop-mcp.yaml

通用桌面 category registry 配置

docs/api.md

HTTP API 协议

docs/clients.md

Java / Python / Go 示例

docs/operations.md

启动、检查和排障

docs/security.md

安全模型


Development

. .venv/bin/activate
pytest
ruff check src tests

Documentation

文档

内容

API

HTTP API 协议、鉴权、请求响应

Client Examples

Java / Python / Go 接入示例

Operations

启动、健康检查、常见排障

Security

白名单、路径限制、鉴权和日志

Desktop Control Roadmap

完整 LLM 桌面操控差距、当前进度和后续闭环路线

macOS E2E

真实 App smoke 矩阵、运行条件和最近一次结果

Xiaozhi Integration

小智服务和 MCP bridge 接入

Changelog

版本变化

License

MIT

Available Tools

48 tools
app_closeA

当用户说“关闭某个 App”时调用;只允许关闭配置白名单里的 macOS App。

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the whitelist constraint but does not mention error handling (e.g., if app is not running) 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.

Conciseness5/5

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

The description is two sentences, front-loading the trigger condition and then the restriction. No unnecessary words.

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

Completeness4/5

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

Given the tool's simplicity, the description covers when to call and the key constraint. However, it is missing parameter format guidance, which would improve completeness.

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

Parameters2/5

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

The schema has 0% description coverage for the parameter 'app_name'. The description only says '关闭某个App' without specifying the required format (e.g., display name, bundle ID). This leaves ambiguity for the agent.

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

Purpose5/5

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

The description clearly states the tool closes a macOS App when the user requests it, and specifies the whitelist restriction. This distinguishes it from sibling tools like app_open.

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

Usage Guidelines4/5

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

The description explicitly says '当用户说关闭某个App时调用' indicating when to use. It also mentions the whitelist restriction. However, it does not discuss alternatives or when not to use.

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

app_openA

当用户说“打开某个 App”时调用;只允许打开配置白名单里的 macOS App。

ParametersJSON Schema
NameRequiredDescriptionDefault
app_nameYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the whitelist restriction, which is a key behavioral trait, but does not mention failure behavior or authorization requirements.

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

Conciseness5/5

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

The description is two short sentences, front-loads the trigger scenario, and adds the whitelist constraint without extraneous detail.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description covers the essential context (when to call, restriction). It omits details like success/error responses, but given the tool's simplicity, it is largely complete.

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

Parameters2/5

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

The input schema has 0% description coverage, and the description adds no information about the 'app_name' parameter beyond what the schema's title ('App Name') implies. No format, examples, or constraints are provided.

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

Purpose5/5

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

The description clearly states the tool opens macOS apps from a whitelist when the user says 'open a certain app'. It distinguishes from the sibling tool 'app_close' by specifying the opening action.

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

Usage Guidelines4/5

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

The description explains when to call (user request to open an app) and includes a constraint (only whitelisted apps). It does not explicitly list when not to use or alternative tools, but the context is clear.

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

cc_cleanup_sessionsA

清理已经不存在的 Claude Code/Codex 可见会话登记。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is destructive, what exactly it modifies, or any authorization requirements. The phrase 'clean up' implies mutation but is not explicit.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. Every word contributes to stating the tool's purpose.

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

Completeness3/5

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

Given the tool has no parameters, no output schema, and low complexity, the description is adequate. However, it could be more complete by explaining what 'session registrations' are or what conditions trigger the cleanup.

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

Parameters4/5

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

The tool has zero parameters, and the schema description coverage is 100% (trivially). With no parameters to describe, the baseline score of 4 applies; the description does not need to add parameter information.

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

Purpose5/5

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

The description clearly states the verb '清理' (clean up) and the specific resource '已经不存在的 Claude Code/Codex 可见会话登记' (session registrations that no longer exist). This distinguishes it from sibling tools like cc_list_sessions or cc_start_session, which serve different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, side effects, or conditions under which the cleanup is appropriate.

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

cc_close_terminalB

当用户说“关闭终端/关闭cc窗口”时调用,关闭前台 Terminal/iTerm 窗口。

ParametersJSON Schema
NameRequiredDescriptionDefault
terminalNoTerminal

TDQS

B3.4/5.0
Behavior3/5

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 states the action (close) which implies destruction, but does not mention side effects, permissions, or error states. It is minimally transparent.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the trigger condition. It is efficient but could include parameter guidance without bloat. Still achieves good density.

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

Completeness2/5

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

For a simple one-parameter tool, the description should cover parameter values and expected behavior. It lacks this, and with no output schema, the agent is left without return info or error cases. Incomplete for effective use.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain the 'terminal' parameter at all. The default value 'Terminal' is in the schema but not described; allowed values or formats are omitted. The description fails to add meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool closes the foreground Terminal/iTerm window, with a specific verb and resource. It distinguishes well from sibling tools that manage sessions or other apps.

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

Usage Guidelines3/5

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

The description gives an explicit trigger ('当用户说...') but does not mention when not to use the tool, nor any alternatives. No guidance on prerequisites or exclusions.

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

cc_create_taskB

当用户说“让 cc/Codex/Claude Code 做...”时调用,只创建待办任务,不执行命令。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
priorityNonormal
instructionYes
project_pathNo

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral transparency. It only states that the tool creates a task and does not execute commands, but lacks details about side effects, persistence, error handling, or return values. This is insufficient for a task creation tool.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys purpose and limitation with no wasted words. It is front-loaded and earns every word.

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

Completeness2/5

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

Given 4 parameters, no output schema, and no annotations, the description is too minimal. It fails to provide sufficient context for correct usage, such as parameter details or expected outcomes, making it incomplete for an agent to reliably invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to any of the 4 parameters. It does not explain 'priority' values, 'project_path' usage, or 'instruction' format. The agent would have no guidance on how to fill these fields beyond their names.

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

Purpose5/5

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 to-do task when the user says 'let cc/Codex/Claude Code do...'. It specifies the verb (create) and resource (task), and distinguishes itself by explicitly saying it does not execute commands, which sets it apart from sibling tools that execute commands.

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

Usage Guidelines4/5

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

The description provides clear when-to-use guidance: when the user invokes cc/Codex/Claude Code to do something. It also states what not to do (do not execute commands). However, it does not explicitly mention alternatives among sibling tools, though the context implies differentiation.

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

cc_focus_sessionB

把指定 Claude Code/Codex 可见会话窗口拉到前台。

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault

TDQS

B3/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It discloses that the session must be 'visible' to be focused, which is a useful constraint. However, it does not describe behavior if session ID is invalid or not visible.

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

Conciseness4/5

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

Single sentence with no redundancy. Could be slightly expanded to include parameter guidance, but it is efficient as is.

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

Completeness3/5

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

Given the tool's simplicity and lack of output schema, the description is adequate but incomplete. It omits how to obtain the session ID and error scenarios, which would be helpful.

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

Parameters2/5

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

The description does not explain the session_id parameter or its source (e.g., from cc_list_sessions). With 0% schema coverage, this is a significant gap. The default value is unmentioned.

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

Purpose4/5

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

The description clearly states the action (bring to front) and resource (specified visible session window). It distinguishes from siblings like cc_open_visible_session, which likely opens new sessions. However, it could be more explicit about differentiation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like cc_open_visible_session or desktop_focus_cc. The context is implied but not explicitly stated.

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

cc_list_sessionsA

列出当前服务进程记住的可见 Claude Code/Codex 会话。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It implies read-only listing of visible sessions, which is adequate for a simple list. However, it does not explicitly confirm no side effects or required permissions.

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

Conciseness5/5

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

Single sentence, front-loaded with verb and resource. No extraneous words; every part is necessary.

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

Completeness5/5

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

For a parameterless list tool with no output schema, the description is fully adequate. It tells the agent exactly what the tool does and the domain of sessions covered.

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

Parameters4/5

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

No parameters exist (schema coverage 100%), so baseline is 4. The description adds meaning by specifying it lists 'visible' sessions 'remembered by the current service process', clarifying the scope.

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

Purpose5/5

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

The description states the exact verb 'list' and resource 'visible Claude Code/Codex sessions' from the current service. It clearly distinguishes from sibling tools that manipulate or focus sessions.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like cc_focus_session or cc_session_status. The description does not mention when not to use it or what context makes it appropriate.

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

cc_open_claude_codeC

当用户说“打开 Claude Code/打开 cc”时调用,默认在可见 Terminal 中启动 claude。

ParametersJSON Schema
NameRequiredDescriptionDefault
cli_argsNo
terminalNoTerminal
session_idNodefault
project_pathNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states that the tool defaults to starting Claude in the visible Terminal, which is a key behavioral trait. But it does not disclose other behaviors such as error handling, session management, or whether it closes existing sessions. The description is insufficient for a tool with multiple parameters and no output schema.

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

Conciseness4/5

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

The description is a single sentence, which is concise and front-loaded with the usage trigger. However, it is written in Chinese while the tool name is English, which might cause confusion. For a tool with four parameters, it is overly brief, but conciseness itself is not penalized heavily.

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

Completeness1/5

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

Given the tool has four optional parameters, no schema descriptions, no output schema, and no annotations, the description is severely incomplete. It only covers the basic action and trigger, leaving the agent without sufficient context to use parameters or interpret results.

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

Parameters1/5

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

The description adds no meaning to the four parameters (cli_args, terminal, session_id, project_path). Since schema description coverage is 0%, the description should compensate, but it does not mention any parameter. An agent has no context to set these parameters correctly.

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

Purpose4/5

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

The description clearly states the tool opens Claude Code when the user says specific phrases like '打开 Claude Code/打开 cc'. It identifies the verb 'open' and the resource 'Claude Code'. However, it does not explicitly differentiate from sibling tools like 'app_open' or 'desktop_open_cc_project', leaving some ambiguity.

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

Usage Guidelines3/5

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

The description provides a trigger condition ('当用户说...时调用'), indicating when to use the tool. However, it offers no guidance on when not to use it or alternatives among the many sibling tools (e.g., cc_start_session), limiting its usefulness.

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

cc_open_visible_sessionB

打开可见 Terminal/iTerm 窗口并启动 Claude Code/Codex;方便人工观看和接管。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
cli_argsNo
terminalNoTerminal
session_idNodefault
project_pathNo

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool opens a visible window and starts Claude Code/Codex, but does not detail side effects (e.g., effect on existing sessions), authentication needs, or whether it blocks or returns immediately. Additional context about what happens to prior sessions or how the visible window behaves would improve transparency.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core purpose. It is front-loaded with the action and resource. However, it could be restructured to include brief parameter hints without losing conciseness.

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

Completeness2/5

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

Given the tool has 5 optional parameters, no output schema, and no annotations, the description is insufficient for an agent to use it correctly. The high-level purpose is clear, but without parameter semantics, usage guidelines, or behavioral details, the agent cannot determine appropriate values or when to use it. The description needs to cover parameter roles and any prerequisites.

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

Parameters1/5

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

The input schema has 5 parameters (cli, cli_args, terminal, session_id, project_path) with no descriptions (0% schema description coverage). The tool description does not explain the meaning, purpose, or acceptable values of any parameter. For an agent to invoke this tool correctly, parameter semantics are critical, and here they are entirely missing.

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

Purpose5/5

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

The description clearly states the tool opens a visible Terminal/iTerm window and launches Claude Code/Codex for human viewing and takeover. It directly states the verb (open, start), resource (visible terminal window, Claude Code/Codex), and the purpose (方便人工观看和接管). This differentiates it from sibling tools like cc_start_session or cc_open_claude_code, which likely have different visibility or interaction modes.

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

Usage Guidelines3/5

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

The description implies the tool is for scenarios requiring human visibility and takeover, but it does not explicitly state when to use this tool over alternatives like cc_start_session or cc_open_claude_code. No when-not-to-use or prerequisite information is provided. The context is implied but not direct.

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

cc_send_decisionC

当 CLI 等待确认时发送 yes/no/cancel;默认允许,可通过配置改成确认或禁止。

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
decisionYes
session_idNodefault
allow_frontmostNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It mentions default behavior (allow) and configurability but lacks detail on side effects, mutability, or error states. Minimal behavioral insight.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It combines purpose and behavioral notes without clear separation, making it somewhat dense but not optimal.

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

Completeness2/5

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

Given four parameters, no output schema, no annotations, and zero parameter descriptions, the description is insufficient. It does not clarify how to use session_id, confirm, or allow_frontmost, leaving significant gaps.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no explanation for any of the four parameters (confirm, decision, session_id, allow_frontmost). It only hints at possible decision values (yes/no/cancel) but does not specify them in the schema or description.

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

Purpose4/5

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

The description clearly states the tool sends yes/no/cancel decisions when the CLI is waiting for confirmation. While it does not explicitly distinguish from every sibling tool, the purpose is specific and recognizable among similar cc_send_* tools.

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

Usage Guidelines3/5

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

The description implies the tool is used for CLI confirmation prompts, providing context but no explicit when-not-to-use or alternative tools. It does not mention any prerequisites or required conditions.

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

cc_send_instructionC

向已启动的受管 CLI 会话发送自然语言任务说明。

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
session_idNodefault
allow_frontmostNo

TDQS

C2.8/5.0
Behavior1/5

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. It only states the action without mentioning side effects, safety, blocking behavior, or what happens if the session isn't started. This is insufficient for an agent to infer usage safely.

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

Conciseness4/5

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

The description is a single sentence, short and direct. It has no wasted words, but it is not structured with bullet points or separate sections. It is appropriately concise for the given information.

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

Completeness2/5

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

Given the tool has 3 parameters, no output schema, and many sibling tools, the description is too minimal. It does not explain the nature of the instructions, return values, or error conditions. It is not complete enough for an agent to use effectively without additional context.

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

Parameters1/5

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

The input schema has 0% description coverage, and the tool description does not explain any parameter semantics. For example, 'allow_frontmost' and 'session_id' are not clarified. The description adds no meaning beyond the schema field names.

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

Purpose5/5

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

The description clearly states the tool sends natural language task instructions to a started managed CLI session. It uses a specific verb ('send') and resource ('natural language task instructions' to a 'started managed CLI session'), distinguishing it from siblings like cc_send_decision and cc_send_slash_command.

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

Usage Guidelines3/5

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

The description implies the tool is for sending instructions to an already started session, but lacks explicit guidance on when to use it versus alternatives like cc_start_session or cc_send_slash_command. 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.

cc_send_slash_commandB

发送 /init、/compact、/model 等内部命令;默认允许,可通过配置收紧。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo
commandYes
confirmNo
session_idNodefault
allow_frontmostNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description provides some behavioral context (default allowed, configurable) but omits important details such as whether the command is destructive, likely side effects, error handling, or that it operates within a session (implied by session_id parameter).

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core purpose and a configuration note. It is front-loaded but could benefit from a more structured format.

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

Completeness2/5

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

Given the tool has 5 parameters, no output schema, and no annotations, the description is insufficient. It fails to explain the role of most parameters, return values, error behavior, or how the tool integrates with sessions.

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

Parameters2/5

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

The schema has 5 parameters with 0% description coverage. The description only provides example values for the 'command' parameter (e.g., /init) but does not explain 'args', 'confirm', 'session_id', or 'allow_frontmost'. This leaves most parameters undocumented.

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

Purpose5/5

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

The description clearly states the tool sends internal slash commands like /init, /compact, /model, distinguishing it from sibling tools like cc_send_instruction or cc_send_decision. The verb 'send' and resource 'internal commands' are specific.

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

Usage Guidelines3/5

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

The description mentions that the tool is allowed by default but can be tightened via configuration, giving a vague usage hint. However, it lacks explicit guidance on when to use this tool versus alternatives like cc_send_instruction or cc_session_status.

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

cc_session_statusC

查看受管 CLI 当前状态,只读取最近输出:等待确认、报错、完成、运行中或空闲。

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo
session_idNodefault

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It states the tool 'only reads recent output' and lists statuses, implying read-only behavior. However, it omits details about required session existence, behavior with invalid session_id, or absence of side effects.

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

Conciseness4/5

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

The description is a single sentence that front-loads the purpose. It is relatively concise but could be slightly more efficient by removing the colon and enumeration, though it remains clear.

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

Completeness2/5

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

Given the lack of output schema and parameter descriptions, the description does not cover the return format, interpretation of 'recent output', or the effect of 'max_chars'. The session_id's 'default' is unexplained, making the tool incomplete for effective use.

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

Parameters1/5

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

The input schema has two parameters with no descriptions, and the tool description does not explain 'max_chars' or 'session_id' at all. Since schema coverage is 0%, the description fails to add any meaning beyond the basic type and default values.

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

Purpose4/5

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

The description clearly states the tool checks the current status of the managed CLI and lists possible statuses (waiting, error, completed, running, idle). It uses a specific verb and resource, distinguishing it from sibling tools like cc_list_sessions or cc_start_session. However, it could be more explicit about the session context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as cc_list_sessions or cc_start_session. It does not mention prerequisites or exclusions, leaving the agent to infer usage from context.

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

cc_start_sessionC

启动受管 Claude Code/Codex CLI 会话;只能在配置允许的项目目录里启动。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
cli_argsNo
session_idNodefault
project_pathNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions 'managed' and directory constraint, but fails to disclose side effects, required permissions, or state changes. Minimal behavioral disclosure.

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

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with the core action. Excellent conciseness.

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

Completeness2/5

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

Tool has 4 parameters and no output schema or annotations. The brief description omits parameter explanations, return value, and behavioral details, making it insufficient for an agent to use correctly.

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

Parameters1/5

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

Schema has 4 parameters with 0% description coverage. Description adds no meaning to any parameter (cli, cli_args, session_id, project_path). Agents cannot infer which values to provide.

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

Purpose4/5

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

Description clearly states the verb (start), resource (managed Claude Code/Codex CLI session), and adds a constraint (only in allowed project directories). However, it does not differentiate from sibling tools like cc_focus_session or cc_stop_session.

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

Usage Guidelines3/5

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

Provides a condition for usage (only in allowed project directories), but lacks explicit guidance on when to use alternatives or when not to use this tool, especially given the many sibling tools.

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

cc_stop_sessionC

停止受管 Claude Code/Codex CLI 会话,并关闭前台 Terminal 窗口。

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
allow_frontmostNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must compensate. It only states the action but does not disclose whether stopping a session is destructive, whether it requires specific permissions, or what the impact on background processes is. The behavioral context is minimal.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the main action. It is appropriately short, though it could benefit from structure like bullet points or additional context for parameters.

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

Completeness2/5

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

Given the complexity of two optional parameters with no schema descriptions and no output schema, the description is incomplete. It does not explain what happens to the session state, the effect of the parameters, or the expected return, leaving significant gaps for the agent to infer.

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

Parameters1/5

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

Parameter schema coverage is 0% and the description does not mention any parameters. The two parameters (session_id and allow_frontmost) have no descriptions, and the tool description adds no meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the tool stops a managed session and closes the foreground terminal window, specifying the verb and resource. However, it does not differentiate from sibling tools like cc_close_terminal or cc_cleanup_sessions, which may have overlapping functionality.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool vs alternatives like cc_close_terminal or cc_cleanup_sessions. The description simply states what it does, without context for selection.

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

cc_switch_modelC

切换受管 Claude Code/Codex 会话模型;默认允许所有模型,可用配置收紧。

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYes
confirmNo
session_idNodefault
allow_frontmostNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations are absent, so the description must fully disclose behavioral traits. It mentions 'default allows all models, configurable to tighten' but does not explain side effects such as whether switching affects an active session, requires permissions, or involves any destructive actions. This is insufficient for a state-modifying tool.

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

Conciseness3/5

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

The description is a single, front-loaded sentence that conveys the core purpose efficiently. However, it sacrifices parameter details and usage context, meaning the brevity comes at the cost of completeness. It is concise but not optimally structured for agent consumption.

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

Completeness2/5

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

Given that there is no output schema and the tool modifies a session's model, the description should cover behavior, prerequisites, and failure scenarios. It lacks information on what constitutes a valid model, whether the session must be active, and what happens after switching. The description is incomplete for practical use.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no explanation for any of the four parameters (model, confirm, session_id, allow_frontmost). The agent must rely solely on parameter names and types, which is inadequate for correct invocation.

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

Purpose4/5

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

The description clearly states the tool switches the model for a managed Claude Code/Codex session, which distinguishes it from sibling tools like cc_start_session or cc_focus_session. However, the title is null and the description is in Chinese, which may reduce clarity for non-Chinese-speaking agents, though it still provides a specific verb and resource.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, when not to use, or any context for the operation. It only states the general action, leaving the agent to infer when it is appropriate.

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

desktop_ask_ccC

语音友好入口:把一句自然语言任务交给 Claude Code/Codex。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
textYes
terminalNoTerminal
session_idNodefault
project_pathNo
open_if_neededNo
allow_frontmostNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavior. It only mentions handing over a task but does not describe what happens afterward (e.g., execution, return value, side effects, auth requirements). This is insufficient for an agent to predict tool consequences.

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

Conciseness3/5

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

The description is a single short sentence, which is concise, but it does not earn its place by providing sufficient information. It is not verbose, but the brevity comes at the cost of completeness.

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

Completeness1/5

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

Given 7 parameters, no output schema, and no annotations, the description is extremely incomplete. It omits return behavior, side effects, prerequisites, and any guidance on the many optional parameters. The tool's complexity demands a much richer description.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must add meaning. It only implicitly covers 'text' by mentioning 'natural language task', leaving 6 other parameters (cli, terminal, session_id, project_path, open_if_needed, allow_frontmost) completely unexplained. This fails to aid the agent in parameter selection.

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

Purpose4/5

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

The description states it is a voice-friendly entry point to hand a natural language task to Claude Code/Codex, which clearly indicates the action and resource. However, it does not explicitly differentiate from sibling tools like cc_send_instruction or desktop_ask_cc_project, but the purpose is still specific enough.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are there any context or exclusion hints. The agent receives no help in deciding when to invoke this tool.

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

desktop_ask_cc_projectC

按项目名/别名把任务交给 Claude Code/Codex。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
textYes
projectYes
terminalNoTerminal
session_idNodefault
open_if_neededNo
allow_frontmostNo

TDQS

C2.3/5.0
Behavior1/5

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

No annotations exist, so the description bears the full burden. It only states 'assign tasks' without explaining side effects, such as whether a new session is created, whether it blocks, or how parameters like session_id or open_if_needed affect behavior. The description is almost entirely opaque.

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

Conciseness2/5

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

The description is a single short sentence, which is concise but severely underspecified for a tool with 7 parameters. It sacrifices necessary detail for brevity, making it inadequate for proper usage.

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

Completeness1/5

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

Given no output schema, no annotations, and 0% parameter documentation, the description is far from complete. It fails to explain input semantics, expected output, or side effects, leaving a major knowledge gap for an AI agent.

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

Parameters1/5

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

Schema has 0% parameter description coverage, and the description adds meaning only for the 'project' parameter (via 'by project name/alias'). The critical parameters 'text', 'cli', 'terminal', 'session_id', 'open_if_needed', and 'allow_frontmost' are entirely unexplained, leaving the agent unable to use the tool effectively.

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

Purpose5/5

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

The description clearly states the tool assigns tasks to Claude Code/Codex by project name or alias. This distinguishes it from similar tools like desktop_ask_cc (without project scope) and desktop_open_cc_project (only opens, doesn't assign).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, contexts, or situations where another tool would be more appropriate, which is a significant gap given the many sibling tools.

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

desktop_category_registryA

返回通用桌面能力分类,例如 music、docs、ai、dev、browser、system。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears full weight. It only states the return content but does not disclose any behavioral traits such as side effects, performance characteristics, or data source. Metadata like idempotency or safety is missing.

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

Conciseness5/5

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

The description is extremely concise: a single sentence that is front-loaded with the key action and resource. No superfluous words.

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

Completeness3/5

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

The description is adequate for a simple parameterless tool, but it lacks explicit details about the return format (e.g., list of strings, object). Since there is no output schema, the description should clarify the structure to avoid ambiguity.

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

Parameters4/5

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

There are zero parameters, and schema description coverage is 100%. The description correctly implies that no input is needed. Baseline for 0 parameters is 4, and the description adds no incorrect or missing meaning for parameters.

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

Purpose5/5

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

The description clearly states the tool's purpose: returning general desktop capability categories, with specific examples. It uses a verb ('返回') and resource ('desktop capability categories'), and it distinguishes itself from sibling tools like desktop_tool_catalog by focusing on abstract categories rather than tool listings.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description does not mention any conditions, prerequisites, or comparisons to sibling tools. Usage context is only implied.

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

desktop_check_ccC

语音友好入口:看看 Claude Code/Codex 当前在做什么或卡在哪。

ParametersJSON Schema
NameRequiredDescriptionDefault
max_charsNo
session_idNodefault

TDQS

C2.7/5.0
Behavior3/5

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

With no annotations, the description bears full burden. It implies a read-only, non-destructive check but does not disclose important traits such as session handling (session_id default) or any side effects. The behavior is partially clear but missing details.

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

Conciseness4/5

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

The description is a single short sentence, making it very concise. However, it is front-loaded but omits necessary details, so while concise, it sacrifices completeness.

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

Completeness2/5

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

Given the tool has two optional parameters and no output schema, the description is insufficient. It does not explain the tool's output format, how to interpret results, or how parameters affect behavior. Sibling tools add context but are not leveraged.

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

Parameters1/5

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

The description adds no information about the two parameters (max_chars, session_id). With 0% schema description coverage, the agent receives no guidance on their meaning or usage, making this dimension severely lacking.

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

Purpose4/5

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

The description clearly states the tool checks what Claude Code/Codex is doing or stuck on, using a specific verb and resource. It somewhat distinguishes from sibling tools like cc_session_status by labeling itself as a voice-friendly entry, but lacks specificity on the exact output.

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

Usage Guidelines2/5

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

The description implies usage for quick voice-friendly checks but provides no explicit guidance on when to use this tool versus alternatives like cc_session_status or desktop_health_detail. No exclusions or alternatives are mentioned.

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

desktop_config_summaryA

返回脱敏配置摘要,方便排查桌面 MCP 环境。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses a key behavioral trait: the output is desensitized (removes sensitive data). However, it does not mention other important traits such as read-only behavior, performance characteristics, or failure modes. For a simple no-parameter tool, this is adequate but not complete.

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

Conciseness5/5

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

The description is a single, front-loaded sentence. It contains no filler and every word is informative. It is perfectly sized for the simplicity of the tool.

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

Completeness3/5

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

The tool is simple with no parameters and no output schema. The description explains the purpose and a key trait (desensitization), but does not hint at the return format or structure of the summary. For a tool that provides configuration data, additional context about the output would improve completeness.

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

Parameters4/5

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

The tool has zero parameters and no input schema beyond an empty object. The description does not need to add parameter information. Baseline score of 4 applies since schema coverage is effectively 100% and no parameter documentation is required.

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

Purpose5/5

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

The description clearly states the tool returns a desensitized configuration summary for troubleshooting the desktop MCP environment. It uses a specific verb ('returns') and resource ('configuration summary'), distinguishing it from sibling tools like 'desktop_health_detail' or 'desktop_tool_catalog'.

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

Usage Guidelines3/5

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

The description implies usage for troubleshooting ('方便排查桌面 MCP 环境'), but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not conditions. Usage context is only implicit.

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

desktop_continue_ccC

语音友好入口:让 Claude Code/Codex 继续。

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
session_idNodefault
allow_frontmostNo

TDQS

C2.1/5.0
Behavior1/5

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

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It merely says 'continue' without explaining what that entails (e.g., does it resume a paused session? does it require a running session? what are the side effects?). Critical behavioral context is missing.

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

Conciseness3/5

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

The description is a single short sentence, making it concise. However, conciseness is only valuable when it still conveys necessary information; here the brevity leads to omission of crucial details, so it is not a strength in this case.

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

Completeness1/5

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

Given the complexity (3 parameters, no output schema, no annotations, numerous sibling tools), the description is grossly incomplete. It does not define what 'continue' means, how the parameters affect behavior, or how this tool fits into the workflow alongside siblings like cc_start_session, cc_stop_session, or cc_focus_session.

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

Parameters2/5

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

The description does not explain any of the three parameters (confirm, session_id, allow_frontmost). While their names and defaults provide some hint, with 0% schema description coverage the description should compensate by clarifying their roles and effects, which it fails to do.

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

Purpose3/5

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

The description specifies 'let Claude Code/Codex continue', identifying the verb (continue) and resource (Claude Code/Codex session). However, it does not clearly differentiate from sibling tools like cc_send_instruction or cc_start_session, and 'continue' is ambiguous—it could mean resume, proceed with a pending task, or something else.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus the many related sibling tools (e.g., cc_send_instruction, desktop_focus_cc, cc_start_session). The phrase 'voice-friendly entry' hints at a voice use case but offers no 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.

desktop_focus_ccB

语音友好入口:把 Claude Code/Codex 窗口切到前台。

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description fully explains the simple behavior: bringing a window to the foreground. It is clear and sufficient for the action, though it could mention edge cases like if the window does not exist.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the purpose without any unnecessary words. It is highly concise.

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

Completeness3/5

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

For a simple focus tool, the description is adequate for basic understanding, but it lacks parameter explanation and usage context. Given no output schema, it meets minimum requirements but has room for improvement.

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

Parameters1/5

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

The single parameter session_id has 0% schema description coverage and is not explained in the tool description. The description adds no meaning to the parameter, leaving its purpose unclear.

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

Purpose5/5

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

Description clearly states the tool brings the Claude Code/Codex window to the foreground. It uses a specific verb-resource structure and distinguishes from sibling tools that focus on different aspects of Claude Code.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives like cc_focus_session or desktop_ask_cc. The description only states what it does without providing context or exclusions.

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

desktop_health_detailA

诊断桌面 MCP 环境:路径、CLI、终端 App、关键配置。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full weight. It only states a diagnostic function but does not disclose whether the tool modifies state, requires permissions, or has side effects. The description is insufficient for understanding the tool's behavioral traits.

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

Conciseness5/5

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

The description is a single, concise sentence that delivers the core information without any superfluous 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.

Completeness3/5

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

For a diagnostic tool with no output schema and no annotations, the description provides a general overview but lacks details on expected output or specific checks. It is adequate but leaves gaps for an agent needing to understand exactly what information is returned.

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

Parameters4/5

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

The tool has no parameters, so the schema is empty. The description does not add parameter-specific information, but with zero parameters, this is not a deficiency. The baseline is 4.

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

Purpose5/5

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

The description clearly states the tool's purpose: diagnosing the desktop MCP environment, listing specific aspects like paths, CLI, terminal app, and key configurations. It distinguishes from sibling tools by focusing on health details rather than summary or other operations.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or scenarios where it is particularly useful.

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

desktop_intentD

通用桌面意图入口:按 category + intent 路由到底层安全能力。

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYes
paramsNo
categoryYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is read-only, destructive, requires authentication, or has side effects. It simply says 'route', which is ambiguous.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified and fails to convey necessary information. Conciseness is not achieved because the content is insufficiently informative.

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

Completeness1/5

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

With 3 parameters (2 required), no output schema, and no annotations, the description is severely incomplete. It lacks any information about return values, side effects, or usage examples, making it insufficient for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions 'category' and 'intent' as routing criteria but does not explain valid values, format, or the purpose of the 'params' object. Adds minimal meaning beyond parameter names.

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

Purpose2/5

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

The description is vague: 'general desktop intent entry' and 'route to underlying security capabilities' do not specify a concrete action or resource. It fails to clearly communicate what the tool does, especially compared to more specific sibling tools.

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

Usage Guidelines1/5

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 its many siblings (e.g., desktop_ask_cc, desktop_check_cc). The description lacks any context for selection or exclusion criteria.

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

desktop_list_projectsA

列出可以被桌面 MCP 打开的白名单项目。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, permissions, or side effects. It only states the function without additional context.

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

Conciseness5/5

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

The description is a single concise sentence with no fluff, fully front-loaded with the core purpose. Every word earns its place.

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

Completeness3/5

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

The tool has no output schema, so the description should explain the return structure. It only states the resource but not the format or fields returned, leaving some ambiguity.

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

Parameters4/5

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

The tool has no parameters, and the input schema coverage is 100%. Per the guidelines, baseline score for zero parameters is 4. The description adds no parameter info, which is acceptable.

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

Purpose5/5

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

The description clearly states the tool lists white-listed projects that can be opened by the desktop MCP. The verb 'list' and resource 'white-listed projects' are specific, and no sibling tool serves an identical purpose.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like desktop_tool_catalog or other list tools. No context, prerequisites, or exclusions are mentioned.

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

desktop_open_cc_projectC

语音友好入口:打开某个项目的 Claude Code/Codex 可见窗口。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
cli_argsNo
terminalNoTerminal
session_idNodefault
project_pathNo

TDQS

C2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'open a visible window', which implies a GUI interaction, but gives no detail on permissions, prerequisites, side effects (e.g., whether existing sessions are reused), or what 'visible' means. The behavioral disclosure is minimal.

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

Conciseness2/5

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

The description is a single sentence, which is concise but too brief to be informative. It lacks structure and prioritizes brevity over clarity, resulting in under-specification. Every sentence should earn its place, but this one omits critical details.

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

Completeness1/5

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

Given the complexity (5 parameters, no output schema, no annotations), the description is severely incomplete. It does not address how to use the tool, what the parameters represent, or what the outcome looks like. The agent lacks the context needed to invoke the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the 5 parameters (cli, cli_args, terminal, session_id, project_path). The agent has no information about what these parameters do or how to use them, making the tool nearly unusable without external knowledge.

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

Purpose3/5

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

The description states the tool opens a visible Claude Code/Codex window for a project, which is a specific verb-resource pair. However, it remains vague by using 'a certain project' and does not clarify what 'Claude Code/Codex' is. It also does not distinguish from sibling tools like cc_open_visible_session or desktop_open_cc_project_named.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The phrase 'voice-friendly entry' hints at a voice activation context but does not explain scenarios or exclude other tools. The description lacks any direct comparison or usage conditions.

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

desktop_open_cc_project_namedC

按项目名/别名打开 Claude Code/Codex 可见窗口。

ParametersJSON Schema
NameRequiredDescriptionDefault
cliNo
projectYes
cli_argsNo
terminalNoTerminal
session_idNodefault

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It mentions opening a visible window but does not explain side effects, permissions, or the role of parameters like 'cli', 'cli_args', 'terminal', and 'session_id'.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks structure. It does not front-load key information about parameters or usage context.

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

Completeness2/5

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

Given 5 parameters (1 required), no output schema, no annotations, and numerous sibling tools, the description is insufficient. It fails to explain the purpose of non-project parameters and how this tool fits with similar tools.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameter beyond implying 'project' is the name/alias. Other parameters (cli, cli_args, terminal, session_id) are completely undocumented.

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

Purpose4/5

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

The description clearly states the tool opens a visible Claude Code/Codex window by project name/alias. However, it does not differentiate from the sibling tool 'desktop_open_cc_project', which may have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'desktop_open_cc_project' or 'cc_open_visible_session'. The description lacks context for decision-making.

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

desktop_rememberC

语音友好入口:当用户说“记一下...”时保存到 Obsidian。

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoxiaozhi,voice-memory
textYes

TDQS

C2.7/5.0
Behavior2/5

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 that it saves to Obsidian, with no details on side effects, authentication, or output. This is insufficient for safe invocation.

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

Conciseness3/5

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

The description is very short and front-loaded, but it omits parameter details that could be added without sacrificing conciseness. It is adequate but not optimal.

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

Completeness2/5

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

Given the lack of output schema and low schema coverage, the description is incomplete. It does not explain what happens after saving, any return values, or error conditions, making it insufficient for reliable use.

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

Parameters1/5

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

The description does not mention or explain any parameters (text, tags). With 0% schema coverage, this is a critical gap, leaving the agent to guess parameter usage.

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

Purpose4/5

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

The description clearly states the tool's purpose: a voice-friendly entry to save to Obsidian when the user says 'remember...'. It provides a specific trigger and resource, distinguishing it from general Obsidian tools. However, it is in Chinese, which may not be ideal for all agents.

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

Usage Guidelines3/5

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

The description implies usage when the user says 'remember...', but it does not explicitly state when not to use it or provide alternatives. Given sibling tools like obsidian_save_memory and obsidian_create_note, more guidance is needed.

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

desktop_resolve_projectA

把项目名、目录名或白名单路径解析为安全项目路径。

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It states it resolves to a safe project path but does not explain what 'safe' means, whether validation is performed, or if it has side effects. The description is minimal and lacks behavioral depth.

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

Conciseness5/5

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

The description is a single concise sentence that delivers the core purpose without unnecessary words. It is front-loaded and immediately understandable.

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

Completeness3/5

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

The tool is simple with one parameter and no output schema, so the description could be adequate. However, it does not explain what constitutes a 'safe project path', error handling, or the return format. It covers the input types but leaves gaps in the overall understanding of the tool's behavior.

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

Parameters4/5

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

The input schema has 0% description coverage for the single parameter 'project'. The description adds significant meaning by specifying that it accepts project names, directory names, or whitelist paths, which clarifies acceptable inputs beyond the schema's plain string type.

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

Purpose5/5

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

The description clearly states the tool's action ('resolve') and resources ('project name, directory name, or whitelist path') and outcome ('safe project path'). It distinguishes from sibling tools like desktop_list_projects which lists projects, or desktop_open_cc_project which opens a project in Claude Code.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as desktop_open_cc_project or desktop_list_projects. The description does not specify prerequisites, when not to use, or context of use.

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

desktop_stop_ccC

语音友好入口:退出 Claude Code/Codex 并关闭窗口。

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idNodefault
allow_frontmostNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it exits and closes, implying destructive behavior, but does not disclose side effects (e.g., unsaved work, session state). No contradiction with annotations since none exist.

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

Conciseness4/5

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

Single sentence that is front-loaded with the purpose. Efficient but at the cost of omitting parameter details. Could be improved by adding brief parameter explanations.

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

Completeness2/5

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

Given 2 parameters, no output schema, and a large set of sibling tools, the description is insufficient. It does not explain session_id (e.g., which session to stop), allow_frontmost behavior, or what happens after execution. Incomplete for safe agent invocation.

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

Parameters1/5

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

Schema has 2 parameters (session_id and allow_frontmost) with 0% description coverage. The description provides no information about these parameters, leaving the agent to guess their meaning and impact. This is a critical gap.

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

Purpose4/5

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

Description clearly states it exits Claude Code/Codex and closes the window. The verb '退出' (exit) and '关闭窗口' (close window) are specific. It distinguishes from siblings like cc_stop_session which stops a session but doesn't close the window. However, it could be clearer about what exactly is being closed (the application window).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like cc_stop_session or desktop_focus_cc. No mention of prerequisites or scenarios where this should be avoided. The context of 37 sibling tools makes this omission significant.

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

desktop_tool_catalogA

返回桌面 MCP 工具目录,帮助小智/Java 选择高层工具。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not mention that the operation is read-only, requires no side effects, or any authentication needs. For a catalog tool, safety is assumed but not stated.

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

Conciseness5/5

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

The description is a single sentence in Chinese, concise and free of fluff. It immediately communicates the tool's purpose without unnecessary details.

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

Completeness2/5

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

The description does not explain the format or content of the returned catalog (e.g., list of tool names, descriptions, or metadata). Despite no output schema, a user would benefit from knowing what the catalog contains. The context is incomplete for effective use.

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

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100% (empty object). According to guidelines, baseline for 0 parameters is 4. The description does not need to add parameter details since none exist.

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

Purpose5/5

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

The description states it returns a desktop MCP tool catalog to help select high-level tools. The verb 'return' and resource 'desktop MCP tool catalog' are specific. It clearly distinguishes from sibling tools that perform actions on desktop or other domains.

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

Usage Guidelines4/5

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

The description implies use for discovering available tools before selecting one. It provides clear context but does not explicitly state when not to use or compare to alternatives. However, the purpose is well-understood given 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.

obsidian_append_daily_noteC

追加内容到 Obsidian 每日笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
textYes
folderNodaily

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, and the description only gives a minimal statement. It does not disclose key behavioral traits such as whether the daily note is created if missing, how content is appended (e.g., at the end), or any 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.

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices clarity and completeness. While not verbose, it fails to provide necessary details, making it inadequate.

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

Completeness1/5

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

Given the lack of annotations, output schema, and parameter descriptions, the description is severely incomplete. It does not cover the tool's full behavior, parameter defaults, or integration with Obsidian's daily note system.

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

Parameters1/5

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

Schema description coverage is 0%, meaning no parameter descriptions in the schema. The tool description does not explain the meaning or usage of the three parameters (date, text, folder), leaving the agent to infer from names alone.

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

Purpose4/5

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

The description states 'append content to Obsidian daily note', which clearly identifies the action and target. Among siblings, obsidian_append_note appends to a general note, so this tool is differentiated by 'daily note'. However, it could be more explicit about the daily note context.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like obsidian_append_note. The description only states what it does without any contextual or conditional advice.

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

obsidian_append_noteC

追加内容到 Obsidian vault 内指定 Markdown 笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
headingNo
note_pathYes

TDQS

C2.8/5.0
Behavior2/5

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

Description does not disclose behavioral traits beyond the basic action, such as whether it adds a newline, handles formatting, or what happens if the note does not exist. With no annotations provided, this leaves significant gaps.

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

Conciseness4/5

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

Extremely concise single sentence that front-loads the purpose. However, it lacks any structural elements like bullets or examples, and could be more informative without losing conciseness.

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

Completeness2/5

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

Given the tool has 3 parameters and no output schema, the description is insufficient. It does not explain the return value, behavior on errors, or how the heading parameter affects the append operation.

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

Parameters1/5

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

Schema coverage is 0%, meaning the description adds no information about the parameters beyond their names. The description does not elaborate on the meaning of 'text', 'heading', or 'note_path', so it fails to compensate for the lack of schema documentation.

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

Purpose5/5

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

Description clearly states the tool appends content to a specified Markdown note in Obsidian vault. It uses a specific verb ('append') and resource ('note'), distinguishing it from sibling tools like obsidian_create_note or obsidian_open_note.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like obsidian_create_note or obsidian_append_daily_note. Does not mention prerequisites, limitations, 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.

obsidian_create_noteB

新建 Obsidian vault 内的 Markdown 笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo
note_pathYes
overwriteNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only states 'create new note' without disclosing overwrite behavior, file path conventions, or error conditions. The overwrite parameter exists but is not mentioned in the description.

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

Conciseness5/5

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

The description is a single sentence with no extraneous information. It is direct and concise, earning its place without waste.

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

Completeness2/5

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

Given no output schema, 0% schema coverage, and no annotations, the description is incomplete. It does not explain return values success/failure indicators, or error cases. More context is needed for a creation tool with multiple parameters.

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

Parameters2/5

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

The schema has 3 parameters with 0% description coverage, but the description adds no meaning beyond parameter names. It does not explain that 'note_path' should be a relative path, how 'text' is used, or the effect of 'overwrite'. The description fails to compensate for the missing schema descriptions.

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

Purpose5/5

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

The description '新建 Obsidian vault 内的 Markdown 笔记' clearly indicates creating a new Markdown note in the Obsidian vault. The verb 'create' and resource 'note' are specific, and the tool is distinct from siblings like 'obsidian_append_note' and 'obsidian_open_note'.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not specify when to use this tool versus alternatives like 'obsidian_append_note' or 'obsidian_open_note', nor does it mention any prerequisites or contexts.

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

obsidian_open_noteC

打开 Obsidian vault 内的 Markdown 笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
note_pathYes

TDQS

C2.4/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the purpose. Since no annotations are provided, the description needs to cover aspects like whether opening a non-existent note creates it, or what happens if the note does not exist, but it does not.

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

Conciseness3/5

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

The description is concise at one sentence, but it is too minimal, lacking necessary details. It earns its place by being short but does not provide enough value.

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

Completeness2/5

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

Given the simple schema and lack of output schema, the description should explain the parameter format and the tool's effect. It fails to do so, leaving the agent with insufficient context to use it correctly.

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

Parameters1/5

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

The sole parameter 'note_path' has no description in the schema (0% coverage), and the description adds no semantics about path format, allowed values, or relative vs absolute paths.

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

Purpose4/5

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

The description clearly states the verb 'open' and the resource 'Markdown note in Obsidian vault', distinguishing it from sibling tools like 'obsidian_create_note' or 'obsidian_search'. However, it does not specify what 'open' means in terms of output or action.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'obsidian_create_note' or 'obsidian_append_note'. There is no mention of prerequisites or context.

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

obsidian_recent_memoriesC

读取最近几条语音记忆。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'read'. It does not disclose whether the operation is destructive, requires permissions, or any side effects. 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.

Conciseness3/5

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

The description is concise (one sentence), but it is under-specified. It achieves brevity at the cost of completeness.

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

Completeness2/5

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

For a simple tool with one parameter and no output schema, the description is somewhat adequate but missing key details: what are voice memories, return format, and any constraints. Incomplete for full understanding.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain the 'limit' parameter beyond its name. The parameter is simple but the description fails to add value.

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

Purpose4/5

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

Description clearly states 'read recent voice memories', which is a specific verb-resource pair. It distinguishes from siblings like obsidian_save_memory or obsidian_search. However, 'voice memories' could be ambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool, no mention of alternatives or when not to use it. The description provides no context for decision-making.

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

obsidian_save_memoryC

当用户说“记一下/保存想法/写到 Obsidian”时调用,保存一条语音记忆。

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoxiaozhi,voice-memory
textYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool saves a voice memory but does not mention idempotency, overwrite behavior, storage details, or any side effects. This is insufficient for a write operation.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that immediately conveys the trigger and action. It is concise with no fluff, though it sacrifices necessary detail for brevity.

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

Completeness1/5

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

With 2 parameters, no output schema, no annotations, and 0% schema coverage, the description is critically incomplete. It fails to explain expected input format, return behavior, error handling, or storage semantics, leaving the agent without essential context.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameters ('text' and 'tags'). The default value for 'tags' is given in the schema but its purpose is not clarified. The description adds no meaning beyond the schema.

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

Purpose4/5

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

The description specifies when to call ('当用户说记一下/保存想法/写到 Obsidian时调用') and what it does ('保存一条语音记忆'). It clearly indicates the verb (save) and resource (voice memory), and distinguishes from sibling tools like obsidian_create_note by focusing on memory rather than general notes.

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

Usage Guidelines3/5

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

The description includes a usage trigger phrase ('当用户说...时调用'), giving explicit context for when to invoke. However, it lacks guidance on when not to use or alternatives among siblings (e.g., obsidian_create_note for structured notes).

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

pending_action_cancelC

取消一个待确认动作,不执行。

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes

TDQS

C2.6/5.0
Behavior2/5

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 says 'do not execute' but does not disclose side effects, permissions, or return behavior. Canceling is destructive, 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.

Conciseness3/5

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

The description is very short (two sentences in Chinese). It is concise but lacks sufficient detail, bordering on under-specification.

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

Completeness1/5

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

With no annotations, no output schema, and minimal description, the tool is incomplete. The agent cannot determine prerequisites, side effects, or return values.

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

Parameters1/5

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

Schema description coverage is 0%. The description does not explain what action_id is or how to obtain it, leaving the agent without necessary context.

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

Purpose5/5

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

The description clearly states the action ('cancel') and the resource ('pending confirmed action'). It differentiates from sibling tools like pending_action_confirm, pending_action_create, and pending_action_list.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites or context.

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

pending_action_confirmC

确认并执行一个待确认动作。

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must convey behavioral traits. It indicates a write operation (confirm and execute) but omits details on side effects, reversibility, or required user interaction.

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

Conciseness3/5

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

The description is a single concise sentence, but it is overly brief at the expense of missing critical information. It could be restructured to include parameter semantics or usage context without becoming verbose.

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

Completeness2/5

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

Given the simplicity of the tool (one required parameter, no output schema), the description should provide more context about how to use it and what happens after execution. The current text is insufficient for confident tool selection and invocation.

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

Parameters1/5

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

The only parameter 'action_id' lacks a description in the schema, and the tool description does not mention it. This leaves the agent without guidance on how to populate this required parameter.

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

Purpose4/5

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

The description clearly states the verb (confirm and execute) and resource (pending action). It distinguishes from siblings like pending_action_cancel and pending_action_list. However, it does not elaborate on what constitutes a pending action.

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

Usage Guidelines2/5

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

No guidance on when to use this tool, prerequisites, or alternatives. The description only states what it does, not the context of when it is appropriate.

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

pending_action_createA

创建一个待确认动作;只允许白名单动作类型,不会立即执行。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
paramsNo
action_typeYes

TDQS

A3.5/5.0
Behavior3/5

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

Discloses that the action is not immediately executed and requires whitelisted types, which informs safety. However, does not mention error handling for invalid types or state changes.

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

Conciseness4/5

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

Single sentence conveys core purpose and constraints. Effective but could be slightly more structured.

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

Completeness3/5

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

Given no annotations and 0% schema coverage, the description partially compensates but lacks parameter details and explanation of what 'pending action' means in practice.

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

Parameters2/5

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

Schema has 0% description coverage; the description only hints at action_type constraints. No explanation of title or params fields.

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

Purpose5/5

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

The description clearly states it creates a pending action, specifies constraints (whitelisted action types) and behavior (no immediate execution). This distinguishes it from siblings like confirmed or canceled actions.

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

Usage Guidelines3/5

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

The description implies use for creating actions without immediate execution, but does not explicitly contrast with alternatives like pending_action_confirm or pending_action_cancel.

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

pending_action_listB

列出待确认动作;status 为空时列出全部。

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNopending

TDQS

B3.4/5.0
Behavior3/5

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 explains the effect of the status parameter (empty means list all), but does not mention side effects, permissions, or output format. This is minimal 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.

Conciseness5/5

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

A single sentence conveys the core purpose and a key behavioral detail. Every word is necessary, and the description is front-loaded.

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

Completeness3/5

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

The tool has no output schema, so the agent relies on the description for return expectations. The description does not mention what the response contains, leaving a gap. However, for a simple list tool, the basic purpose is clear.

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

Parameters4/5

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

The input schema provides only a type and default for the status parameter. The description adds critical meaning: that an empty value lists all actions, which is not evident from the schema alone. For a single parameter, this adds significant value.

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

Purpose4/5

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

The description states the tool lists pending confirmation actions and explains the behavior when status is empty, clearly identifying the resource and action. It distinguishes from sibling tools like pending_action_cancel and pending_action_confirm.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Sibling tools exist for canceling, confirming, and creating pending actions, but the description does not help the agent decide which tool to invoke.

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

xcode_buildC

在白名单项目内执行 xcodebuild build。

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNo
xcode_pathNo
destinationNo
project_pathNo
configurationNo

TDQS

C2.3/5.0
Behavior2/5

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

The description mentions a whitelist constraint ('在白名单项目内'), which is a key behavioral trait. However, with no annotations provided, it fails to disclose other important aspects like side effects (e.g., file creation), permissions required, or error behavior. The agent lacks sufficient transparency to assess safety and impact.

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

Conciseness2/5

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

The description is a single sentence, which is concise but severely under-specified for a tool with 5 parameters and no schema descriptions. It does not earn its place because it leaves too many gaps that require additional explanation.

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

Completeness1/5

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

Given the tool has 5 parameters, no annotations, no output schema, and no parameter descriptions, the description is far from complete. It omits crucial information about parameter usage, default behaviors, and expected outcomes, making it inadequate for an agent to invoke the tool correctly.

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

Parameters1/5

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

The input schema has 5 parameters with 0% description coverage, and the tool description adds no explanation for any parameter. Critical fields like 'scheme', 'destination', and 'project_path' remain ambiguous. The description fails to compensate for the schema's lack of documentation.

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

Purpose4/5

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

The description clearly states the tool executes 'xcodebuild build' and restricts operation to whitelisted projects. It distinguishes from sibling tools like xcode_test and xcode_clean. However, it does not mention key details like the project or scheme being built, leaving some ambiguity about the exact resource.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives such as xcode_test or xcode_clean. The description lacks explicit context for when it is appropriate or not, relying solely on inference from the tool name.

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

xcode_cleanC

在白名单项目内执行 xcodebuild clean。

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNo
xcode_pathNo
destinationNo
project_pathNo
configurationNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It notes the tool executes a clean operation, which is destructive, but fails to describe specific effects (e.g., removing build artifacts) or any prerequisites. No mention of side effects or limitations.

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

Conciseness3/5

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

The description is very short (one sentence) and does not waste words, but it lacks necessary details. It is concise but at the expense of clarity and completeness.

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

Completeness1/5

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

With five undocumented parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain what 'whitelisted' means, the role of each parameter, or what the output looks like. The tool's behavior is poorly specified.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to the five parameters (scheme, xcode_path, destination, project_path, configuration). The agent gets no guidance on how to use these parameters.

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

Purpose5/5

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

The description clearly states the tool executes 'xcodebuild clean' within whitelisted projects, using a specific verb and resource. It distinguishes from sibling tools like xcode_build and xcode_test.

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

Usage Guidelines2/5

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

The description mentions 'whitelisted projects' implying a constraint, but provides no explicit guidance on when to use this tool versus siblings like xcode_build or xcode_test. No context for prerequisites or alternatives.

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

xcode_last_errorsC

读取最近一次 xcodebuild 输出中的错误线索。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits beyond reading errors. It does not indicate whether the tool is read-only, has side effects, or depends on a prior xcodebuild. The agent lacks information about potential state changes or required conditions.

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

Conciseness3/5

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

The description is a single concise sentence in Chinese, which is appropriate for a simple tool. However, it omits necessary details like parameter semantics, making it too terse. It earns its place but sacrifices completeness.

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

Completeness2/5

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

Given the tool's simplicity (1 parameter, no output schema), the description should still cover parameter meaning and usage context. The lack of annotations and parameter explanation leaves significant gaps. An agent would struggle to use the tool correctly without additional knowledge.

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

Parameters1/5

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

The input schema has one parameter (limit) with default 20, but the description provides no explanation of this parameter. With 0% schema description coverage, the description should clarify what 'limit' controls (e.g., number of errors to retrieve). The agent cannot infer its meaning from the description alone.

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

Purpose4/5

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

The description states it reads error clues from the last xcodebuild output, using a specific verb and resource. It distinguishes from sibling tools like xcode_build and xcode_test by focusing on error retrieval. However, the phrase '错误线索' (error clues) is somewhat vague, and the description is in Chinese, which may reduce clarity for non-Chinese speaking agents.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as xcode_build or xcode_test. There is no indication of prerequisites, expected state (e.g., after a build), or when not to use it. The description purely states functionality without usage context.

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

xcode_open_projectB

打开白名单项目内的 .xcodeproj 或 .xcworkspace。

ParametersJSON Schema
NameRequiredDescriptionDefault
xcode_pathNo
project_pathNo

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'open', omitting details about whether it launches Xcode, what happens if the project is not whitelisted, 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.

Conciseness5/5

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

A single, focused sentence with no unnecessary words; it is appropriately sized and immediately conveys the core action.

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

Completeness2/5

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

Missing details on return values, error handling, and system effects; for a tool that opens a project, more context about success/failure and behaviors beyond the whitelist constraint is needed.

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

Parameters1/5

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

Schema coverage is 0% and the description does not explain the two parameters (xcode_path, project_path), leaving their meaning and defaults unclear.

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

Purpose5/5

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

The description clearly states the tool opens .xcodeproj or .xcworkspace files within whitelisted projects, with a specific verb and resource, distinguishing it from sibling tools like app_open or xcode_build.

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

Usage Guidelines3/5

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

The mention of 'whitelisted projects' implies a prerequisite, but no explicit guidance on when to use this vs. alternatives, 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.

xcode_testC

在白名单项目内执行 xcodebuild test。

ParametersJSON Schema
NameRequiredDescriptionDefault
schemeNo
xcode_pathNo
destinationNo
project_pathNo
configurationNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action 'execute xcodebuild test'. It does not disclose potential side effects, required permissions, or what happens if the project is not in the whitelist.

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

Conciseness2/5

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

The description is a single sentence, which is concise but under-specified. It lacks essential details, making it insufficiently informative.

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

Completeness1/5

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

Given the 5 parameters with no schema descriptions, no output schema, and no annotations, the description is critically incomplete. It fails to explain return values, whitelist behavior, or parameter usage.

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

Parameters1/5

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

All 5 parameters have no descriptions in the schema (0% coverage), and the description adds no meaning to the parameters. The agent has no guidance on what values to provide for scheme, xcode_path, destination, project_path, or configuration.

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

Purpose4/5

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

The description clearly states it executes xcodebuild test on whitelist projects, distinguishing it from sibling tools like xcode_build. However, the term 'whitelist projects' is undefined, and the Chinese language may reduce clarity for some agents.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like xcode_build, nor any prerequisites or constraints mentioned (e.g., project must be in whitelist).

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

TDQS

C2.6/5.0
Disambiguation2/5

Many tools have overlapping purposes, especially among 'cc_' and 'desktop_' prefixes (e.g., cc_open_claude_code, cc_start_session, desktop_open_cc_project, desktop_open_cc_project_named). An agent could easily misselect which tool to use for launching or managing Claude Code sessions.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern within each subsystem (app_, cc_, obsidian_, xcode_), but the overall mix of prefixes and some near-duplicate names (e.g., cc_open_claude_code vs cc_open_visible_session) cause minor confusion.

Tool Count3/5

With 48 tools, the set is quite large but covers a broad domain (desktop automation, Claude Code, Obsidian, Xcode). However, many tools serve very similar functions, suggesting some could be consolidated.

Completeness4/5

The tool set provides comprehensive coverage for its intended domain: app management, Claude Code lifecycle, Obsidian note operations, pending actions, and Xcode build/test. Minor gaps exist (e.g., lack of file system operations), but core workflows are well-supported.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI to fully control macOS — mouse, keyboard, terminal, screenshots, window management, UI element detection, and provides AI-optimized information reporting.
    20
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides a local MCP bridge for AI assistants to control a Mac by observing screen state and performing actions like mouse movement, clicking, typing, and opening URLs.
    12
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that bridges Claude Desktop to iCloud Mail, Calendar, Reminders, and Contacts, enabling cross-service actions like daily briefs, scheduling, email drafting, task deferring, and unified search via a single prompt.
    40
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jijiutong/xiaozhi-desktop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server