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 分