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.

已驗證STDIO僅桌面瀏覽器自動化媒體與設計

概覽

AI 產生的概覽

一個本機中繼,讓 Claude Desktop 或 Claude Code 讀取並編輯瀏覽器分頁中開啟的 3DStreet 街道設計場景。

可以做什麼
讀取場景狀態、實體、選取實體、受管街道、mixins 與工作階段資訊。選取實體並調整相機焦點。建立、更新、刪除、複製與重新掛載實體,以及新增或移除元件。新增、更新或刪除街道分段,並替換受管街道。復原與重做場景變更。
適用情境
當你想讓瀏覽器以外的助理(Claude Desktop、Claude Code、Cursor 或無介面腳本)檢視或修改 3DStreet 場景時使用,例如詢問目前場景內容或新增自行車道。瀏覽器內已支援 WebMCP 的用戶端不需要安裝。
執行需求
透過 npx 以 stdio 執行本機 npm 套件 3dstreet-mcp。需要在瀏覽器中開啟 3DStreet 分頁,並透過中繼列印的自動配對連結完成配對;中繼預設經由本機 WebSocket 連接埠 51735 與其通訊。儲存與地理空間功能需要免費的 3DStreet 帳號。
安裝前請注意
中繼可以變更場景:實體、元件與分段工具會建立、更新和刪除內容,復原/重做會改變歷史。只想讓助理說明場景時可開啟唯讀開關以阻擋修改。分頁需已登入,場景資料與雲端儲存都經由 3DStreet 網頁應用程式。專案處於 alpha 階段,協定可能變動。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 3dstreet,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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 via document.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

Claude Desktop  ── stdio MCP ──▶  3dstreet-mcp  ── ws://127.0.0.1:51735 ──▶  3DStreet tabor Claude Code                    (this package)                              (your browser)

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):

json
{  "mcpServers": {    "3dstreet": {      "command": "npx",      "args": ["-y", "3dstreet-mcp"]    }  }}

Restart Claude Desktop.

Claude Code

bash
claude mcp add 3dstreet -- npx -y 3dstreet-mcp

Pair the browser tab

On startup the relay prints an auto-pair URL to its log, like:

open this URL to pair a 3DStreet tab: https://3dstreet.app/#mcp

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

3dstreet-mcp [options]
Options:  -p, --port <number>    WebSocket port (default 51735)  -o, --origin <url>     Origin used in the printed auto-pair URL and                         the MCP `instructions` hint (default                         https://3dstreet.app — set to                         http://localhost:3333 when running 3DStreet                         from a local dev server)  -h, --help             Show this help  -v, --version          Print version and exit

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:

bash
node src/cli.js --origin http://localhost:3333# → open this URL to pair a 3DStreet tab: http://localhost:3333/#mcp

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

bash
git clone https://github.com/3DStreet/3dstreet-mcp.gitcd 3dstreet-mcpnpm installnpm test

Smoke-test against a real 3DStreet build:

bash
# Terminal 1 — the relay, REPL-free, just stdionode src/cli.js
# Terminal 2 — exercise it with the MCP inspectornpx @modelcontextprotocol/inspector node src/cli.js

License

AGPL-3.0-or-later, matching 3DStreet itself.

來源:README.md,提交 89c9b5b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分