mcpField
M
medprice

medprice

本地服务
github.com/CloudCorpRecords健康医疗01 周前更新

关于 medprice

medprice 是供用户比较美国处方药价格和查询药品对应名称的本地桥接工具。它将价格、药房和药品查询转发给 FineRx 托管服务,但不提供发送邮件的工具。

主要功能

  1. 01比较不同药房连锁的药品价格
  2. 02按地点查找附近药房
  3. 03批量比较多种药品价格
  4. 04搜索药品及可用包装规格
  5. 05查询外国品牌在美国的对应药品
  6. 06获取折扣卡和处方相关信息

适用场景

  1. 01比较 ZIP code 附近的药品价格
  2. 02查找附近可配药的门店
  3. 03同时查看多种药品的价格
  4. 04查询外国药品在美国的名称

MCP 相关

向 MCP 客户端提供 FineRx 的部分工具,并将调用转发到 FineRx 托管的 MCP 服务。不会公开 email_savings_card 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-medprice": {
"command": "npx",
"args": [
"-y",
"@reneturcios/medprice"
]
}
}
}
启动命令npx -y @reneturcios/medprice

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/medprice0.1.0
ocighcr.io/cloudcorprecords/medprice:0.1.0

工具

18

收录的工具列表 · 更新于 1 周前

参数类型必填说明
ndcany否药品的 NDC(国家药品代码);旧版调用方可将其与数量一起传入。
zipany否用于查找附近价格和药店的 5 位美国 ZIP 邮编;仅在用户提供时传入。
drugany否药品:按原样输入的名称,或来自 search_drugs 的 slug。
formany否药品的剂型(例如 "tablet")。
localeany否回答所用的语言代码(省略时使用宿主自身的语言代码)。
channelany否可选的渠道标签,用于标识请求的来源;除非调用方宿主提供,否则请省略。
quantityany否要查询价格的数量(包装规格/单位数)。
strengthany否药品的规格(例如 "10 mg")。
compare_toany否用户为此包装提及的美元金额(其保险自付额、当前支付金额或希望低于的价格);回答随后会说明有多少连锁药店的价格低于该金额。

详细介绍

medprice

medprice 是 FineRx 托管 MCP 服务的轻量本地桥接程序。FineRx 是一项面向美国的处方药价格服务:它可以查询药品使用免费折扣卡在大型连锁药房的价格、某个邮政编码附近有哪些门店,以及在美国销售的某种药品对应的国外品牌名称。

该桥接程序不保存任何药品或价格数据。它会在本地提供上游服务的工具列表,该列表与从实时端点捕获的内容完全一致;并将每次工具调用转发至上游,原样返回结果。

标注子集:19 个工具中的 18 个

实时捕获的内容包含 19 个工具。本次重建提供其中 18 个。有意省略了一个工具:

  • email_savings_card — 已省略。该工具会向调用方提供的任意地址发送电子邮件,这种对外发送操作不属于本服务的价格查询核心,因此根据项目的安全规则予以排除。它不会注册或转发,测试套件也会断言它既不存在于本地注册表中,也不存在于所提供的 MCP tools/list 中。

有一个相近的工具特意予以保留:

  • get_savings_card — 已保留。它会返回 FineRx 项目自己的免费折扣卡:FineRx 公开发放的所有卡片上印有相同的项目代码,并附有使用步骤。这是已公开的项目数据,不是用户的支付卡数据,也不会创建任何支付工具——它与周边的价格查询一样,是一项读取操作。

工具

  • compare_prices — 查询某种药品在美国各连锁药房的折扣卡价格,以及某个地点附近的价格。可选参数:drug、strength、form、quantity、zip、ndc、locale、channel、compare_to。
  • ui_prices — 查询在 FineRx 卡片内选定的包装规格和地点对应的相同价格信息。必需参数:slug。
  • find_nearby_pharmacies — 查询半径 30 英里内各连锁药房的门店;如果提供药品,还会返回折扣卡价格。所有参数均可选。
  • ui_nearby — 查询屏幕上所选包装规格附近的药房,由卡片本身调用。所有参数均可选。
  • get_transfer_steps — 查询如何将处方转至另一家连锁药房。所有参数均可选。
  • compare_basket — 一次查询多种药品的折扣卡价格,以及哪家连锁药房为整个药品列表提供了价格。必需参数:drugs。
  • ui_basket — 查询另一地点对应的相同药品组合,由卡片本身调用。必需参数:slugs。
  • open_price_finder — 在卡片内打开 FineRx 搜索。可选参数:query、locale。
  • ui_suggest — 查询与 FineRx 搜索中正在输入的内容匹配的药品。必需参数:q。
  • get_savings_card — FineRx 免费折扣卡:卡片代码、使用方法和保管方法。参见上方的子集说明。所有参数均可选。
  • search_drugs — 按名称查找药品(品牌名、通用名、拼写错误或其他文字体系),并获取其 slug。必需参数:query。
  • get_drug — 查询某种药品中有折扣卡价格的规格、剂型和包装大小。必需参数:slug。
  • get_dataset_info — 查询 FineRx 涵盖的内容:连锁药房、数据新鲜度、门店数量和条款。无需参数。
  • get_prescription_options — 查询获取处方药的途径,包括尚未持有处方的情况。所有参数均可选。
  • find_us_equivalent — 查询另一国家的某种药品在美国对应的药品,以及该药品在美国的折扣卡价格。必需参数:brand。
  • find_us_equivalents — 一次查询多种国外药品在美国的对应药品。必需参数:brands。
  • ui_equivalent — 查询在 FineRx 搜索中选定的一种国外品牌,由卡片本身调用。必需参数:brand_slug。
  • foreign_brands_for_drug — 查询一种美国药品在国外的名称。必需参数:slug。

配置

  • FINERX_MCP_URL(可选)——覆盖上游端点。默认值为 https://www.finerxfinder.com/mcp。(此覆盖钩子是本次重建中特别标注的自有内容。)
  • FINERX_API_KEY(可选)——设置后,每个上游请求都会携带 Authorization: Bearer <key> 标头。未设置时,不会发送身份验证标头。(此转发功能同样是特别标注的重建内容;捕获原始接口时未使用密钥。)
转发机制

首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26,clientInfo name medprice),然后发送 notifications/initialized 通知,接着发送携带调用方原样参数的 tools/call 请求。上游 通过 initialize 响应返回 Mcp-Session-Id 标头后, 该值会随会话的后续每个请求一起发送,并在进程运行期间复用。 响应可能是普通 JSON,也可能是服务器发送事件; 两种格式都会读取。

上游成功结果会原样传递,包括上游设置的任何 isError 标记。 失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的响应,或 无法完成的请求——会以 isError 结果返回,其 文本以 medprice error: 开头(此呈现方式是本次重建自行添加的标注)。

CLI

每个工具也可作为子命令使用,并接受一个 JSON 参数 字符串(无需参数的工具可省略):

npx @reneturcios/medprice search_drugs '{"query":"lisinopril"}'
npx @reneturcios/medprice compare_prices '{"drug":"lisinopril","zip":"94110"}'
npx @reneturcios/medprice compare_basket '{"drugs":["lisinopril","metformin"]}'
npx @reneturcios/medprice find_us_equivalent '{"brand":"No-Spa"}'
npx @reneturcios/medprice get_dataset_info
npx @reneturcios/medprice --version

退出代码:成功时为 0,结果为 isError 时为 1,用法错误时为 2。

MCP 服务

npx -y @reneturcios/medprice mcp

MCP 客户端配置:

{
  "mcpServers": {
    "medprice": {
      "command": "npx",
      "args": ["-y", "@reneturcios/medprice", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/medprice
docker run --rm ghcr.io/cloudcorprecords/medprice --version

容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他 参数会照常传递给 CLI。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全通过桩接 JSON-RPC 上游运行,不会进行实时网络调用。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。