openaaas-mcp-adapter
This server acts as an MCP (Model Context Protocol) adapter for the OpenAaaS Agent Orchestration Network, enabling AI clients to discover, submit, and manage tasks on distributed remote AI agents.
Server Management
discover— Fetch API information from a specified server URLset_server_url— Configure and save a server address for future requestslist_servers— View all configured serversset_default_server— Switch which server is used by defaultremove_server— Delete a server configuration
Account Management
register— Create a client account to obtain an API keyupdate_profile— Update the current client's username
Service Discovery
list_services— Retrieve a summary list of available remote agent servicesget_service_usage— Get detailed usage instructions for a specific service, including capabilities, call conventions, return formats, and limitations
Task Lifecycle
submit_task— Submit a task prompt (with optional local file uploads) to a remote agent for executionget_task— Query the status and final result of a submitted taskcancel_task— Cancel a task that is currently executing
File Management
list_files— List all result files associated with a completed taskdownload_result— Download individual or all result files from a task
重要更新
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材料科学文献研究助手 | 基于数十万篇材料科学论文语料构建的检索增强生成(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
14 toolscancel_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 provided, so description carries full burden. It does not disclose behavior for edge cases (e.g., already completed tasks), idempotency, side effects, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks structure and depth. It is appropriate in length but does not earn its place fully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description might be sufficient if that schema explains return values, but it omits usage context, error cases, and integration with 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%, and the description adds no explanation for parameters. 'task_id' is self-explanatory, but 'server' remains 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?
The description clearly states the verb 'cancel' and resource 'task', specifying it is for running tasks. However, it does not differentiate from sibling tools like get_task or submit_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?
No guidance on when to use this tool versus alternatives, no prerequisites, no exclusions. The description only states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_resultA
下载任务结果文件并返回每个文件的完整路径
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?
Without annotations, the description discloses key behaviors: default download (first zip or first file), downloading all results, and that full paths are returned. It also warns against inferring subdirectories. It does not cover authentication or rate limits, but is sufficient for a download 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?
The description is concise with two sentences and a bullet list. Purpose is front-loaded, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and an output schema, the description explains two parameters and mentions return behavior. However, server and task_id are not addressed, and the tool's placement among siblings is not discussed, leaving some gaps.
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 explains file_id and download_all, but task_id (required) and server are not described, leaving some parameters underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads task result files and returns full paths. While it distinguishes from sibling 'list_files' by focusing on downloading, it does not explicitly differentiate from other file-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on default behavior for file_id and download_all, but lacks explicit when-to-use vs alternatives like list_files or poll_task. It instructs to use returned paths directly, which is helpful post-download.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_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?
No annotations are provided, so the description carries full burden. It mentions the categories of information returned (scope, call specs, format, restrictions), providing basic behavioral context. However, it does not explicitly state read-only behavior or potential side effects, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose. It front-loads the key action and lists covered aspects without extraneous words. Slightly more detail (e.g., parameter hints) could improve structure without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters with 0% schema coverage and no explanation in the description, the tool definition is incomplete for correct invocation. The output schema exists, so return format is covered, but input parameter semantics are entirely missing, making the description insufficient for a new user.
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 fails to explain the two parameters (service_id and server). Without parameter semantics, the agent cannot reliably construct the input. The description must compensate for missing schema descriptions but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed usage instructions for a specified service, listing covered aspects (capability, call spec, return format, restrictions). This is a specific verb+resource combination that distinguishes it from siblings like list_services 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?
The description implies use when needing service usage details, but does not explicitly state when to use vs alternatives or provide exclusions. Among siblings, list_services lists available services, while this tool provides usage details, so some differentiation is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskA
查询任务状态和最终结果(仅在用户明确要求时调用)
⚠️ 不要主动轮询。只有在用户明确要求查询任务状态时,才调用此工具。
| 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?
Without annotations, the description warns against polling, a key behavioral constraint. It does not detail other aspects like idempotency, but the warning adds value.
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?
Very concise: two sentences with front-loaded purpose and warning, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, covering return values. Description covers the essential usage rule but lacks parameter documentation, leaving some gaps for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fails to explain parameters (task_id, server). Only task_id is implied but not described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it queries task status and final results, and explicitly warns against active polling, distinguishing it from the sibling poll_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 states when to use (only on user explicit request) and when not to (do not poll), providing clear context for agent decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_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?
With no annotations, the description carries full burden for behavioral disclosure. It only mentions 'list files' without stating read-only nature, error handling, or output behavior, which is insufficient for an agent to predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but it lacks structure (e.g., bullet points) and could benefit from additional detail without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 2 parameters and an output schema, the description is incomplete. It does not explain when to use the 'server' parameter or how results are returned, even though the output schema might cover return format, the behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the 'task_id' or 'server' parameters. The agent must guess their meaning, leading to potential misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '列出任务的结果文件' clearly states the verb (list) and resource (result files of a task), making the tool's purpose understandable even in a minimal form. It distinguishes from siblings like 'download_result' and '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?
No guidance is provided on when to use this tool versus alternatives like 'download_result' or 'get_task'. There is no context about prerequisites or conditions, leaving the agent to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_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?
No annotations provided, and the description merely says 'list' without disclosing any behavioral traits (e.g., read-only, authentication needs, or special conditions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with purpose, zero waste; perfectly concise for a tool with no 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?
Description is minimal but sufficient given the presence of an output schema (not shown) and no parameters; however, it could mention what happens when no servers are configured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% (empty schema), so baseline of 3 applies; description adds no extra parameter 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?
Description clearly states 'List all configured servers' (列出所有已配置的服务器), using a specific verb (list) and resource (servers), which distinguishes it from sibling tools like remove_server or set_server_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; the description only states what it does without context or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_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?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It hints at a read operation ('轻量摘要') but does not state safety, authorization needs, side effects, or output format. This is insufficient for an AI agent to understand implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous content. However, its brevity omits essential details, making it slightly under-specified rather than efficiently clear. Nonetheless, it avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is minimal. It does not explain what constitutes a 'lightweight summary' or how the optional 'server' parameter filters results. The tool is simple, but the description still lacks sufficient detail for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'server' with 0% described coverage. The description does not explain what 'server' means or how it affects results. Since schema coverage is low, the description should compensate but fails to add any parameter 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 clearly states the tool retrieves a list of agent services as a lightweight summary ('获取可用的 Agent 服务列表(轻量摘要)'). The verb '获取' (get) and resource '服务列表' (service list) are specific. However, it does not explicitly differentiate from sibling tools like list_servers, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, such as when to prefer list_services over list_servers or discover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_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?
Without annotations, the description fully discloses behavior: polling interval (20s), termination states, timeout option, default no timeout, and a strong agent usage restriction.
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?
Concise, well-structured, front-loaded with purpose and key constraint. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite output schema existing, the description adequately covers polling behavior, usage constraints, and parameter semantics. Missing explanation of return value but polling tools often have predictable output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description explains timeout_seconds but not task_id or server. task_id is required but assumed obvious; server is missing explanation. Partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool polls a task until final result, specifying it is only for when the user explicitly asks. It distinguishes from other tools by its polling behavior.
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 states '仅用户明确要求时使用' (only when user explicitly requests) and provides example user commands. Also advises agent to ask user instead of polling automatically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registerB
注册客户端账号,获取 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?
No annotations are provided, so the description bears full responsibility. It discloses that the tool registers and returns an api_key and is one-time, but does not mention side effects (e.g., duplicate registration), authentication requirements, or error handling.
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 extremely concise with two short sentences, front-loading the core action and a critical note. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple registration tool, the description covers the basic purpose but lacks details on parameter meanings and return value (even though an output schema exists). It is adequate but leaves gaps, especially given no annotations.
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%, yet the description gives no explanation of the parameters 'name' or 'server'. The user is left to infer their meaning from the tool's purpose, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool registers a client account and retrieves an api_key, with a note that it is only needed once. It uses specific verb+resource and is distinct from sibling tools like cancel_task or discover.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies one-time usage but does not explicitly state when or when not to use it, nor does it mention alternatives. The hint '仅需一次' provides some guidance but lacks direct comparison or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_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?
No annotations are provided, and the description only mentions deletion and a constraint. It does not disclose whether the operation is irreversible, what happens to associated data, or any permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the action and a key constraint, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one parameter and an output schema, the description is mostly adequate but lacks details on side effects, validation, or return value behavior beyond what the schema provides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only refers to 'specified server' without clarifying what the 'server' parameter expects (e.g., ID, name, or format), providing minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete/remove) and the resource (server configuration), and adds a specific constraint (cannot delete default server), which distinguishes it from sibling tools like list_servers and set_default_server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only provides a constraint (cannot delete default server) but does not specify when to use this tool versus alternatives, or any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_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 exist, so the description bears full burden. It only states the action without disclosing any side effects, authorization needs, or consequences. The agent cannot assess safety or impact.
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?
Extremely concise (one phrase) but critically under-specified. Conciseness is not valuable when it omits essential information for correct tool invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no parameter semantics, and the existence of siblings, the description is vastly incomplete. The agent lacks information on output, side effects, and context. A brief phrase is insufficient for a tool that modifies configuration.
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 parameter 'server' has no description in the schema (0% coverage). The description adds no meaning—no hint on format (e.g., ID, name) or valid values. The agent must guess.
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 '切换默认服务器' (switch default server) clearly states the verb and resource, distinguishing it from siblings like 'set_server_url' and 'remove_server'. However, it is minimal and lacks explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., set_server_url, list_servers). No context about prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_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 provided, so the description must convey behavioral traits. It mentions persistence ('save to config file') but lacks details on overwrite behavior, validation, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and two parameters, the description fails to describe parameter semantics or the effect of the tool. It is too minimal for a configuration-changing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain either parameter. The meaning of 'server_url' and especially the optional 'server' parameter (with default empty string) is left entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (设置, set) and the resource (服务器地址, server address) and the action (保存到配置文件, save to configuration file). It distinguishes from sibling tools like set_default_server and remove_server.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_servers or set_default_server. The description does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_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 are provided, so the description carries full burden for behavioral disclosure. It mentions file upload constraints (current directory, 100MB limit) but does not state whether the operation is destructive, requires authentication, or what error handling looks like. For a submission tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the primary purpose. It efficiently communicates file upload constraints without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters (2 required), 0% schema coverage, and no annotations, the description is incomplete. It only explains input_files constraints and omits behavior, output, and other parameter semantics. The presence of an output schema does not compensate for missing parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so parameters have no descriptions. The description only explains 'input_files' (local file paths, constraints). Other parameters like service_id, task_prompt, output_prompt, session_id, server remain undocumented. Adds value for one parameter but leaves major gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Submit task to remote agent (support file upload)', which is a specific verb-resource pair. It adds file upload constraints, making the purpose clear. However, it doesn't distinguish from siblings like 'discover' or 'get_task', but the core action 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?
No explicit guidance on when to use this tool versus alternatives. The sibling tools have distinct names (cancel, discover, download), so usage is implied, but the description does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_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?
With no annotations, the description must fully convey behavioral traits. It indicates mutation ('modify') but fails to disclose side effects, permissions, reversibility, or the role of 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 description is a single sentence, which is concise but under-informative. It conveys the basic purpose but omits critical context, making it insufficient for effective tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of two parameters and no annotations, the description is incomplete. It does not cover return values, side effects, or usage scenarios, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema parameters have zero description coverage, and the description does not clarify the meaning or purpose of 'name' or 'server'. The agent cannot infer how to use these parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (modify) and the resource (current client username), making the purpose clear. However, it is in Chinese and does not explicitly differentiate from sibling tools, though no similar update tool exists among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any conditions or exclusions. 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
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 14 tools
Most tools have distinct purposes, especially task management tools are clearly separated by action (cancel, get, poll, submit, list, download). However, get_task and poll_task could be confused by an agent if not careful, though descriptions help clarify their usage contexts.
All tools follow a consistent verb_noun pattern with snake_case (e.g., submit_task, list_files, set_default_server). No mixing of conventions.
14 tools is well-scoped for an MCP adapter server covering account management, server configuration, service discovery, and task lifecycle. Each tool earns its place without bloat.
The tool surface covers task submission, status retrieval (via get_task and poll_task), cancellation, file listing, and download. Configuration management includes URL setting, default selection, and removal. Minor gap: no explicit 'add_server' tool (set_server_url may handle it) and no tool to get current server info.
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.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Shared memory and actions for Claude, Kiro, OpenAI, Cursor, and other MCP-compatible AI clients.
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.52Apache 2.0
- AlicenseNot gradedqualityFmaintenanceThe self-hosted MCP bridge between Claude Chat and Claude Code.46AGPL 3.0