shdc-appointment-mcp
Provides links to hospital WeChat self-service registration portals for appointment booking.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@shdc-appointment-mcpSearch for hospitals in Shanghai"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
medical-triage-followup Skill 详细说明
medical-triage-followup 是一个面向中文纯聊天窗口的医疗分诊、病例整理、随访跟踪和挂号辅助 Skill。它的定位不是替代医生做诊断,而是帮助 LLM 在对话中把用户的模糊健康问题逐步澄清为可执行的就医诉求,并在需要时编排 SHDC 预约 MCP 查询医院、科室、专家、专病门诊和可预约时间。
Skill 路径:
medical-triage-followup/适用场景
用户描述身体不适,但诉求模糊,例如“腿疼”“最近不舒服”“想看看该挂什么科”。
用户希望根据症状选择医院、科室、专家或专病门诊。
用户提供一个时间范围,希望汇总该时间段内可预约的专家、专病门诊、余号和费用。
用户上传门诊病历、检查报告、检验报告、出院小结、病案首页、报告图片、PDF、DOCX 或复制的病例文本。
用户需要把病例整理成病情时间线、随访提醒、复查计划、就诊前准备清单和医生问题清单。
用户没有完成线下初诊或建档,需要先查看医院自助挂号入口,而不是直接进入正式预约。
Related MCP server: wechat-reader-mcp
核心原则
只做分诊和就医辅助,不做确定诊断。
症状问诊阶段每轮只问一个最关键问题。
中间不展示“当前理解”,只在最终分诊时总结。
出现急诊红旗时立即中止普通分诊,建议急诊或 120。
预约前必须确认用户是否已经完成线下初诊/建档。
不绕过验证码、短信码、实名校验、就诊人校验或最终确认。
不在聊天中暴露完整身份证号、手机号、住址、医疗卡号、token 或密码。
病例处理保留临床含义,但输出时默认脱敏。
工作流概览
1. 症状澄清
当用户只给出模糊症状时,Skill 会引导 LLM 连续追问,例如:
最困扰你的症状是什么?
具体部位在哪里?
持续多久了?
是否有外伤、发热、胸闷、呼吸困难、麻木无力等伴随表现?
目前严重程度如何,是否影响行走、进食、睡眠或日常活动?
基础澄清最多 5 轮。如果用户引入新的关键线索,可以开启新的 5 轮澄清。每轮只问一个问题,避免一次性把用户压住。
2. 红旗判断
在普通分诊前,Skill 会先检查危险信号。典型红旗包括:
压榨性胸痛、胸痛伴大汗/呼吸困难/晕厥。
单侧肢体无力、口角歪斜、言语不清、突发剧烈头痛。
严重呼吸困难、喉头水肿、过敏伴喘憋或头晕。
严重外伤、畸形、不能负重、活动性出血。
呕血、黑便伴乏力、持续剧烈腹痛、疑似宫外孕。
高热伴意识改变、颈强直、紫癜、严重感染进展。
自伤或伤人风险。
如果红旗存在,Skill 应优先建议急诊或 120,而不是继续推荐普通门诊预约。
3. 分诊与挂号类型判断
当信息足够后,Skill 会输出:
症状总结
紧急程度
建议科室
推荐挂号类型:专家或专病
MCP 查询关键词
不能确定的部分
是否可以继续帮用户查询预约
目前普通门诊访问不稳定,因此默认不推荐普通门诊。只有用户明确要求普通门诊时,才提示其可能不可靠,并优先提供专家或专病替代方案。
挂号类型映射:
registerType=1 专家门诊
registerType=2 专病/专科专病门诊
registerType=3 普通门诊,默认不使用4. MCP 预约查询
Skill 本身不直接访问医院网页,而是指导 LLM 使用 SHDC 预约 MCP。推荐调用顺序是:
search_hospitalssearch_departmentslist_available_expertslist_expert_slots如用户确认继续预约,再进入登录、就诊人、验证码、短信码、确认和提交流程。
如果用户给出时间范围,例如“本周末”“下周一上午”“6 月 28 日到 7 月 3 日”,Skill 要求 LLM 将其规范化为具体日期和上午/下午等时间段,并汇总范围内所有匹配专家或专病门诊的可用号源,而不是只返回一个医生。
5. 初诊/建档限制
如果用户是第一次使用,或没有完成目标医院的线下初诊/建档,Skill 要求停止正式注册和预约流程,只返回:
医院/院区
科室
门诊类型
专家或专病门诊项
可预约时间
剩余号数或状态
费用
对应医院的微信服务/自助挂号链接
在医院信息查询完成、正式帮用户挂号前,Skill 会提示:
你是否还没有完成线下初诊/建档,或者希望自己通过医院微信服务挂号?如果用户回答是,则优先附上 hospital-wechat-links.md 中记录的医院挂号入口。
病例处理能力
用户上传病例、报告或复制病例文本后,Skill 会按以下顺序处理:
文本提取或 OCR 清洗。
识别文书类型和来源。
抽取主诉、现病史、既往史、诊断/印象、检查检验、影像结论、用药、手术/操作、医嘱和复诊计划。
评估资料可信度。
检查缺失信息。
建立病情时间线。
追踪异常检查值。
从病例中触发红旗结果。
生成就诊前准备清单。
生成建议问医生的问题。
输出 Markdown + JSON 随访卡。
资料可信度与缺失信息
可信度分为:
high:官方报告清晰、文书结构完整、关键日期/结果/来源可见。medium:大部分内容可读,但部分日期、单位、页码、来源或 OCR 内容不完整。low:图片或文本质量差、核心诊断/结果缺失、只来自用户转述。
缺失信息只列影响下一步决策的问题,例如:
报告日期或检查日期缺失。
检验值没有单位或参考范围。
当前症状是否仍在持续不明确。
用药剂量、频次、开始/停止时间不明确。
医生复查建议或目标科室不明确。
病情时间线
时间线用于把多份病例合并为一个清楚的过程。事件类型包括:
症状出现
门诊/急诊/住院
检查或检验
影像报告
诊断或印象
治疗计划
手术或操作
用药变化
出院和复诊建议
如果日期被脱敏或缺失,使用“最早记录”“随后”“住院期间”“术后”“当前”等顺序标签,不编造具体日期。
异常检查值追踪
异常值判断优先依据报告本身:
异常报告危急报告异常提示H/L/A↑/↓可见参考范围
医生文字说明,如“明显升高”“降低”“需复查”
如果没有参考范围或异常标记,只记录数值,不自行判断异常。
病例触发红旗
病例中出现以下线索时,应优先提醒用户尽快就医或急诊:
检验系统显示危急报告或危急值。
影像提示急性出血、急性梗死、严重感染、明显进展。
癌栓、门静脉主干栓子、梗阻性黄疸、腹水合并发热等严重并发症线索。
医嘱写明“立即就医”“急诊”“尽快住院”“需紧急处理”。
病例记录中有胸闷加重、呼吸困难、意识改变、呕血黑便等危险症状。
注意:既往病史中的红旗不应自动等同于当前急诊。例如“脑出血恢复期”应标为重要既往风险,而不是直接判断为正在急性脑出血。
输出格式
分诊建议
分诊建议
- 症状总结:
- 紧急程度:
- 建议科室:
- 推荐挂号类型:专家 / 专病
- 查询关键词:
- 理由:
- 不能确定:
- 预约协助:我可以继续帮你查询并预约,请告诉我你想预约的医院。可预约信息
可预约信息
- 医院/院区:
- 科室:
- 门诊类型:专家 / 专病
- 专家/门诊项:
- 可用时间:
- 剩余号数/状态:
- 费用:
- 自助挂号链接:病例整理
病例整理
- 资料可信度:
- 主要问题:
- 关键诊断/印象:
- 重要检查结果:
- 当前治疗/用药:
- 医嘱与复诊:
缺失信息
-
病情时间线
| 时间/顺序 | 事件 | 来源 | 可信度 |
|---|---|---|---|
异常检查值追踪
| 项目 | 结果 | 参考范围/标记 | 日期 | 建议追踪 |
|---|---|---|---|---|
病例触发红旗
-
就诊前准备
-
建议问医生的问题
1.随访提醒卡
Skill 要求输出可见 Markdown 卡片和 JSON 卡片,便于后续聊天或其他应用继续接管。
JSON 卡片包含:
record_qualityconditionstimeline_eventssymptoms_to_trackmedicationstests_to_followrecord_red_flagsnext_visitpre_visit_checklistdoctor_questionsremindersopen_questions
文件结构
medical-triage-followup/
├── SKILL.md
└── references/
├── abnormal-and-red-flag-tracking.md
├── appointment-availability-summary.md
├── case-extraction-template.md
├── diagnostic-cases.md
├── followup-card-template.md
├── hospital-wechat-links.md
├── medical-entity-types.md
├── medical-timeline-template.md
├── ocr-guidelines.md
├── pre-visit-and-doctor-questions.md
├── record-quality-and-gaps.md
├── triage-clarification.md
└── triage-rules.md关键 Reference 说明
triage-clarification.md:定义症状多轮追问状态机。triage-rules.md:定义症状到科室、挂号类型和危险信号的规则。diagnostic-cases.md:可扩展案例库,用于辅助分诊,不作为确诊依据。appointment-availability-summary.md:定义时间范围内号源汇总方式。hospital-wechat-links.md:保存部分医院微信服务或自助挂号入口。case-extraction-template.md:病例抽取主模板。record-quality-and-gaps.md:资料可信度和缺失信息检查。medical-timeline-template.md:病情时间线模板。abnormal-and-red-flag-tracking.md:异常值追踪和病例红旗触发规则。pre-visit-and-doctor-questions.md:就诊前准备和医生问题清单。followup-card-template.md:Markdown + JSON 随访卡模板。
与 SHDC MCP 的关系
Skill 负责“理解用户、澄清症状、整理病例、判断科室、组织对话流程”;MCP 负责“实时查询医院、科室、专家、号源,以及完成登录、验证码、就诊人和预约提交等官方流程”。
二者的边界是:
Skill 不直接提交挂号。
Skill 不绕过官方验证码或短信码。
Skill 不保存或展示完整隐私字段。
MCP 不负责诊断症状;症状应先由 Skill 转成科室和查询关键词。
测试建议
症状澄清测试:
输入“我身体不舒服”,应先问最困扰的症状。
输入“腿疼”,应逐步询问部位、持续时间、外伤、严重程度和伴随症状。
输入胸痛伴大汗、偏瘫、呼吸困难等,应立即触发急诊建议。
预约查询测试:
用户给出医院和科室后,应能引导 MCP 查询专家和专病门诊。
用户给出“下周上午”之类时间范围,应汇总该范围内所有匹配号源。
未确认线下初诊/建档时,只返回可预约信息和自助挂号入口,不进入正式预约。
病例测试:
门诊病历应抽取主诉、现病史、诊断、计划和随访医嘱。
MRI/CT 报告应抽取检查项目、所见、印象和需要复查的问题。
检验报告应保留数值、单位、参考范围和异常标记。
出院小结或病案首页应生成诊断、治疗、住院过程和复诊计划。
多份病例应合并成时间线,而不是互相覆盖。
本项目本地曾使用 病例/ 目录下 4 个脱敏 DOCX 做验收,但该目录已被 .gitignore 排除,不上传 GitHub。
安全与合规边界
该 Skill 不能替代医生诊断、处方或急救判断。
对药物剂量、停药、换药,只能引用官方病历中的医嘱;如果病历没有写,应建议咨询医生。
对正常报告不能说“排除疾病”。
对恶性肿瘤、危急值、急性出血/梗死等结果,应保持谨慎,提示尽快专科或急诊评估。
对用户隐私字段默认脱敏,不在聊天中重复完整证件号、手机号、住址、病案号、条形码、二维码等。
维护方式
新增症状案例:
编辑 medical-triage-followup/references/diagnostic-cases.md新增医院自助挂号入口:
编辑 medical-triage-followup/references/hospital-wechat-links.md调整病例抽取字段:
编辑 medical-triage-followup/references/case-extraction-template.md
同步检查 medical-triage-followup/references/followup-card-template.md调整红旗或异常值规则:
编辑 medical-triage-followup/references/abnormal-and-red-flag-tracking.md更新后建议运行:
python C:\Users\RIRKO\.codex\skills\.system\skill-creator\scripts\quick_validate.py .\medical-triage-followup在 Windows PowerShell 中如遇中文路径或输出乱码,建议设置:
$env:PYTHONUTF8='1'远程 MCP Handoff(2026-07-04)
本节记录最近一次远程 MCP 部署、验证和 xskills 网页客户端排查情况,供后续接手继续定位。
工作区边界
本地工作区:
D:\项目\shdc-appointment-mcp,默认用于开发 skill 和 MCP 源码。远程服务器:SSH 别名
aliyun-mcp,部署路径/opt/mcp。远程数据目录:
/opt/mcp/data。远程命令格式:
ssh aliyun-mcp "命令"。上传文件格式:
scp 本地文件 aliyun-mcp:/opt/mcp/目标路径。不要删除远程系统目录,不要执行
git reset --hard、rm -rf /等破坏性命令。
当前远程服务
公网域名:
https://rirko.icu健康检查:
https://rirko.icu/healthzMCP Endpoint:
https://rirko.icu/mcp协议:Streamable HTTP
systemd 服务:
shdc-remote-mcp.service启动命令:
/opt/mcp/node/bin/node /opt/mcp/dist/httpIndex.jsNginx 反代:
/mcp和/healthz代理到http://127.0.0.1:3000证书:certbot 已签发 HTTPS 证书,域名解析到
47.239.148.19
远程环境文件:
/opt/mcp/remote-mcp.env当前关键环境变量:
HOST=127.0.0.1
PORT=3000
SHDC_MCP_DATA_DIR=/opt/mcp/data
HTTPS_PROXY=http://127.0.0.1:18080
HTTP_PROXY=http://127.0.0.1:18080
NO_PROXY=127.0.0.1,localhost
MCP_AUTH_TOKEN=<见 /opt/mcp/remote-mcp.env>
MCP_JSON_RESPONSE=true获取当前 MCP token:
ssh aliyun-mcp "grep '^MCP_AUTH_TOKEN=' /opt/mcp/remote-mcp.env"客户端请求头模板:
Authorization=Bearer <MCP_AUTH_TOKEN>
Content-Type=application/json
Accept=application/json, text/event-stream
MCP-Protocol-Version=2025-06-18部分客户端只需要:
Authorization=Bearer <MCP_AUTH_TOKEN>最近代码和部署状态
已新建
remote-mcp/,从原 MCP 复制并改成远程 Streamable HTTP 形式。已部署到远程
/opt/mcp,远程服务通过 systemd 管理。已加入健康档案、病历/报告解析保存、用药、过敏、药物冲突、忌口提醒、时间轴、治疗记录等 MCP tools。
已接入 DDInter 实验性网页适配器,用于药物-药物、药物-食物、药物-疾病、复方/重复用药相关提醒。
已修复远程 MCP 浏览器兼容性:
GET /mcp无 session 时返回 200 探针,CORS 放行 MCP 相关头。已修复
/opt/mcp/remote-mcp.env中错误写成nMCP_JSON_RESPONSE=truen的问题,当前为MCP_JSON_RESPONSE=true。本地有一个未成功 push 的提交:
0956e3f Improve browser MCP compatibility。GitHub push 之前多次因网络 reset/empty reply 失败,后续需要重试。
检查本地状态:
git status --short --branch已验证结果
浏览器直连:
https://rirko.icu/healthz正常。https://rirko.icu/mcp返回 200 JSON 探针。从 xskills 页面浏览器直接 GET
https://rirko.icu/mcp也返回 200,Nginx 日志记录到 referer 为https://xskills.acits.com.cn/。
MCP 协议探针:
initialize返回 200。notifications/initialized返回 202。tools/list返回 200。MCP_JSON_RESPONSE=true生效后,POST initialize和tools/list返回application/json,不再是 SSE 包装。
远程服务状态检查:
ssh aliyun-mcp "systemctl is-active nginx; systemctl is-active shdc-remote-mcp.service"日志检查:
ssh aliyun-mcp "tail -300 /var/log/nginx/access.log | grep ' /mcp' | tail -50"
ssh aliyun-mcp "tail -80 /opt/mcp/remote-mcp.log"SHDC 访问与代理
远程服务器直接访问 SHDC 会遇到 WAF/403,因此当前方案是用本机作为代理出口。
本地代理脚本:
remote-mcp/scripts/local-http-proxy.mjs本地代理监听:
127.0.0.1:18080反向 SSH 隧道:
ssh -N -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=2 -R 127.0.0.1:18080:127.0.0.1:18080 aliyun-mcp远程环境已配置:
HTTPS_PROXY=http://127.0.0.1:18080
HTTP_PROXY=http://127.0.0.1:18080
NO_PROXY=127.0.0.1,localhost验证代理链:
ssh aliyun-mcp "curl -x http://127.0.0.1:18080 -I https://yuyue.shdc.org.cn/"健康的代理链应返回 200。若 SHDC 查询超时,通常需要重启本地代理和反向 SSH 隧道。
xskills 网页客户端当前结论
xskills 页面新增/编辑 MCP 服务器时的配置:
连接地址:https://rirko.icu/mcp
协议类型:streamableHTTP
请求头:Authorization=Bearer <MCP_AUTH_TOKEN>
标签:shdc,mcp,remote
描述:上海医联预约远程 MCP,支持健康档案和 SHDC 查询如果需要完整请求头:
Authorization=Bearer <MCP_AUTH_TOKEN>
Content-Type=application/json
Accept=application/json, text/event-stream
MCP-Protocol-Version=2025-06-18当前 xskills 测试接口返回:
{
"code": 200,
"message": "操作成功",
"data": {
"serverName": "aliyun-mcp",
"success": false,
"toolCount": 0,
"error": "服务连接失败,请检查服务是否正常运行"
},
"success": true
}排查结论:
xskills 前端测试请求是
POST https://xskills.acits.com.cn/api/v1/mcp-market/user/servers/62/test。该请求
content-length: 0,说明它测试的是后端已保存的 server 配置,不是页面当前输入框实时内容。xskills 测试失败时,
rirko.icu服务器日志没有看到 xskills 后端访问/mcp。浏览器从 xskills 页面直接访问
https://rirko.icu/mcp成功,Nginx 记录GET /mcp 200。因此当前失败更像是 xskills 后端未真正连到
https://rirko.icu/mcp、后端 DNS/网络不可达、保存配置未生效,或平台测试逻辑不兼容,而不是远程 MCP 服务本身不可用。
后续建议:
在 xskills 页面先保存修改,再测试连接。
测试时先只保留一行请求头:
Authorization=Bearer <MCP_AUTH_TOKEN>。若仍失败,继续检查 xskills 的
test接口响应,并同时观察远程 Nginx 日志是否出现来自 xskills 后端 IP 的/mcp请求。若服务器仍无请求,需让 xskills 平台侧确认后端是否能解析并访问
rirko.icu:443。
已知问题
/opt/mcp/remote-mcp.log里有一次 shutdown 期间的RangeError: Maximum call stack size exceeded,出现在 SDK transport close 链路递归关闭时;服务已由 systemd 自动拉起且当前 active。后续可以单独修复关闭流程,避免server.close()和transport.close()互相触发。GitHub push 最近失败,当前本地可能领先远程 1 个提交。需要网络稳定后重试 push。
xskills 平台账号的登录 Bearer/Cookie 曾在排查截图中暴露,后续 handoff 不应继续传播该平台登录 token。
Available Tools
40 toolsappointment_confirm确认预约摘要B
返回最终挂号摘要,用户确认后才允许提交。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes | ||
| confirm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not fully disclose behavioral traits. It mentions 'user confirms before submission' but does not explain what happens when confirm is true vs false, nor any side effects like state changes or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous information. It is efficiently structured and front-loaded with the key purpose.
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, no output schema, and no annotations, the description is insufficient. It omits return value details, parameter explanations, and behavioral context, leaving significant gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the parameters (flowId and confirm). The agent receives no guidance on how to use these parameters correctly, significantly hindering tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the final registration summary and requires user confirmation before submission. It effectively distinguishes itself from sibling tools like appointment_submit by its role in the confirmation workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it should be used to present a summary and obtain user confirmation before proceeding to submit. While it provides clear context, it does not explicitly contrast with alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointment_next继续预约流程C
为预约流程提供一个字段,或获取验证码、发送短信。
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | ||
| value | No | ||
| action | No | set_field | |
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description mentions three possible actions (set_field, get_captcha, send_sms) but does not disclose side effects, authentication needs, or reversibility. For a tool with no annotations, 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 a single sentence, which is concise, but it lacks structure and fails to cover multiple actions and parameters adequately.
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 4 parameters, no output schema, and no annotations, the description is grossly incomplete. It does not explain the workflow, prerequisites, or return values, leaving the agent without critical context.
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 (field, value, flowId, action). It does not clarify what values are valid or how they relate to the actions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description indicates the tool provides a field or gets captcha/sends SMS for the appointment flow, but 'provide a field' is ambiguous. It does not distinguish from sibling tools like auth_get_captcha or auth_send_sms_code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as auth_get_captcha or register_send_sms_code. The agent receives no hints about context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointment_start开始预约流程C
基于已选择的专家和 slot 创建预约流程,并尝试展开具体时段。
| Name | Required | Description | Default |
|---|---|---|---|
| slotId | Yes | ||
| expertId | Yes | ||
| hospitalId | Yes | ||
| departmentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions '创建预约流程并尝试展开具体时段' (create appointment process and attempt to expand specific time slots), indicating a stateful operation, but it lacks details on side effects, permissions, or what happens upon success or failure.
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, which is efficient. However, it lacks structure and depth, providing only a vague overview without essential details.
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 complexity (4 required parameters, no output schema, no annotations), the description is incomplete. It fails to explain return values, expected behavior, or preconditions, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the tool description does not explain the meaning or usage of any of the 4 required parameters (hospitalId, departmentId, expertId, slotId) beyond their names. This is insufficient for an agent to correctly construct 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?
The description clearly states the action ('创建预约流程' create appointment process) and the resources involved (expert and slot). However, it does not explicitly differentiate from sibling tools like appointment_confirm or appointment_next, which could lead to confusion.
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. The description implies it is the start of an appointment flow but does not state prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
appointment_submit提交挂号C
仅在用户确认后提交挂号。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose side effects, reversibility, or what happens upon submission. The 'submit' action is vaguely described.
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 (one sentence) but overly so, omitting critical information. It is front-loaded but insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no parameter descriptions, and no annotations, the description fails to provide adequate context for safe and correct 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 sole parameter 'flowId' lacks description in both schema (0% coverage) and tool description. The description adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits a registration only after user confirmation, distinguishing it from sibling tools like appointment_confirm. The verb 'submit' and resource 'registration' are specific.
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?
Provides a condition ('after user confirmation') but no explicit when-not-to-use or alternatives. The guidance is implied but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_get_captcha获取登录图形验证码B
获取医联预约平台登录所需图形验证码。返回图片和 flowId。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states that it returns an image and flowId, but omits any behavioral traits such as side effects, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose and followed by output. Every word is necessary, 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 parameterless tool, the description covers the essential information: purpose and return values. However, it could be more complete by describing the format of the image or the structure of the response, especially since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% by default. The description adds no additional parameter info, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets a captcha for login, specifying the platform. However, it does not differentiate from the sibling tool 'register_get_captcha', which could cause confusion.
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. For example, when to use this rather than 'register_get_captcha' is not indicated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_login登录医联预约平台B
使用登录名、密码和短信验证码登录,并加密保存本机会话。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes | ||
| smsCode | Yes | ||
| password | Yes | ||
| username | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the session is encrypted and saved locally, which is beyond the non-existent annotations. However, it doesn't explain other behavioral aspects like returning a token, setting cookies, or error 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?
The description is a single concise sentence that front-loads the primary action. It is efficient but could be improved by listing parameters or adding structure.
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 login tool with no output schema and no annotations, the description is insufficient. It doesn't explain return values, error handling, or the flow involving SMS code. Sibling tools suggest a multi-step auth process, but this tool's role is not fully contextualized.
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?
Description mentions username, password, and SMS code, covering 3 of 4 parameters. It adds meaning to these parameters. However, flowId is not described, and with 0% schema coverage, the description should cover all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool logs in using login name, password, and SMS code, and mentions encrypting the session. The title reinforces the platform context. However, it doesn't explicitly differentiate from sibling auth tools like auth_get_captcha or auth_send_sms_code.
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. It doesn't mention prerequisites (e.g., requiring an SMS code) or that it should be used after auth_send_sms_code. The description only implies use for logging in.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_send_sms_code发送登录短信验证码B
用户提供登录名和图形验证码后发送短信验证码。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes | ||
| username | Yes | ||
| captchaCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral transparency. It only describes the basic action but omits side effects (e.g., rate limits, idempotency), error conditions, or authentication 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?
The description is a single sentence, concise and to the point. No unnecessary words, but could benefit from structuring parameter mentions.
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 output schema, and 0% schema coverage, the description is too sparse. It does not mention prerequisites (e.g., calling captcha first), flowId purpose, or success/error responses, leaving the agent with insufficient context for a complex auth step.
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 should clarify parameter meaning. It mentions 'login name' and 'image captcha' but does not explain the 'flowId' parameter or provide format constraints. Minimal addition over schema.
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 (send SMS code) and the prerequisites (login name and image captcha), distinguishing it from siblings like auth_login or register_send_sms_code. It specifies verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use in login flow but does not explicitly state when to use this tool vs alternatives like register_send_sms_code. No exclusions or conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ddinter_check_interactions查询 DDInter 相互作用B
通过 DDInter 实验性网页端点查询 2 到 5 个药物 ID 的相互作用、忌口和重复用药提醒。
| Name | Required | Description | Default |
|---|---|---|---|
| ddinterIds | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only notes the endpoint is 'experimental', but fails to disclose error handling, rate limits, or data reliability. For a query 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?
Single sentence, under 20 words, with no redundant information. The purpose is front-loaded and efficiently communicated.
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?
No output schema exists, but the description does not hint at return format or structure. It also misses connection to sibling tool ddinter_search_drug, which may be a prerequisite. The tool's experimental nature is mentioned but no completeness on workflow.
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 parameter descriptions. The description mentions 'drug IDs' but does not explain format, source, or validation rules. The array constraints are already in the schema, so the description adds minimal 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 tool's function: querying interactions, dietary restrictions, and duplicate medication reminders for 2 to 5 drug IDs via the DDInter experimental endpoint. It specifies the resource (DDInter) and the scope (2-5 IDs), and implies differentiation from the sibling tool ddinter_search_drug.
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 over alternatives. The description mentions 'experimental' but does not clarify prerequisites, contexts, or exclusion scenarios. Sibling tools exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ddinter_search_drug搜索 DDInter 药物B
通过 DDInter 实验性网页端点搜索药物候选和 DDInter ID。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It only mentions an experimental endpoint, failing to disclose typical behavioral traits like authentication needs, rate limits, or what happens on no results.
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, making it very concise. It is front-loaded with the key action, though could benefit from slightly more structure or additional details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is incomplete. It does not specify the search scope, result format, or any limitations, leaving the agent with insufficient context for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter coverage with no description, but the tool description adds that the query searches for drug candidates and DDInter IDs, providing basic context. However, it lacks format, constraints, or examples to fully compensate.
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 (search) and the specific resources (drug candidates and DDInter IDs) via an experimental endpoint. It distinguishes from the sibling tool ddinter_check_interactions by focusing on search rather than interaction checking.
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, such as ddinter_check_interactions. The mention of 'experimental' hints at limitations but does not offer explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_allergy_list列出过敏记录A
返回已保存的过敏/不耐受记录。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the return of records, but does not mention whether the operation is read-only, if authentication is needed, or if there are any side effects. The minimal description leaves the agent uncertain about preconditions and consequences.
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 unnecessary words. It is perfectly concise and front-loaded, immediately stating the purpose.
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 simplicity (no params, no output schema), the description is minimally adequate. It tells what is returned, but it does not specify whether all records are returned or if there is any default ordering or pagination. For a list operation, this is a minor gap, making it barely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The baseline for 0 parameters is 4, and the description adds meaning by clarifying the return value (saved records). It does not need to add parameter details since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns saved allergy/intolerance records. The verb '返回' (returns) and the resource '过敏/不耐受记录' (allergy/intolerance records) are specific, distinguishing it from sibling tools like health_allergy_upsert (which modifies) and health_medication_list (different resource).
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. For example, it doesn't explain that this tool lists all records without filtering, or when to use health_allergy_upsert for modification. The description lacks explicit context on usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_allergy_upsert新增或更新过敏记录C
记录药物、食物或其他过敏/不耐受信息,用于用药安全检查。
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| source | No | ||
| allergen | Yes | ||
| reaction | No | ||
| severity | No | unknown | |
| allergyId | No | ||
| confirmed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the general purpose and does not disclose key behavioral traits such as the upsert semantics (whether it creates or updates), whether it modifies existing data, if it requires existing records, or any side effects. No mention of safety or destructive potential.
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 lacks structure. It does not front-load the most important information (e.g., upsert behavior) and omits essential details, making it less effective than a well-structured multi-sentence description.
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 7 parameters, no output schema, and no annotations, the description is highly incomplete. It fails to explain the upsert logic, parameter usage, return values, or when to use this tool. A complete description would need to cover these aspects.
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 explain parameter meanings. However, the description provides no details about any of the 7 parameters (allergen, reaction, severity, etc.) or how they should be used. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: '记录药物、食物或其他过敏/不耐受信息' (record drug, food, or other allergy/intolerance information) and '用于用药安全检查' (used for medication safety check). It specifies the verb (record) and resource (allergy information), but does not explicitly mention the upsert behavior (create or update) or differentiate from sibling tool health_allergy_list.
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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like health_allergy_list, nor does it mention prerequisites, exclusion criteria, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_document_export导出原始病历/报告文件A
导出 MCP 服务器端加密保存的原始病历/报告文件 base64;这是唯一返回原始文件内容的健康档案工具。
| Name | Required | Description | Default |
|---|---|---|---|
| maxBytes | No | ||
| documentId | 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 discloses that files are encrypted on the server and returned as base64, which adds value. However, it does not mention important behaviors like file size limits (maxBytes parameter) or permission requirements, making transparency adequate but not comprehensive.
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 states the core purpose. It is front-loaded with the main action. However, it could be slightly restructured to separate the uniqueness claim from the main action, but overall it is concise and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and two parameters lacking descriptions, the description is incomplete. It does not explain the maxBytes parameter, what happens if the file exceeds it, the format of documentId, or error scenarios. The output format (base64) is hinted but not explicitly stated as the return value.
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%, meaning the schema lacks parameter descriptions. The tool description adds no information about the parameters (documentId, maxBytes) beyond what the schema provides (type, default). This is a significant gap; the description should at least explain the purpose of each parameter.
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 '导出' (export), resource '原始病历/报告文件' (original medical record/report files), and specifies the output format (base64) and encryption. It distinguishes from sibling tools by claiming it is the only one returning original file content.
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 this tool should be used when needing the original file content (unique among siblings). It does not explicitly list when not to use it or provide alternative tool names, but the context of being the only one for original content gives clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_document_get获取病历/报告结构化资料A
获取单份病历/报告的结构化资料;默认不返回完整 OCR 文本。
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | ||
| includeText | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
无注释,描述仅提及默认不返回OCR文本,但未说明includeText=true时的具体行为(如是否返回全文、大小限制等),也未提及只读性、权限需求或错误处理。
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?
两句中文,核心信息在前,无冗余。有效传达了工具用途和关键行为。
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?
无输出schema,无注释,参数说明不完整。虽然核心用途清晰,但缺少返回结构描述、使用前提等关键信息。
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?
描述了includeText参数的默认行为,但未解释documentId参数的含义或格式。schema覆盖率0%,描述部分弥补但不够完整。
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?
明确指定动词'获取'和资源'单份病历/报告的结构化资料',且通过'单份'的限定区分了同组的health_document_list。默认行为说明进一步澄清了工具特性。
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?
未明确说明何时使用此工具而非其他同组工具(如health_document_export或health_document_ingest),也未提供使用禁忌或前提条件。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_document_ingest入库病历/报告资料C
在 MCP 服务器端加密保存原始病历/报告文件,并保存外部 OCR/LLM 提供的结构化解析结果。
| Name | Required | Description | Default |
|---|---|---|---|
| dataUri | No | ||
| filename | No | ||
| mimeType | No | ||
| dataBase64 | No | ||
| sourceNote | No | ||
| extractedText | No | ||
| autoSafetyCheck | No | ||
| structuredRecord | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds encryption context and the source of structured data (OCR/LLM), but does not disclose mutation behavior, idempotency, error handling, or other typical behavioral traits. With no annotations, more transparency is expected.
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 covers the core functionality without redundant words. It could be slightly more structured, but is 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 8 parameters, a nested object, no output schema, and no annotations, the description lacks crucial details on parameter usage, output behavior, and integration with sibling tools. It is insufficient for a complete understanding.
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 and 8 parameters, the description provides no explanations for any parameter meanings (e.g., dataUri, dataBase64, structuredRecord). It only vaguely references structured results without mapping to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool encrypts and saves original medical record files on the server and saves structured parsing results from external OCR/LLM, differentiating it from sibling tools like health_document_export and health_document_get by its ingest-and-store 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?
No explicit guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, constraints, or contrast with sibling tools like health_document_export or health_document_get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_document_list列出病历/报告资料A
列出 MCP 服务器端保存的病历/报告资料元数据。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states it lists metadata, with no disclosure of authentication needs, pagination, side effects, or what specific metadata is returned. Insufficient for a read 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?
Single sentence, directly to the point with no unnecessary words or repetition. Efficient and clear.
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?
Minimal description for a simple tool with no parameters. However, with no output schema, it would be better to describe what metadata fields are returned. The description feels incomplete.
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 no parameters (0 params, 100% coverage). Baseline for 0 params is 4. Description adds no parameter info, but no parameters to document.
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 lists metadata of medical records/reports stored on the server, with a specific verb and resource. It distinguishes from sibling tools like health_document_export, health_document_get, and health_document_ingest.
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. There is no explicit context for when to list metadata versus other document operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_medication_add新增用药记录B
新增当前或历史用药记录,可用于后续药物冲突和忌口检查。
| Name | Required | Description | Default |
|---|---|---|---|
| dose | No | ||
| name | Yes | ||
| notes | No | ||
| status | No | ||
| endDate | No | ||
| purpose | No | ||
| ddinterId | No | ||
| frequency | No | ||
| isCurrent | No | ||
| startDate | No | ||
| ingredients | No | ||
| safetyNotes | No | ||
| needsConfirmation | No | ||
| sourceDocumentIds | No | ||
| treatmentCategory | No | ||
| fromRecordExtraction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions adding records for conflict checks but does not disclose side effects, permissions, error handling, or idempotency.
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 concise sentence front-loads action and resource, but lacks structure for complex parameter details; could benefit from bullet points or examples.
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?
Tool has 16 parameters and no output schema; description provides insufficient guidance for correct invocation, missing parameter usage, return values, and behavioral context.
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 and no parameter details in the description, the agent receives no added meaning beyond parameter names. The description fails to compensate.
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 ('add') and resource ('current or historical medication records'), and notes the purpose for drug conflict and dietary restriction checks, distinguishing it from list and update siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding medication records, contrasting with sibling tools like list or update, but lacks explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_medication_list列出用药记录C
返回当前或全部用药记录。
| Name | Required | Description | Default |
|---|---|---|---|
| currentOnly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic return functionality, with no mention of authentication, read-only nature, error handling, or what 'current' means. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it could be slightly expanded to include parameter behavior or return format 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?
The tool is simple with one parameter and no output schema. The description covers the basic functionality but lacks details on return format, pagination, or behavior when no records. It is minimally complete but has room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description implies the parameter's effect: 'current or all' maps to currentOnly boolean. This adds meaning beyond the schema, but does not explain what 'current' means (e.g., active medications vs. historical). It is adequate but not explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns medication records, either current or all. It uses a specific verb ('返回') and resource ('用药记录'). While it distinguishes from add/update siblings, it does not explicitly differentiate from other list tools like health_allergy_list, but the purpose is still clear.
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, or when to set currentOnly. The description does not provide context for selection among sibling list tools or parameter usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_medication_update更新用药记录C
确认或更新病历中抽取的用药记录,包括 DDInter ID、当前状态、剂量、频次和备注。
| Name | Required | Description | Default |
|---|---|---|---|
| dose | No | ||
| name | No | ||
| notes | No | ||
| status | No | ||
| endDate | No | ||
| purpose | No | ||
| ddinterId | No | ||
| frequency | No | ||
| isCurrent | No | ||
| startDate | No | ||
| ingredients | No | ||
| safetyNotes | No | ||
| medicationId | Yes | ||
| needsConfirmation | No | ||
| sourceDocumentIds | No | ||
| treatmentCategory | No | ||
| fromRecordExtraction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description does not disclose behavioral traits like error handling, idempotency, authentication needs, or side effects. It merely restates the action.
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, front-loaded with purpose. However, it omits many necessary details; conciseness is achieved at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters, no output schema, and no usage context, the description is insufficient. It fails to cover required fields, return values, or behavioral constraints, 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?
Schema coverage is 0%, meaning no parameter descriptions in the schema. The tool description only mentions a few parameters (ddinterId, status, dose, frequency, notes), leaving 12 undocumented. It adds little meaning beyond the schema structure.
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 confirms or updates medication records from medical records, listing specific fields like DDInter ID, status, dose, frequency, and notes. It distinguishes from siblings (add, list) by implying modification, though not 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?
No guidance on when to use this tool versus alternatives (e.g., add, list). No prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_profile_get获取本地健康档案A
返回 MCP 服务器端保存的单病人健康档案,默认脱敏。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description mentions '默认脱敏' (desensitized by default), indicating output masking behavior. However, no other behavioral traits (e.g., auth requirements, caching, rate limits) are disclosed. With no annotations, the description carries the burden but provides only one behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 12 characters, no wasted words. Front-loaded with the key action. Excessively concise but still informative.
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?
No output schema exists, yet description does not describe return format or structure beyond 'health profile'. For a getter, agents need to know what fields to expect. The description is too minimal to be complete for effective 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?
No parameters (0 params), so baseline is 4. Description adds no param info, but none needed. Schema already fully covers parameters (empty).
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 it returns a single patient health profile, desensitized by default. Verb '返回' (returns) and resource '健康档案' (health profile) are specific, and it distinguishes from sibling tools like health_profile_update (update) and health_document_get (document).
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 vs alternatives like health_document_get or health_profile_update. However, the simple retrieval purpose is implied, and context from sibling names provides differentiation. Missing when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_profile_update更新本地健康档案C
创建或更新 MCP 服务器端单病人健康档案。
| Name | Required | Description | Default |
|---|---|---|---|
| sex | No | ||
| name | No | ||
| notes | No | ||
| mobile | No | ||
| displayName | No | ||
| riskFactors | No | ||
| ageOrBirthYear | No | ||
| chronicConditions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates mutation (create/update) but does not disclose behavioral details such as whether it overwrites or merges fields, authentication requirements, side effects, or constraints. With no annotations, these gaps are significant.
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 brief (one sentence) and concise, but it sacrifices necessary detail. It is not structured to aid an agent in understanding tool usage efficiently.
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 8 parameters with no descriptions, no output schema, and no annotations, the description is grossly insufficient. It does not cover return values, error handling, or data persistence 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 provides no explanation of the 8 parameters (e.g., format for riskFactors, expected values). The agent receives no semantic help beyond the raw schema.
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 'Create or update MCP server-side single patient health profile,' which clearly identifies the verb and resource. However, it does not differentiate between creation and update scenarios, and sibling tools like health_profile_get and health_medication_add exist but are not distinguished.
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 such as health_profile_get (for reading) or health_medication_add (for specific conditions). The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_safety_check检查用药安全和忌口提醒C
检查当前用药的过敏、重复用药、DDInter 药物相互作用和药物-食物/忌口提醒。
| Name | Required | Description | Default |
|---|---|---|---|
| ddinterIds | No | ||
| includeDdinter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only lists checked items but does not disclose behavioral traits like read-only nature, required permissions, or what happens if parameters are omitted. Insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks structure and front-loads limited info. Could be improved by adding parameter context while maintaining brevity.
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 no output schema and no annotations, description should cover return format, parameter usage, and prerequisites. It does not, leaving significant 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%, and description does not explain parameters ddinterIds or includeDdinter. Agent must rely solely on parameter names and schema, which is inadequate.
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 it checks allergies, duplicate medications, DDInter interactions, and drug-food restrictions. Verb and resource are specific, and it distinguishes from siblings like ddinter_check_interactions which focuses only on DDInter.
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 ddinter_check_interactions or health_allergy_list. Agent cannot determine best tool for a specific sub-check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_summary_get获取健康档案摘要A
返回单病人健康档案摘要,包括当前用药、过敏、冲突提醒、忌口、治疗、时间轴和关联报告。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as permissions needed, side effects, or whether it's a read-only operation. It only describes the returned data, lacking transparency for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose and content. It is front-loaded and contains no unnecessary words, though it could be slightly more structured (e.g., bullet points) for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the main return items but does not specify the format or any prerequisites (e.g., patient selection). It is adequate for a simple read tool but lacks completeness for an agent to fully understand the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100% by default. The description adds meaning by stating it returns a summary for a 'single patient,' which implies patient context must be set elsewhere. With 0 params, a score of 4 is appropriate as the description provides useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a health summary for a single patient, listing specific components (current medications, allergies, conflict alerts, dietary restrictions, treatments, timeline, and related reports). This differentiates it from siblings like health_profile_get or health_medication_list.
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 the tool is for retrieving a comprehensive summary, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. Usage is implied but not fully clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_timeline_add新增病情时间轴节点C
新增症状、就诊、检查、治疗、用药、随访等病情时间轴节点。
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| summary | Yes | ||
| eventType | Yes | ||
| confidence | No | ||
| documentIds | No | ||
| treatmentIds | No | ||
| medicationIds | No | ||
| dateOrSequence | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that the tool 'adds' a node, with no information about safety, side effects, idempotency, or permissions. This is insufficient for a mutation 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 a single sentence, making it concise. However, it lacks structure; a bulleted list or more formal breakdown of event types and parameters would improve readability. No waste, but could be better organized.
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 8 parameters (two enums) and no output schema, the description is incomplete. It does not explain return values, error states, or prerequisites. The complexity requires more detail for the agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions in the schema. The description only mentions event types in passing but does not explain any parameter semantics (e.g., dateOrSequence, confidence, documentIds). This fails to add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds a timeline node for various medical events (symptom, visit, test, etc.). The verb 'add' is explicit. However, it does not differentiate from sibling tools like health_timeline_link or health_timeline_list, which could cause confusion.
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 lists event types but does not clarify when to use this tool instead of specific tools like health_medication_add or health_treatment_add, which are siblings and may overlap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_timeline_link关联时间轴节点资料C
把报告、治疗记录或用药记录关联到已有病情时间轴节点。
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | ||
| documentIds | No | ||
| treatmentIds | No | ||
| medicationIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to carry the full burden. However, it lacks behavioral details such as whether linking is additive or overwrites existing associations, error handling when the eventId does not exist, or any side effects (e.g., data mutation). The description only states the action without transparency about outcomes or constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 24 Chinese characters, efficiently conveying the core action. Every word contributes to the meaning. There is no extraneous information, making it very concise and appropriately structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (simple linking action), the description is too minimal. It does not cover error scenarios, prerequisites (e.g., existing records and timeline node), or the outcome of the action. Without output schema or additional context, the agent lacks sufficient information to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps the parameter types (documentIds, treatmentIds, medicationIds) to the record types mentioned, but does not explain the format or constraints of the IDs, nor does it clarify that eventId refers to the timeline node. The parameter names are self-explanatory, but the lack of any schema description or additional detail leaves meaning 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 action ('关联', to link) and the resources ('报告、治疗记录或用药记录' to '已有病情时间轴节点'). It specifies what types of records can be linked, making the purpose understandable. However, it does not explicitly distinguish this tool from siblings like health_timeline_add, which might cause confusion for an agent deciding between creating a node and linking records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., the timeline node must already exist) or when not to use it (e.g., if the node needs to be created first with health_timeline_add). Without such context, an agent may misuse the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_timeline_list列出病情时间轴A
按创建顺序返回病情发展时间轴和关联报告/治疗/用药编号。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions ordering by creation, implying read-only behavior, but does not explicitly state non-destructiveness or other traits like authentication needs.
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 that is front-loaded and to the point. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameter-free list tool, the description is sufficient. It specifies the return content and order, though pagination or output format details are omitted.
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, so schema coverage is 100%. The description does not need to add parameter info. Baseline score for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a disease development timeline with associated IDs, using a specific verb and resource. It distinguishes from siblings like health_timeline_add and health_timeline_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_treatment_add新增治疗记录C
记录手术、操作、放化疗、康复、保守治疗等治疗信息。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| notes | No | ||
| doctor | No | ||
| effect | No | ||
| endDate | No | ||
| hospital | No | ||
| startDate | No | ||
| department | No | ||
| documentIds | No | ||
| treatmentType | No | ||
| adverseEffects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits like required permissions, side effects, idempotency, or pagination behavior. It only states the general action without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks necessary details. While brevity is good, it comes at the cost of providing comprehensive information, resulting in a balanced score.
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 11 parameters, no output schema, and no annotations, the one-sentence description is grossly inadequate. It does not explain parameter semantics, required fields, or return values, leaving the agent without sufficient context for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema; it does not explain any of the 11 parameters (e.g., name, notes, doctor). With 0% schema description coverage, the burden is on the description to clarify fields, which it fails to do.
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 '记录' (record) and the resource '治疗信息' (treatment information), and provides specific examples of treatment types (surgery, operation, radiotherapy, etc.), making it distinct from sibling tools like health_medication_add or health_treatment_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as health_medication_add or health_treatment_list. There is no mention of prerequisites, exclusions, or context for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_treatment_list列出治疗记录B
返回已保存的治疗记录。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only says 'return saved records' but omits details such as pagination behavior, security requirements, or whether the list can be empty. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the key action. It is appropriately sized for a parameterless tool, though it could add more context without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of parameters, output schema, and annotations, the description is adequate for a simple list operation but lacks completeness. It does not mention any ordering, filtering, or uniqueness guarantees, leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema provides full coverage. According to the rules, zero parameters warrant a baseline of 4. No additional meaning is needed from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns saved treatment records, using a verb and resource. Among siblings like health_medication_list and health_allergy_list, the resource name uniquely identifies what is being listed, though no explicit differentiation from siblings is provided.
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 like health_medication_list or health_treatment_add. The description does not provide any selection criteria or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_experts列出可预约专家B
根据医院和科室返回当前科室可预约专家。
| Name | Required | Description | Default |
|---|---|---|---|
| hospitalId | Yes | ||
| departmentId | Yes | ||
| registerType | No | 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fails to mention behavioral traits such as read-only nature, authentication requirements, or what 'available' means. It only states the basic operation, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that conveys the core functionality. It is appropriately front-loaded and concise, though slightly more structure could improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and the description does not explain return format or provide context on pagination, empty results, or error states. Given the lack of annotations and minimal description, the completeness is insufficient for an agent to use effectively.
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 description explains two of three parameters (hospitalId, departmentId) implicitly. However, registerType is not mentioned at all, and schema coverage is 0%. The description adds some value but does not fully compensate for the undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns available experts based on hospital and department, using a specific verb and resource. It distinguishes from sibling tools like list_expert_slots, which returns slots for a given expert, and other appointment tools, making its purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying inputs (hospital, department) but does not explicitly state when to use this tool versus alternatives like list_expert_slots or register tools. No exclusions or contextual triggers are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_expert_slots查询专家可约时间A
选择专家后返回可预约日期、上午/下午、余号和价格。
| Name | Required | Description | Default |
|---|---|---|---|
| expertId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool queries and returns availability data but does not state that it is read-only, requires no side effects, or mention any behavioral traits like authentication or rate limits.
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 communicates the tool's purpose and key outputs without unnecessary words. It is front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description adequately covers the return type (dates, AM/PM, slots, price). Minor gap: no details on output structure or how to interpret the fields, but overall sufficient for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage for the single parameter 'expertId'. The description adds context by indicating it is the expert's identifier after selection, but does not provide format or source details. Baseline 3 is appropriate as description partially compensates.
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 lists available appointment slots (dates, AM/PM, remaining slots, price) after selecting an expert. The verb 'list' and resource 'expert_slots' match the function, and it distinguishes from siblings like 'list_available_experts' which lists experts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after selecting an expert but does not explicitly state when to use this tool over siblings, nor does it mention prerequisites or limitations. It lacks explicit guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_patients列出已绑定就诊人A
返回当前账号下已绑定就诊人,敏感信息已脱敏。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that sensitive information is desensitized, which is a useful behavioral detail. However, it does not explicitly state that the operation is read-only or any potential 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 concise sentence that efficiently conveys the tool's function. No unnecessary words, and the key point (listing patients and desensitization) is front-loaded.
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 list tool with no output schema, the description could better specify the return format or fields. It mentions desensitization but omits what kind of information is returned (e.g., names, IDs). Some context is missing for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4. The description does not need to explain parameters, and it adds no extra parameter information beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns bound patients under the current account, with sensitive info desensitized. The verb 'list' and resource 'patients' are specific, and it distinguishes from sibling tools which focus on different health entities or actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Siblings include other list tools (e.g., health_document_list, health_medication_list), but no explicit context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patient_add_next继续新增就诊人流程C
为新增就诊人流程提供一个字段,或获取验证码、发送短信、提交绑定。
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | ||
| value | No | ||
| action | No | set_field | |
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description lists actions but does not disclose behavioral details such as side effects, required permissions, or what happens on submit. Minimal disclosure beyond what the schema implies.
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 sentence listing multiple actions. While concise, it lacks structure and could benefit from separating the use cases or adding bullet points.
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 4 parameters, no output schema, and no annotations, the description is insufficient. Missing context about the multi-step flow, return value, and error conditions.
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%. Description mentions parameters (field, value, action, flowId) but does not explain their formats, valid values, or how they relate. For example, 'field' is unclear; 'value' is any type. Does not compensate for schema 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?
Description states the tool provides a field or performs actions (get captcha, send SMS, submit) for the new patient flow. Clear verb+resource but does not differentiate from sibling tools like patient_add_start or register_*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not state prerequisites, flow context, or when to choose specific actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patient_add_start开始新增就诊人C
创建新增就诊人聊天流程,每次只询问一个字段。
| Name | Required | Description | Default |
|---|---|---|---|
| cardType | No | 1 |
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 states the tool creates a chat flow but does not mention side effects, authorization requirements, return values, or how the flow progresses. Important behavioral traits for a flow-initiating tool are absent.
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 very concise (one sentence) and front-loaded. However, the brevity sacrifices necessary detail, making it under-specified for the tool's role in a multi-step workflow.
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 lack of output schema, annotations, and any documentation of flow behavior, the description is inadequate. An agent cannot reliably determine what the tool returns, how to proceed to the next step, or what the parameter does. More context is essential for a starting tool in a sequence.
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 description does not explain the single parameter 'cardType' (default '1') at all. With 0% schema description coverage, the agent receives no guidance on what the parameter represents or how to use it. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool creates a chat flow for adding a new patient, asking one field at a time. The title '开始新增就诊人' reinforces this. It implicitly distinguishes from sibling 'patient_add_next', but 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?
The description implies this is the starting point of a multi-step patient addition process, and that each step handles one field. However, it does not specify when to use this tool vs. other patient tools, nor does it provide guidance on prerequisites or post-conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_confirm确认账号注册摘要C
返回账号实名注册摘要。用户确认后才允许提交注册。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes | ||
| confirm | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It mentions returning a summary and the need for confirmation, but does not specify side effects (e.g., whether confirmation triggers any state change), required preconditions (e.g., registration must be started), or error 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?
The description is very concise with only two sentences, each providing core information (return summary, confirmation requirement). However, it could be slightly restructured to include parameter details without increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema and annotations, and moderate complexity (2 params, one required), the description is insufficient. It does not explain what the summary contains, prerequisites (e.g., registration started), or handling of the confirm parameter.
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 clarify parameters. It partially implies flowId identifies the registration flow, but does not explicitly describe either parameter, especially the confirm boolean's meaning or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns a real-name registration summary and that user confirmation is required before submission. It distinguishes from sibling tools like register_submit and register_start by focusing on the summary and confirmation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for confirming registration, mentioning that confirmation is needed before submission. However, it lacks explicit guidance on when to use this tool versus alternatives, such as when the registration flow is incomplete or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_get_captcha获取注册图形验证码C
获取实名注册所需图形验证码图片。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist to disclose safety or side effects. The description only states purpose but omits behavioral details such as output format (e.g., image URL, base64), prerequisites, or whether the call is idempotent.
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. However, it is too brief and could include additional useful information without becoming unnecessarily long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter and lack of schema descriptions, output schema, or annotations, the description is incomplete. It fails to explain how the captcha image is returned, any prerequisite steps (like obtaining a flowId), or the role in the registration flow.
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 only parameter 'flowId' has no description in the schema and is not explained in the tool description. With 0% schema coverage, the description should compensate but does not inform the agent about what value to provide or where to obtain it.
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 gets a captcha image for real-name registration, which is specific and distinguishes it from the sibling tool 'auth_get_captcha' that serves authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage during registration but does not explicitly mention when to avoid using it or provide guidance on choosing between 'register_get_captcha' and 'auth_get_captcha'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_next继续账号实名注册流程C
为注册流程提供一个字段。长流程必须保持同一个 MCP stdio 会话。
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | ||
| value | No | ||
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behaviors. It mentions that a long process must maintain the same MCP stdio session, which is useful. However, it does not disclose idempotency, error handling, or side effects. For a mutation tool in a multi-step flow, more transparency is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first states the primary purpose, the second adds a critical constraint. Efficient and front-loaded.
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 complexity of a multi-step registration flow with multiple sibling tools, the description lacks context on how this tool fits into the overall process. No mention of return values or what happens after calling it. The session constraint is noted, but flow progression is ambiguous.
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 description provides no explanation for the three parameters (field, value, flowId) beyond their schema definitions. With 0% schema description coverage, the description should compensate, but it fails to clarify what 'field' means or how 'value' should be formatted.
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 '为注册流程提供一个字段' ('Provide a field for the registration process') clearly states the verb and resource. It distinguishes from sibling tools like register_start (starts the flow) and register_submit (finalizes) by implying it's for adding individual fields within a multi-step registration.
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 vs alternatives. It is implied by the register flow context, but no direct statement like 'use after register_start, before register_confirm' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_send_sms_code发送注册短信验证码C
用户提供手机号和图形验证码后发送注册短信验证码。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It mentions sending an SMS but omits behavioral details like rate limits, idempotency, or error cases. The description also contradicts the input schema by implying phone and captcha parameters, while the schema only has flowId, causing confusion.
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, but it lacks structure and fails to convey essential information like parameter meaning and usage order. It is minimally adequate but could be better organized.
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 there is no output schema and the parameter is poorly documented, the description is insufficient. It does not explain return values, error conditions, or how the tool fits into the registration flow among many sibling tools.
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 the flowId parameter. It mentions phone and captcha, which are not in the schema, leaving the agent unable to determine what flowId should represent. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a registration SMS after receiving phone and captcha. The verb 'send' and resource 'registration SMS verification code' are specific. Although it doesn't explicitly distinguish from sibling tools like auth_send_sms_code, the name and title provide sufficient 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 vs alternatives. It lacks prerequisites (e.g., needing a captcha first) and fails to specify conditions under which the tool should or shouldn't be used. The description is purely functional without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_start开始账号实名注册C
创建医联预约平台账号实名注册聊天流程。第一步会确认用户是否已线下初诊;未初诊则不会继续注册。
| Name | Required | Description | Default |
|---|---|---|---|
| cardType | No | 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description reveals some behavioral traits (it initiates a chat flow, conditionally proceeds). However, it does not disclose side effects, authentication needs, rate limits, or the overall flow beyond the first step.
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 very concise (one sentence), front-loading the main purpose. While it omits important parameter details, it avoids unnecessary 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?
Lacking output schema and annotations, the description fails to explain the full registration flow, next steps, or expected outcomes, leaving the agent under-informed for multi-step interaction.
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 single parameter 'cardType' is completely unexplained in the description; with 0% schema description coverage, the description adds no semantic value for correct parameter usage.
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 initiates a real-name registration chat process for the medical appointment platform, and mentions the first step conditions. However, it does not explicitly differentiate from sibling tools like register_confirm or appointment_start, though the name 'start' implies the entry point.
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 a usage condition (checks offline first visit, stops if not), which guides when to use, but it lacks explicit guidance on when not to use or mention of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_submit提交账号实名注册C
仅在用户确认后提交账号实名注册,不会自动登录。
| Name | Required | Description | Default |
|---|---|---|---|
| flowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description mentions user confirmation and no auto-login, but lacks details on success/failure behavior, side effects, or idempotency, which are important for a submission action.
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. It is front-loaded with the action and condition, but could be expanded slightly without losing conciseness to include parameter info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's role as a final submission step, the description lacks information about the flowId parameter, return values, error handling, and how it fits in the overall registration flow, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the 'flowId' parameter, which has zero schema description coverage. The agent receives no guidance on what value to provide for this required parameter.
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 submits real-name registration after user confirmation and notes it does not auto-login, effectively distinguishing it from other registration steps and login 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 specifies the tool should be used only after user confirmation, providing timing context. However, it does not explicitly state preconditions or suggest alternatives like register_confirm before submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_departments查询科室C
根据医院编号和科室名称查询二级科室。
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| hospitalId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description only states 'query', implying a read operation, but lacks details on authentication, limits, or side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with essential information, no redundancy, and front-loaded purpose.
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 low schema coverage (0%) and no output schema, the description is insufficient. It does not describe the return format, pagination, or behavior when no results found. A more complete description would aid the 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?
The description mentions both parameters (hospitalId and department name), aligning with the schema, but does not clarify that 'query' is optional or the format. Adds some meaning beyond the schema's default/required constraints.
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 secondary departments using hospital ID and department name, distinguishing it from siblings like search_hospitals which searches hospitals.
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 or alternatives. The context implied by sibling tools suggests it's for narrowing down departments, but no when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_hospitals查询医院/院区A
按医院名称模糊查询医联预约平台医院与院区。
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral traits. It mentions 'fuzzy query' but does not disclose whether the operation is read-only, requires authentication, or any other side effects. The description is minimal and lacks important context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and without any redundant text. Every word serves a purpose.
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 search tool with one parameter and no output schema, the description is minimally adequate. However, it omits what the return value looks like (e.g., list of hospitals, IDs, etc.), which would be helpful for the 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?
With schema description coverage at 0%, the description compensates by explaining that the 'query' parameter is used for hospital name fuzzy search. This adds meaning beyond the parameter name, though it does not detail format or constraints.
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 performs a fuzzy query by hospital name for hospitals and campuses within the medical alliance appointment platform. This is a specific verb and resource, and it distinguishes the tool from its sibling 'search_departments'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The agent is left to infer usage context 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
40 tool updates
v0.1.0- First observed
appointment_confirm - First observed
appointment_next - First observed
appointment_start - First observed
appointment_submit - First observed
auth_get_captcha - First observed
auth_login - First observed
auth_send_sms_code - First observed
ddinter_check_interactions - First observed
ddinter_search_drug - First observed
health_allergy_list - First observed
health_allergy_upsert - First observed
health_document_export - First observed
health_document_get - First observed
health_document_ingest - First observed
health_document_list - First observed
health_medication_add - First observed
health_medication_list - First observed
health_medication_update - First observed
health_profile_get - First observed
health_profile_update - First observed
health_safety_check - First observed
health_summary_get - First observed
health_timeline_add - First observed
health_timeline_link - First observed
health_timeline_list - First observed
health_treatment_add - First observed
health_treatment_list - First observed
list_available_experts - First observed
list_expert_slots - First observed
list_patients - First observed
patient_add_next - First observed
patient_add_start - First observed
register_confirm - First observed
register_get_captcha - First observed
register_next - First observed
register_send_sms_code - First observed
register_start - First observed
register_submit - First observed
search_departments - First observed
search_hospitals
TDQS
Scored across 40 tools
Each tool belongs to a clear domain (appointment, auth, health, etc.) with distinct actions. Even within health, tools like health_document_get vs health_document_export have clear differences documented. No two tools have overlapping purposes.
Tools follow a consistent snake_case pattern with domain prefixes. Most use verb-last convention (e.g., health_allergy_list), but a few like list_patients use verb-first. This minor inconsistency does not impair readability.
With 40 tools, the server is over-scoped. While each tool has a distinct purpose, the sheer number makes it cumbersome for an agent. Splitting into separate servers (e.g., appointments, health records) would improve coherence.
The tool surface covers authentication, registration, appointment booking, health records, and drug interactions. Missing update/delete for several health entities (e.g., allergy, document, timeline) are minor gaps that agents can work around.
Maintenance
Related MCP Connectors
MCP server for lacita - appointment management software
MCP server for China Railway 12306 ticket availability: schedules and seats by Chinese station name.
MCP server for FormBro Canadian immigration application automation.
Remote MCP server for China brand visibility, destination demand, and KOL discovery workflows.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables users to book, cancel, reschedule, and list appointments through natural language interactions. It uses YAML configurations for agent behavior and function logic to manage appointment data and availability.MIT
- AlicenseAqualityCmaintenanceMCP server for reading WeChat public account articles by reusing authenticated browser sessions, handling captchas and rate limits.614MIT
- AlicenseNot gradedqualityBmaintenanceMCP server to scan for open Global Entry / NEXUS appointment slots and get notified via email, Slack, or Discord.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for WeChat automation, supporting message sending, chat history retrieval, and contact list management via SSE protocol.5-