{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T16:30:49.744Z","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe","markdownUrl":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe.md","server":{"slug":"cn-com-ihaola-health-checkup-planner","name":"好啦体检 MCP","registryName":"cn.com.ihaola/health-checkup-planner","description":"企业团检分档报价与企业咨询、个人体检方案推荐、门店查询、体检预约、订单与体检件查询、体检常见问题。合作体检机构 800+ 门店，覆盖 240+ 城市，其中 540+ 门店支持 AI 直接查询与预约。","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"api-mcp-haola-pe","type":"remote","identifier":"https://ai.ihaola.com.cn/api/mcp/haola-pe","withdrawn":false,"url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe","version":"1.0.0","transport":null,"scoredAt":"2026-11-05T04:25:16.645Z"},"score":{"total":61,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":61},{"date":"2026-11-04","total":60},{"date":"2026-11-03","total":60},{"date":"2026-11-02","total":60},{"date":"2026-11-01","total":60},{"date":"2026-10-31","total":59},{"date":"2026-10-30","total":59}]},"categories":[{"name":"Endpoint Security","score":57,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not fully verified: no authorisation is required to call this server, and 26 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.","HTTPS is enforced; there's no plaintext access path.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_undeclared","args":{"undeclared_tools":"26"}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":55,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 4999 tokens (~192/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"192","items":"26","tools":"26","tokens":"4999","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":20,"verdict":"partial","reasons":["Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"6"}}]},{"name":"Tool Coverage","score":67,"verdict":"fail","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","0% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"0"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 26 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"26"}},{"code":"toolsafety.manipulation_clean","args":{"units":"27","judged":"27"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Authorisation not fully verified: no authorisation is required to call this server, and 26 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe."],"malware":[],"components":[{"slug":"api-mcp-haola-pe","type":"remote","identifier":"https://ai.ihaola.com.cn/api/mcp/haola-pe","withdrawn":false,"score":61,"current":true,"url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe","markdownUrl":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe.md"}],"facts":[{"label":"Endpoint","value":"https://ai.ihaola.com.cn/api/mcp/haola-pe"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.0.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"vendor_list","title":"vendor.list","description":"[匿名可调用] 查门店地址。支持三种方式，至少传一种：1) hospitalCode（可带 vendorids，按第一个品牌查）；2) longitude+latitude（可带 radius 米，默认 50000，可带 vendorids）；3) province/city/district（可带 vendorids）。外部调用仅支持 health100/haolaruici，partnerid 仅内部可用。不确定品牌和覆盖城市时先用 vendor.brands。本体: vendor → Action: list","inputs":[{"name":"city","type":"string","required":false,"description":null},{"name":"district","type":"string","required":false,"description":null},{"name":"hospitalCode","type":"string","required":false,"description":null},{"name":"latitude","type":"number","required":false,"description":null},{"name":"longitude","type":"number","required":false,"description":null},{"name":"province","type":"string","required":false,"description":null},{"name":"radius","type":"number","required":false,"description":null},{"name":"vendorids","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":175},{"name":"vendor_brands","title":"vendor.brands","description":"[匿名可调用] 查各体检品牌覆盖的城市（品牌聚合摘要，不返回具体门店）。本体: vendor → Action: brands","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"order_list","title":"order.list","description":"[需要登录] 查订单。查询 userOrders 集合。调用方归属甲方由服务端身份解析，filter 中无需传 partnerid。支持 $gte/$lte 日期范围、$in/$or 多值匹配。本体: order → Action: list\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"filter","type":"object","required":false,"description":null},{"name":"limit","type":"number","required":false,"description":null},{"name":"page","type":"number","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":130},{"name":"welfare_list","title":"welfare.list","description":"[需要登录] 查用户体检件。查询 userWelfare 集合。传 {customerMobile: \"138xxx\"} 或 {name: \"张三\"} 查对应用户的体检件。已知 userid 可直接传 {userid: \"xxx\"}。本体: welfare → Action: list\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"ID","type":"string","required":false,"description":null},{"name":"mobile","type":"string","required":false,"description":null},{"name":"name","type":"string","required":false,"description":null},{"name":"partnerid","type":"string","required":false,"description":null},{"name":"rootid","type":"string","required":false,"description":null},{"name":"serviceid","type":"string","required":false,"description":null},{"name":"userid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":168},{"name":"corp_inquiry","title":"corp.inquiry","description":"[匿名可调用] 提交企业商务咨询。企业客户有任何问题（合作咨询、产品了解、报价请求、投诉建议）均可提交，销售 24h 内联系。本体: corp → Action: inquiry","inputs":[{"name":"budget","type":"string","required":false,"description":null},{"name":"city","type":"string","required":false,"description":null},{"name":"company","type":"string","required":true,"description":null},{"name":"contact","type":"string","required":true,"description":null},{"name":"employees","type":"number","required":false,"description":null},{"name":"message","type":"string","required":false,"description":null},{"name":"phone","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":106},{"name":"corp_contact","title":"corp.contact","description":"[匿名可调用] 查询好啦商务对接人（团检/商务合作）：返回对接人姓名、电话、邮箱、二维码图片 URL。用户报价后需要人工商务对接时调用。本体: corp → Action: contact","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":60},{"name":"plan_quotation","title":"plan.quotation","description":"[匿名可调用] 企业团检报价：quotes 为对象数组，每档一个方案。每项 = { tier(档名，仅标识该档、不参与报价，返回时回填), budget(人均预算元，必填), healthConcerns(该档健康诉求，必填), populations?(人群数组 man/lady/girl，默认三人，该档) }。可选 partnerId（甲方 UUID），透传给 /plan/quotation 按伙伴定价。返回 data.list（每档 { tier, budget, planList, combinedPrice, discount }），其中 planList 为**按人群的数组**（每项 { population, price, items, planId }），逐档按人群拆分并发取值；planId 是该档该人群的方案标识，体检预约时传给 reservation.book，不要自己拼项目；discount 为该伙伴折数（如 5 表示 5 折，无则 null）。调用前先用 knowledge_get({uri:\"objects/checkup-proposal\"}) 加载《企业团检方案顾问》引导词作为 agent 的 system prompt；对客话术与输出模板必须遵循该引导词，严禁编造项目/费用。字段说明见 knowledge://objects/checkup-proposal。本体: plan → Action: quotation","inputs":[{"name":"partnerId","type":"string","required":false,"description":null},{"name":"quotes","type":"array","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":309},{"name":"plan_recommend","title":"plan.recommend","description":"[需要登录] 个人体检推荐：按调用方身份读用户名下体检件与模板，结合性别、婚姻状况、预算、健康诉求推荐体检项目，返回 data.selected_items（每项带 constraintId）与 planId。planId 直接传给 reservation.book 预约，不要自己拼项目。长耗时，建议每阶段调用 progress.report。本体: plan → Action: recommend\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"age","type":"number","required":false,"description":null},{"name":"budget","type":"number","required":false,"description":null},{"name":"gender","type":"string","required":true,"description":null},{"name":"mainComplaint","type":"string","required":false,"description":null},{"name":"marital","type":"string","required":false,"description":null},{"name":"modification","type":"string","required":false,"description":null},{"name":"previousPackage","type":"array","required":false,"description":null},{"name":"reportHistory","type":"string","required":false,"description":null},{"name":"userContext","type":"string","required":false,"description":null},{"name":"welfareid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":221},{"name":"faq","title":null,"description":"[匿名可调用] 体检 FAQ。不传 query 则列出所有问题。query 必须是短关键词(2-4字，如\"报告\"、\"预约\"、\"空腹\")，不要传完整问句。","inputs":[{"name":"query","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"knowledge_get","title":"knowledge.get","description":"[匿名可调用] 按需查询领域知识。外部可用 URI: enums(状态码) / objects/contact(联系人) / objects/contact-profile(健康画像) / objects/checkup-proposal(企业团检方案顾问引导词)。查 action 参数用 help()。团检报价场景先用 knowledge_get({uri:\"objects/checkup-proposal\"}) 加载《企业团检方案顾问》引导词作为外部 MCP agent 的 system prompt，再调 plan_quotation；报价话术与输出模板必须遵循该引导词","inputs":[{"name":"uri","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"help","title":null,"description":"[匿名可调用] 三级帮助系统。无参列出本体；传 ontology 列出该本体下工具；传 ontology 和 sub_action 查看参数，sub_action 用完整名称，如 vendor.list、plan.quotation。","inputs":[{"name":"ontology","type":"string","required":false,"description":null},{"name":"sub_action","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":71},{"name":"welfare_detail","title":"welfare.detail","description":"[需要登录] 查询指定福利的详细内容，包括检查项目列表、规则说明、适用机构等。本体: welfare → Action: detail\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"vendorid","type":"string","required":false,"description":null},{"name":"welfareid","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":99},{"name":"cautions","title":null,"description":"[需要登录] 根据体检项目查询注意事项（饮食、用药、禁忌等）。需调用方用户标识（external_user_id 自动注入），partnerid 由服务端按用户标识解析，禁止客户端传。传 checkPackage 查套餐注意事项（必带 vendorid）；传 serviceid 仅允许查本人订单。本体: knowledge → Action: cautions\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"checkPackage","type":"object","required":false,"description":null},{"name":"serviceid","type":"string","required":false,"description":null},{"name":"vendorid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":161},{"name":"order_detail","title":"order.detail","description":"[需要登录] 查询单个订单完整详情，包括预约信息、医院信息、套餐项目、支付状态。本体: order → Action: detail\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"serviceid","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"contact_list","title":"contact.list","description":"[需要登录] 按 relation/gender 查询当前用户的联系人。用户提到家人时必须先调用；唯一候选可直接使用 contactid，多个候选请用户选择，未选定时禁止保存画像。本体: contact → Action: list\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"gender","type":"string","required":false,"description":null},{"name":"relation","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":123},{"name":"contact_get","title":"contact.get","description":"[需要登录] 查询指定体检人的完整信息（含脱敏证件号）。本体: contact → Action: get\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"contact_create","title":"contact.create","description":"[需要登录] 创建家属临时联系人。relation 必填，self 由系统创建；姓名、手机号、证件号可后补。本体: contact → Action: create\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"IDType","type":"string","required":false,"description":null},{"name":"birthday","type":"string","required":false,"description":null},{"name":"customerID","type":"string","required":false,"description":null},{"name":"customerMobile","type":"string","required":false,"description":null},{"name":"customerName","type":"string","required":false,"description":null},{"name":"gender","type":"string","required":false,"description":null},{"name":"marital","type":"string","required":false,"description":null},{"name":"relation","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":152},{"name":"contact_update","title":"contact.update","description":"[需要登录] 更新体检人信息（姓名、手机号等）。本体: contact → Action: update\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"IDType","type":"string","required":false,"description":null},{"name":"birthday","type":"string","required":false,"description":null},{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null},{"name":"customerID","type":"string","required":false,"description":null},{"name":"customerMobile","type":"string","required":false,"description":null},{"name":"customerName","type":"string","required":false,"description":null},{"name":"gender","type":"string","required":false,"description":null},{"name":"marital","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":145},{"name":"contact_profile_get","title":"contact.profile.get","description":"[需要登录] 按 contactid 查询联系人的结构化健康画像。不传 contactid 时读取当前用户本人。本体: contact → Action: profile.get\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"contact_profile_save","title":"contact.profile.save","description":"[需要登录] 仅在用户明确要求保存或更新长期健康画像时调用；仅推荐方案不得调用。本人不传 contactid，家人必须先解析唯一 contactid，禁止把家人信息写入本人档案。返回更新后的完整画像与 created。本体: contact → Action: profile.save\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"allergy_intolerance","type":"object","required":false,"description":null},{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null},{"name":"demographics","type":"object","required":false,"description":null},{"name":"examinations","type":"array","required":false,"description":null},{"name":"family_history","type":"array","required":false,"description":null},{"name":"lifestyle","type":"object","required":false,"description":null},{"name":"measurements","type":"array","required":false,"description":null},{"name":"medications","type":"array","required":false,"description":null},{"name":"preferences_constraints","type":"object","required":false,"description":null},{"name":"problem_list","type":"array","required":false,"description":null},{"name":"surgeries","type":"array","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":212},{"name":"contact_profile_correct","title":"contact.profile.correct","description":"[需要登录] 纠正联系人健康画像中的错误记录。只删除时 contactid 指定源联系人，本人不传；迁移时额外传 targetContactid。entries.path 指定模块或子字段，entries.match 指定必须唯一命中的字段。匹配不到或多条命中都会失败，不修改数据。本体: contact → Action: profile.correct\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null},{"name":"entries","type":"array","required":true,"description":null},{"name":"targetContactId","type":"string","required":false,"description":null},{"name":"targetContactid","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":174},{"name":"reservation_book","title":"reservation.book","description":"[需要登录] 体检预约：按 planId 取出项目，交给伙伴接口下单。传 contactId 时直接使用该体检人。没有 contactId 时，支持 elicitation form 的客户端先展示全部常用体检人和新建入口；选择完整联系人后直接进入协议授权，选择信息不完整的联系人时返回第二段补全表单并更新原联系人，选择新建时返回第二段表单填写姓名、手机号、与本人关系、证件类型、证件号、出生日期、性别、婚否和授权。出生日期和性别仅在非身份证时必填，服务端在提交后校验，提交后保存为常用体检人。不支持 elicitation form 的客户端返回 contactMethodRequired，用户可以选择在对话中填写或打开 H5 体检人页面，不强制跳转。选择在对话中填写后返回 contactRequired，包含待填字段和 contactDraftId；Agent 按字段逐项询问，每次只问一项，用户确认后把各字段、contactDraftId 和 consent=true 一起传回，服务端校验并保存联系人后继续预约。证件号会出现在当前对话中，可能被客户端记录；该隐私提示只向用户提示一次，提交后 Agent 不复述、不回显证件号，只引用 contactId。选择 H5 后返回 contactEntryUrl，用户添加体检人后调用 contact_list 获取 contactId，再继续预约。不要主动要求用户发送身份证号；用户已选择在对话中填写时，可以继续询问证件号。IDType 为 SFZ 时按身份证规则校验。体检项目只来自 planId，客户端不能提交项目。预约前会通过 input_required 展示本次需要的动态协议；非表单客户端返回 consentRequired，用户确认后把确认话术原文作为 consentText 传入。返回 contactId、serviceid 和 orderEntryUrl；保存联系人时同时返回 contactid 和 contactSaved，contactSaved=false 表示预约已成功但联系人保存失败。用户在 H5 用手机号登录后可看到自己的订单，并可支付、改期/取消、查看检前注意事项、查看体检报告。渠道需要用户支付时返回支付链接 payUrl 和支付提示；客户端支持 elicitation URL 时，服务端通过 URL 模式打开 payUrl，最终结果仍返回 orderEntryUrl，客户端不支持时直接返回 payUrl 和 orderEntryUrl。客户端可使用 payUrl 生成二维码展示给用户。payUrl 有效期为订单创建后 30 分钟。重复预约命中已有未支付订单时，返回原 serviceid 和该订单的 payUrl。status 表示支付状态，预约状态以 rsvStatus 为准。本体: reservation → Action: book\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"IDType","type":"string","required":false,"description":null},{"name":"appointmentDate","type":"string","required":true,"description":null},{"name":"birthday","type":"string","required":false,"description":null},{"name":"consent","type":"boolean","required":false,"description":null},{"name":"consentText","type":"string","required":false,"description":null},{"name":"contactDraftId","type":"string","required":false,"description":null},{"name":"contactId","type":"string","required":false,"description":null},{"name":"contactMethod","type":"string","required":false,"description":null},{"name":"contactid","type":"string","required":false,"description":null},{"name":"customerID","type":"string","required":false,"description":null},{"name":"customerMobile","type":"string","required":false,"description":null},{"name":"customerName","type":"string","required":false,"description":null},{"name":"gender","type":"string","required":false,"description":null},{"name":"hospitalCode","type":"string","required":true,"description":null},{"name":"marital","type":"string","required":false,"description":null},{"name":"payType","type":"string","required":false,"description":null},{"name":"planId","type":"string","required":true,"description":null},{"name":"relation","type":"string","required":false,"description":null},{"name":"timespan","type":"string","required":false,"description":null},{"name":"vendorid","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":807},{"name":"reservation_cancel","title":"reservation.cancel","description":"[需要登录] 取消预约：按预约号取消；已支付订单会同时发起退款。预约号取自 reservation.book 返回的 serviceid。本体: reservation → Action: cancel\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"reservationId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":101},{"name":"reservation_modify","title":"reservation.modify","description":"[需要登录] 更改预约日期：按预约号改期。本体: reservation → Action: modify\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"appointmentDate","type":"string","required":true,"description":null},{"name":"reservationId","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":91},{"name":"card_list","title":"card.list","description":"[需要登录] 根据卡号查卡密及兑换使用情况。welfareId 为空=未兑换，非空时串联福利和订单。本体: card → Action: list\n\n鉴权：需要用户登录令牌，或已经绑定用户的云市场实例凭证。未登录调用返回 401；云市场实例未绑定用户时返回 code=40003 和 data.bindUrl。","inputs":[{"name":"cardId","type":"string","required":true,"description":null},{"name":"limit","type":"number","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"progress_report","title":"progress.report","description":"[匿名可调用] 长耗时任务进度上报。agent 每完成一个阶段调用一次，text 为给用户看的可读进度，如「报告解析中，预计 10 秒」。不落地业务数据，仅用于向用户展示过程。","inputs":[{"name":"percent","type":"number","required":false,"description":null},{"name":"stage","type":"string","required":false,"description":null},{"name":"text","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T04:25:16.000Z","track":"remote","endpoint":"https://ai.ihaola.com.cn/api/mcp/haola-pe","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=*.ihaola.com.cn","issuer":"CN=WoTrus RSA DV SSL CA 2,O=WoTrus CA Limited,C=CN","notBefore":"2026-09-10T00:00:00Z","notAfter":"2027-03-27T23:59:59Z","keyType":"RSA","keyBits":2048,"isCa":false},{"subject":"CN=WoTrus RSA DV SSL CA 2,O=WoTrus CA Limited,C=CN","issuer":"CN=Sectigo Public Server Authentication Root R46,O=Sectigo Limited,C=GB","notBefore":"2025-08-20T00:00:00Z","notAfter":"2035-08-19T23:59:59Z","keyType":"RSA","keyBits":3072,"isCa":true},{"subject":"CN=Sectigo Public Server Authentication Root R46,O=Sectigo Limited,C=GB","issuer":"CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US","notBefore":"2021-03-22T00:00:00Z","notAfter":"2038-01-18T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true},{"subject":"CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US","issuer":"CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US","notBefore":"2010-02-01T00:00:00Z","notAfter":"2038-01-18T23:59:59Z","keyType":"RSA","keyBits":4096,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"ai.ihaola.com.cn.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"cn.","outcome":"verified","label":"Verified"},{"zone":"com.cn.","outcome":"verified","label":"Verified"},{"zone":"ihaola.com.cn.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":null},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a1a9f4-3678-7c26-96c3-0968613f4705","kind":"tool.added","summary":"New tool “contact_profile_correct”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a9f4-3678-7c26-96c3-0968613f4705"},{"id":"chg_01a1a9f4-3679-76fb-8d65-65a458b76d88","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a9f4-3679-76fb-8d65-65a458b76d88"},{"id":"chg_01a1a9f4-367a-7688-94aa-756ea85b8edf","kind":"score.total_changed","summary":"Trust score (60 → 61)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a9f4-367a-7688-94aa-756ea85b8edf"},{"id":"chg_01a1a4c8-bf2e-70eb-88b9-9e0906081148","kind":"check.measure","summary":"Schema quality (168 → 190)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf2e-70eb-88b9-9e0906081148"},{"id":"chg_01a1a4c8-bf2e-7cb9-94ba-533354f5d1e7","kind":"tool.description_changed","summary":"Tool “reservation_book” rewrote its description, which is the text the model reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf2e-7cb9-94ba-533354f5d1e7"},{"id":"chg_01a1a4c8-bf2f-7efb-bd4b-d6877d9e137f","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “birthday”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf2f-7efb-bd4b-d6877d9e137f"},{"id":"chg_01a1a4c8-bf30-752e-9258-eec8e5478cad","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “consent”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf30-752e-9258-eec8e5478cad"},{"id":"chg_01a1a4c8-bf31-7e05-93a8-ec5e989ff4dc","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “consentText”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf31-7e05-93a8-ec5e989ff4dc"},{"id":"chg_01a1a4c8-bf32-79bc-b462-f1ee8a97bced","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “contactDraftId”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf32-79bc-b462-f1ee8a97bced"},{"id":"chg_01a1a4c8-bf33-7903-99b0-492f61d2ce62","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “contactMethod”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf33-7903-99b0-492f61d2ce62"},{"id":"chg_01a1a4c8-bf33-7e4e-a45c-c21f3f2045a6","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “customerID”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf33-7e4e-a45c-c21f3f2045a6"},{"id":"chg_01a1a4c8-bf34-74e6-8621-3eda3a26ca6f","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “customerMobile”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf34-74e6-8621-3eda3a26ca6f"},{"id":"chg_01a1a4c8-bf34-7adf-952c-936fe2db04ff","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “customerName”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf34-7adf-952c-936fe2db04ff"},{"id":"chg_01a1a4c8-bf35-7860-995f-0f4a87ec2986","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “gender”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf35-7860-995f-0f4a87ec2986"},{"id":"chg_01a1a4c8-bf36-7c55-b047-92adb8238332","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “marital”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf36-7c55-b047-92adb8238332"},{"id":"chg_01a1a4c8-bf37-7644-9027-2d824d00bb99","kind":"param.added_optional","summary":"“reservation_book” added an optional parameter “relation”","materiality":"cosmetic","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf37-7644-9027-2d824d00bb99"},{"id":"chg_01a1a4c8-bf37-7c8a-b917-c8165c8dd3c1","kind":"server.instructions_changed","summary":"The server rewrote its instructions, which are the text every model session reads","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a1a4c8-bf37-7c8a-b917-c8165c8dd3c1"},{"id":"chg_01a19fa4-3c9e-774c-b185-6c12218df2a7","kind":"check.reverified","summary":"HSTS header (unverified → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a19fa4-3c9e-774c-b185-6c12218df2a7"},{"id":"chg_01a19fa4-3c9f-7d45-86f6-0f8b04613a54","kind":"check.verdict","summary":"Transport (fail → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a19fa4-3c9f-7d45-86f6-0f8b04613a54"},{"id":"chg_01a19fa4-3ca0-7d91-943b-0b8d08f30e72","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe#chg-chg_01a19fa4-3ca0-7d91-943b-0b8d08f30e72"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe","markdown":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe.md","changelogJson":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe/changelog.json","changelogRss":"https://verifymcp.io/servers/cn-com-ihaola-health-checkup-planner/api-mcp-haola-pe.xml","external":[{"label":"Remote endpoint","href":"https://ai.ihaola.com.cn/api/mcp/haola-pe"},{"label":"Website","href":"https://www.ihaola.com.cn/"}]}}