openaaas-mcp-adapter
This server lets an MCP client configure and use OpenAaaS to discover remote Agent services, delegate tasks, and retrieve results.
Discover service-side API information.
Set, list, switch, and remove configured OpenAaaS server URLs.
Register a client account/API key and update the current profile name.
List available Agent services and get detailed usage requirements for a service.
Submit tasks to remote Agent instances, optionally with local input files and session/output prompts.
Query task status, poll for final results when explicitly requested, and cancel running tasks.
List and download task result files, including all result files for a task.
重要更新
2026 年 10 月 — IDM-Alpha-Flash材料科学文献研究助手上线公共服务器:秒级返回的材料科学文献检索服务,跳过远程智能体的语料整理环节;与 IDM-Alpha 分工互补——Flash 取证据、IDM-Alpha 出成稿,详见下方当前可用服务表格。
2026 年 8 月 — AutoGluonAgent表格机器学习智能体上线公共服务器:面向结构化表格数据的自动机器学习服务,自动识别目标列并完成分类/回归建模,无需手动建模,详见下方当前可用服务表格。
2026 年 8 月 — IDM-Alpha材料科学文献研究助手后端升级:材料科学文献问答的回答准确度大幅提升。
2026 年 8 月 — AFLOW材料数据库查询智能体上线公共服务器:用自然语言即可查询 AFLOW 材料数据库,无需了解查询语法,详见下方当前可用服务表格。
Related MCP server: mcp-pdf-reader
🚀 Quick Start
方式 | 入口 |
在线体验 |
|
下载客户端 | GitHub Releases — macOS / Windows 桌面客户端 |
什么是 OpenAaaS?
AaaS——Agent as a Service。此处的 "Service" 不指传统 SaaS 的中心化托管与订阅,而指能力的发布、发现、委派与组合:每个节点将自身 Agent 能力发布为网络中的可发现单元;网络之外的主智能体发现这些能力后,即可向节点委派任务并整合结果。
智能流动,数据静止 —— 让 Agent 走到数据身边,而不是把数据交给 Agent。
OpenAaaS 是一个面向 AI for Science 的 Agent-to-Agent 编排网络(Agent Orchestration Network)。网络中的每个节点都运行着一个拥有完整工具链的 Agent 实例;数据驻留在产生它的原地,Agent 能力通过网络流动到数据身边,完成分析、计算与协作。这些节点构成共享的能力基础设施;网络之外,无数主智能体——pi、Claude Code、Cursor 或自研 Agent——各自通过 OpenAaaS 协议发现和组合这些能力节点,把手伸向数据所在的任意角落。
由 Google 发布、现由 Linux Foundation 托管的 A2A 协议同样致力于 Agent 间互操作,但采用点对点直连模型:每个被调用 Agent 必须在 Agent Card 中声明一个可寻址的 HTTP 端点供客户端访问,异步场景还需双向网络可达以接收 webhook 回调。在无公网 IP、受严格出站防火墙和 NAT 约束的科研实验室环境中,该协议对被调用方不可用——Agent 无法被外部寻址,也无法接收回调;但作为发起方,在出站网络中可正常使用。OpenAaaS 采用单向出站 HTTP 短轮询模型,节点仅需主动访问公网服务器即可入网,无需公网 IP、无需开放入站端口。
操作视频 | 截图 |
接入网络查看节点列表委派结果返回 |
论文:技术设计与实现细节详见 arXiv:2605.13618。
为什么选择 OpenAaaS?
1. Agent 编排,节点即 Agent
OpenAaaS 编排的不是脚本、函数或固定 API,而是运行在远程节点上的完整 Agent 实例。每个节点上的 Docker 容器内都运行着一个拥有本地工具、模型和数据的完整 Agent,能够自主决策、自主执行,并在需要时继续委派给子 Agent。
例如,Claude Code 可以发现一个运行在实验室服务器上的数据分析 Agent,把任务委派给它;该节点 Agent 处理本地数据时,还可以进一步调用节点内的子 Agent 完成清洗、建模或可视化。任意 Agent(Claude Code、pi mono 等)都可以加入网络,发现、委派并组合其他节点的 Agent。
2. 数据原地处理,零迁移
原始数据始终留在产生它的位置,远程 Agent 直接在数据旁工作。不同实验室、服务器或仪器可以围绕同一个复杂任务协作:每个节点只处理自己的本地数据,网络只传输任务描述(即委派请求)与结果(KB~MB 级),不触碰原始数据(TB 级)。
传统云端方案 | OpenAaaS | |
数据流向 | 本地 → 云端 → 本地 | 原始数据原地不动 |
网络传输 | 原始数据(TB 级) | 委派请求与结果(KB~MB 级) |
防火墙要求 | 需开放入站端口 | 仅出站 HTTP 即可 |
敏感数据 | 必须出域 | 不出实验室 |
3. 免规范化接入,即插即用
无需统一数据格式,JSON/CSV/Excel/MATLAB/HDF5/厂商二进制格式均可原地处理。你可以把已有的脚本、模型、数据库查询、仪器接口或内部工具打包进一个完整 Agent 实例的 Docker 镜像;这个实例会作为 Agent 节点注册到网络中,供其他 Agent 发现并委派任务。远程 Agent 看到的不是一个可被调用的函数,而是一个能自主决策、使用本地工具链完成任务的完整 Agent。节点零配置入网:open-aaas-server run 首次启动自动生成 config.toml 和 SQLite。自描述网络接口 + 渐进式能力发现,Agent 无需插件即可发现并使用其他 Agent 节点的能力。
4. 近数据端计算,低门槛部署
Rust 单二进制 + SQLite 嵌入式,零依赖部署,复制即用。Docker 隔离执行,每个任务独立沙箱。节点单向出站即可加入网络,无需公网 IP、无需开端口、无需 SSH——专为实验室防火墙和 NAT 环境设计。
如何使用?
以下任一方式都可以让你的 Agent 加入 OpenAaaS 网络,发现远程 Agent 并向它们委派任务。
公共服务器:https://api.open-aaas.com
当前可用服务
名称 | 描述 |
AutoGluonAgent表格机器学习智能体 | 基于 AutoGluon Tabular 的结构化表格自动机器学习服务。自动完成数据读取、目标列识别与分类/回归建模、训练评估及预测,支持 CSV、TSV、Parquet 数据;不支持 CV、自然语言等深度学习任务。 |
AFLOW材料数据库查询智能体 | 面向 AFLOW 材料数据库的自然语言查询执行器。将材料研究意图转换为经过校验、范围受限的 AFLOW 查询,返回便于阅读的 Markdown 响应与结构化结果文件;无需了解 AFLUX 查询语法,支持查询执行与结果比较。 |
IDM-Alpha-Flash材料科学文献研究助手 | 面向材料科学领域的秒级文献检索服务。可根据材料科学问题检索并筛选出相关的论文原文片段及文献出处,只返回整理好的文献知识语料,不直接生成最终回答。适合在回答金属材料、陶瓷材料及复合材料等材料科学问题时调用,为后续作答提供可靠的文献证据支撑。 |
IDM-Alpha材料科学文献研究助手 | 基于数十万篇材料科学论文语料构建的检索增强生成(RAG)文献研究助手,支持文献问答、论文解读与跨论文综述,可生成深度阅读报告。适用于金属材料、陶瓷材料、复合材料等方向。 |
扶摇多专家研讨系统 | 面向材料科学问题的多专家会议研讨系统,从多视角拆分复杂问题并输出深度研讨结论。 |
六元高熵合金描述符数据库 | 利用近数据端 Agent 查询六元高熵合金全成分描述符数据。总数据量 500 亿条,超 10 万亿数据点,主要为描述符数据,含少量机器学习预测的压缩塑性数据,不含真实实验数据。 |
亦可通过 pyopenaaas 或 OpenAaaS API 实时查询当前可用服务。
方式 | 适合谁 | 入口 |
Jupyter Notebook (Binder) | 想先体验,无需安装 | |
桌面客户端 | 非技术用户 | |
Python SDK | Python/Jupyter 用户 |
|
MCP 适配器 | Claude/Cursor/Cline 用户 |
|
pi 插件 | 对话型 Agent 用户 |
|
Jupyter Notebook (Binder)
点击上方 Binder 徽章即可在浏览器中运行 binder/quickstart.ipynb,无需安装任何软件。
桌面客户端
基于 Tauri 的跨平台桌面应用,支持 macOS 和 Windows。适合非技术用户管理多个服务器、拖拽上传文件、实时查看任务进度。
macOS 和 Windows 用户可直接从 GitHub Releases 下载
.dmg或.msi安装包。macOS 首次打开需前往 系统设置 → 隐私与安全性 → 安全性 点击"仍要打开"。
Python SDK
pip install pyopenaaas在 OpenAaaS 中,
submit_task是指让你的 Agent 向远程节点上的另一个完整 Agent 实例提交委派请求,而不是调用一个远程函数。
import pyopenaaas
client = pyopenaaas.Client()
client.register(name="your-name")
agents = client.list_services() # 获取网络中的 Agent 节点列表
task = client.submit_task(
service_id=agents[0].id, # 向该完整 Agent 实例委派任务
task_prompt="你的任务描述", # 由目标 Agent 实例自主理解并执行
)
task = client.wait_for_task(task.id)
paths = client.download_all_files(task.id)MCP 适配器
openaaas-mcp-adapter 已发布至 PyPI。支持 MCP 的客户端(Claude Desktop、Cursor、Cline 等)只需一条配置即可接入:
{
"mcpServers": {
"openaaas": {
"command": "uvx",
"args": ["openaaas-mcp-adapter"],
"toolTimeoutMs": 600000
}
}
}toolTimeoutMs设置 MCP 工具调用的最大等待时间(毫秒),适合长任务轮询场景。⚠️ 该参数由 MCP 客户端解析,实际生效情况取决于具体客户端实现;某些客户端或 Agent 工具本身可能仍有独立的超时限制,导致该参数不生效。
Codex 用户可以通过 CLI 添加适配器:
codex mcp add openaaas -- uvx openaaas-mcp-adapter如需支持长任务轮询,在 ~/.codex/config.toml(或受信任项目的 .codex/config.toml)中配置:
[mcp_servers.openaaas]
command = "uvx"
args = ["openaaas-mcp-adapter"]
startup_timeout_sec = 30
tool_timeout_sec = 600Codex 的 tool_timeout_sec 单位为秒;调用 poll_task 时,建议将 timeout_seconds 设置为小于该值,并预留网络请求时间。
配置后重启客户端,即可在对话中调用全部能力。
详见 openaaas-mcp-adapter/README.md。
pi 插件
面向 pi 用户的 TypeScript 扩展,安装方式:
pi install npm:open-aaas-pi-extension安装后在对话中直接说:
"帮我设置 OpenAaaS 的服务器地址为 https://api.open-aaas.com,然后向合适的远程 Agent 节点委派一个数据分析任务"
客户端 Agent 自动完成注册、节点发现、任务委派和结果获取。
通用 Agent 框架
如果你的 Agent 没有 OpenAaaS 插件,直接访问 https://api.open-aaas.com。无需认证,返回完整 API 文档和使用说明,Agent 读取后即可自动完成注册、节点发现、任务委派。
部署自己的节点
预编译二进制(推荐)
无需安装 Rust,下载即可运行:GitHub Releases
组件 | 二进制文件名 |
Server |
|
Agent Core |
|
支持平台:
Server / Agent Core:Linux x64 (musl 静态链接)、Linux arm64 (musl 静态链接)、macOS arm64、Windows x64
桌面客户端:macOS、Windows
Linux 版本采用 musl 静态链接,不依赖系统 glibc,可在任意 Linux 发行版直接运行。
chmod +x open-aaas-server # Unix 用户
./open-aaas-server run首次启动自动生成 config.toml 和 SQLite 数据库。
从源码编译
cd server
cargo build --release
./target/release/open-aaas-server runAgent Core 部署详见 agent-core/README.md。
架构
(网络外部:无数主智能体,各自发现并组合网络中的能力节点)
客户端 Agent
(pi mono / Claude Code / Cline / 自研 Agent)
▲
│ 控制流:委派请求、心跳、结果(KB 级)
▼
───────────────────────────────────────────────────────────────────
OpenAaaS Server(网络枢纽)
Rust + SQLite — 轻量索引层
• 节点注册 • 委派路由 • 节点心跳 • 文件中转
▲
│ 短轮询(单向出站 HTTP)
▼
───────────────────────────────────────────────────────────────────
Agent Core(网络节点)
Rust + Docker — 部署在数据本地
• 向网络注册能力 • 轮询认领委派任务
• 容器沙箱隔离执行 • 上报结果
│
▼
[完整 Agent 实例]
(拥有完整工具链,在容器内自主决策、自主执行)
│
├─→ [本地数据集](TB 级)
├─→ [分析脚本](算法/模型)
└─→ [专用硬件](GPU/仪器)层级 | 组件 | 职责 |
客户端 Agent | pi mono / Codex / Open Code / 自研 Agent | 理解任务、发现网络中的其他 Agent、委派任务并整合结果 |
网络枢纽 | Server — 节点注册与委派路由中心 (Rust + SQLite) | 节点注册、委派路由、节点心跳、文件中转 |
网络节点 | agent-core — 在数据本地运行完整 Agent 实例的网络节点 (Rust + Docker) | 向网络注册自身能力、轮询认领任务、在沙箱中启动完整 Agent 实例隔离执行、上报结果 |
项目结构
OpenAaaS/
├── server/ # 网络枢纽(调度中心) (Rust)
├── agent-core/ # 网络节点:在数据本地运行完整 Agent 实例 (Rust)
├── admin-cli/ # 命令行管理员工具 (Rust)
├── client-app/ # 桌面客户端 (Tauri + Vue 3)
├── dash/ # 调试与管理员工具 (Python/Streamlit)
├── openaaas-mcp-adapter/ # MCP 适配器
├── pi-extension/ # PI 插件
├── pyopenaaas/ # Python SDK
└── binder/ # 示例 notebook 与脚本论文
arXiv:2605.13618 — https://arxiv.org/abs/2605.13618
参与贡献
欢迎参与贡献!请阅读 CONTRIBUTING.md。
开源许可
MIT License © IDM Explorer Lab
Available Tools
15 toolscancel_taskCancel TaskC
取消执行中的任务
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it says almost nothing. It does not disclose whether cancellation is idempotent, what happens to already-completed tasks, whether in-flight work or artifacts are discarded, or what permissions/auth are needed for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single short sentence is front-loaded and wastes no words, but that brevity is under-specification rather than efficiency. There is no structure to speak of for a mutating tool with an undocumented parameter surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but everything else is missing. With no annotations and 0% parameter coverage, the definition leaves a destructive operation's scope, preconditions, and failures entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters, and the description never mentions either. The required task_id is undocumented (format, where to obtain it, e.g. from submit_task), and the 'server' parameter with its default empty string is entirely unexplained, leaving the agent to infer its meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (取消/cancel) and resource (任务/task) and narrows scope to tasks that are currently executing, which separates it from submit_task or get_task in a general sense. It does not explicitly name or contrast those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is the implicit restriction '执行中的' (executing), which hints that completed or pending tasks are out of scope. There is no statement of when to prefer cancel_task over alternatives like poll_task, no prerequisites, and no guidance on what to do if cancellation fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discoverDiscoverC
发现服务端 API 信息
| Name | Required | Description | Default |
|---|---|---|---|
| server_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: no mention of network access, whether authentication is required, whether the call mutates server-side state, or what happens on an unreachable URL. The presence of an output schema covers return values, but the operational profile of the call remains entirely undocumented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste, which is appropriate in size, but the brevity comes at the cost of information rather than through efficient compression. There is no front-loaded explanation of what an agent gets back or what the parameter needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema relieves the description of explaining return values, but for a discovery tool that requires a URL argument and has no annotations, the description should at minimum state what is discovered and what form the server_url must take. Neither is present, so an agent would be guessing on first invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required server_url parameter, and the description never mentions the parameter at all — no expected format, scheme, trailing-slash conventions, or whether it must be a configured server. The description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"发现服务端 API 信息" states a verb (discover) and a resource (server-side API information), but "API information" is vague — it doesn't say whether it fetches a discovery document, a capability list, or metadata. It also doesn't distinguish itself from siblings like list_servers or list_services, which arguably overlap in intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus alternatives such as set_server_url, list_servers, or register. An agent cannot tell whether discovery must precede registration or whether it is a read-only probe, so usage must be inferred from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_resultDownload ResultB
下载任务结果文件并返回每个文件的完整路径
file_id: 指定要下载的文件 ID,不指定则默认下载第一个 zip 文件或第一个文件
download_all: 是否下载该任务的所有结果文件
返回结果中会明确列出每个文件的完整路径,读取文件时请直接使用这些路径,不要推测子目录。
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| file_id | No | ||
| task_id | Yes | ||
| download_all | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful behavior about default file selection and returned paths, including a warning not to guess subdirectories, but it does not mention save location, overwrite behavior, permissions, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action, then uses concise bullets for parameter behavior and a short warning about paths. Every sentence adds useful information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details are less necessary, and the description still explains returned paths. However, with no annotations and incomplete parameter coverage, it should do more to explain the server parameter, required task_id semantics, and when this tool is preferred over siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents file_id and download_all well, but task_id is only implied and the server parameter is entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: downloading task result files and returning each file's full path. It is clear what the tool does, but it does not differentiate itself from siblings such as list_files or get_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains default file selection and download_all behavior, which gives implied usage. However, it does not say when to use this tool instead of list_files or get_task, nor does it state any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_usageGet Service UsageB
获取指定服务的详细用法说明(能力范围、调用规范、返回格式、限制条件)
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden but does disclose the nature of the payload (capability scope, invocation rules, return format, limits), which is meaningful content beyond the schema. However it says nothing about whether the lookup is read-only, what happens for an unknown service_id, or whether usage docs are static or server-specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a parenthetical inventory of what the docs contain — no waste. It is, if anything, slightly terse for a two-parameter tool with an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The existence of an output schema excuses explaining return values, and the description covers the documentation's content well. But for a tool with zero schema coverage on two parameters and no annotations, it leaves the `server` parameter and error behavior unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does not. '指定服务' gestures at service_id, but the `server` parameter (defaulted, empty string) is entirely unexplained in both schema and description, leaving a required and an optional parameter underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('获取指定服务的详细用法说明') and enumerates what the returned documentation covers (capability scope, invocation conventions, return format, limitations). This clearly separates it from siblings like list_services, which only enumerate services. It stops short of 5 only because it doesn't name an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — an agent should call this when it needs to know how to invoke a particular service — but there is no explicit when/when-not statement and no reference to sibling tools such as discover or list_services. The agent must infer the workflow position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskGet TaskB
查询任务状态和最终结果(仅在用户明确要求时调用)
⚠️ 不要主动轮询。只有在用户明确要求查询任务状态时,才调用此工具。
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden. It usefully discloses that this is a read/query-only tool and adds a strong anti-polling constraint, but says nothing about cost, latency, or what happens when the task is still running versus finished.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, but the 'only call when the user explicitly asks' instruction appears twice — once in the parenthetical and again in the warning — with no added information the second time.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, with zero annotation coverage and zero parameter documentation, the description leaves the agent without any indication of which task_id/format is valid or how to handle a still-pending task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters (task_id, server) are undocumented in structured data and the description adds nothing about them. It does not explain what task_id refers to or how the optional server parameter affects lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: query task status and final result. It is distinguishable from submit_task/cancel_task, and the warning implicitly contrasts with poll_task, though that sibling is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('only when the user explicitly requests') and an explicit exclusion ('do not poll proactively'), which is exactly the guidance agents most often get wrong on task tools. It stops short of naming poll_task as the alternative, so routing is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesList FilesC
列出任务的结果文件
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not say whether listing requires the task to be finished, whether paths are returned for later download, whether the listing is paginated, or what happens if no files exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler, but it is under-specified rather than genuinely concise. It reads as a label more than a usable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Though an output schema exists and the description need not explain return values, the tool still lacks annotation coverage and has two undocumented parameters. For a task-scoped listing it omits when it applies, what it returns conceptually, and how 'server' selection works.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies task_id is the key input but says nothing about the format of the ID, and the 'server' parameter — its default behavior, and how it interacts with set_default_server — is entirely unaddressed in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: list the result files belonging to a task. An agent can tell this is a read-style listing of task outputs, though it never distinguishes it from neighbors such as download_result or list_services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus download_result (fetch contents) or get_task, and no stated prerequisites such as whether the task must be completed first. Usage is only implied by the phrase 'result files'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversList ServersB
列出所有已配置的服务器
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only says 'list all configured servers'. It does not disclose whether unreachable or disabled servers are included, whether the result is paginated, or what the read-only nature implies beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no waste, well matched to a zero-parameter tool. It is perhaps too terse to earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema documents return values and there are no parameters, so the remaining gap is small. Still, the description could clarify whether only currently configured servers are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (list) and resource (servers), scoped to "configured" servers, which distinguishes it from discover. However, it does not differentiate from the sibling list_services, which reads similarly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus discover or list_services, and no prerequisites or exclusions are stated. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList ServicesC
获取可用的 Agent 服务列表(轻量摘要)
| Name | Required | Description | Default |
|---|---|---|---|
| server | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. The phrase 'lightweight summary' hints at the return shape, but there is no disclosure of read-only nature, authentication/server resolution behavior, pagination, or what happens with the server parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single short phrase is front-loaded and wastes no words, but its brevity reflects under-specification rather than disciplined conciseness given the undocumented parameter and absent usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, but with no annotations and an entirely undocumented 'server' parameter, the definition leaves meaningful gaps for an agent trying to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, 'server', with 0% schema description coverage, and the description never mentions it. The agent gets no information about what the parameter filters or what the empty default means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve the list of available Agent services, with a note that it returns a lightweight summary. However, it does not distinguish it from siblings like list_servers, discover, or get_service_usage, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as discover or list_servers, nor any exclusions or prerequisites. The agent is left to infer usage entirely from the name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_taskPoll TaskA
轮询任务直到获得最终结果(仅用户明确要求时使用)
每 20 秒查询一次任务状态,直到任务进入 completed / failed / cancelled 状态。 默认不设置超时;传入 timeout_seconds 可限制最大轮询时长。
⚠️ 重要:Agent 禁止主动调用此工具。ONLY use this tool when the user explicitly asks to wait for or poll a task result (e.g. "帮我等结果"、"轮询一下任务"). 如果用户没有明确表达等待意图,应询问用户而不是直接轮询。
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| task_id | Yes | ||
| timeout_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden well: it names the polling interval, the default unbounded timeout, the terminal states, and the strong agent-side restriction on invocation. It does not say what is returned when timeout_seconds expires, which is the one remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and functional, but the 'only when user explicitly asks' rule is stated twice (in the parenthetical title line and again in the ⚠️ block, restated in both Chinese and English), which is redundant space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The blocking/polling behavior and invocation guardrails are covered; only the 'server' parameter's meaning and the post-timeout outcome are left open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It clarifies timeout_seconds (caps total polling duration, default null = no limit), but says nothing about the 'server' parameter, leaving the target-server selection ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — polling a task until it reaches a terminal state — and adds the distinguishing behavioral detail (20s interval, completed/failed/cancelled). This is clearly separable from siblings like get_task (single check) and cancel_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (user explicitly asks to wait/poll, with example utterances) and when not to (agent must not call proactively; ask the user instead). No inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registerRegisterB
注册客户端账号,获取 api_key(仅需一次)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| server | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral load: it does disclose that registration is a one-time action and yields an api_key, which is real context beyond structured fields. It is silent on what happens on repeat invocation (new key vs. error), whether credentials are required to register, and whether existing state is overwritten — significant gaps for an account-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause with the verb first and zero filler; nothing is wasted. It is lean to the point of under-specification, but the phrasing itself is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return formatting need not be explained, but with no annotations, 0% param coverage, and a required 'name' input left unexplained, the definition does not give the agent enough to invoke the tool correctly on the first try. It needs to cover the parameters and repeat-call behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions neither parameter, so the agent gets no information on what 'name' represents (client name? account identifier?) or what 'server' is for (target endpoint? default empty means what?). The only semantic hint is the output (api_key), which does not compensate for two fully undocumented inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (注册 / register) and resource (客户端账号 / client account) and names the concrete outcome (获取 api_key), so the agent knows it is an account provisioning tool rather than a general auth call. It does not explicitly contrast with siblings such as update_profile or discover, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'仅需一次' (only needed once) is a genuine usage hint that this is one-time setup, implying it should be called before other operations. However, it never states prerequisites, whether it must precede discover/submit_task, or what to do if a key already exists — the when-to-use signal is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_serverRemove ServerB
删除指定服务器的配置(不能删除默认服务器)
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden; it does disclose that the operation destroys configuration and includes a guard against deleting the default server. It omits reversibility, effect on running tasks/services bound to that server, permission requirements, and failure behavior, which are material for a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that front-loads the action and appends the key constraint in parentheses. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return value explanation is not needed, and the core destructive action plus one guard is covered. But for a destructive tool with no annotations and an undocumented parameter, the description should also address identifier format and side effects on running services to be fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single 'server' parameter, so the description must compensate and it does not: it never states whether the identifier is a name, URL, ID, or index, nor whether it must match an entry from list_servers. An agent could easily pass the wrong identifier format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('删除指定服务器的配置' – delete the specified server's configuration), which is unambiguous and distinguishable from siblings like list_servers or set_default_server. It does not explicitly contrast itself with those siblings, but the destructive action is clear on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies one important 'when-not' condition (the default server cannot be deleted), which is real usage guidance. However, no alternative path is offered (e.g., use set_default_server first) and no preconditions like required permissions or server-state are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_default_serverSet Default ServerC
切换默认服务器
| Name | Required | Description | Default |
|---|---|---|---|
| server | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about persistence, scope of effect (global vs. session), or what happens if the named server does not exist. Only the bare implication of a state change is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-phrase description is front-loaded and wastes no words, but its brevity reflects under-specification rather than discipline — nothing substantive is delivered in the short space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but with zero annotations and zero parameter documentation for a state-changing tool, the definition leaves too much for the agent to infer before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single parameter "server" is left unexplained — it is unclear whether it expects a server name, ID, or URL, or whether it must match an entry from list_servers. The description does nothing to compensate for this gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"切换默认服务器" states a specific verb (switch) and resource (default server), so the operation is unambiguous. It does not, however, distinguish itself from the sibling set_server_url, which sounds like it also modifies which server is used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus set_server_url, list_servers, or register. No prerequisites (e.g., must the server already be registered?) or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_urlSet Server UrlC
设置服务器地址并保存到配置文件
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| server_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It does disclose the key side effect — the value is written to a config file, making the change persistent — which is genuinely useful. But it says nothing about whether an existing entry is overwritten, whether the default server is affected, or what validation occurs on the URL.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the write-and-persist behavior front-loaded and no filler. It is efficient, though its brevity edges into under-specification given the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a config-mutating tool with a declared output schema but zero annotation coverage and 0% parameter documentation, the description leaves too much open. The unexplained 'server' parameter and the unaddressed overlap with set_default_server are gaps an agent must guess through.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate and does not. It references the server address, which maps to the required server_url, but the second parameter 'server' (defaulting to empty string) is never mentioned and remains entirely opaque — an agent cannot tell how it relates to server_url.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: set the server address and save it to the configuration file. The persistence is explicit, so the action is distinguishable from a pure in-memory setter. It does not, however, distinguish itself from the sibling set_default_server or explain how the two differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus set_default_server, list_servers, remove_server, or the 'server' parameter. The agent must infer the selection criteria from the sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_taskSubmit TaskC
提交任务到远程 Agent(支持文件上传)
input_files 为本地文件路径列表,只能上传当前工作目录下的文件,单个文件不超过 100MB。
| Name | Required | Description | Default |
|---|---|---|---|
| server | No | ||
| service_id | Yes | ||
| session_id | No | ||
| input_files | No | ||
| task_prompt | Yes | ||
| output_prompt | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It does disclose meaningful operational constraints (files must be under the current working directory, 100MB per-file cap), which is real value, but it omits whether submission is async, whether it returns a task id to poll, and any auth/service requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action followed by the file-upload constraint. No filler, though the constraint is scoped only to one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter async-style submission tool with zero schema coverage and no annotations, the description is too thin: it explains one parameter's constraints but not session reuse, service selection, or expected flow (submit → poll). The output schema covers return values, but the invocation contract is largely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 6 parameters, so the description must compensate. It only explains input_files; server, service_id, session_id, task_prompt, and output_prompt remain entirely undocumented, leaving the agent to guess at the most important required fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: submit a task to a remote Agent, with the extra capability of file upload. It is distinguishable from the read/cancel siblings (get_task, poll_task, cancel_task) by the 'submit' action, though it never explicitly contrasts with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus poll_task/get_task or when a new submission is warranted versus continuing a session_id. Only a constraint on file inputs is given, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profileUpdate ProfileC
修改当前客户端用户名
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| server | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden, yet it says nothing about permissions required, whether the rename persists server-side, what happens to already-issued tokens or sessions, or whether the change is reversible. For a mutation tool with zero annotation coverage this is a substantial gap, only partly offset by the presence of an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, which is structurally sound, but the brevity crosses into under-specification rather than economy. Nothing is wasted, yet very little is delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the return shape need not be described, but for a two-parameter mutation with no annotations the definition leaves key calling questions unanswered — the meaning of 'server', the scope of 'current client', and the effect of the rename. It is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters, but it mentions neither explicitly. In particular the optional 'server' parameter (default "") is never explained — an agent cannot tell whether it namespaces the profile, targets a remote server, or is irrelevant here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource, 修改 (modify) + 用户名 (username), and scopes it to the current client (当前客户端). An agent can tell this is a profile mutation and not a server/task operation, though it does not explicitly contrast itself with the server-management siblings. It is clear but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus alternatives such as set_default_server or register, and no prerequisites or exclusions are given. The agent must infer usage entirely from the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.10- Added
discover
1 tool update
v0.1.9- Removed
discover
1 tool update
v0.1.8- Added
poll_task
10 tool updates
v0.1.6- Changed
cancel_task1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
download_result1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
get_service_usage1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
get_task1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
list_files1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
list_services1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
register1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
set_server_url1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
submit_task1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
- Changed
update_profile1 field changed- changed
Input schema / properties / server / defaultPrevious value: -"default"New value: +""
14 tool updates
v0.1.3- Added
cancel_task - Added
discover - Added
download_result - Added
get_service_usage - Added
get_task - Added
list_files - Added
list_servers - Added
list_services - Added
register - Added
remove_server - Added
set_default_server - Added
set_server_url - Added
submit_task - Added
update_profile
14 tool updates
v0.1.2- Removed
cancel_task - Removed
discover - Removed
download_result - Removed
get_service_usage - Removed
get_task - Removed
list_files - Removed
list_servers - Removed
list_services - Removed
register - Removed
remove_server - Removed
set_default_server - Removed
set_server_url - Removed
submit_task - Removed
update_profile
14 tool updates
v0.1.0- First observed
cancel_task - First observed
discover - First observed
download_result - First observed
get_service_usage - First observed
get_task - First observed
list_files - First observed
list_servers - First observed
list_services - First observed
register - First observed
remove_server - First observed
set_default_server - First observed
set_server_url - First observed
submit_task - First observed
update_profile
TDQS
Scored across 15 tools
Most tools target clearly distinct resources or actions: server config, client registration, service discovery, task lifecycle, and file handling. The main overlap is get_task versus poll_task, since both retrieve task status/results, though their descriptions distinguish one-shot queries from explicit polling.
Names are consistently snake_case and mostly follow a verb_noun pattern such as list_services, submit_task, and download_result. Minor deviations are discover and register, which use bare verbs, but the set remains predictable and readable.
The 15 tools are well-scoped for an adapter covering server configuration, client setup, service discovery, task execution, and result file access. Each tool has a plausible role, and the count fits within a reasonable range for the domain.
The surface covers the main lifecycle: configure servers, register a client, inspect services, submit and monitor tasks, cancel tasks, and list/download result files. Minor gaps exist, such as no explicit task history/list operation or profile retrieval, but core workflows are covered.
Maintenance
Related MCP Connectors
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Shared memory and mail for your AI agents. Verified with Claude Code; other MCP clients in testing.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables Claude users to access specialized OpenAI agents (web search, file search, computer actions) and a multi-agent orchestrator through the MCP protocol.410-
- MIT
- AlicenseNot gradedqualityDmaintenanceMCP of MCPs. Automatic discovery and configure MCP servers on your local machine. Integration with Claude and Cursor.51Apache 2.0
- AlicenseNot gradedqualityFmaintenanceThe self-hosted MCP bridge between Claude Chat and Claude Code.46AGPL 3.0