dsh-figma-mcp-oauth:用 OAuth 把 Figma MCP 接入 DeepSeek Harness

前言

在 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。

這是什麼

一句話:連接 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 流程概要

  1. figma_login 在 127.0.0.1:<redirectPort>/callback 監聽本機迴環。
  2. MCP SDK 發現元數據:https://mcp.figma.com/.well-known/oauth-protected-resource → https://api.figma.com/.well-known/oauth-authorization-server。
  3. 無緩存註冊信息時,在 https://api.figma.com/v1/oauth/mcp/register 做動態客戶端註冊(RFC 7591),使用配置的 clientName。
  4. 拼裝 https://www.figma.com/oauth/mcp(PKCE S256、一次性 state、resource=https://mcp.figma.com/mcp),按配置嘗試打開瀏覽器。
  5. 瀏覽器回到本地 callback;校驗 state 後換 token(Figma code 約 30 秒內過期,插件側要求在 30 秒內完成交換)。
  6. 帶 Authorization: Bearer … 連接 MCP,註冊工具。
  7. 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(默認)

  1. 安裝 bundle 並加載 profile。
  2. 在 Composer 或 agent 中調用 figma_login,或執行阻塞式命令 /figma-login。
  3. 在瀏覽器完成 Figma 授權;成功後用 figma_status 確認已連接及工具數量。
  4. 在對話中讓 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 目錄頁。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