Token导航 LogoToken导航TokenDH.com
Artpark Datasets MCP logo
运维云端stdio官方级别未说明来源级核验

Artpark Datasets MCP

MCP Server

ARTPARK公共健康数据集MCP服务器,通过AI助手提供对8个公共卫生数据集的访问,包括登革热流行病学、牲畜普查和FMD疫苗接种数据。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude云端部署Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

artvandelay

提供方

artvandelay

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python artpark_server.py

详细介绍

ARTPARK公共数据MCP服务器

Devin供电 Deepwiki文档

MCP(模型上下文协议)服务器,用于通过人工智能助手访问ARTPARK的公共卫生数据集。基于FastMCP 3.0构建,遵循以下架构 esankhiyiki mcp.

8个数据集 涵盖登革热流行病学、牲畜普查、口蹄疫疫苗接种和监测,以及来自 DSIH艺术公园.

______________________________________________________________________

快速开始

# Clone with submodules
git clone --recurse-submodules 
cd onehealth-artpark-mcp

# Create environment and install
uv venv .venv && source .venv/bin/activate
uv pip install -r requirements.txt

# Run
python artpark_server.py
# → MCP:    http://localhost:8000/mcp
# → Health: http://localhost:8000/health

或者使用Make:

make run          # Start MCP server
make test         # Run 40 tests (~2s)
make check        # Verify datasets + tools load
make docker-up    # Start server + Jaeger tracing
make help         # Show all commands

______________________________________________________________________

数据集

ID名称类别
0015卡纳塔克邦登革热每日总结(2017-2024)流行病学761141
0034地方政府目录区域ID地理空间1474231
0041第20次牲畜普查(2019年)普查每张表30+4(州一级+11)
0055口蹄疫NADCP疫苗接种进展(第1-6轮)流行病学930-588/轮6
0059口蹄疫NADCP疫苗接种时间表(第3-6轮)流行病学各不相同4
0086FMD全国疫苗接种数据流行病学各不相同1
0087FMD全国血清监测数据流行病学2381
0089FMD全国血清监测数据流行病学各不相同1

______________________________________________________________________

MCP工具(4步工作流程)

1_know_about_artpark_data  →  2_get_tables  →  3_get_metadata  →  4_get_data
步骤工具说明
11_know_about_artpark_data()所有8个数据集的概述。从这里开始。
22_get_tables(dataset_id)列出数据集中的表(CSV)
33_get_metadata(dataset_id, table_name)列模式+可过滤值(步骤4之前为必填项)
44_get_data(dataset_id, table_name, filters)使用可选筛选器获取数据

重要提示: 工具必须按顺序调用。跳过 3_get_metadata 意味着您将不知道有效的列名或筛选值。

______________________________________________________________________

AI能用它做什么?

examples/Complex/ 文件夹包含五项调查 完全由人工智能执行 使用这个MCP服务器——没有人类分析师,没有Jupyter笔记本,也没有编写代码。每个都展示了一种超越数据检索的能力:

调查人工智能做了什么关键发现
一个健康假说结合17个地区的登革热+牲畜数据,计算斯皮尔曼相关性牲畜不能预测登革热(r=0.01)
新冠肺炎损害法医鉴定比较19个州新冠肺炎前后的免疫力,按车祸严重程度排序全国平均32.8人的免疫力下降
大海捞针扫描238行4个异常类别,加冕获胜者Nagaland 2021:疫苗接种 *减半* 免疫力
神话揭穿者使用2个数据集将所有35个州分为绿色/黄色/红色只有4个州(11%)显示出明显的成功
FMD风险模型构建了一个由三个部分组成的评分公式,对19个州进行了排名美联社、比哈尔邦、古吉拉特邦的风险最高
阅读 完整系列README 因为叙事弧线连接了这五个人。

我们如何生成这些报告

此仓库中的每个示例都是通过让Cursor的AI代理访问此MCP服务器并提出有趣的问题而生成的。没有Jupyter笔记本。没有Python脚本。没有人为数据争论。人工智能自主使用4步MCP工作流程,提取真实数据,在上下文中进行分析,并编写降价报告。

以下是如何重现这一点,或者创建自己的调查:

