@altronis/sgdata mcp について
@altronis/sgdata-mcpは、シンガポール政府のデータセットを検索するMCPサーバーです。構造化された公共データを扱う分析担当者やAIクライアント向けに、厳選データ、リアルタイム情報、データ比較、可視化、自然言語ルーティング、CLIを提供します。
主な機能
- 01厳選データと任意のdata.gov.sgデータを検索
- 02企業、住宅、経済、公共サービスのデータ検索
- 03リアルタイムフィードとSingStatテーブルの取得
- 04データセット比較と時系列の可視化
- 05自然言語の質問をツールに振り分け
- 06MCPクライアントなしで使えるCLI
活用シーン
- 01企業情報や設立件数の傾向を調べる
- 02HDB転売価格やCOE価格を追跡する
- 03天気、空気質、駐車場の空き状況を確認する
- 04経済指標と犯罪データを比較する
MCP 対応
ローカルのstdioプロセスを通じて、MCP対応クライアントにシンガポール政府データのツールを公開します。ツールカタログとディスパッチ用ツールも備え、クライアントが公開するスキーマを絞れるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@altronis/sgdata-mcp
シンガポール政府データの MCP サーバーです。87 個のツール — 厳選された 24 個のデータセット、SingStat テーブル 7 個、ライブのリアルタイムフィード 6 個、CLI モード、データの可視化、データセット横断クエリ、自然言語クエリに対応しています。 ACRA + HDB + URA + COE + CPI + GDP + 雇用 + IRAS + MAS の FX + MOE + ECDA + 観光 + 小売 + 人口 + 犯罪 + 健康 + エネルギー + ホーカー + 大気質 + 天気 + 駐車場 + リアルタイムのデング熱をカバーしています。 API キーは不要です。MCP が動作する環境ならどこでも実行できます。詳細な記事:https://altronis.sg/blog/sgdata-mcp
@altronis/sgdata-mcp は、Claude、Cursor、Continue、その他の MCP 対応クライアントが、data.gov.sg からシンガポール政府のオープンデータ(企業登録、不動産、労働、物価、公共サービス、資本移動、犯罪、健康、人口統計、エネルギーなど)を直接クエリできるようにする MCP サーバーです。
お使いのマシン上でローカルの stdio プロセスとして動作します。ホスト型バックエンドも API キーも不要です。小規模な厳選データセットは ~/.sgdata-mcp/sgdata.sqlite にローカルキャッシュされます。大規模なデータセット(ACRA、HDB の中古住宅販売)とリアルタイムフィードは、data.gov.sg にサーバー側からクエリするため、データセット全体がディスクにダウンロードされることはありません。
v0.5.5: コンテキストが小さいクライアント向けの補助ツールを 2 つ追加しました。sg_tool_catalog はツールを一覧表示し(キーワードで絞り込むと入力スキーマを取得できます)、sg_dispatch は名前を指定して任意のツールを呼び出します。これにより、クライアントは 87 個すべてのスキーマではなく、この 2 つだけを公開できます。ディスパッチされた呼び出しも、直接呼び出す場合と同じく、対象ツールのスキーマに照らして検証されます。
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 中古住宅販売のツールは、完全な 56 MB / 23 MB のデータセットを取り込む代わりに、サーバー側の datastore_search にクエリするようになりました — 数 GB に及ぶローカルキャッシュは不要です。FX ツールも修正しました(上流のメタデータエンドポイントが 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 ツールは一致する結果がない場合、呼び出し元が自力で修正できるよう、利用可能なラベルの一覧を返すようになりました。
v0.4.0 の主な変更点: すべての _latest ツールが data_freshness メタデータブロックを出力するようになりました — last_period、last_record_date、age_days、および fresh / ok / stale / frozen のいずれかを示すカテゴリ別の level により、エージェントは上流の data.gov.sg フィードが停止したことを検知できます。sg_disease_latest のデータが古くなっているにもかかわらず通知されない問題を修正しました(MOH は epi week 2022-W52 前後に、data.gov.sg を通じた「Weekly Infectious Disease Bulletin」の公開を停止しました)。
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 と照合してください。最新のデータソースへの差し替えを提案するプルリクエストを歓迎します。 |
sg_tourism_latest、sg_tourism_history | STB の年間観光収入 | 2014 | 新しい観光収入について、stb.gov.sg/SingStat と照合してください。プルリクエストを歓迎します。 |
ほかにも上流データフィードの更新が停止していることに気づいた場合は、イシューを作成してください。この表に追加し、ツールの説明にも警告を表示します。
Claude に質問できること
このサーバーを Claude Desktop に追加すれば、すぐに次のような質問ができるようになります。
- 「2025 年にシンガポールで設立された AI/ML 企業(SSIC 62019)をすべて探してください。」
- 「過去 6 か月間のポンゴルにおける HDB の 4 部屋住戸の中古販売価格の中央値はいくらですか?」
- 「最新の 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 Corporate Entities(約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
任意の2つのデータセットを時系列で並べて比較します。異なる時間粒度(月次、四半期、年次)は 自動的に揃えられます。
{
"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 | 期間を自動的に揃えて、2つのデータセットを時系列で比較します |
sg_list_datasets | ID、名称、機関名を含む、厳選された24のデータセットを一覧表示します |
汎用ツール — 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 Resale(2):sg_hdb_resale_search、sg_hdb_resale_stats
COE(3):sg_coe_latest、sg_coe_history、sg_coe_demand_supply
MOE Schools(3):sg_moe_search_schools、sg_moe_school_by_name、sg_moe_schools_near
HDB Carparks(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
Income(2):sg_median_income_lookup、sg_median_income_history
Employment(3):sg_employment_by_sector、sg_employment_sector_history、sg_employment_growth
URA Property(3):sg_ura_private_txn_latest、sg_ura_private_txn_history、sg_ura_new_sale_pipeline
Visitor Arrivals(3):sg_visitors_latest、sg_visitors_history、sg_visitors_top_sources
Retail Sales(3):sg_retail_sales_latest、sg_retail_sales_history、sg_retail_sales_yoy
MAS FX(3):sg_fx_rate、sg_fx_history、sg_fx_basket
IRAS Tax(3):sg_iras_collection、sg_iras_collection_history、sg_iras_tax_mix
ECDA Childcare(3):sg_ecda_search_centres、sg_ecda_centres_near、sg_ecda_vacancy_summary
Unemployment(2):sg_unemployment_latest、sg_unemployment_history
Population(2):sg_population_latest、sg_population_history
Disease/Health(3):sg_disease_latest、sg_disease_trend、sg_disease_list
Electricity(2):sg_electricity_latest、sg_electricity_history
Births(2):sg_births_latest、sg_births_history
Crime(3):sg_crime_latest、sg_crime_history、sg_crime_compare
Tourism(2):sg_tourism_latest、sg_tourism_history
Hawker Centres(2):sg_hawker_search、sg_hawker_stats
Business Formations & Cessations(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 で報告してください。
独自のデータセットを追加できますか? はい。汎用ツールでその場限りのクエリを実行するか、src/datasets/ にハンドラーを追加する PR を作成してください。
ライセンス
MIT
帰属表示
data.gov.sg の情報を、Singapore Open Data Licence v1.0 に基づいて使用しています。
貢献
バグを見つけましたか? データセットを追加したいですか? GitHub で issue または PR を作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。