Apple 給 Claude Code 的 Xcode 外掛:它會安裝什麼

出自指南: Claude Code Comprehensive Guide

Apple 給 Claude Code 的 xcode 外掛,在 Anthropic 的官方 marketplace 裡只有 15 行,沒有任何檔案:這則條目存的是一道指令 xcrun agent plugin path --plugin-format claude,而外掛是在這道指令執行時,由您自己 Mac 上的 Xcode 寫出來的。12 這則條目於 2026 年 11 月 6 日(UTC)合併。在我查過的地方,我沒有找到 Apple 或 Anthropic 的任何公告。2 在 Xcode 27.2 上,這道指令印出的是一個有 160 個檔案的目錄:16 個 skills 與一則 MCP 伺服器項目,沒有 hooks,也沒有 agents。Claude Code 自己的清點結果估計,每個工作階段會因此多出約 4,463 個 token;而那則伺服器項目所指名的橋接程式指令,在我的一個工作階段中列出了 54 個工具。2 我讀了這個目錄,並以 --plugin-dir 把它載入用過即丟的工作階段。我沒有接受 marketplace 的安裝,而每一節都會說明哪些陳述出自何處。

重點摘要

  • marketplace 條目裡放的是一道指令,不是外掛。其他每一則從清單之外擷取內容的條目,都帶有 commit SHA。xcode 沒有東西可以固定,它也是 marketplace 驗證器的豁免名單上唯一的名字。13
  • 安裝的意思,是由人來接受那道指令。Claude Code 會把它印出來並詢問,而當 agent 從工作階段內執行安裝時,用來略過這個問題的旗標不會有任何作用。6
  • 一切都可以先讀過。這道指令會印出目錄,而 claude --plugin-dir <dir> plugin details xcode-integration 不必啟動工作階段就能清點它。72
  • 在 Xcode 27.2 上,清點結果是 16 個 skills、零個 agents、零個 hooks,以及一個執行 xcrun mcpbridge 的 MCP 伺服器。工作階段會向您列出其中 15 個 skills。第十六個的標頭把它標示為僅供模型使用。29
  • 如果您已經用 claude mcp add 加入了橋接程式,Claude Code 會把外掛的那一份當作重複項目而抑制。在我的 Mac 上,這個外掛增加的是 skills,此外別無其他。28
  • 接受所涵蓋的是指令字串。指令印出什麼,取決於您所選取的 Xcode,而清單裡不會有任何變更標示出這個差異。45

進到 marketplace 的是什麼

整則上架條目就是一個 JSON 物件。以下是它在 2026 年 11 月 11 日於 anthropics/claude-plugins-official 中的樣子,自合併以來未曾變動:1

{
  "name": "xcode",
  "displayName": "Xcode",
  "description": "Work with Xcode projects from Claude Code: build, run, and test schemes, render SwiftUI previews, drive simulators and devices, read build logs and diagnostics, and search Apple developer documentation.",
  "author": {
    "name": "Apple Inc."
  },
  "category": "development",
  "source": {
    "source": "command",
    "command": "xcrun agent plugin path --plugin-format claude",
    "mode": "link"
  },
  "homepage": "https://developer.apple.com/xcode/"
}

當天清單中有 317 個外掛。我依內容的來源把它們分類:1

來源類型 條目數 是否固定在 commit SHA 上
git 儲存庫,以 URL 指定 163 163 則全部固定
git 儲存庫的子目錄 99 99 則全部固定
marketplace 儲存庫內的資料夾 54 不適用;該資料夾就在清單自己的歷史記錄裡
在您機器上執行的指令 1(xcode) 否;沒有東西可以固定

這則條目是怎麼進來的,其記錄顯示出它有多不尋常。2026 年 9 月 18 日,一位貢獻者開了 pull request #6259,標題為「Add Xcode plugin (xcode)」。一個機器人回覆說,這個儲存庫只接受 Anthropic 團隊成員的貢獻,而一位維護者在它開啟 19 分鐘後核准了這項變更。9 月 30 日,第二個 pull request #6338 把同一個 commit 帶到儲存庫內部的一個分支上,好讓其檢查得以執行。1

這些檢查照原樣並沒有通過。第三個 pull request #7015 表示,marketplace 的驗證器在三個地方判定 Xcode 條目不合格:它沒有 SHA、它指令中的空格算是 shell 中介字元,而且它沒有可供 clone 的 URL。修正方式是把工作流程改用一個帶有新 command-exempt 輸入的驗證器版本,並把該輸入設為 "xcode"。那一行上方的註解,把名單上的每個名字都稱為一項需要 marketplace 營運團隊簽核的「listing decision」。3 三個 pull request 都在 11 月 6 日(UTC)的九分鐘內結案:#7015 於 00:49 開啟、00:53 合併,#6338 於 00:55 合併,#6259 則於 00:58 以重複為由關閉。13

就我所能找到的,兩家公司對此都隻字未提。11 月 11 日,我查了 Apple 的開發者新聞、版本發佈與新聞室這三個 feed、Apple 的 Xcode 頁面、Anthropic 的新聞頁面,以及 Claude 部落格,都沒有發現提到這個外掛。Apple 針對外部 agent 的說明文件,描述的仍是以 claude mcp add 手動加入橋接程式,並未提到任何外掛。210 把這個外掛稱為 Apple 的外掛,依據是條目中的作者欄位,以及這道指令隨 Xcode 內建這項事實。

