Plateau Creative Mcp
io.github.pixelx-jp由 GitHub 帳號 pixelx-jp 發布v0.1.1更新於 Oct 24, 2026
PLATEAU 3D city data as scene-editing and glTF export tools for creative LLM agents.
概覽
把 Project PLATEAU 的 3D 城市資料變成場景編輯與 glTF 匯出工具,讓助理載入、篩選、編輯並匯出城市街區。
- 可以做什麼
- 下載並載入城市資料:取得快取的城市資料包,依城市、bbox 與 LOD 開啟成一個場景
- 查詢與編輯建築:依高度、年份、用途、分區或淹水深度篩選,把建築標記為已刪除,依倍率縮放高度
- 編排並匯出場景:設定時間、天氣與相機提示,匯出單一 GLB 或 3D Tiles 場景清單
- 把建築與鄰近 OSM POI 建立關聯,並讀取資料集、授權與署名中繼資料
- 可選地把官方 PLATEAU 的 13 個資料存取工具代理進同一份目錄
- 可選地把匯出的 GLB 交給相容於 BlenderMCP 的伺服器
- 適用情境
- 適合讓助理以日本 PLATEAU 資料製作反事實或風格化的城市場景,並把 GLB 交給 Blender、Unity 或 Unreal。它面向創意 3D 工作流程,而非單純的資料查詢——後者由官方 PLATEAU 伺服器涵蓋。
- 執行需求
- 透過 npx 以 stdio 在本機執行,需要 Node.js。不需帳號或 API 金鑰。選用環境變數可設定資料目錄、資料索引位址、輸出目錄、自動下載、場景持久化、資料模式(artifact 或需要 duckdb 的 Python 子程序)、用於 POI 關聯的 OSM_OVERPASS_URL,以及啟用代理官方工具的 PLATEAU_UPSTREAM_ENABLED。下載城市資料包需要網路存取。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Plateau Creative Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
@yodolabs/plateau-creative-mcp
An MCP server that turns Project PLATEAU's 3D city data into scene-editing and glTF export tools for creative LLM agents.
[npm] [License: MIT] [Data: CC BY 4.0] [Node]
English · 日本語
[A real Shibuya block loaded from Project PLATEAU and exported by plateau-creative-mcp as a single .glb — hundreds of buildings as editable 3D geometry on a scene grid, ready for Blender / Unity / Unreal.]
A real Shibuya block — loaded from PLATEAU, edited, and exported as one .glb by the export_glb tool, here rendered with three.js. Same geometry your LLM hands off to Blender / Unity / Unreal. Data © Project PLATEAU / MLIT (CC BY 4.0).
This server exposes tools. Orchestration is your LLM's job — point Claude / Cursor / any MCP client at this server alongside Blender MCP / Unity MCP / Unreal MCP and let it compose the workflow.
PLATEAU has an official MCP server for data access (catalog, specs, CityGML, attributes). This one fills the missing creation, scene-editing, and DCC export layer: load a Tokyo neighbourhood, delete every skyscraper, scale a block to 3× height, and emit a .glb ready for Blender / Unity / Unreal — all driven by tool calls.
Status
v0.1.0 — first public release. 10 MCP tools (incl. on-demand artifact download — no data clone needed), polygon footprint extrusion with mesh merging, single-GLB export ≤ 1 km² (≈40% gltf-transform compression) with a scene_manifest 3D Tiles fallback for larger areas, three data-access modes (TS+duckdb artifact / Python subprocess / upstream MCP via JSON-RPC), Overpass POI linking, and an optional cross-MCP bridge to BlenderMCP. Vendor-neutral over MCP — Claude, Cursor, any client works.
Tools
When PLATEAU_UPSTREAM_ENABLED=true, the server also exposes 13 tools proxied from the official Project PLATEAU MCP server: plateau_spec_outline, plateau_spec_read, plateau_get_metadata, plateau_search_areas, plateau_get_area, plateau_search_datasets, plateau_get_dataset, plateau_list_dataset_types, plateau_citygml_get_attributes, plateau_citygml_get_features, plateau_citygml_get_geoid_height, plateau_get_citygml_files, plateau_explain_spatial_id. The LLM client sees 23 tools in a single catalog, with no need to wire two separate MCP servers.
Every tool returns { result, attribution_metadata }. export_glb writes asset.extras.attribution into the GLB and a LICENSE.txt next to it. You must keep that attribution in any derived video, image, or asset.
Quickstart
There are two ways to get city data in place.
Option A — zero setup (recommended)
Don't clone the data pipeline at all. Out of the box the server reads the public plateau-bridge artifact index, so download_area works with no configuration — it fetches the prebuilt bundle for a city, verifies its sha256, and caches it locally:
Call download_area(city="shibuya") once (or set PLATEAU_AUTO_DOWNLOAD=true and just call load_area, which fetches a missing city first). Only buildings.parquet + manifest.json are extracted; bundles cache under PLATEAU_ARTIFACT_DIR (default ~/.cache/plateau-creative-mcp/artifacts), so each city downloads only once. Point PLATEAU_ARTIFACT_INDEX_URL at a different index to use your own mirror.
Downloaded bundles do not include 3D Tiles (they are gigabytes per city). Everything works from the parquet — load_area, all edits, and export_glb single_glb (real geometry, ≤ 1 km² / ≤ 5000 buildings). Only scene_manifest export loses its tile references for downloaded cities (it still emits the edit list, bbox, and attribution, with a tileset_note telling you to narrow to single_glb or run a local build). For full-geometry exports of larger areas, use Option B with a local build.
For Claude Desktop, add to claude_desktop_config.json:
Option B — bring your own artifacts
If you already have plateau-bridge's out_<city>/ outputs, point straight at them:
Smoke run without an MCP client:
Example workflows
1. Cyberpunk Shibuya flythrough (cross-MCP)
2. Tokyo without skyscrapers
3. Office-tower draft (requires zoning fields in the artifact)
Architecture
scene_idis the only shared state. All mutate / export tools must reference it. IDs are server-generated ULIDs.building_uidis the single canonical reference. Nogml_idor batch index alternates.export_glbhard limits: ≤ 1 km² bbox and ≤ 5000 buildings forsingle_glb. Larger scenes returnEXPORT_LIMIT_EXCEEDEDwith a suggestion to switch toscene_manifest.- Attribution is wrapped at the executor level — no handler can return a result without it.
Configuration
See .env.example for a copy-paste template.
Footprint geometry vs box fallback
Polygon extrusion via the DuckDB spatial extension is on by default; on first run the extension is auto-installed. If install/load fails (offline CI, restricted environment), the exporter cleanly falls back to centroid-anchored 12 m × 12 m boxes per building. available_attributes in load_area's response includes footprint_polygon when the high-fidelity path is active.
Mesh merging + sidecar index
single_glb exports merge every building into one BufferGeometry — one draw call, dramatically smaller GLB JSON overhead. To preserve per-building identity for downstream editing tools, each export writes a sidecar <basename>.buildings.json next to the GLB:
scene_manifest mode
When the export exceeds the single-GLB limits (1 km² / 5000 buildings) you can request mode: "scene_manifest". The manifest links the corresponding 3D Tiles tileset.json and enumerates the leaf tile content URIs whose bounding regions intersect the scene bbox — downstream consumers can lazy-load just the tiles they need:
3D Tiles are produced by a local build and are not part of the on-demand download bundles. For downloaded cities, scene_manifest returns a tile-less manifest (edits + bbox + attribution) with a tileset_note.
POI linking
link_buildings_to_pois requires OSM_OVERPASS_URL. With it set, the tool POSTs an Overpass QL query for amenity / shop / office / tourism / leisure nodes inside the scene bbox, then matches each named POI to the nearest building centroid within max_distance_m. ODbL attribution is automatically merged into the returned envelope.
Out of scope (intentionally)
export_3dgs— Gaussian-splat round-trip is future work.export_usd— a separate Isaac Sim project.simulate_earthquake/simulate_flood— a separate risk-analysis effort.- Generic OSM querying — OSM-MCP territory.
- Cross-MCP auto-orchestration — your LLM does that.
Attribution & license
- Software: MIT (this repo).
- Data: PLATEAU is CC BY 4.0 (© Project PLATEAU / MLIT). OSM POIs are ODbL 1.0.
- Every tool response carries
attribution_metadata.export_glbinjects it intoasset.extras.attributionand writes aLICENSE.txtnext to the GLB. Keep that file alongside the GLB and credit PLATEAU in any derived video / screenshot.
GLB compression
Set options.compress: true on export_glb to apply the gltf-transform pipeline (dedup → weld → prune → quantize). Real-world numbers from a 0.4 km² Shibuya patch (507 buildings, 138k triangles): 9.94 MB → 6.05 MB (~40% reduction), no perceptible loss. Output uses the standard KHR_mesh_quantization extension — Blender, Unity, Unreal, and three.js all decode it natively.
Talking to upstream MCP servers
JsonRpcMcpClient is a minimal MCP-over-HTTP client (tools/list + tools/call) exposed as a building block for upstream integrations.
OfficialPlateauMcpClient is a typed wrapper around the official PLATEAU MCP server (hosted at https://api.plateauview.mlit.go.jp/mcp). It covers all 13 upstream tools:
- Spec:
specOutline,specRead - Catalog:
getMetadata,searchAreas,getArea,searchDatasets,getDataset,listDatasetTypes - CityGML:
citygmlGetAttributes,citygmlGetFeatures,citygmlGetGeoidHeight,getCityGmlFiles - Helper:
explainSpatialId
Response shapes use [k: string]: unknown index signatures because the upstream spec is still evolving — validate at the call site if you need strict types.
Examples
Reproducible workflow recipes live in examples/ — Claude Desktop prompts (examples/claude-prompts.md), Cursor .cursorrules (examples/cursor-rules.md), a Blender Python snippet showing the merged-GLB + sidecar handoff (examples/blender-mcp-handoff.py), and the full cyberpunk-Shibuya walkthrough (examples/cyberpunk-shibuya.md).
Contributing
Issues and PRs are welcome — see CONTRIBUTING.md. Run npm run lint && npm run typecheck && npm test before opening a PR.
What's included
10 own MCP tools + 13 proxied tools from the official PLATEAU MCP (combined 23-tool catalog when PLATEAU_UPSTREAM_ENABLED=true), on-demand artifact download (download_area + optional load_area auto-fetch) so no data clone is needed, polygon footprint extrusion (DuckDB spatial) with box fallback, mesh merging + sidecar identity index, GLB compression (~40% shrink), scene_manifest mode with 3D Tiles tile enrichment, Overpass POI linking, three data-access modes (TS+duckdb artifact / Python subprocess / upstream MCP-over-HTTP), and an allowlist-gated cross-MCP bridge to BlenderMCP-compatible servers.
Built by Yodo Labs — PixelX Inc. / ピクセルエックス株式会社
Built on top of plateau-bridge · Data © Project PLATEAU / MLIT (CC BY 4.0)
Questions: [email protected]
來源:README.md,提交 04e1f6a
工具
0版本歷史
1- v0.1.1最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分