
3dstreet
app.3dstreet由 3dstreet.app 發布v0.2.2更新於 Oct 24, 2026
Drive an open 3DStreet scene tab from Claude Desktop or Claude Code via MCP tool calls.
概覽
一個本機中繼,讓 Claude Desktop 或 Claude Code 讀取並編輯瀏覽器分頁中開啟的 3DStreet 街道設計場景。
- 可以做什麼
- 讀取場景狀態、實體、選取實體、受管街道、mixins 與工作階段資訊。選取實體並調整相機焦點。建立、更新、刪除、複製與重新掛載實體,以及新增或移除元件。新增、更新或刪除街道分段,並替換受管街道。復原與重做場景變更。
- 適用情境
- 當你想讓瀏覽器以外的助理(Claude Desktop、Claude Code、Cursor 或無介面腳本)檢視或修改 3DStreet 場景時使用,例如詢問目前場景內容或新增自行車道。瀏覽器內已支援 WebMCP 的用戶端不需要安裝。
- 執行需求
- 透過 npx 以 stdio 執行本機 npm 套件 3dstreet-mcp。需要在瀏覽器中開啟 3DStreet 分頁,並透過中繼列印的自動配對連結完成配對;中繼預設經由本機 WebSocket 連接埠 51735 與其通訊。儲存與地理空間功能需要免費的 3DStreet 帳號。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 3dstreet,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
3dstreet-mcp
A Model Context Protocol relay that lets Claude Desktop or Claude Code drive a 3DStreet scene running in your browser.
Is this the right tool? This relay is the fallback for MCP clients that cannot use WebMCP. If your agent runs inside a browser (ChatGPT's desktop browser, Gemini in Chrome, Chrome 149+ with the WebMCP origin trial or
chrome://flags/#enable-webmcp-testing), you do not need this package: open https://3dstreet.app and the page registers the same tools with the browser viadocument.modelContext— nothing to install, no pairing. See the 3DStreet WebMCP docs. Use this relay only for clients with no browser of their own or no WebMCP support (Claude Desktop, Claude Code, Cursor, headless scripts). It will be retired once those clients read WebMCP natively.
Listed on the MCP Registry as app.3dstreet/3dstreet.
Status: alpha — protocol may change. Tracks 3DStreet#1582 (design) and 3DStreet#1600 (browser side). Scene creation works in any 3dstreet.app tab; saving and geospatial features require a free 3DStreet account.
How it works
The relay speaks MCP over stdio and bridges every tools/list and
tools/call to a 3DStreet tab over a localhost WebSocket. The tab does
the actual work — it's already signed in, has the catalog loaded, owns
the cloud-save flow. The relay is a dumb pipe.
No auth tokens cross the WebSocket. The relay's port binds to 127.0.0.1
only and rejects WebSocket upgrades from origins outside the 3DStreet
allowlist (https://3dstreet.app, https://dev-3dstreet.web.app,
http://localhost:3333, http://127.0.0.1:3333).
Setup
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):
Restart Claude Desktop.
Claude Code
Pair the browser tab
On startup the relay prints an auto-pair URL to its log, like:
Open that URL in a signed-in browser and the editor will detect the
#mcp fragment, open the AI Assistant pane, and pair with the
relay automatically — no console commands needed. (If you ran the
relay on a non-default port the URL will look like
https://3dstreet.app/#mcp=PORT.)
If you'd rather pair manually: open https://3dstreet.app, click
AI Assistant in the right panel, type /mcp, and click
Reconnect.
You can now ask Claude things like:
- "What's in my current scene?"
- "Add a bike lane on the left side of the street."
- "Change the environment preset to night."
Toggle Read-only in the status bar to block scene mutations (useful when you just want Claude to explain a scene).
CLI
If you need a different port (e.g. running two Claude clients against
two different tabs), pass --port and open the auto-pair URL the
relay prints — https://3dstreet.app/#mcp=PORT — which both selects
the port and triggers auto-pair.
For local 3DStreet development, point --origin at your dev server so
the printed URL and the LLM's instructions hint both resolve to the
right tab:
Telling the LLM how to pair
The relay returns an instructions string on every initialize (an
optional MCP field clients may fold into the LLM's system prompt). It
explains that scene tools are forwarded to a paired tab, names the
auto-pair URL, and tells the model to surface that URL to the user
when no tab is connected — so the LLM proactively guides users
through pairing instead of waiting for an opaque tool-call timeout.
When no tab has ever paired this relay session, tools/call also
fast-fails with the auto-pair URL in the error message, rather than
queuing for 30 seconds. Once a tab has paired, brief disconnects
revert to the queued retry behaviour so reconnecting peers can drain
in-flight calls.
Tools exposed
The tool list is fetched from the connected browser tab on pair, so it always matches whatever the editor's command registry exposes. As of #1600 that includes:
- Reads:
getScene,getEntity,getSelectedEntity,getManagedStreet,listMixins,getSessionInfo - Selection / camera:
selectEntity,focusCamera - Mutations:
entityCreate,entityUpdate,entityRemove,entityClone,entityReparent,componentAdd,componentRemove,segmentAdd,segmentUpdate,segmentRemove,replaceManagedStreet, …and the rest of the registry - History:
undo,redo
Run tools/list from your MCP client to see the current set.
Wire protocol (for contributors)
Stdio side: line-delimited JSON-RPC 2.0, MCP 2024-11-05.
WebSocket side: same JSON-RPC envelope, with the relay handling
initialize / ping / notifications locally and forwarding only
tools/list and tools/call to the peer. The peer assigns its own ids
on incoming frames; replies match by id.
The single-peer policy: first browser tab to connect holds the slot.
Second connection gets WebSocket close code 4001 with reason
paired-elsewhere.
Development
Smoke-test against a real 3DStreet build:
License
AGPL-3.0-or-later, matching 3DStreet itself.
來源:README.md,提交 89c9b5b
工具
0版本歷史
1- v0.2.2最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分