這則條目存的是指令,不是外掛

Claude Code 在 2026 年 8 月 12 日的 2.1.229 版新增了 command 來源類型。6 說明文件把它描述為:當使用者機器上的某個工具會產生外掛目錄時所該採用的來源,舉的例子則是 IDE 為使用者所選的工具鏈產生外掛。4 這份約定的內容不多:

  • 指令印出一行,也就是外掛目錄的絕對路徑,並以 0 結束。預設的時間上限是 60 秒,而 Xcode 條目沒有自行設定任何上限。41
  • Claude Code 會在您安裝或更新外掛時執行這道指令,之後對已啟用的外掛,每個工作階段再於背景執行一次,時間點在工作階段開始後不久。設定了 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 時,它會略過這些背景執行。5
  • 在 link 模式下,也就是 Xcode 條目所用的模式,Claude Code 什麼都不複製。它連結到目錄的頂層項目,並就地載入檔案。版本來自目錄的真實路徑及其頂層項目,而不是檔案的內容。4
  • Claude Code 只會執行人所接受的那一道完全相同的指令。如果 marketplace 日後變更了指令或其模式,背景執行就會停止,直到每位使用者接受新的指令為止。5
  • 組織可以用受管理設定 disableCommandPluginSources 把整個來源類型關閉。4

這些規則與 Xcode 所用的目錄名稱相合。在我的 Mac 上,這道指令印出的路徑帶有 Xcode 的建置編號(使用者名稱已替換):

$ xcrun agent plugin path --plugin-format claude
/Users/<you>/Library/Developer/Xcode/CodingAssistant/ExportedPlugins/27B52/claude

新的 Xcode 建置版本就代表新的路徑,而新的路徑正是讓 Claude Code 得知外掛變了的訊號。在目錄已經建立、且沒有任何 Xcode App 在執行的情況下,這道指令在三次計時執行中都約 0.2 秒就返回。我的 Mac 開著 Xcode 的 headless MCP 模式,也就是由 sudo xcrun mcp-server enable 啟動、後面有一節會談到的那個預覽功能。在這裡,每個 Xcode 建置版本的第一次呼叫,是透過 Xcode bundle 內的背景輔助程式 Xcode Service 寫出目錄的,而不是透過 Xcode App。我只對已經存在的目錄做了計時呼叫,也沒有在該模式關閉的情況下執行過這道指令。2

同樣的規則也改變了審查所能涵蓋的範圍。Claude Code 的安全性文件要您在安裝前先讀過外掛的原始碼:開啟首頁或 marketplace 儲存庫,在那裡找到外掛的目錄。7 對 xcode 來說,首頁是 Apple 的 Xcode 產品頁面,而儲存庫裡放的就是上面那 15 行。外掛的內容要等您的 Xcode 寫出來之後才存在,所以審查是在您的 Mac 上、針對您的 Xcode 建置版本進行的。

Claude Code 要您接受的是什麼

由於安裝會執行一個程式,Claude Code 會先把指令印出來並詢問,然後才執行。在終端機裡,這個問題是 Run this command now? [y/N]。6 我在 Claude Code 2.1.322 上,從一個沒有連接終端機的 shell 執行安裝,它沒有詢問,而是拒絕了。其輸出的前四行:2

$ claude plugin install xcode@claude-plugins-official --scope local
"xcode" is installed by running a command from marketplace "claude-plugins-official" on this machine:
  xcrun agent plugin path --plugin-format claude
  (mode "link": its output directory is used in place (linked, not copied))
Not an interactive terminal, so the command was only displayed, not accepted. Run this in your own terminal (outside the Claude Code session) to confirm the command shown above.

這個步驟有三個細節值得注意。

agent 無法替您接受。 -y 是從您自己的終端機接受所顯示的指令。CLI 參考文件說,當安裝是在工作階段內、從 Bash 工具或從 hook 執行時,Claude Code 會忽略這個旗標。6 如果您要 Claude Code 安裝這個外掛,請預期它會把指令交還給您。

腳本可以接受一道確切指定的指令。 加上 --json 時,遭拒絕的安裝會回報一個 shownCommand 物件,而 2.1.271 新增的 --accept-command <sha256> 會接受那一道指令,不接受其他任何指令。參考文件說要從您自己的終端機傳入它,因為這個旗標在 Claude Code 工作階段內沒有作用,所以 agent 也無法依雜湊值接受。說明文件把雜湊值與指令、外掛及 marketplace 清單綁在一起,並說三者中只要有一項變了,Claude Code 就會再次顯示指令。6 我的如下,摘自那筆單行結果並重新排版:2

"shownCommand": {
  "kind": "command_source",
  "pluginId": "xcode@claude-plugins-official",
  "command": "xcrun agent plugin path --plugin-format claude",
  "mode": "link",
  "catalogRevision": "gcs:43fd1f9db0941b2b83cb62268e35970d4a67c202",
  "sha256": "b6a49a80f0917b25ceb38fa52e95dacca7ad78893aeb9f0463c62b3d73ca1a48"
}