步骤1:启动MCP服务器

make run
# or: python artpark_server.py

步骤2:将Cursor连接到MCP服务器

创建(或验证) .cursor/mcp.json 在项目根目录中:

{
  "mcpServers": {
    "artpark": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

重新启动Cursor,使其拾取MCP配置。你应该看看 artpark 在代理聊天中的MCP工具下列出。

第三步:向AI提问

打开Cursor的代理聊天,问一些有趣的问题。简单的例子(01-04)来自以下单个问题:

  • *“印度的口蹄疫疫苗接种计划有效吗?”* → 跨数据集推理
  • *“告诉我卡纳塔克邦口蹄疫疫苗接种之旅的故事。”* → 时间叙事
  • *“不同牲畜类型的口蹄疫有什么令人惊讶的差异吗?”* → 隐藏模式
  • *“卡纳塔克邦应该在哪里优先接种下一次口蹄疫疫苗?”* → 政策情报

第四步:扩大规模——要求进行雄心勃勃的调查

复杂的调查 是在多步骤对话中生成的:

  1. 头脑风暴: 我们问: *“想想一些真正雄心勃勃的想法——我们能建立一个模型吗?大海捞针吗?揭穿一个普遍的神话吗?”* AI生成 5调查思路 详细说明。
  1. 执行: 我们说: *“构建它们中的每一个。您将与MCP服务器交互,并报告您发现的内容。”* 然后,AI自主地:

- 调用MCP工具从多个数据集中提取数据 - 交叉引用的数据集(例如,将17个地区的登革热+牲畜数据合并) - 计算统计数据(斯皮尔曼相关性、免疫崩溃增量、风险评分) - 撰写完整的降价报告,包括数据表、方法和结论

  1. 优化: 我们提示 *“继续”* 和 *“完善它”* 几次——每次调查都需要多次特工轮换才能完成分析并完善报告。
  1. 验证: 我们要求人工智能根据实时MCP数据抽查自己的数字,以捕捉任何幻觉数字。

第五步:尝试自己的问题

一些让你开始的想法:

  • *“卡纳塔克邦哪个地区的登革热与医疗保健比率最差?”*
  • *“将口蹄疫疫苗接种计划与实际进展进行比较——哪些轮次落后了?”*
  • *“找到尽管接种了疫苗,但自然口蹄疫感染仍在上升的州。”*
  • *“为卡纳塔克邦地区建立一个综合健康风险指数。”*

AI将遵循 1_know → 2_get_tables → 3_get_metadata → 4_get_data 自动工作流。响应会有所不同(LLM是非确定性的),但跨数据集的推理和发现是可重复的。

提示: 对于长期调查,告诉AI *“你可能需要长跑——不要在一个电话里跑完,可以要求更多时间。”* 这让它能够自己调整节奏,而不是匆匆忙忙地进行肤浅的分析。

______________________________________________________________________

快速示例

卡纳塔克邦登革热疫情分析

“班加罗尔市区报告了多少登革热病例?”
# Step 1: Find the right dataset
overview = await client.call_tool("1_know_about_artpark_data", {})
# → Dataset 0015: "Karnataka Dengue Daily Summary (2017-2024)"

# Step 2: See what tables are available
tables = await client.call_tool("2_get_tables", {
    "dataset_id": "0015",
    "user_query": "dengue cases by district"
})
# → Table: ka-dengue-daily-summary (28 columns)

# Step 3: Get column schema and filter values
meta = await client.call_tool("3_get_metadata", {
    "dataset_id": "0015",
    "table_name": "ka-dengue-daily-summary"
})
# → 76,114 rows, columns include daily.suspected, daily.positive.total, daily.deaths

# Step 4: Fetch Bengaluru data
data = await client.call_tool("4_get_data", {
    "dataset_id": "0015",
    "table_name": "ka-dengue-daily-summary",
    "filters": {"location.admin2.name": "Bengaluru Urban"},
    "limit": 50
})
# → 4,942 records, positive cases: min=0, max=1070, mean=7.49

2.各区牲畜种群比较

“卡纳塔克邦哪些地区的牛最多?”
data = await client.call_tool("4_get_data", {
    "dataset_id": "0041",
    "table_name": "ka-district-livestock-pop-2019",
    "limit": 30
})
# Results (top 5 by cattle population):
#   BELAGAVI:   cattle=549,540  buffalo=844,171  sheep=757,679
#   HASSAN:     cattle=548,185  buffalo=107,971  sheep=199,387
#   SHIVAMOGGA: cattle=518,653  buffalo=120,563  sheep=42,526
#   MYSURU:     cattle=492,598  buffalo=21,682   sheep=203,463
#   TUMAKURU:   cattle=431,251  buffalo=142,047  sheep=1,290,008

3.FMD疫苗疗效跟踪

“多年来,卡纳塔克邦的口蹄疫血清监测发生了怎样的变化?”
data = await client.call_tool("4_get_data", {
    "dataset_id": "0087",
    "table_name": "seromonitoring",
    "filters": {"state.name": "KARNATAKA"},
    "limit": 20
})
# Results (antibody levels over time):
#   2011: PostVac A%=15.0, PostVac O%=56.0  (FMDCP)
#   2012: PostVac A%=27.0, PostVac O%=67.0  (FMDCP)
#   2013: PostVac A%=78.7, PostVac O%=62.1  (FMDCP)
#   → Shows improving seroconversion rates for type A

4.行政区域查找

“查找印度行政单位的LGD代码”
data = await client.call_tool("4_get_data", {
    "dataset_id": "0034",
    "table_name": "regionids",
    "filters": {"regionName": "PUNE"},
    "limit": 5
})
# → regionID: district_490, regionName: PUNE, parentID: state_27
# 147,423 total regions (states, districts, subdistricts, villages, ULBs)

5.口蹄疫疫苗接种进展

“向我展示卡纳塔克邦最新一轮口蹄疫疫苗接种进展”
data = await client.call_tool("4_get_data", {
    "dataset_id": "0055",
    "table_name": "round6",
    "filters": {"district.name": "Bengaluru Urban"},
    "limit": 10
})
# → 588 daily progress records for Round 6
# Sample: date=2024-11-28, cattle_vaccinated=9, buffalo_vaccinated=0

______________________________________________________________________

从代码连接

import asyncio
from fastmcp import Client

async def main():
    async with Client("http://localhost:8000/mcp") as client:
        # Step 1: Discover datasets
        overview = await client.call_tool("1_know_about_artpark_data", {})
        print(overview.content[0].text)

        # Step 2-4: Follow the workflow...

asyncio.run(main())

从克劳德桌面连接

添加到您的Claude Desktop MCP配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "artpark": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

然后问克劳德: *“卡纳塔克邦受登革热影响最大的地区是什么?”*

从游标连接

增添 .cursor/mcp.json:

{
  "mcpServers": {
    "artpark-health": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

______________________________________________________________________

部署

码头工人

docker build -t artpark-mcp .
docker run -d -p 8000:8000 --name artpark-server artpark-mcp

Docker Compose(带Jaeger跟踪)

docker-compose up -d
# Server: http://localhost:8000/mcp
# Jaeger UI: http://localhost:16686

______________________________________________________________________

建筑

artpark_server.py          # FastMCP server — 4 tools, LLM-optimized docstrings
artpark/
  client.py                # Local data reader — reads CSV + metadata.yaml
observability/
  telemetry.py             # OpenTelemetry middleware (from esankhyiki-mcp)
publicdata/                # Cloned data repo (dsih-artpark/publicdata)
  data/
    0015/                  # Each dataset: CSV files + metadata.yaml
    0034/
    0041/
    ...

设计原则(继承自esankhiyiki mcp)

原理实施
顺序工作流编号工具前缀(1_, 2_, 3_, 4_)执行命令
LLM优化的文档字符串RULES (MUST follow exactly) 块防止产生幻觉的查询
元数据.yaml作为真理的来源来自YAML的列模式,不是硬编码的
响应指南_next_step_retry_hint 钥匙控制LLM
不区分大小写的过滤“Mysuru”与数据中的“Mysuru”匹配

______________________________________________________________________

学分

目录标签

目录标签

PythonClaude云端部署公共健康数据本地部署AI辅助分析流行病学研究疫苗接种数据地理空间数据

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP