Skip to main content
Glama

Geo Home MCP

地価、駅徒歩、公共交通の移動時間から居住候補地域を比較し、PMTiles対応のインタラクティブ地図を表示するStreamable HTTP MCPサーバーです。

含まれるもの

  • Cloud Run向けMCPサーバー (/mcp)

  • list_layers, get_land_price, compute_commute, find_candidate_areas, compare_areas, build_area_map

  • MCP Appとして表示できるMapLibre地図

  • GCS上のPMTilesと地価JSONの読み込み

  • Google Routes APIによる公共交通時間(未設定時は明示付きデモ推定)

  • GemiHub Business Agent PluginとCodex Pluginのmanifest

Related MCP server: Dilix MCP

ローカル起動

npm install
npm run dev

初期状態は data/land-prices.demo.json を使用します。この値はUI・ツール動作確認専用です。

実データ

LAND_PRICE_DATA_PATH にローカルJSONまたは gs://bucket/object.json を指定します。Cloud Runのサービスアカウントには対象オブジェクトの storage.objects.get を付与してください。JSONの配列要素は次の形です。

{
  "id": "unique-id",
  "area": "地域名",
  "station": "最寄駅",
  "municipality": "自治体",
  "lat": 35.6812,
  "lng": 139.7671,
  "pricePerSqm": 1000000,
  "previousPricePerSqm": 950000,
  "stationWalkMinutes": 8,
  "source": "国土交通省 不動産情報ライブラリ",
  "sourceUrl": "https://www.reinfolib.mlit.go.jp/",
  "observedAt": "2026-01-01"
}

国土交通省APIの利用申請・利用条件を確認し、ETLでこの正規化形式へ変換してください。公示地価、基準地価、実取引価格は意味が異なるため、同一系列として混ぜないでください。本番では series などの列を追加して別レイヤー化することを推奨します。

PMTiles

.pmtiles をCloud Storageへアップロードし、CORSで Range リクエストを許可した配信URLを PMTILES_URL に設定します。ベクトルタイル内のsource layer名を PMTILES_SOURCE_LAYER に指定してください。

例となるCORS設定:

[
  {
    "origin": ["https://YOUR_APP.example.com"],
    "method": ["GET", "HEAD"],
    "responseHeader": ["Content-Type", "Range", "Content-Range", "Accept-Ranges"],
    "maxAgeSeconds": 3600
  }
]

機密性が不要な地図タイルは公開読み取り+CDN、テナント固有データは認証付きRange proxyを推奨します。

Google Cloudインフラ

Geo Home専用GCPプロジェクトで自己完結する構成です。

  • Project: terraform.tfvars で指定する専用プロジェクト

  • Region: asia-northeast1(変更可能)

  • Artifact Registry: geo-home

  • Cloud Run runtime SA: geo-home-run

  • Cloud Build SA: geo-home-build

  • Terraform root module: terraform/

  • Cloud Run service: geo-home-mcp

  • GCS bucket: ${project_id}-geo-home(上書き可能)

Terraformが次を管理します。

  • Cloud Runサービス、スケーリング、health check、公開Invoker

  • GCSバケット、PMTiles用CORS、Cloud Run読み取り権限

  • 任意のGoogle Routes APIキーのSecret Manager参照権限

  • 地価JSONとPMTilesのCloud Run環境変数

Cloud RunのコンテナイメージだけはTerraformの ignore_changes 対象です。既存メインサービスと同様、Terraformがインフラ、Cloud Buildがアプリケーションイメージを管理します。

1. インフラを作成

GCPプロジェクトを作成して課金アカウントへ接続した後、Terraform変数を設定します。プロジェクト作成自体をTerraformへ含めないことで、組織・Folder・Billing Accountのbootstrap権限とサービス用stateを分離しています。

project_id = "your-geo-home-project-id"
region     = "asia-northeast1"

bucket_name         = "your-geo-home-project-id-geo-home"
public_tiles        = true
cors_origins        = ["https://YOUR_GEMIBIZ_DOMAIN"]
land_price_object   = "land-prices.json"
pmtiles_object      = "land-price.pmtiles"
pmtiles_source_layer = "land-price"
google_maps_secret_id = "google-maps-api-key"

オブジェクト名とSecret IDは、実データをまだ用意しない場合は空のままで構いません。その場合、組み込みデモデータと推定移動時間で起動します。

cp terraform/terraform.tfvars.example terraform/terraform.tfvars
# terraform/terraform.tfvars を編集
terraform -chdir=terraform init
terraform -chdir=terraform plan
terraform -chdir=terraform apply

初回Terraform applyではCloud Run公式helloイメージを使い、まだ存在しないGeo Homeイメージへの循環依存を避けます。

2. アプリケーションをデプロイ

Geo Home MCPリポジトリのルートから実行します。

./scripts/deploy.sh

スクリプトはこのリポジトリのTerraform outputからプロジェクト、リージョン、Artifact Registry、Cloud Build専用SAを取得してCloud Buildを実行します。Cloud Buildは作成済みCloud Runサービスのイメージだけを更新します。デプロイ後にCloud Run URLを取得し、mcp.json.mcp.json の接続先も自動更新します。更新された2ファイルはGitへcommitしてからAgent Pluginをインストールしてください。

別環境へ出す場合だけ GEO_PROJECT_IDGEO_REGIONGEO_SERVICE を上書きできます。ただしCloud Build側の _PROJECT_ID なども --substitutions で一致させてください。

GOOGLE_MAPS_API_KEY はCloud Buildへ渡しません。Terraform変数 geo_home_google_maps_secret_id で既存Secret Manager secretを参照します。

Plugin接続先の更新

デプロイ後、発行されたCloud Run URLを次の2ファイルへ設定します。

  • mcp.json: GemiHub Business Agent Plugin用(streamable-http

  • .mcp.json: Codex Plugin用(http

現在の geo-home-mcp.example.com は安全なplaceholderです。scripts/deploy.sh がデプロイ後に実URLへ更新します。GemiHub Businessでは、更新をGitHubへpushした後にrepositoryをAgent Plugin設定画面からpreview・installし、MCP接続テスト後に利用します。

手動でURLだけ設定する場合:

node scripts/configure-plugin-url.mjs https://YOUR_SERVICE_URL/mcp

セキュリティ

MCPクライアントから到達できるよう、TerraformはCloud Run Invokerを allUsers に付与します。本番で認証を必須にする場合は google_cloud_run_v2_service_iam_member.geo_home_public をOAuth/API Gateway構成へ置き換え、Agent Plugin側にも認証設定を追加してください。

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Land Price Japan MCP — official Japanese land prices (地価公示 / 地価調査)

  • Japan real estate MCP: land price, risk, foot traffic, renovation. 10 prefectures.

  • MapTiler MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/takeshy/geo-home-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server