請從您自己的 --json 執行結果取值。上面的值,與我為了比較而算出的指令字串單純 SHA-256 並不相同,而說明文件說,清單一旦變更,雜湊值就不再算數。從本文複製的值,Claude Code 可能會拒絕。26

工作階段有自己的途徑。 拒絕訊息的其餘部分指出了第二個可以接受的地方:/plugin 底下的外掛詳細資訊面板。我沒有為 xcode 開啟過那個面板。2

接受之前,先讀過這個外掛

marketplace 想要執行的那道指令,您自己也能執行。三行指令就能讓您看到安裝會連結什麼:

# 1. Ask Xcode for the directory. The first call for an Xcode build writes it.
DIR="$(xcrun agent plugin path --plugin-format claude)"

# 2. Inventory it without starting a session.
claude --plugin-dir "$DIR" plugin details xcode-integration

# 3. Read the one file that starts a process.
cat "$DIR/.mcp.json"

第 2 行是文件所載的做法,用來列出 Claude Code 在外掛目錄中找到的東西:它讀取檔案,而不啟動工作階段。7 要傳入的名稱是外掛 manifest 檔中的那個,也就是 xcode-integration。若用清單中的名稱 xcode,同一道指令會回答 Plugin "xcode" not found.2 在 Xcode 27.2(27B52)與 Claude Code 2.1.322 上,清點結果的第一部分如下:2

xcode-integration 1.0.0
  Description: Xcode-managed plugin for skills and services that integrate with the IDE.
  Source: xcode-integration@inline

Component inventory
  Skills (16)  accessibility-dynamic-type-specialist, accessibility-sufficient-contrast-specialist, accessibility-voiceover-specialist, adopt-c-bounds-safety, app-intents-specialist, app-intents-whats-new-27, app-resizability, audit-xcode-security-settings, building-document-based-swiftui-applications, device-interaction, modernize-tests, swiftui-specialist, swiftui-whats-new-27, translation, translation-coordinator, xctrace
  Agents (0)
  Hooks (0)
  MCP servers (1)  xcode  (tool schemas resolved at runtime; not counted)
  LSP servers (0)

Projected token cost
  Always-on:   ~4,463 tok   added to every session

Claude Code 的安全性頁面列出了外掛中會自行執行程式碼的部分,這些部分不在管轄 Claude 工具呼叫的權限規則之內:hooks、monitors、mods,以及 MCP 與 LSP 伺服器程序。7 Apple 的目錄裡有其中一種,就是 MCP 伺服器。目錄的頂層有三個項目:manifest 資料夾、.mcp.json 與 skills/。那 160 個檔案是 157 個 Markdown 檔案、兩個 JSON 檔案與一個 Python 腳本。這個腳本有 69 行,位於 audit-xcode-security-settings skill 內,只匯入 argparse、json、re 與 pathlib,而它自己的描述說,它會把儲存下來的建置設定輸出篩選到只剩與安全性相關的項目。只有在 agent 執行它時,它才會執行。2

claude plugin validate 判定這個目錄通過,附帶一則警告:manifest 檔沒有指名作者。同一次執行還套用了 Anthropic 的 claude.ai 名錄所用提交檢查的一部分,那份名錄與官方 marketplace 是各自獨立的兩份清單。這些檢查回報了兩個會讓該名錄拒絕提交的問題,即沒有 README 與沒有 LICENSE,以及一則警告,即沒有圖示。它們與這次上架無關:發佈指南說,官方 marketplace 不透過該名錄的入口網站接受提交。212 這個資料夾本身沒有載明任何授權條款。我把它視為 Xcode 的一部分。

工作階段拿到的東西:16 個 skills,列出其中 15 個

我在一個空專案中,以 claude -p --plugin-dir "$DIR" 把這個目錄載入單一提示的工作階段。以 --plugin-dir 載入的外掛只在那個工作階段內有效,不會安裝任何東西。2

工作階段的起始事件把這個外掛列為 xcode-integration@inline,版本 1.0.0,而偵錯記錄記下了從它載入 16 個 skills。工作階段自己的 skills 與斜線指令清單裡有其中 15 個。少掉的那一個 translation-coordinator,在標頭中設定了 user-invocable: false,這項設定會把 skill 從 / 選單中隱藏,但 Claude 仍可援引它。9 我在同一個工作階段中要模型印出它擁有的 skills 時,它印出了 16 個名稱,coordinator 也在其中。最後這項檢查是模型自己的回報。2

每個名稱都帶有 xcode-integration: 前綴,例如 /xcode-integration:swiftui-specialist。清單把這個外掛叫做 xcode,manifest 檔則把它叫做 xcode-integration,而 Claude Code 的載入參考文件說,這兩個名稱各司其職:清單中的名稱是安裝用的鍵,manifest 檔中的名稱則是外掛各元件的命名空間。5 這個前綴是我在 --plugin-dir 之下觀察到的。至於 marketplace 安裝的情況,我依據的是那個頁面。

以下是 Claude Code 對每個 skill 成本的估計,取自同一份輸出的其餘部分;旁邊並列的,是該 skill 的檔案是否指名了橋接程式的任何工具:2

