关于 @altronis/sgdata mcp
@altronis/sgdata-mcp 是用于查询新加坡政府数据集的 MCP 服务,面向需要结构化公共数据的分析人员和 AI 客户端。它结合精选数据集、实时数据流、跨数据集比较、可视化、自然语言路由和命令行模式。
主要功能
- 01查询精选及任意 data.gov.sg 数据集
- 02检索企业、住房、经济和公共服务数据
- 03获取实时数据流与 SingStat 表格
- 04比较数据集并可视化时间序列
- 05将自然语言问题路由至工具
- 06无需 MCP 客户端即可使用命令行
适用场景
- 01查询企业信息及成立趋势
- 02跟踪 HDB 转售价格或 COE 溢价
- 03查看天气、空气质量或停车位实时情况
- 04比较经济指标与犯罪数据
MCP 相关
通过本地 stdio 进程向兼容 MCP 的客户端提供新加坡政府数据工具。还提供工具目录和分发辅助工具,便于客户端减少暴露的工具 schema。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
@altronis/sgdata-mcp
新加坡政府数据 MCP 服务。87 个工具——24 个精选数据集 + 7 个 SingStat 表格 + 6 个实时数据源、CLI 模式、数据可视化、跨数据集查询、自然语言查询。 覆盖 ACRA + HDB + URA + COE + CPI + GDP + 就业 + IRAS + MAS 外汇 + MOE + ECDA + 旅游 + 零售 + 人口 + 犯罪 + 健康 + 能源 + 小贩 + 空气质量 + 天气 + 停车场 + 实时登革热数据。 无需 API 密钥。可在任何支持 MCP 的环境中运行。完整介绍:https://altronis.sg/blog/sgdata-mcp
@altronis/sgdata-mcp 是一个 MCP 服务,可让 Claude、Cursor、Continue 或其他兼容 MCP 的客户端直接查询 data.gov.sg 上的新加坡政府开放数据——包括企业注册、房地产、劳动力、价格、公共服务、资本流动、犯罪、健康、人口统计、能源等。
它以本地 stdio 进程的形式在你的计算机上运行。无需托管后端,也无需 API 密钥。小型精选数据集会缓存在本地 ~/.sgdata-mcp/sgdata.sqlite;大型数据集(ACRA、HDB 转售数据)和实时数据源则在服务端查询 data.gov.sg,因此不会将整个数据集下载到你的磁盘上。
**v0.5.5:**为上下文较小的客户端新增两个辅助工具。sg_tool_catalog 会列出工具(可按关键词筛选以获取其输入架构),sg_dispatch 则可按名称调用任意工具,因此客户端只需公开这两个工具,而不必公开全部 87 个工具架构。分发的调用会按照目标工具的架构进行校验,与直接调用相同。
v0.5.0:新增 13 个工具 + 占用空间更小。实时数据源——sg_psi(空气质量)、sg_weather_forecast、sg_air_temperature、sg_rainfall、sg_carpark_availability 和 sg_dengue_clusters(NEA 实时集群数据——当前登革热数据,而非已冻结的每周公告数据源)。SingStat 表格——sg_household_income、sg_wages、sg_deaths、sg_marriages、sg_divorces、sg_trade、sg_labour_force。sg_search_datasets 现在会实际执行搜索(data.gov.sg 的 q 参数在上游不起作用,因此会在本地筛选缓存的目录)。ACRA + HDB 转售工具改为在服务端查询(datastore_search),不再导入完整的 56 MB / 23 MB 数据集——不再需要数 GB 的本地缓存。外汇工具已修复(上游元数据端点返回 404;现在通过 datastore_search 读取实时数据)。
⚠️
sg_acra_formations_by_ssic是一个耗时较长的工具。 ACRA 的 SSIC+年份筛选无法在服务端执行,因此它会遍历 27 个分片并在遇到限流时退避——预计耗时约 1–3 分钟;对于较早的年份,计数是下限(bounded: true)。如需快速获取按 SSIC 分类的企业成立数量,请改用 SingStat 工具sg_formations_history/sg_formations_compare/sg_formations_monthly。
v0.4.1:sg_dataset_query 不再因超大型数据集而挂起(根据数据集大小限制服务端分页,使用 datastore_search + 60 秒导入保护);sg_fx_rate / sg_fx_history 现在接受 ISO 货币代码(USD、GBP、JPY、EUR 等);sg_tourism_latest 现在会输出 data_freshness(其上游数据仅更新到 2014 年);如果 _history 工具没有匹配结果,现在会返回 available 标签列表,方便调用方自行修正查询。
**v0.4.0 亮点:**每个 _latest 工具都会输出 data_freshness 元数据块,包含 last_period、last_record_date、age_days,以及 fresh / ok / stale / frozen 分类级别,让 Agent 能检测上游 data.gov.sg 数据源是否已停止更新。修复了 sg_disease_latest 的数据过时却未提示的问题(MOH 于流行病学周 2022-W52 左右停止通过 data.gov.sg 发布《每周传染病公告》)。
v0.3.2: 通过 SingStat Table Builder 提供月度企业成立、停业和净增长工具。按月跟踪任意 SSIC 行业的企业成立与停业情况。共 74 个工具。
v0.3.1: 通过 SingStat Table Builder 按行业提供年度企业成立数量。
v0.3.0: 新增 8 个数据集、CLI 模式、ASCII 迷你趋势图可视化、跨数据集关联查询和自然语言查询路由。
数据时效性
@altronis/sgdata-mcp 的数据时效性取决于 data.gov.sg。部分数据集每周更新(COE 竞标、CPI),部分每月更新(失业率、CPI 子项),部分每季度更新(URA 私人房产),还有部分数据集实际上已停止更新。从 v0.4.0 开始,每个 _latest 工具都会返回一个 data_freshness 区块,方便你通过程序检测数据滞后:
{
"datasetId": "d_ca168b2cb763640d72c4600a68f9909e",
"epi_week": "2022-W52",
"cases": [...],
"data_freshness": {
"last_period": "2022-W52",
"last_record_date": "2023-01-01",
"age_days": 1234,
"level": "frozen",
"warning": "Upstream dataset appears frozen — latest record is 2022-W52..."
}
}
已知停止更新的数据集(截至 v0.4.1):
| 工具 | 上游数据集 | 最后更新 | 建议操作 |
|---|---|---|---|
sg_disease_latest、sg_disease_trend、sg_disease_list | MOH 每周传染病公报 | 2022-W52 | 对照 moh.gov.sg 每周公报 PDF 核查。欢迎提交 PR,替换为仍在更新的数据源。 |
sg_tourism_latest、sg_tourism_history | STB 年度旅游收入 | 2014 | 对照 stb.gov.sg / SingStat 核查较新的旅游收入数据。欢迎提交 PR。 |
如果你发现其他上游数据源已停止更新,请提交 issue——我们会将其加入此表,并在工具说明中显示警告。
你可以向 Claude 提出的问题
将此服务添加到 Claude Desktop 后,你就能立即提出诸如此类的问题:
- “查找 2025 年在新加坡注册成立的所有 AI/ML 公司(SSIC 62019)。”
- “过去 6 个月,榜鹅的 HDB 四房式组屋转售价格中位数是多少?”
- “最新的 COE A 类溢价是多少?过去 12 个月的趋势如何?”
- “本周报告了多少宗登革热病例?”
- “新加坡的失业率是多少?显示一下趋势。”
- “比较过去 5 年的 GDP 增长率和犯罪率。”
- “2024 年记录了多少宗诈骗案?”
- “新加坡的人口是多少?增长速度有多快?”
- “新加坡上个月发了多少电?”
- “出生率是否在下降?显示过去 12 个月的数据。”
- “新加坡各组成部分的旅游收入是多少?”
- “查找淡滨尼附近的小贩中心。”
- “哪些 CPI 类别的涨幅高于总体通胀?”
- “通过 UEN 196800306E 查询 DBS Bank。”
你的模型会选择合适的工具、填写筛选条件并返回结构化数据行。你无需编写 URL。
快速开始
Claude Desktop
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"sg-data": {
"command": "npx",
"args": ["-y", "@altronis/sgdata-mcp"]
}
}
}
重启 Claude Desktop。MCP 工具菜单中会显示 74 个 sg_* 工具。
Cursor
添加到 ~/.cursor/mcp.json:
{
"mcpServers": {
"sg-data": {
"command": "npx",
"args": ["-y", "@altronis/sgdata-mcp"]
}
}
}
Claude Code
claude mcp add sg-data -- npx -y @altronis/sgdata-mcp
CLI 模式(v0.3.0 新增)
直接在终端查询新加坡数据——无需 MCP 客户端:
# Natural language query
npx @altronis/sgdata-mcp query "What is Singapore's unemployment rate?"
npx @altronis/sgdata-mcp query "How many dengue cases this week?"
npx @altronis/sgdata-mcp query "Latest COE prices"
# Call a specific tool
npx @altronis/sgdata-mcp tool sg_crime_compare '{"year":"2024"}'
npx @altronis/sgdata-mcp tool sg_hawker_search '{"query":"bedok"}'
# List available tools and datasets
npx @altronis/sgdata-mcp list
npx @altronis/sgdata-mcp datasets
独立运行(快速试用)
# Run the MCP server directly
npx -y @altronis/sgdata-mcp
# Smoke-test via stdio
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| npx -y @altronis/sgdata-mcp
包含内容
数据集(24 个)
| # | 数据集 | 机构 | 工具 |
|---|---|---|---|
| 1 | ACRA 企业实体(约 200 万个以上) | ACRA | 3 |
| 2 | HDB 转售组屋价格(2017 年起) | HDB | 2 |
| 3 | COE 竞标结果 | LTA | 3 |
| 4 | MOE 学校 | MOE | 3 |
| 5 | HDB 停车场信息 | HDB | 3 |
| 6 | GDP 同比增长率(季度) | SingStat | 3 |
| 7 | 消费者价格指数(月度) | SingStat | 3 |
| 8 | MOM 月度总收入中位数 | MOM | 2 |
| 9 | 按行业划分的就业情况(年度) | SingStat | 3 |
| 10 | URA 私人住宅交易 | URA | 3 |
| 11 | 国际游客到访人数 | STB | 3 |
| 12 | 零售销售指数(月度) | SingStat | 3 |
| 13 | MAS 汇率(月平均) | MAS | 3 |
| 14 | IRAS 税收(年度) | IRAS | 3 |
| 15 | ECDA 托儿中心和幼儿园 | ECDA | 3 |
| 16 | 失业率(季度) | MOM | 2 |
| 17 | 人口指标(年度) | SingStat | 2 |
| 18 | 传染病病例(每周) | MOH | 3 |
| 19 | 发电量(月度) | EMA | 2 |
| 20 | 按性别/种族划分的活产数(月度) | SingStat | 2 |
| 21 | 记录在案的犯罪案件(年度) | SPF | 3 |
| 22 | 旅游收入(年度) | STB | 2 |
| 23 | 政府熟食中心 | NEA | 2 |
| 24 | 企业实体的设立与注销 | ACRA/DOS | 6 |
此外还有 3 个通用备用工具、1 个可视化工具、2 个跨数据集工具和 1 个自然语言查询工具:共 74 个工具。v0.5.0 中的 6 个实时数据流和 7 个 SingStat 表格使数据工具总数达到 87 个,另外还有 v0.5.5 中的 2 个辅助工具。
v0.3.0 新增内容
数据可视化 — sg_visualize
根据任意时间序列生成 ASCII 迷你趋势图和摘要统计信息。 返回迷你趋势图、最小值/最大值/平均值/最新值、周期环比变化,以及可供前端渲染的图表 JSON。
SG Unemployment Rate (SA): ▁█████▄▄████
Latest: 2 % | Change: +0 (+0%) | Range: 1.8–2 | Mean: 1.97
跨数据集查询 — sg_cross_dataset
并排比较任意两个数据集在一段时间内的数据。自动对齐 不同的时间粒度(月度、季度、年度):
{
"dataset_a": "cpi_monthly",
"dataset_b": "retail_sales",
"limit": 5
}
返回对齐后的行,其中包含两个数据集的值,可用于相关性分析。
自然语言查询 — sg_ask
用通俗英语提问 — 该工具会自动将问题路由到合适的数据集:
"What is Singapore's unemployment rate?" → sg_unemployment_latest
"How many dengue cases?" → sg_disease_latest
"COE prices" → sg_coe_latest
"Crime statistics" → sg_crime_latest
CLI 模式 — 无需 MCP 客户端
直接从终端查询数据:
sgdata-cli query "Singapore population growth"
sgdata-cli tool sg_crime_compare '{"year":"2024"}'
sgdata-cli datasets
工具(87 个 + 2 个辅助工具)
下表列出了其中 74 个工具;v0.5.0 新增的 13 个工具列在最前面。
元工具
| 工具 | 描述 |
|---|---|
sg_tool_catalog | 列出工具及其描述;按关键词筛选以获取其输入架构 |
sg_dispatch | 通过名称调用任意工具,并传入 JSON 参数对象;参数会根据该工具的架构进行校验 |
sg_ask | 自然语言查询 — 用通俗英语询问有关新加坡数据的任何问题 |
sg_visualize | 根据任意数值序列生成 ASCII 迷你趋势图、摘要统计信息和可供绘图表的 JSON |
sg_cross_dataset | 通过自动对齐周期,在一段时间内比较两个数据集 |
sg_list_datasets | 列出全部 24 个精选数据集及其 ID、名称和机构 |
通用工具 — 适用于 data.gov.sg 上的任意数据
| 工具 | 描述 |
|---|---|
sg_search_datasets | 在 data.gov.sg 的所有数据集中进行全文搜索 |
sg_dataset_schema | 获取任意数据集 ID 的列标签、机构和格式 |
sg_dataset_query | 使用筛选条件查询任意数据集,并自动下载和缓存数据 |
精选数据集工具(67)
ACRA(3):sg_acra_search_entities、sg_acra_get_entity、sg_acra_formations_by_ssic
HDB 转售(2):sg_hdb_resale_search、sg_hdb_resale_stats
COE(3):sg_coe_latest、sg_coe_history、sg_coe_demand_supply
MOE 学校(3):sg_moe_search_schools、sg_moe_school_by_name、sg_moe_schools_near
HDB 停车场(3):sg_hdb_carpark_lookup、sg_hdb_carparks_by_address、sg_hdb_carparks_by_type
GDP(3):sg_gdp_latest、sg_gdp_history、sg_gdp_industry_compare
CPI(3):sg_cpi_latest、sg_cpi_history、sg_cpi_yoy
收入(2):sg_median_income_lookup、sg_median_income_history
就业(3):sg_employment_by_sector、sg_employment_sector_history、sg_employment_growth
URA 房产(3):sg_ura_private_txn_latest、sg_ura_private_txn_history、sg_ura_new_sale_pipeline
访客入境人数(3):sg_visitors_latest、sg_visitors_history、sg_visitors_top_sources
零售销售额(3):sg_retail_sales_latest、sg_retail_sales_history、sg_retail_sales_yoy
MAS 外汇(3):sg_fx_rate、sg_fx_history、sg_fx_basket
IRAS 税收(3):sg_iras_collection、sg_iras_collection_history、sg_iras_tax_mix
ECDA 托儿服务(3):sg_ecda_search_centres、sg_ecda_centres_near、sg_ecda_vacancy_summary
失业(2):sg_unemployment_latest、sg_unemployment_history
人口(2):sg_population_latest、sg_population_history
疾病/健康(3):sg_disease_latest、sg_disease_trend、sg_disease_list
电力(2):sg_electricity_latest、sg_electricity_history
出生(2):sg_births_latest、sg_births_history
犯罪(3):sg_crime_latest、sg_crime_history、sg_crime_compare
旅游(2):sg_tourism_latest、sg_tourism_history
小贩中心(2):sg_hawker_search、sg_hawker_stats
企业注册与注销(6):sg_formations_latest、sg_formations_history、sg_formations_compare、sg_formations_monthly、sg_cessations_monthly、sg_net_formations
架构
┌─────────────────┐ spawn ┌──────────────────────┐
│ Claude Desktop │ ──────────▶ │ sgdata-mcp (node) │
│ /Cursor/Code │ ◀── stdio ─▶│ runs on your machine │
└─────────────────┘ └──────┬───────────────┘
│ HTTPS (first fetch only)
▼
api.data.gov.sg/v2/...
│
▼
~/.sgdata-mcp/sgdata.sqlite
(shared local SQLite cache)
缓存策略
- 位置。 默认位于
~/.sgdata-mcp/sgdata.sqlite。 - 自定义路径。 设置
SGDATA_MCP_CACHE_DIR=/custom/path。 - 刷新频率。 按数据集而异:ECDA 每日刷新;HDB/COE/疾病每周刷新; ACRA/CPI/GDP/外汇/零售/访客/出生/电力每月刷新;MOE/URA/就业/失业每季度刷新; IRAS/收入/犯罪/人口/旅游每年刷新。
- 清除。
rm ~/.sgdata-mcp/sgdata.sqlite— 下次查询时会重新生成。 - 磁盘占用。 包含 ACRA 时约为 480 MB,不包含时不足 20 MB。
对比
@altronis/sgdata-mcp | sgdata-mcp(作者:vdineshk) | |
|---|---|---|
| 工具 | 74 | 5 |
| 覆盖范围 | 企业注册、房地产、价格、劳动力、旅游、外汇、税收、公共服务、犯罪、健康、人口统计、能源 | 实时天气、交通、停车场可用情况 |
| CLI 模式 | 是 | 否 |
| 数据可视化 | 是(迷你图 + 可用于绘图的 JSON) | 否 |
| 跨数据集查询 | 是 | 否 |
| 自然语言查询路由 | 是 | 否 |
| 缓存 | 是(SQLite) | 否 |
| API 密钥 | 无 | 无 |
两个软件包相辅相成——同时安装即可全面了解。
免责声明
此工具会从 data.gov.sg 获取并缓存数据。 我们会谨慎处理数据,以确保数据完整性,但在依据数据做出决策前,你应自行核实所有数据。
- 数据准确性。 所有数据均来自新加坡政府机构,通过 data.gov.sg 提供。我们不会更改源数据的值,但列映射、宽表转长表的转换以及缓存可能会引入差异。请务必通过官方来源交叉核对重要数据。
- 不构成专业建议。 此工具不能替代专业的财务、法律、医疗或政策建议。GDP 数据、犯罪统计、疾病数量、房价及其他数据仅供参考。
- 数据过时。 根据数据集的刷新周期,缓存数据可能比源数据滞后数小时至数周。如果数据时效性很重要,请查看
ingestedAt时间戳。 - 不提供担保。 本软件按“原样”提供,遵循 MIT 许可,不提供任何形式的担保。
常见问题
我需要 API 密钥吗? 不需要。data.gov.sg 的开放数据集均可公开访问。
数据存储在哪里? 在你的设备上,路径为 ~/.sgdata-mcp/sgdata.sqlite。
数据多久刷新一次? 按数据集而异,刷新频率从每天一次到每年一次不等。
它已适合用于生产环境吗? 是。包含 87 个工具,均已使用实时数据进行测试。 如果遇到问题,请在 GitHub 上提交问题。
我可以添加自己的数据集吗? 可以——你可以使用通用工具执行临时查询,也可以提交 PR,在 src/datasets/ 下添加处理程序。
许可证
MIT
署名
包含根据 Singapore Open Data Licence v1.0 提供的 data.gov.sg 信息。
参与贡献
发现错误?想要添加数据集?请在 GitHub 上提交问题或 PR。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。