关于 medprice
medprice 是供用户比较美国处方药价格和查询药品对应名称的本地桥接工具。它将价格、药房和药品查询转发给 FineRx 托管服务,但不提供发送邮件的工具。
主要功能
- 01比较不同药房连锁的药品价格
- 02按地点查找附近药房
- 03批量比较多种药品价格
- 04搜索药品及可用包装规格
- 05查询外国品牌在美国的对应药品
- 06获取折扣卡和处方相关信息
适用场景
- 01比较 ZIP code 附近的药品价格
- 02查找附近可配药的门店
- 03同时查看多种药品的价格
- 04查询外国药品在美国的名称
MCP 相关
向 MCP 客户端提供 FineRx 的部分工具,并将调用转发到 FineRx 托管的 MCP 服务。不会公开 email_savings_card 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
18收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ndc | any | 否 | 药品的 NDC(国家药品代码);旧版调用方可将其与数量一起传入。 |
| zip | any | 否 | 用于查找附近价格和药店的 5 位美国 ZIP 邮编;仅在用户提供时传入。 |
| drug | any | 否 | 药品:按原样输入的名称,或来自 search_drugs 的 slug。 |
| form | any | 否 | 药品的剂型(例如 "tablet")。 |
| locale | any | 否 | 回答所用的语言代码(省略时使用宿主自身的语言代码)。 |
| channel | any | 否 | 可选的渠道标签,用于标识请求的来源;除非调用方宿主提供,否则请省略。 |
| quantity | any | 否 | 要查询价格的数量(包装规格/单位数)。 |
| strength | any | 否 | 药品的规格(例如 "10 mg")。 |
| compare_to | any | 否 | 用户为此包装提及的美元金额(其保险自付额、当前支付金额或希望低于的价格);回答随后会说明有多少连锁药店的价格低于该金额。 |
详细介绍
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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。