Skill 常駐於情境中 援引時 指名的橋接程式工具數
app-intents-specialist ~930 ~2.2k 無
app-intents-whats-new-27 ~780 ~3.3k 無
swiftui-specialist ~340 ~1.5k 無
swiftui-whats-new-27 ~340 ~1.6k 無
adopt-c-bounds-safety ~320 ~740 無
building-document-based-swiftui-applications ~310 ~900 無
app-resizability ~230 ~6.9k 無
audit-xcode-security-settings ~210 ~21.7k 11
accessibility-voiceover-specialist ~180 ~6.9k 1
xctrace ~170 ~380 無
translation ~160 ~9k 4
translation-coordinator(僅供模型) ~150 ~4.2k 4
accessibility-dynamic-type-specialist ~140 ~3.6k 1
accessibility-sufficient-contrast-specialist ~120 ~4.9k 1
device-interaction ~50 ~4.6k 4
modernize-tests ~40 ~3.5k 無

數字的單位是 token,而且都是這個工具自己的估計值。各列經過四捨五入,加起來約為 4,470;Claude Code 自己的總計則是上面的 ~4,463。兩個 App Intents skills 就占了其中約 1,710,因為它們的描述很長。這項估計沒有計入 MCP 伺服器的工具 schema,清點結果說那是在執行期才解析的。每個 skill 教些什麼,寫在我那篇較長的文章裡:Xcode 27 隨附的 skills,以及把它們帶出來的兩條路。

MCP 這一半:一則伺服器項目,在這裡是 54 個工具

.mcp.json 宣告了一個名為 xcode 的 stdio 伺服器,其指令是 xcrun mcpbridge。Apple 的說明文件在說明如何手動接上橋接程式時,給的是同一道指令:claude mcp add --transport stdio xcode -- xcrun mcpbridge。10 我的 Claude Code 工作階段原本就有那個項目。在一個有手動加入的項目、沒有外掛的工作階段中,橋接程式在 339 毫秒內連上,自稱是 xcode-tools 版本 25464,並列出 54 個工具。2 我先前的一篇文章提到 Xcode 26.3 的橋接程式有 20 個工具,那篇文章的這個數字,依據的是我當時的測試,以及它所連結的一篇第三方逐步教學。

我依名稱把這 54 個分組:2

領域 工具數 範例
專案檔案與結構 15 XcodeRead, XcodeWrite, XcodeUpdate, XcodeRM, XcodeNewTarget
建置、執行與診斷 11 BuildProject, RunProject, GetBuildLog, XcodeRefreshCodeIssuesInFile
建置設定、旗標、entitlements、Info.plist 6 GetTargetBuildSettings, UpdateTargetBuildSetting, AddEntitlement
測試 5 GetTestList, RunSomeTests, RunAllTests
裝置與模擬器互動 5 DeviceInteractionStartSession, DeviceInteractionSynthesize
String Catalogs 與本地化 4 LocalizationPlanner, StringCatalogEdit
當機與實地效能報告 4 GetTopCrashIssues, GetFieldPerformanceIssueLogs
預覽、程式碼片段與偵錯器 3 RenderPreview, RunCodeSnippet, InvokeDebuggerCommand
說明文件 1 DocumentationSearch

這份工具清單涵蓋的範圍,比 marketplace 描述所暗示的更廣。XcodeRM 會從專案中移除檔案,而且預設會把底層的檔案移到垃圾桶。InvokeDebuggerCommand 會把一道 lldb 指令送到 Xcode 目前作用中的偵錯工作階段。GetTopCrashIssues 對自己的描述是:從 Apple 的當機回報服務取回您 App 的當機特徵。2 這幾個每一個都是工具呼叫,所以都適用 Claude Code 的權限規則。伺服器程序本身則在沙箱之外執行,每個外掛的 MCP 伺服器都是如此。7

skills 與工具彼此互相參照。16 個 skills 中有七個以不帶前綴的名稱指名橋接程式工具。這七個當中的 audit-xcode-security-settings,還給出了帶前綴的通用形式 mcp__<server>__XcodeGlob,說伺服器的名稱會隨環境而異,並要 agent 不要把名稱寫死。依賴關係也反過來成立。四個 String Catalog 與本地化工具的描述,全都要 agent 在呼叫工具之前先啟用一個外掛 skill:LocalizationPlanner 與 StringCatalogRead 指名 xcode-integration:translation-coordinator,StringCatalogContext 與 StringCatalogEdit 則指名 xcode-integration:translation。其餘 50 則描述沒有指名任何 skill。2 一個有手動加入的橋接程式、沒有外掛的工作階段,四個工具都有,兩個 skills 卻都沒有。已合併的 pull request 上有一位留言者問,既然 Xcode MCP 伺服器本來就能用,這次上架增添了什麼。1 在我的 Mac 上,答案是 skills,而且橋接程式自己的工具當中,有四個指名要用其中兩個。

如果您已經手動加入了橋接程式

Claude Code 會為 MCP 伺服器定義排定優先順序:本機、專案與使用者範圍在先,其次是外掛提供的伺服器,再來是 claude.ai 連接器。組織透過受管理設定提供的伺服器,則排在這些全部之上。Claude Code 依端點把外掛的伺服器與其他伺服器比對,所以外掛伺服器的指令若與您設定的某個伺服器相同,就算是重複項目,Claude Code 只會連線一次,用的是您的定義。8

