oyama-opendata-mcp

oyama-opendata-mcp

Read-only MCP server providing population and age distribution data for Oyama City, Japan, enabling AI clients like Claude to query and analyze open data.

Category
访问服务器

README

oyama-opendata-mcp

小山市オープンデータを 読取専用 で提供する MCP(Model Context Protocol)サーバ。 Code for Oyama プロジェクト。

ユーザーは Claude などの AI クライアントからこの MCP に接続し、 「小山市の人口推移をグラフ化して」のような依頼で公開データを活用できます。 MCP 側は構造化データ(JSON)を返すだけで、可視化・分析は AI クライアント側が行います。

公開エンドポイント(稼働中)

https://mcps.code4oyama.org/opendata/

Claude(デスクトップ/web)のカスタムコネクタに上記URLを登録すれば、誰でも利用できます。 公開版の実装とデプロイ手順は php/README.md を参照(さくらのレンタルサーバ + PHP)。 ローカルで stdio 接続する場合は下記セットアップを参照。

提供ツール(すべて参照系・書込み不可)

ツール 説明
list_datasets 提供中のデータセット一覧(収録月・行数を含む)
list_areas 絞り込みに使える地区名・地域名(大字町丁)の一覧
get_population 大字町丁別の総人口・男女別人口・世帯数(月次)。fromYearMonth/toYearMonth・district・area で絞り込み、level(area/district/city) で集計粒度を選択
get_age_distribution 5歳階級×男女別の年齢構成(人口ピラミッド用)。yearMonth(未指定で最新月)・district(未指定で市全体合算)
get_metadata 出典・ライセンス(CC BY)・帰属表示・収録月

データセットは2種類:

  • population … 大字町丁別の人口・世帯数(月次・2015〜2026の約2.5万行)
  • population_by_age … 地区別の5歳階級×男女の年齢構成(人口ピラミッド)

データ粒度は 月次 × 大字町丁別。level: "city" で市全体の人口推移、level: "district" で地区別、既定の area で町丁別の時系列が得られる。

セットアップ

npm install
npm run build

ローカル利用(stdio)

Claude Desktop などの設定例:

{
  "mcpServers": {
    "oyama-opendata": {
      "command": "node",
      "args": ["/絶対パス/oyama-opendata-mcp/dist/stdio.js"]
    }
  }
}

開発時は npm run dev。

リモート公開(Streamable HTTP)

npm run start:http   # http://localhost:3000/mcp  (PORT で変更可)

ステートレス構成なので Cloudflare Workers / Render / Fly.io などに載せやすく、 利用者はエンドポイント URL を登録するだけで使えます。

データ更新(取り込み時に統合)

月次CSVは1ファイル1か月。これを取り込み時に1つの正規化JSON(data/population.json)へ畳み込む。 現在 2015-01〜2026-06 の137か月・約2.5万行 を収録。

  1. 小山市オープンデータ(人口・世帯 → 大字町丁名別世帯数人口統計)から月次CSVをダウンロード
  2. data/raw/ に置く(複数月まとめてOK)
  3. 統合を実行:
npm run update-data

data/raw/*.csv を全部読み、単一の時系列JSONを再生成する。年代によりフォーマットが 混在するため、取り込み時に自動判別する:

  • エンコーディング: UTF-8 / Shift-JIS を自動判定
  • スキーマ: 標準系(地区名,地域名,総人口,男性,女性,世帯数/年月はファイル名)と 旧系(基準年月日,行政区コード,大字町丁名,合計,男,女,世帯数/年月は基準年月日列、地区名なし)を吸収
  • 桁区切り: "1,399" のような引用符付き数値にも対応
  • 年齢別ファイル(5歳階級×男女)は別スキーマのため取り込み時にスキップ(ログ出力)

注: 旧系ファイルには地区名(district)が無いため、2022年以前の行は level: "district" 集計に含まれない。level: "city"(市全体)と area(町丁別)は全期間で利用可能。

ライセンス・出典

  • コード: MIT
  • データ: 小山市オープンデータ(CC BY 4.0)。出典表示「出典:小山市オープンデータ」
  • ポータル: https://www.city.oyama.tochigi.jp/opendata.php

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选