关于 ClinicMarketIQ Public Data
ClinicMarketIQ Public Data 是用于发现美国医疗数据集的只读、无状态 MCP 服务。它提供目录、机器可读元数据、JSON Schema 和不可变下载信息,不代理数据文件。
主要功能
- 01分页浏览公开数据集目录
- 02按标识符、名称或发布者搜索
- 03读取数据集元数据与 JSON Schema
- 04获取下载链接、格式和校验值
- 05核对 SHA-256 摘要
适用场景
- 01查找公开医疗数据集
- 02检查数据集字段结构
- 03获取不可变文件的下载地址和大小
- 04将提供的 SHA-256 与元数据对照
MCP 相关
通过 Streamable HTTP 在 `/mcp` 提供六个只读工具,用于发现公开数据集、读取元数据和架构、获取直接下载链接及核对声明的 SHA-256。服务不获取或代理数据集文件。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcpclaude mcp add --transport http evgeniy-yudin-clinicmarketiq-public-data https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp{"mcpServers":{"evgeniy-yudin-clinicmarketiq-public-data":{"type":"http","url":"https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"evgeniy-yudin-clinicmarketiq-public-data":{"type":"http","url":"https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"evgeniy-yudin-clinicmarketiq-public-data":{"type":"http","url":"https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp"}}}{"mcpServers":{"evgeniy-yudin-clinicmarketiq-public-data":{"serverUrl":"https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | |
| offset | integer | 否 |
详细介绍
ClinicMarketIQ 公共 MCP Worker
用于发现 ClinicMarketIQ 公共数据集的极简无状态、只读远程 MCP 服务。它在 /mcp 提供 Streamable HTTP,并在 /healthz 提供仅反映进程状态的健康检查响应。
此目录特意设计为自包含。经过审核的构建已部署在 https://clinicmarketiq-public-mcp.rotgar-fizkl.workers.dev/mcp;规范设置页面为 https://clinicmarketiq.com/mcp/。外部 MCP Registry 的发布状态由 server.json 跟踪。
工具
| 工具 | 用途 |
|---|---|
list_datasets | 分页浏览简明的公共目录摘要。 |
search_datasets | 搜索数据集 ID、slug、名称和发布方。 |
get_dataset_metadata | 获取数据集的规范公共机器索引。 |
get_schema | 跟进不可变清单并返回其中声明的 JSON 架构。 |
get_download_url | 返回直接的不可变制品 URL、大小、格式和 SHA-256 值;绝不代理文件字节。 |
verify_checksum | 将调用方提供的 SHA-256 值与规范元数据中声明的摘要进行比较。它不会重新下载并计算大型制品的哈希值。 |
Worker 会从 https://clinicmarketiq.com 代理小型规范 JSON 文档,而不是将发行版元数据复制到服务包中。所有派生 URL 都被限制在该确切来源和允许列表中的公共路径内。MCP 服务绝不会获取数据集字节。
本地验证
需要 Node.js 22.18+ 或 24.11+(固定的 Vitest 工具链不支持奇数版本的 Node)。
npm install
npm run types
npm run check
npm test
npm run dry-run
使用 npm run dev 在本地启动,然后将 MCP 客户端或 MCP Inspector 连接到 http://localhost:8787/mcp。npm run dry-run 会打包并验证 Worker,但不会部署。
安全和运维边界
- 全部六个工具都标注为只读、非破坏性且幂等。
- 服务使用 Cloudflare 的无状态
createMcpHandler;没有 Durable Object、KV、D1、会话存储或具备写入能力的绑定。 - 上游请求使用固定来源、拒绝重定向、要求 JSON,超时为 8 秒,并将响应流式写入有界缓冲区。目录、索引、清单和架构文档分别设有大小上限。
- 返回或跟进目录路由、发行版 ID、数据集 ID、slug、清单 URL、架构名称、下载 URL、编码和 SHA-256 值之前,都会进行验证。
- MCP 请求正文会流式写入有界的 64 KiB 缓冲区,超过该限制的请求将被拒绝,包括没有
Content-Length的分块请求。匹配的 Cloudflare WAF 正文大小规则应在消耗 Worker CPU 之前拦截滥用请求。 - MCP 处理器会验证浏览器
Origin和端点Host。添加自定义域名前,请配置精确的allowedHostnames、allowedOriginHostnames和 CORS 来源;对于公开且无需身份验证的路由,不要使用通配符来源绕过规则。 - 无需身份验证,因为所有公开的操作都只读取已有的公共元数据。如果工具之后要公开非公共数据或高成本计算功能,应在发布前添加 OAuth/Cloudflare Access 和逐工具授权。
- 不记录请求正文、数据集查询、制品 URL 或身份验证令牌。结构化错误日志仅包含方法、路径和长度受限的错误消息。
速率限制
此 Worker 是无状态的,因此不会假装能在隔离区内存中可靠地维护客户端计数器。在对外注册前,为精确的 /mcp 路由添加 Cloudflare 速率限制规则(例如,存在 OAuth 时按经过验证的客户端身份限制,否则按 IP 地址并采用保守的突发量/时间窗口限制),并添加 WAF 规则以拦截格式错误或过大的请求。在提高限制前,监控 429 比率、上游错误率、CPU 时间和子请求量。
公开元数据源也应保留自身的缓存和滥用防护。不要将 get_download_url 变成字节代理:客户端应直接从 ClinicMarketIQ 下载不可变制品,以确保 CDN 控制措施和校验和仍具有权威性。
部署和注册门槛
在更改、重新部署或对外注册此服务的新版本前:
- 在干净的代码检出中重新运行
npm run types、npm run check、npm test和npm run dry-run。 - 确认当前的
https://clinicmarketiq.com/catalog.json以及至少一个数据集机器索引、不可变清单、架构和下载 URL 均返回预期的内容类型和发布 ID。 - 选定最终的 Worker/自定义域名主机名,并配置精确的 MCP Host/Origin 策略。
- 添加路由级 WAF 和速率限制规则,然后测试 413/429 行为。
- 进行独立的 YMYL/隐私/权利审查。此服务是发现基础设施,不得暗示元数据属于临床建议、涵盖所有付款方,或允许重复使用第三方数据。
- 部署到非生产环境,使用 MCP Inspector 验证,然后再决定是否向外部客户端注册此端点。
参考资料
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。