我的工作階段呈現的正是如此。把外掛與我使用者範圍的 xcode 項目並排載入時,工作階段的伺服器清單裡有來源為 user 的 xcode,卻沒有外掛伺服器的項目,而偵錯記錄說明了原因(時間戳記與記錄層級已刪去):2

Suppressing plugin MCP server "plugin:xcode-integration:xcode": duplicates manually-configured "xcode"

實際的影響在於名稱。只要手動加入的項目還在,工具就維持 mcp__xcode__BuildProject、mcp__xcode__XcodeRead 這類名稱。說明文件給外掛伺服器的名稱是 plugin:<plugin>:<server>,給其工具的形式是 mcp__plugin_<plugin>_<server>__<tool>,並說在權限規則與 hook 比對器中該用的是工具的這個形式。8 依這條規則,一個有外掛、沒有手動加入項目的工作階段,會把同一個工具叫做 mcp__plugin_xcode-integration_xcode__BuildProject。那種配置我沒有量測,因為我的設定裡有手動加入的項目。如果您有針對 mcp__xcode__ 名稱所寫的允許規則或 hooks,那麼依說明文件的命名規則,在安裝外掛之後移除手動加入的項目,就等於一次改名。

兩層權限,而安裝只碰其中一層

接受指令,解決的是 Claude Code 這一側。Xcode 守著自己的關卡,而外掛目錄裡沒有任何東西能打開它:這個目錄沒有 hooks,也沒有安裝步驟。

Apple 的說明文件記載的是 Xcode 執行中時的這道關卡。在 Xcode 的 Intelligence 設定中,Model Context Protocol 底下有一個名為「Allow External Agents to Use Xcode Tools」的彈出式選單,提供 Always、「While Xcode is Open」與 Never 三個選項,而且有外部 agent 連線時,Xcode 會顯示提示。10 Xcode 27 的版本說明描述了第二種配置,也就是一個不需要開啟 workspace 就能執行的 MCP 伺服器預覽。它在您執行 sudo xcrun mcp-server enable 之前一直是關閉的,而且它讓您授權經過程式碼簽章的 agent,使用某個目錄樹內的專案。11

我的 Mac 用的是第二種配置。xcrun mcp-server status 回報權限已啟用、一個獲准的 agent,以及 11 個獲准的資料夾。2 獲准的 agent 就是 Claude Code 本身,以其程式碼簽章識別,所以我預期外掛所啟動的橋接程式也會落在同一項授權之下。這一點我沒有測試過。我也沒有看過,在一部您尚未核准任何 agent、而外掛是第一個啟動橋接程式的東西的 Mac 上,Xcode 會問些什麼。

Xcode 變了,什麼會跟著變

固定在 commit 上的 marketplace 條目,是在清單變更時才會變。Xcode 條目則是在 Xcode 變更時跟著變。我 Mac 上的三個 Xcode 建置版本,即 27.1 候選版本(27A9275)、27.2 beta 版(27B5019j)與 27.2(27B52),產生了三個目錄,分別有 15、15 與 16 個 skills。在 27.2 beta 版中,另外兩個建置版本叫做 app-resizability 的那個 skill 名為 uikit-app-modernization,而 xctrace 只存在於 27B52。2

其機制就是每個工作階段一次的那次執行。更新 Xcode,或選取另一份 Xcode,這道指令下次執行時就會印出不同的路徑;在外掛已安裝且已啟用的情況下,下次執行通常就是下一個工作階段的背景執行。載入參考文件說,Claude Code 接著會把結果當作新版本安裝,並在執行中的互動式工作階段裡重新載入它,同時顯示通知;若就地重新載入會讓工作階段的提示快取失效,則會提示您執行 /reload-plugins。5 您先前的接受仍然有效,因為指令字串沒有變。我沒有親眼看過那次重新載入發生,因為我沒有安裝這個外掛。

由此可以養成兩個習慣。Xcode 更新後,把那三行審查指令重新執行一次,就像讀更新日誌那樣,而且要從第一行開始,因為路徑會隨建置版本而變。另外,如果某道 agent 指令在 Xcode 更新後什麼都沒印出,請先找找有沒有一個不是您開的 Xcode(pgrep -lx Xcode)。在我的 Mac 上,其他的 xcrun agent 指令曾在一個隱藏的 Xcode 停在首次啟動畫面上等待時卡住,這個很可能的原因,我在那篇較長的文章裡追查過。xcrun agent plugin path 在我的任何一次執行中都沒有卡住。萬一它執行超過 60 秒的上限,說明文件說安裝或更新就會失敗。4

把 Xcode 接進 Claude Code 的三種方式

手動加入的橋接程式 --plugin-dir,單一工作階段 marketplace 安裝
指令 claude mcp add --transport stdio xcode -- xcrun mcpbridge claude --plugin-dir "$(xcrun agent plugin path --plugin-format claude)" claude plugin install xcode@claude-plugins-official
Apple 的 skills 無 Xcode 27.2 上 16 個 Xcode 27.2 上 16 個,依目錄內容判斷
橋接程式工具 這裡是 54 個,名稱為 mcp__xcode__<tool> 有手動加入的項目時,用的是該項目的工具;否則是外掛自己的伺服器,這一點我沒有量測 相同,依說明文件判斷
持續多久 直到您移除它為止 一個工作階段 直到您解除安裝為止;外掛啟用期間,指令通常在每個工作階段都會再執行一次
您核准的是什麼 您自己輸入的指令 您自己輸入的指令 清單顯示給您看的指令
本文是否量測 是 是 只有拒絕訊息

