前言¶
在 DeepSeek Harness(DSH)裏,智能體要通過 MCP 讀寫設計上下文,通常要面對兩件事:遠程 Figma MCP 需要授權,且工具要在 Harness 裏以統一命名暴露給 agent。自己拼 HTTP 客戶端、保管 token、再把工具註冊進 ctx.tools,步驟多且容易和官方橋接行爲不一致。
dsh-figma-mcp-oauth 由社區維護者 lcf2212dev 發佈,分類爲工作流。它把 Figma 官方 MCP 端點(https://mcp.figma.com/mcp)用 OAuth 2.1(授權碼 + PKCE S256 + 動態客戶端註冊)連到 Harness,授權完成後將服務端工具以 mcp__figma__<tool> 形式註冊;token 落在 Harness 憑證庫,不寫進配置文件。插件爲 Host-only bundle:無 Client 半部、無自有 UI。
這是什麼¶
- 倉庫: lcf2212dev/dsh-figma-mcp-oauth
- npm 包名:
@dsh-burn-plugins/dsh-figma-mcp-oauth(當前資料中版本 0.1.0,MIT 許可證) - 目錄頁: SkillHub 插件頁(社區目錄,與 DeepSeek / 幻方無官方從屬關係)
一句話:連接 Figma MCP Server 並完成 OAuth,再把設計相關 MCP 工具橋接進 DSH agent。
核心功能¶
下面按 README 中已列出的能力說明;未在資料中出現的工具名或接口不寫。
登錄與連接管理¶
| 入口 | 作用 |
|---|---|
figma_login(工具) |
啓動或續接 OAuth;默認返回授權 URL、不阻塞;wait: true 時等待回調 |
figma_status(工具) |
已連接 / 未連接、mcp__figma__* 工具數量、待處理 URL |
figma_logout(工具) |
刪除本地 grant 並註銷已註冊的服務端工具 |
/figma-login(Composer 命令) |
與 figma_login 相同,但阻塞直到回調(適合人在屏幕前操作) |
另:ctx.authorization 中註冊同名 Figma MCP 流程,供日後需要渲染授權流的界面使用。
授權後的 MCP 工具¶
授權成功後連接 https://mcp.figma.com/mcp,發現工具列表並註冊到當前 generation 的 ctx.tools。對外名稱爲 mcp__figma__*(默認 serverName 爲 figma)。README 提及的能力包括設計上下文、截圖、寫入畫布等,具體以 Figma MCP 服務端當前工具列表爲準。
插件還會把 MCP 服務端的 instructions 寫入 system prompt(位置與官方 bridge 一致),並在相關服務存在時註冊 ctx.mcpResources 上的資源操作。
OAuth 流程概要¶
figma_login在127.0.0.1:<redirectPort>/callback監聽本機迴環。- MCP SDK 發現元數據:
https://mcp.figma.com/.well-known/oauth-protected-resource→https://api.figma.com/.well-known/oauth-authorization-server。 - 無緩存註冊信息時,在
https://api.figma.com/v1/oauth/mcp/register做動態客戶端註冊(RFC 7591),使用配置的clientName。 - 拼裝
https://www.figma.com/oauth/mcp(PKCE S256、一次性state、resource=https://mcp.figma.com/mcp),按配置嘗試打開瀏覽器。 - 瀏覽器回到本地 callback;校驗
state後換 token(Figma code 約 30 秒內過期,插件側要求在 30 秒內完成交換)。 - 帶
Authorization: Bearer …連接 MCP,註冊工具。 - 401 時自動 refresh 並重試;refresh 失敗則提示再次
figma_login。
安裝與啓用¶
資料中的安裝方式爲向 Harness profile 安裝 bundle(安裝器會 pnpm add <directory> 並以 link: 依賴註冊;peer 依賴由 DSH 環境解析,bundle 本身不從 npm 拉取依賴):
plugin_manager action=install_bundle target=/absolute/path/dsh-figma-mcp-oauth
請將 target 換成本機 clone 或解壓後的絕對路徑。插件在 DSH 進程權限下運行,安裝前應自行查看源碼與 MIT 許可證,確認可接受其 OAuth 與命名策略。
啓用後,配置寫在 bundle 的 cordis.patch.yml 裏 figma-mcp 行,常見字段如下(默認值以 README 爲準):
| 字段 | 默認值 | 含義 |
|---|---|---|
url |
https://mcp.figma.com/mcp |
Figma MCP Streamable HTTP 端點 |
serverName |
figma |
工具命名空間:mcp__<serverName>__<rawName> |
authMode |
oauth |
桌面 MCP 可設爲 none |
clientName |
Claude Code (DSH) |
動態註冊時的 client_name(見下文策略說明) |
scope |
mcp:connect |
Figma AS 當前公佈的 scope |
redirectPort |
3846 |
本機回調端口;需保持穩定(redirect_uri 逐字節比對) |
loginTimeoutMs |
180000 |
單次等待回調上限 |
toolCallTimeoutMs |
60000 |
單次 tools/call 超時 |
autoConnect |
true |
已有 grant 時加載即連接 |
openBrowser |
true |
是否嘗試在宿主機打開授權 URL |
修改 clientName 會使緩存的客戶端註冊失效,下次 figma_login 需重新註冊。修改 url / redirectPort 後需先 figma_logout 再 figma_login。當前僅支持動態註冊(DCR),無預註冊 OAuth client 配置項;若未來支持,密鑰只從憑證庫讀取,不寫入 cordis.patch.yml。
典型用法¶
遠程 MCP + OAuth(默認)¶
- 安裝 bundle 並加載 profile。
- 在 Composer 或 agent 中調用
figma_login,或執行阻塞式命令/figma-login。 - 在瀏覽器完成 Figma 授權;成功後用
figma_status確認已連接及工具數量。 - 在對話中讓 agent 調用
mcp__figma__*工具(名稱以figma_status/ 工具列表爲準)。
桌面模式(免 OAuth)¶
適用本機 Figma 桌面端 MCP(需更新版桌面應用、打開設計文件、Dev Mode 下啓用 desktop MCP server;README 要求付費計劃上的 Dev/Full seat)。配置示例:
- id: figma-mcp
name: '@dsh-burn-plugins/dsh-figma-mcp-oauth'
config:
url: http://127.0.0.1:3845/mcp
authMode: none
autoConnect: true
README 說明:該路徑無遠程服務端的 write-to-canvas 與設計生成類工具。
適用場景與注意¶
適合誰
- 希望在 DSH agent 中直接使用 Figma 官方遠程 MCP 能力、且願意走瀏覽器 OAuth 的開發者。
- 已有 Figma 桌面 MCP、只需本機
authMode: none橋接的團隊。
clientName: 'Claude Code (DSH)' 與 Figma 策略
Figma 遠程 MCP 的動態註冊不接受任意 client_name:需符合其 MCP 目錄中的客戶端前綴(如 Claude Code / Claude Desktop)或恰好爲 Codex,否則可能得到 403 Forbidden。本插件使用該名稱作爲顯式兼容選項,是資料記載的、第三方客戶端當前能連遠程服務的路徑之一。後果包括:同意頁展示的是目錄客戶端品牌(如「Figma MCP in Claude Code」),而非 DeepSeek Harness;屬於 Figma beta 期訪問限制上的變通,若 Figma 收緊校驗可能失效。合法替代包括:申請 Figma MCP 目錄 waitlist、改用上述桌面模式,或待 Figma 開放第三方客戶端後再演進配置。
安全與憑證
- Grant(客戶端信息、token、code verifier、
state、發現狀態)存在 Harness 憑證庫記錄figma-mcp/oauth,不在 patch 文件裏。 - 回調僅監聽
127.0.0.1;figma_logout刪除本地記錄並斷開連接。README 註明:本地註銷後,Figma 賬戶側會話仍可能保留直至過期或被撤銷。
排錯提示(資料摘錄)
登錄時出現與 catalog 相關的 403 Forbidden,多與 clientName 不在允許列表或 Figma 調整門檻有關,可按 README 調整 clientName 或改用 waitlist / 桌面模式。
結尾¶
dsh-figma-mcp-oauth 把 Figma MCP 的 OAuth、工具註冊與 Harness 憑證管理收成一條工作流插件路徑,減少自建橋接的成本。進一步瞭解實現與配置,見 GitHub 倉庫 README 與 SkillHub 目錄頁。