mcpField
@
@altronis/sgdata mcp

@altronis/sgdata mcp

本地服务
altronis.sg法律与政务05 天前更新

关于 @altronis/sgdata mcp

@altronis/sgdata-mcp 是用于查询新加坡政府数据集的 MCP 服务,面向需要结构化公共数据的分析人员和 AI 客户端。它结合精选数据集、实时数据流、跨数据集比较、可视化、自然语言路由和命令行模式。

主要功能

  1. 01查询精选及任意 data.gov.sg 数据集
  2. 02检索企业、住房、经济和公共服务数据
  3. 03获取实时数据流与 SingStat 表格
  4. 04比较数据集并可视化时间序列
  5. 05将自然语言问题路由至工具
  6. 06无需 MCP 客户端即可使用命令行

适用场景

  1. 01查询企业信息及成立趋势
  2. 02跟踪 HDB 转售价格或 COE 溢价
  3. 03查看天气、空气质量或停车位实时情况
  4. 04比较经济指标与犯罪数据

MCP 相关

通过本地 stdio 进程向兼容 MCP 的客户端提供新加坡政府数据工具。还提供工具目录和分发辅助工具,便于客户端减少暴露的工具 schema。

配置

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

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

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

安装包
npm@altronis/sgdata-mcp0.5.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@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

npm version license: MIT node 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_listMOH 每周传染病公报2022-W52对照 moh.gov.sg 每周公报 PDF 核查。欢迎提交 PR,替换为仍在更新的数据源。
sg_tourism_latest、sg_tourism_historySTB 年度旅游收入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 个)
#数据集机构工具
1ACRA 企业实体(约 200 万个以上)ACRA3
2HDB 转售组屋价格(2017 年起)HDB2
3COE 竞标结果LTA3
4MOE 学校MOE3
5HDB 停车场信息HDB3
6GDP 同比增长率(季度)SingStat3
7消费者价格指数(月度)SingStat3
8MOM 月度总收入中位数MOM2
9按行业划分的就业情况(年度)SingStat3
10URA 私人住宅交易URA3
11国际游客到访人数STB3
12零售销售指数(月度)SingStat3
13MAS 汇率(月平均)MAS3
14IRAS 税收(年度)IRAS3
15ECDA 托儿中心和幼儿园ECDA3
16失业率(季度)MOM2
17人口指标(年度)SingStat2
18传染病病例(每周)MOH3
19发电量(月度)EMA2
20按性别/种族划分的活产数(月度)SingStat2
21记录在案的犯罪案件(年度)SPF3
22旅游收入(年度)STB2
23政府熟食中心NEA2
24企业实体的设立与注销ACRA/DOS6

此外还有 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-mcpsgdata-mcp(作者:vdineshk)
工具745
覆盖范围企业注册、房地产、价格、劳动力、旅游、外汇、税收、公共服务、犯罪、健康、人口统计、能源实时天气、交通、停车场可用情况
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。

评论

支持 Markdown

第一次接触 MCP?

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

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