重點整理

給使用 Claude Code 的 iOS 開發者: - 先執行那三行審查指令。在 Xcode 27.2 上,它們顯示的是 16 個 skills、一個 MCP 伺服器,沒有 hooks。2 - 從您自己的終端機以 claude plugin install xcode@claude-plugins-official 安裝,並把它顯示的指令與清單中的那一道比對:xcrun agent plugin path --plugin-format claude。16 - 依 Claude Code 的估計,在工作階段援引任何 skill 之前,每個工作階段預計就會有約 4,463 個 token 的 skill 描述。2

給已經在用手動加入之橋接程式的開發者: - 這個外掛增加的是 Apple 的 skills。Claude Code 會把外掛的伺服器當作重複項目而抑制,而只要手動加入的項目還在,您的工具名稱就維持原樣。28 - 翻譯工具預期外掛存在:四個 String Catalog 與本地化工具,全都要 agent 啟用只有外掛才提供的兩個 skills 之一。2

給使用前會先審查工具的團隊: - 沒有任何 commit 把內容固定住。請針對每個 Xcode 建置版本審查目錄,並把 Xcode 更新當作外掛更新來看待。14 - --accept-command <sha256> 把以腳本進行的安裝,綁定到一道經過審查的指令與清單上,而 disableCommandPluginSources 會為整個組織關閉這個來源類型。46

給 marketplace 與外掛的作者: - command 來源讓使用者機器上的工具成了發佈者。Anthropic 的官方 marketplace 是逐一依名稱放行,把每一個都列為其 commit 固定規則的一項豁免。3

常見問題

Apple 給 Claude Code 的 Xcode 外掛是什麼?

它是 Anthropic 官方 Claude Code marketplace 裡一則名為 xcode 的條目,作者是「Apple Inc.」。這則條目不含任何外掛檔案。它存的是 xcrun agent plugin path --plugin-format claude 這道指令,而在我試過的三個 Xcode 27 建置版本上,指令執行時,Xcode 在我的 Mac 上寫出了外掛目錄。12

如何在 Claude Code 中安裝 Xcode 外掛?

在您自己的終端機執行 claude plugin install xcode@claude-plugins-official,並接受它顯示的指令。在工作階段內,依遭拒絕的安裝所印出的訊息,接受的地方是 /plugin 底下的外掛詳細資訊面板。2 agent 無法替您接受這道指令:Claude Code 在工作階段內會忽略 -y。6 我自己沒有完成安裝。在預設的使用者範圍下,這部機器上的每個專案都會有這個外掛,以及它常駐的 skill 描述。--scope local 讓它只在一個儲存庫中對您生效,--scope project 則把它記錄在 .claude/settings.json 中,而這個檔案是您會 commit 的。這樣會為在該儲存庫中工作的每個人啟用這個外掛,卻不會下載任何東西到他們的機器上,所以每位協作者仍要在每份 clone 中各執行一次安裝。接受是以使用者為單位的:每個人各自接受 Claude Code 顯示給他們看的指令。我自己那次嘗試用的是 --scope local。26 日後若要移除外掛,同一份參考文件給的是 claude plugin uninstall xcode@claude-plugins-official,如果當初安裝在預設的使用者範圍以外的地方,則要加上 --scope。6

這個外掛包含什麼?

在 Xcode 27.2(27B52)上:16 個 skills、一個 .mcp.json,其中宣告了一個執行 xcrun mcpbridge 的伺服器,以及一個有三個欄位的 manifest 檔。Claude Code 的清點結果回報零個 agents、零個 hooks 與零個 LSP 伺服器。2

如果我已經為 xcrun mcpbridge 執行過 claude mcp add,還需要這個外掛嗎?

為了 skills,您需要它。Claude Code 會把外掛的伺服器視為您那個伺服器的重複項目而抑制它,所以工具不會變。skills 則是新的,而且有四個橋接程式工具,也就是 String Catalog 與本地化那一組,會要 agent 先啟用外掛中的一個 skill。28

資料夾裡有 16 個 skills,為什麼 Claude Code 只列出 15 個?

translation-coordinator 設定了 user-invocable: false。Claude Code 會把這樣的 skill 從 / 選單中隱藏,但仍讓模型援引它。9 工作階段的 skill 清單顯示 15 個,模型則回報 16 個。2

這個外掛會用掉多少情境?

Claude Code 的 plugin details 估計,16 則 skill 描述在每個工作階段中約占 4,463 個 token。援引 skill 的成本更高,從 xctrace 的約 380 個 token,到 audit-xcode-security-settings 的約 21,700 個 token 不等。這項估計不含 MCP 伺服器的工具 schema。2

安裝之後,我的 Mac 上會執行什麼?

