# 好啦体检 MCP

> 企业团检分档方案、门店查询、体检 FAQ 与企业咨询，覆盖 241 城。

- name: cn.com.ihaola/haola-pe
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 78/100 flags: no-repository
- quality: 73/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/cn.com.ihaola%2Fhaola-pe
- tools: https://api.protogrid.dev/v1/servers/cn.com.ihaola%2Fhaola-pe/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "haola-pe": {
      "type": "http",
      "url": "https://ai.ihaola.com.cn/api/mcp/haola-pe"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 40
- drivers: +dns-namespace -thin-description +reachable +uptime-100% +updated-1d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: contact_list (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); reservation_cancel (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); progress_report (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 2,389 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 0 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 26, about 2,389 tokens to load them all
- tool set hash: fe3eba1880123238f26eefb5549a4528
- badge: [![protogrid quality](https://protogrid.dev/badge/cn.com.ihaola/haola-pe.svg)](https://protogrid.dev/servers/cn.com.ihaola/haola-pe)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://ai.ihaola.com.cn/api/mcp/haola-pe (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (26)

- `card_list`: 根据卡号查卡密及兑换使用情况。welfareId 为空=未兑换，非空时串联福利和订单。本体: card → Action: list

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `cautions`: 根据体检项目查询注意事项（饮食、用药、禁忌等）。需调用方用户标识（external_user_id 自动注入），partnerid 由服务端按用户标识解析，禁止客户端传。传 checkPackage 查套餐注意事项（必带 vendorid）；传 serviceid 仅允许查本人订单。本体: knowledge → Action: cautions

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `contact_create`: 新增就诊人信息。本体: contact → Action: create

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `contact_get`: 查询指定就诊人的完整信息（含脱敏证件号）。本体: contact → Action: get

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `contact_list`: 列出当前用户的就诊人列表。本体: contact → Action: list

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `contact_update`: 更新就诊人信息（姓名、手机号等）。本体: contact → Action: update

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `corp_contact`: 查询好啦商务对接人（团检/商务合作）：返回对接人姓名、电话、邮箱、二维码图片 URL。用户报价后需要人工商务对接时调用。本体: corp → Action: contact
- `corp_inquiry`: 提交企业商务咨询。企业客户有任何问题（合作咨询、产品了解、报价请求、投诉建议）均可提交，销售 24h 内联系。本体: corp → Action: inquiry
- `faq`: 体检 FAQ。不传 query 则列出所有问题。query 必须是短关键词(2-4字，如"报告"、"预约"、"空腹")，不要传完整问句。
- `help`: 三级帮助系统。无参列出本体；传 ontology 列出该本体下工具；传 ontology 和 sub_action 查看参数，sub_action 用完整名称，如 vendor.list、plan.quotation。
- `knowledge_get`: 按需查询领域知识。外部可用 URI: enums(状态码) / objects/checkup-proposal(企业团检方案顾问引导词)。查 action 参数用 help()。团检报价场景先用 knowledge_get({uri:"objects/checkup-proposal"}) 加载《企业团检方案顾问》引导词作为外部 MCP agent 的 system prompt，再调 plan_quotation；报价话术与输出模板必须遵循该引导词
- `order_detail`: 查询单个订单完整详情，包括预约信息、医院信息、套餐项目、支付状态。本体: order → Action: detail

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `order_list`: 查订单。查询 userOrders 集合。调用方归属甲方由服务端身份解析，filter 中无需传 partnerid。支持 $gte/$lte 日期范围、$in/$or 多值匹配。本体: order → Action: list

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `plan_quotation`: 企业团检报价：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
- `plan_recommend`: 个人体检推荐：按调用方身份读用户名下体检件与模板，结合性别、婚姻状况、预算、健康诉求推荐体检项目，返回 data.selected_items（每项带 constraintId）与 planId。planId 直接传给 reservation.book 预约，不要自己拼项目。长耗时，建议每阶段调用 progress.report。本体: plan → Action: recommend

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `progress_report`: 长耗时任务进度上报。agent 每完成一个阶段调用一次，text 为给用户看的可读进度，如「报告解析中，预计 10 秒」。不落地业务数据，仅用于向用户展示过程。
- `reservation_book`: 体检预约：按 planId 取出项目，交给伙伴接口下单。体检项目只来自 planId，客户端不能提交项目。返回 serviceid 作为预约号、orderEntryUrl 作为订单列表页链接：用户在 H5 用手机号登录后可看到自己的订单，并可支付、改期/取消、查看检前注意事项、查看体检报告；渠道需要用户支付时，一并返回短链 payUrl 与支付提示。本体: reservation → Action: book

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `reservation_cancel`: 取消预约：按预约号取消，预约号取自 reservation.book 返回的 serviceid。本体: reservation → Action: cancel

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `reservation_modify`: 更改预约日期：按预约号改期。本体: reservation → Action: modify

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `template_detail`: 查询团单模板详情，返回完整模板文档含 users 字段（每个 user 含 welfareId/isConsumed）。本体: template → Action: detail

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `template_list`: 查询团单模板列表。按 partnerid 过滤，返回模板摘要（不含套餐明细 rules.items）。外部调用由服务端身份解析归属甲方。本体: template → Action: list

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `template_stats`: 团单模板统计。查询 welfareTemplate 集合，返回发放/激活/预约/到检/报告计数。调用方归属甲方由服务端身份解析。本体: template → Action: stats

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `vendor_brands`: 查各体检品牌覆盖的城市（品牌聚合摘要，不返回具体门店）。本体: vendor → Action: brands
- `vendor_list`: 查具体门店地址。仅在用户已选定城市+品牌、需查看门店位置或预约时使用。必须传 city/vendorids 等筛选条件，缺条件直接拒绝。不确定有哪些品牌和覆盖城市时先用 vendor.brands。本体: vendor → Action: list
- `welfare_detail`: 查询指定福利的详细内容，包括检查项目列表、规则说明、适用机构等。本体: welfare → Action: detail

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
- `welfare_list`: 查用户体检件。查询 userWelfare 集合。传 {customerMobile: "138xxx"} 或 {name: "张三"} 查对应用户的体检件。已知 userid 可直接传 {userid: "xxx"}。本体: welfare → Action: list

鉴权：需要用户登录令牌。未登录调用会返回 401，客户端应完成 OAuth 授权后重试。