依說明文件與目錄內容判斷:已接受的指令,會在安裝時執行,之後在外掛啟用期間,通常每個工作階段在背景執行一次;以及 xcrun mcpbridge 伺服器程序,會在工作階段連上它時執行。這個目錄沒有 hooks。25 其餘的一切,若不是對橋接程式某個工具的呼叫,而這類呼叫受您的權限規則管轄,就是 skill 文字;安全性頁面說,skill 文字會以指示的形式進入 Claude 的情境,並影響 Claude 如何運用它已有的工具。7 唯一的那個 Python 腳本位於 audit-xcode-security-settings 中,只有在 agent 執行它時才會執行,而那也是一次受您的權限規則管轄的工具呼叫。

我需要哪個 Xcode?

xcrun agent plugin 在我 Mac 上的三個建置版本中都有回應:27.1 候選版本(27A9275)、一個 27.2 beta 版(27B5019j),以及 27.2(27B52)。我沒有試過更早的 Xcode,而 Apple 的 Xcode 27 各版版本說明都沒有提到這道指令。211

我量測了什麼

一部 Mac,2026 年 11 月 10 日與 11 日。請把這些數字當作一位開發者的觀察,而不是 Apple 或 Anthropic 的說明文件。2

  • Mac 與工具: macOS 27.0(26A428)、選取的是 Xcode 27.2(27B52)、Claude Code 2.1.322。Xcode 的 headless MCP 模式為開啟狀態。
  • 清單: anthropics/claude-plugins-official,commit 43fd1f9,這兩天的 head 都是它。
  • 不啟動工作階段的讀取: xcrun agent plugin path --plugin-format claude 所印出的目錄、claude --plugin-dir <dir> plugin details、claude plugin validate,以及依類型統計的檔案數。
  • 工作階段: 在一個空專案中的四個單一提示 claude -p 工作階段,全都沒有儲存。其中三個以 --plugin-dir 載入了外掛。另一個只有我手動加入的橋接程式,並向 Claude Code 的工具搜尋詢問橋接程式的工具。沒有任何工作階段呼叫過橋接程式工具。
  • 安裝: 在沒有終端機的 shell 中,依設計遭到拒絕。我從未接受過那道指令。
  • 工具描述: 那 54 個工具 schema,是一個互動式 Claude Code 工作階段透過工具搜尋,從我手動加入的橋接程式載入的樣子。該工作階段沒有呼叫任何工具。
  • 查無提及的檢查: Apple 的開發者新聞、版本發佈與新聞室這三個 feed、Apple 的 Xcode 頁面、Anthropic 的新聞頁面,以及 Claude 部落格,擷取於 11 月 11 日,並搜尋了有無提到這個外掛。
  • 未驗證: 互動式提示與詳細資訊面板;marketplace 安裝之後的任何事,包括背景執行、Xcode 更新後的重新載入,以及版本字串;在沒有手動加入項目的情況下執行的外掛自有伺服器;當外掛的橋接程式是 Xcode 見到的第一個 agent 時,Xcode 會問些什麼;工作階段量測方面,27B52 以外的任何 Xcode;headless 模式關閉的 Mac。

skills 本身、離開 Xcode 的第二條路(xcrun agent skills export),以及我在 Xcode 27.2 上遇到的卡住情況,都寫在 Xcode 27 推出可匯出到任何地方的 Agent Skills。兩個 MCP 伺服器讓 Claude Code 成為 iOS 建置系統 談的是手動加入的橋接程式,MCP 伺服器是新的攻擊面 則談伺服器的工具清單為何值得一讀。完整的設定方式見 iOS Agent 開發指南。

參考資料


  1. Anthropic,anthropics/claude-plugins-official,commit 43fd1f9 的 .claude-plugin/marketplace.json,讀取於 2026 年 11 月 10 日,並於 11 月 11 日再次讀取,當時該 commit 仍是 head。此為 xcode 條目與各項數量的來源:317 個外掛,其中 163 個採用 url 來源、99 個採用 git-subdir 來源,每一個都有 sha 欄位,54 個是儲存庫內的路徑,另有一個是 command 來源。Pull request #6338 新增了這則條目:開於 2026 年 9 月 30 日,於 2026 年 11 月 6 日 00:55 UTC 合併,在一個檔案中新增 15 行,其說明寫道,它把 #6259 的變更帶到儲存庫內部的一個分支上,好讓其檢查得以執行;另有一則 11 月 9 日的留言,問這次上架相較於既有的 Xcode MCP 伺服器增添了什麼。Pull request #6259「Add Xcode plugin (xcode)」:開於 2026 年 9 月 18 日 23:12 UTC,有一則自動回覆說這個儲存庫只接受 Anthropic 團隊成員的貢獻,23:31 UTC 有一則核准的審查,於 2026 年 11 月 6 日 00:58 UTC 以重複為由關閉。 ↩↩↩↩↩↩↩↩↩↩↩

  2. 作者的量測與檢查,2026 年 11 月 10 日與 11 日,機器與版本列於「我量測了什麼」一節。來源:xcrun agent plugin path、claude plugin install(加與不加 --json)、claude --plugin-dir <dir> plugin details、claude plugin validate、claude --help 與 xcrun mcp-server status 的輸出;外掛目錄的內容,包括每個 skill 的標頭,以及在每個 skill 檔案中對橋接程式 54 個工具名稱所做的搜尋;四個單一提示 Claude Code 工作階段的起始事件與偵錯記錄;一個互動式工作階段所收到的橋接程式 54 則工具描述;指令字串的 SHA-256;以及「查無提及的檢查」中所列頁面的存檔副本。數量是取自這些來源的檔案數、資料夾數與工具名稱數。token 數字是 Claude Code 的估計值。 ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Anthropic,anthropics/claude-plugins-official,pull request #7015「ci(validate-plugins): re-pin validator and allow the xcode command source」,於 2026 年 11 月 6 日開啟並合併(00:49 與 00:53 UTC)。此為以下內容的來源:驗證器在 Xcode 條目上的三處不合格、command-exempt: "xcode" 設定,以及工作流程中把每個獲豁免的名稱稱為一項需要 marketplace 營運團隊簽核之「listing decision」的註解。 ↩↩↩↩

  4. Anthropic,Claude Code 文件,Marketplace reference,「command plugin source」與「Copy mode and link mode」兩節,擷取於 2026 年 11 月 11 日。此為以下內容的來源:何時該用 command 來源及其 IDE 範例、單行輸出的約定、預設 60 秒的 timeout、安裝或更新會失敗的條件、link 模式就地載入目錄且版本由其路徑與頂層項目推得,以及 disableCommandPluginSources 設定。 ↩↩↩↩↩↩↩↩

  5. Anthropic,Claude Code 文件,Plugin loading reference 與 Host and maintain a marketplace,擷取於 2026 年 11 月 11 日。此為以下內容的來源:command 來源何時會再次執行(每次安裝或更新時,以及每個工作階段在背景執行一次)、其輸出變更時的重新載入、外掛的條目名稱與 manifest 檔名稱之間的差別,以及 Claude Code 只執行使用者所接受的那一道完全相同指令的規則。 ↩↩↩↩↩↩

  6. Anthropic,Claude Code 文件,Plugin commands reference,擷取於 2026 年 11 月 11 日:Run this command now? [y/N] 提示、-y 在 Claude Code 工作階段內遭忽略、沒有連接終端機時的拒絕,以及 --accept-command <sha256> 與 shownCommand 物件。版本與日期取自 Claude Code changelog:command 來源在 2.1.229(2026 年 8 月 12 日),--accept-command 在 2.1.271(2026 年 9 月 14 日)。各個安裝範圍涵蓋什麼,取自 Install and manage plugins,擷取於同一天。 ↩↩↩↩↩↩↩↩↩↩↩

  7. Anthropic,Claude Code 文件,Plugin security and trust,擷取於 2026 年 11 月 11 日。此為以下內容的來源:外掛能自行執行什麼、權限規則涵蓋的是 Claude 的工具呼叫而非外掛自己的程序、MCP 伺服器在沙箱之外執行,以及審查步驟,包括 claude --plugin-dir <plugin directory> plugin details <plugin name>。 ↩↩↩↩↩↩

  8. Anthropic,Claude Code 文件,Connect Claude Code to tools via MCP 的「Scope hierarchy and precedence」一節,以及 Add components to a plugin,擷取於 2026 年 11 月 11 日。此為以下內容的來源:優先順序、外掛依端點比對為重複項目,以及外掛的伺服器與工具的名稱。 ↩↩↩↩↩

  9. Anthropic,Claude Code 文件,Extend Claude with skills,擷取於 2026 年 11 月 11 日。此為以下內容的來源:user-invocable: false 會把 skill 從 / 選單中隱藏,而 Claude 仍可援引它;以及外掛的 skills 以 /plugin-name:skill-name 的形式劃入命名空間。 ↩↩↩

  10. Apple,Giving external agents access to Xcode,擷取於 2026 年 11 月 11 日,與我 11 月 10 日的副本相比沒有變動。此為以下內容的來源:「Allow External Agents to Use Xcode Tools」設定及其三個選項、外部 agent 連線時的提示,以及 claude mcp add --transport stdio xcode -- xcrun mcpbridge 作為文件所載的設定方式。在該日期,這個頁面並未提到外掛。 ↩↩↩

  11. Apple,Xcode 27 Release Notes,擷取於 2026 年 11 月 11 日。此為以下內容的來源:不需要開啟 Xcode workspace 就能執行的 MCP 伺服器預覽、sudo xcrun mcp-server enable,以及在某個目錄樹內對經過程式碼簽章的 agent 授予權限。我在這個頁面,以及 Xcode 27.1、27.2 與 27.3 beta 版的版本說明中搜尋了 xcrun agent,都沒有找到相符的結果。 ↩↩

  12. Anthropic,Claude Code 文件,Publish and distribute a plugin,擷取於 2026 年 11 月 11 日。此為官方 marketplace 不透過外掛名錄的入口網站接受提交一事的來源。 ↩

相關文章

Apple 開發中的 Hooks:拯救專案的模式

iOS agent 能取得開發者的簽署金鑰、建置工具與專案檔案。Hooks 限縮了爆炸半徑。四種實戰模式。

10 分鐘閱讀

Code with Claude SF 2026:Anthropic實際發布了什麼

Code with Claude SF 2026 回顧:Claude Code速率限制翻倍、SpaceX Colossus 1 合作案、10 個金融代理範本,以及 Vercept 的收購案。

9 分鐘閱讀