Apples Xcode-Plugin für Claude Code: Was es installiert

Aus dem Leitfaden: Claude Code Comprehensive Guide

Apples xcode-Plugin für Claude Code besteht aus 15 Zeilen im offiziellen Marketplace von Anthropic und aus keiner einzigen Datei: Der Eintrag speichert einen einzigen Befehl, xcrun agent plugin path --plugin-format claude, und das Xcode auf Ihrem eigenen Mac schreibt das Plugin, wenn dieser Befehl läuft.12 Der Eintrag wurde am 6. November 2026 (UTC) gemergt. An den Stellen, an denen ich nachgesehen habe, habe ich weder von Apple noch von Anthropic eine Ankündigung gefunden.2 Unter Xcode 27.2 gibt der Befehl ein Verzeichnis mit 160 Dateien aus: 16 Skills und ein MCP-Server-Eintrag, ohne Hooks und ohne Agenten. Das Inventar von Claude Code selbst schätzt, dass in jeder Session rund 4.463 Token hinzukommen, und der Bridge-Befehl, den dieser Server-Eintrag nennt, listete in einer meiner Sessions 54 Tools auf.2 Ich habe das Verzeichnis gelesen und es mit --plugin-dir in Wegwerf-Sessions geladen. Die Marketplace-Installation habe ich nicht akzeptiert, und jeder Abschnitt sagt, welche Aussagen woher stammen.

Kurzfassung

  • Der Marketplace-Eintrag enthält einen Befehl, kein Plugin. Jeder andere Eintrag, der Inhalte von außerhalb des Katalogs holt, trägt einen Commit-SHA. Bei xcode gibt es nichts zu pinnen, und der Name steht als einziger auf einer Ausnahmeliste im Validator des Marketplace.13
  • Installieren heißt, dass ein Mensch diesen Befehl akzeptiert. Claude Code gibt ihn aus und fragt, und das Flag, das die Frage überspringt, bewirkt nichts, wenn ein Agent die Installation aus einer Session heraus ausführt.6
  • Sie können vorher alles lesen. Der Befehl gibt das Verzeichnis aus, und claude --plugin-dir <dir> plugin details xcode-integration inventarisiert es, ohne eine Session zu starten.72
  • Unter Xcode 27.2 umfasst das Inventar 16 Skills, null Agenten, null Hooks und einen MCP-Server, der xcrun mcpbridge ausführt. Eine Session listet Ihnen 15 der Skills auf. Der Header des sechzehnten kennzeichnet ihn als nur für das Modell bestimmt.29
  • Wenn Sie die Bridge bereits mit claude mcp add hinzugefügt haben, unterdrückt Claude Code die Kopie des Plugins als Duplikat. Auf meinem Mac fügte das Plugin die Skills hinzu und sonst nichts.28
  • Akzeptiert wird die Befehlszeichenfolge. Was der Befehl ausgibt, richtet sich nach dem Xcode, das Sie ausgewählt haben, und keine Änderung am Katalog zeigt den Unterschied an.45

Was im Marketplace gelandet ist

Der gesamte Eintrag ist ein einziges JSON-Objekt. Hier ist er, wie er am 11. November 2026 in anthropics/claude-plugins-official stand, unverändert seit dem Merge: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/"
}

Der Katalog enthielt an diesem Tag 317 Plugins. Ich habe sie danach sortiert, woher ihr Inhalt kommt:1

Quelltyp Einträge An einen Commit-SHA gepinnt
Ein Git-Repository, per URL 163 Alle 163
Ein Unterverzeichnis eines Git-Repositorys 99 Alle 99
Ein Ordner im Marketplace-Repository 54 Entfällt; der Ordner liegt in der eigenen Historie des Katalogs
Ein Befehl, der auf Ihrem Rechner läuft 1 (xcode) Nein; es gibt nichts zu pinnen

Wie ungewöhnlich der Eintrag ist, zeigt die Aufzeichnung seines Wegs in den Katalog. Ein Mitwirkender eröffnete am 18. September 2026 den Pull Request #6259 mit dem Titel „Add Xcode plugin (xcode)“. Ein Bot antwortete, das Repository nehme Beiträge nur von Mitgliedern des Anthropic-Teams an, und ein Maintainer genehmigte die Änderung 19 Minuten nach der Eröffnung. Am 30. September brachte ein zweiter Pull Request, #6338, denselben Commit auf einen Branch innerhalb des Repositorys, damit dessen Checks laufen konnten.1

So, wie sie geschrieben waren, liefen die Checks nicht durch. Ein dritter Pull Request, #7015, hält fest, dass der Validator des Marketplace den Xcode-Eintrag an drei Stellen durchfallen ließ: Er hat keinen SHA, die Leerzeichen in seinem Befehl zählen als Shell-Metazeichen, und er hat keine URL zum Klonen. Die Korrektur stellte den Workflow auf eine Validator-Version mit einer neuen Eingabe command-exempt um und setzte diese Eingabe auf "xcode". Der Kommentar über der Zeile nennt jeden Namen auf der Liste eine „listing decision“, die die Freigabe durch Marketplace Operations braucht.3 Alle drei Pull Requests wurden am 6. November (UTC) innerhalb von neun Minuten geschlossen: #7015 wurde um 00:49 eröffnet und um 00:53 gemergt, #6338 wurde um 00:55 gemergt, und #6259 wurde um 00:58 als Duplikat geschlossen.13

Soweit ich feststellen konnte, hat sich keines der beiden Unternehmen dazu geäußert. Am 11. November habe ich Apples Feeds für Entwickler-News, Releases und den Newsroom, Apples Xcode-Seite, die News-Seite von Anthropic und den Claude-Blog geprüft und keine Erwähnung des Plugins gefunden. Apples Dokumentation für externe Agenten beschreibt weiterhin, wie man die Bridge von Hand mit claude mcp add hinzufügt, und erwähnt kein Plugin.210 Die Grundlage dafür, das Plugin als Apples Plugin zu bezeichnen, sind das Autorenfeld im Eintrag und die Tatsache, dass der Befehl in Xcode mitgeliefert wird.

Der Eintrag speichert einen Befehl, kein Plugin

Claude Code hat den Quelltyp command in Version 2.1.229 am 12. August 2026 eingeführt.6 Die Dokumentation beschreibt ihn als die Quelle für den Fall, dass ein Tool auf dem Rechner des Benutzers das Plugin-Verzeichnis erzeugt, und ihr Beispiel ist eine IDE, die ein Plugin für die vom Benutzer ausgewählte Toolchain rendert.4 Der Vertrag ist überschaubar:

  • Der Befehl gibt eine Zeile aus, den absoluten Pfad eines Plugin-Verzeichnisses, und endet mit dem Exit-Code 0. Das Standard-Zeitlimit beträgt 60 Sekunden, und der Xcode-Eintrag setzt kein eigenes.41
  • Claude Code führt den Befehl aus, wenn Sie das Plugin installieren oder aktualisieren, und bei einem aktivierten Plugin erneut einmal pro Session im Hintergrund, kurz nach dem Start der Session. Die Hintergrundläufe überspringt es, wenn CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC gesetzt ist.5
  • Im Modus link, den der Xcode-Eintrag verwendet, kopiert Claude Code nichts. Es verlinkt die Einträge auf der obersten Ebene des Verzeichnisses und lädt die Dateien dort, wo sie liegen. Die Version ergibt sich aus dem realen Pfad des Verzeichnisses und seinen Einträgen auf der obersten Ebene, nicht aus dem Inhalt der Dateien.4
  • Claude Code führt nur genau den Befehl aus, den ein Mensch akzeptiert hat. Ändert ein Marketplace später den Befehl oder dessen Modus, setzen die Hintergrundläufe aus, bis jeder Benutzer den neuen akzeptiert.5
  • Eine Organisation kann den gesamten Quelltyp mit der verwalteten Einstellung disableCommandPluginSources abschalten.4

Diese Regeln passen zu dem Verzeichnisnamen, den Xcode verwendet. Auf meinem Mac gibt der Befehl einen Pfad aus, der die Build-Nummer von Xcode trägt (Benutzername ersetzt):

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

Ein neuer Xcode-Build bedeutet einen neuen Pfad, und an einem neuen Pfad erkennt Claude Code, dass sich das Plugin geändert hat. War das Verzeichnis bereits gebaut und lief keine Xcode-App, kehrte der Befehl in drei gemessenen Läufen nach etwa 0,2 Sekunden zurück. Auf meinem Mac ist der Headless-MCP-Modus von Xcode eingeschaltet, die Vorschau, die sudo xcrun mcp-server enable startet und die ein späterer Abschnitt behandelt. Hier schrieb der erste Aufruf für jeden Xcode-Build das Verzeichnis über Xcode Service, einen Hintergrundhelfer im Xcode-Bundle, nicht über die Xcode-App. Gemessen habe ich nur die Zeit von Aufrufen gegen ein Verzeichnis, das bereits existierte, und mit ausgeschaltetem Modus habe ich den Befehl nicht ausgeführt.2

Dieselben Regeln ändern, was eine Prüfung abdecken kann. Die Sicherheitsdokumentation von Claude Code rät, den Quelltext eines Plugins vor der Installation zu lesen: die Homepage oder das Marketplace-Repository öffnen und dort das Verzeichnis des Plugins suchen.7 Bei xcode ist die Homepage Apples Produktseite für Xcode, und das Repository enthält die 15 Zeilen oben. Den Inhalt des Plugins gibt es erst, nachdem Ihr Xcode ihn geschrieben hat; die Prüfung findet also auf Ihrem Mac statt, gegen Ihren Xcode-Build.

Was Claude Code Ihnen zum Akzeptieren vorlegt

Weil die Installation ein Programm ausführt, gibt Claude Code den Befehl aus und fragt, bevor es ihn ausführt. In einem Terminal lautet die Frage Run this command now? [y/N].6 Ich habe die Installation unter Claude Code 2.1.322 aus einer Shell ohne angeschlossenes Terminal gestartet, und sie verweigerte die Ausführung, statt zu fragen. Die ersten vier Zeilen ihrer Ausgabe: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.

Drei Details dieses Schritts sind wichtig.

Ein Agent kann nicht für Sie akzeptieren. -y akzeptiert den angezeigten Befehl aus Ihrem eigenen Terminal heraus. Laut der CLI-Referenz ignoriert Claude Code das Flag, wenn die Installation innerhalb einer Session läuft, aus dem Bash-Tool oder aus einem Hook.6 Wenn Sie Claude Code bitten, das Plugin zu installieren, rechnen Sie damit, dass es Ihnen den Befehl zurückgibt.

Ein Skript kann genau einen Befehl akzeptieren. Mit --json meldet die verweigerte Installation ein Objekt shownCommand, und --accept-command <sha256>, hinzugekommen in 2.1.271, akzeptiert diesen Befehl und keinen anderen. Laut der Referenz ist das Flag aus dem eigenen Terminal zu übergeben, weil es innerhalb einer Claude-Code-Session wirkungslos bleibt; auch per Hash kann ein Agent also nicht akzeptieren. Die Dokumentation bindet den Hash an den Befehl, das Plugin und den Marketplace-Katalog und sagt, dass Claude Code den Befehl erneut anzeigt, wenn sich eines der drei geändert hat.6 Meines, als Auszug aus dem einzeiligen Ergebnis und neu formatiert: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"
}

Nehmen Sie den Wert aus Ihrem eigenen --json-Lauf. Der Wert oben weicht von einem einfachen SHA-256 der Befehlszeichenfolge ab, den ich zum Vergleich berechnet habe, und laut der Dokumentation zählt ein Hash nicht mehr, sobald sich der Katalog ändert. Einen aus diesem Beitrag kopierten Wert kann Claude Code zurückweisen.26

Eine Session hat ihren eigenen Weg. Der Rest der Verweigerungsmeldung nennt einen zweiten Ort zum Akzeptieren: die Detailansicht des Plugins unter /plugin. Für xcode habe ich diese Ansicht nicht geöffnet.2

Das Plugin lesen, bevor Sie es akzeptieren

Den Befehl, den der Marketplace ausführen will, können Sie selbst ausführen. Drei Zeilen zeigen Ihnen, was die Installation verlinken würde:

# 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"

Zeile 2 ist der dokumentierte Weg, aufzulisten, was Claude Code in einem Plugin-Verzeichnis findet: Sie liest die Dateien, ohne eine Session zu starten.7 Zu übergeben ist der Name aus dem Manifest des Plugins, xcode-integration. Mit dem Katalognamen xcode antwortet derselbe Befehl mit Plugin "xcode" not found.2 Unter Xcode 27.2 (27B52) und Claude Code 2.1.322 lautete der erste Teil des Inventars: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

Die Sicherheitsseite von Claude Code führt die Teile eines Plugins auf, die von sich aus Code ausführen, außerhalb der Berechtigungsregeln, die für die Tool-Aufrufe von Claude gelten: Hooks, Monitore, Mods sowie MCP- und LSP-Server-Prozesse.7 Apples Verzeichnis hat einen davon, den MCP-Server. Seine oberste Ebene enthält drei Einträge: den Manifest-Ordner, .mcp.json und skills/. Die 160 Dateien sind 157 Markdown-Dateien, zwei JSON-Dateien und ein Python-Skript. Das Skript umfasst 69 Zeilen und liegt im Skill audit-xcode-security-settings, es importiert nur argparse, json, re und pathlib, und seiner eigenen Beschreibung nach filtert es gespeicherte Ausgaben der Build-Einstellungen auf die sicherheitsrelevanten Einträge. Es läuft nur, wenn ein Agent es ausführt.2

claude plugin validate lässt das Verzeichnis mit einer Warnung durch: Das Manifest nennt keinen Autor. Derselbe Lauf wendet einen Teil der Einreichungsprüfungen für das claude.ai-Verzeichnis von Anthropic an, eine vom offiziellen Marketplace getrennte Liste. Diese Prüfungen melden zwei Probleme, derentwegen das claude.ai-Verzeichnis eine Einreichung ablehnen würde, kein README und keine LICENSE, und eine Warnung, kein Icon. Für diesen Eintrag sind sie ohne Belang: Laut dem Leitfaden zum Veröffentlichen nimmt der offizielle Marketplace keine Einreichungen über das Portal des claude.ai-Verzeichnisses an.212 Der Ordner nennt keine eigenen Lizenzbedingungen. Ich behandle ihn als Teil von Xcode.

Was eine Session bekommt: 16 Skills, 15 davon aufgelistet

Ich habe das Verzeichnis mit claude -p --plugin-dir "$DIR" in Ein-Prompt-Sessions in einem leeren Projekt geladen. Ein mit --plugin-dir geladenes Plugin besteht nur für diese eine Session und installiert nichts.2

Das Eröffnungsereignis der Session führte das Plugin als xcode-integration@inline, Version 1.0.0, und das Debug-Protokoll verzeichnete 16 daraus geladene Skills. Die Liste der Skills und Slash-Befehle, die die Session selbst führt, enthielt 15 davon. Der fehlende, translation-coordinator, setzt in seinem Header user-invocable: false, die Einstellung, die einen Skill aus dem /-Menü ausblendet und Claude weiterhin erlaubt, ihn aufzurufen.9 Als ich das Modell in derselben Session bat, die Skills auszugeben, die es hatte, gab es 16 Namen aus, darunter den Coordinator. Diese letzte Prüfung ist die eigene Auskunft des Modells.2

Jeder Name trägt das Präfix xcode-integration:, wie in /xcode-integration:swiftui-specialist. Der Katalog nennt das Plugin xcode, das Manifest nennt es xcode-integration, und laut der Referenz von Claude Code zum Laden von Plugins erfüllen die beiden Namen unterschiedliche Aufgaben: Der Katalogname ist der Installationsschlüssel, und der Manifestname ist der Namensraum für die Komponenten des Plugins.5 Das Präfix habe ich unter --plugin-dir beobachtet. Für eine Marketplace-Installation stütze ich mich auf diese Seite.

Die Schätzung von Claude Code, was jeder Skill kostet, aus dem Rest derselben Ausgabe, daneben die Angabe, ob die Dateien des Skills Tools der Bridge nennen:2

Skill Immer im Kontext Beim Aufruf Bridge-Tools, die er nennt
app-intents-specialist ~930 ~2.2k Keine
app-intents-whats-new-27 ~780 ~3.3k Keine
swiftui-specialist ~340 ~1.5k Keine
swiftui-whats-new-27 ~340 ~1.6k Keine
adopt-c-bounds-safety ~320 ~740 Keine
building-document-based-swiftui-applications ~310 ~900 Keine
app-resizability ~230 ~6.9k Keine
audit-xcode-security-settings ~210 ~21.7k 11
accessibility-voiceover-specialist ~180 ~6.9k 1
xctrace ~170 ~380 Keine
translation ~160 ~9k 4
translation-coordinator (nur für das Modell) ~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 Keine

Die Zahlen sind Token, und es sind die Schätzungen des Tools. Die Zeilen sind gerundet und ergeben zusammen rund 4.470; die Summe von Claude Code selbst sind die rund 4.463 von oben. Auf die beiden App-Intents-Skills entfallen davon rund 1.710, weil ihre Beschreibungen lang sind. Die Schätzung lässt die Tool-Schemas des MCP-Servers aus, die laut Inventar zur Laufzeit aufgelöst werden. Was jeder Skill vermittelt, steht in meinem längeren Beitrag über die Skills, die Xcode 27 mitliefert, und die beiden Wege, sie herauszubekommen.

Die MCP-Hälfte: ein Server-Eintrag, hier 54 Tools

Die .mcp.json deklariert einen stdio-Server namens xcode, dessen Befehl xcrun mcpbridge ist. Apples Dokumentation nennt denselben Befehl, um die Bridge von Hand einzubinden: claude mcp add --transport stdio xcode -- xcrun mcpbridge.10 Meine Claude-Code-Sessions hatten diesen Eintrag bereits. In einer Session mit dem von Hand hinzugefügten Eintrag und ohne das Plugin verband sich die Bridge in 339 Millisekunden, wies sich als xcode-tools in Version 25464 aus und listete 54 Tools auf.2 Ein früherer Beitrag von mir nannte für die Bridge in Xcode 26.3 eine Zahl von 20 Tools, die jener Beitrag auf meine damaligen Tests und auf eine dort verlinkte Anleitung eines Dritten stützt.

Ich habe die 54 nach Namen gruppiert:2

Bereich Tools Beispiele
Projektdateien und Projektstruktur 15 XcodeRead, XcodeWrite, XcodeUpdate, XcodeRM, XcodeNewTarget
Build, Ausführung und Diagnose 11 BuildProject, RunProject, GetBuildLog, XcodeRefreshCodeIssuesInFile
Build-Einstellungen, Flags, Entitlements, Info.plist 6 GetTargetBuildSettings, UpdateTargetBuildSetting, AddEntitlement
Tests 5 GetTestList, RunSomeTests, RunAllTests
Interaktion mit Geräten und Simulatoren 5 DeviceInteractionStartSession, DeviceInteractionSynthesize
String Catalogs und Lokalisierung 4 LocalizationPlanner, StringCatalogEdit
Berichte zu Abstürzen und zur Performance im Feld 4 GetTopCrashIssues, GetFieldPerformanceIssueLogs
Previews, Snippets und der Debugger 3 RenderPreview, RunCodeSnippet, InvokeDebuggerCommand
Dokumentation 1 DocumentationSearch

Die Liste reicht weiter, als die Marketplace-Beschreibung vermuten lässt. XcodeRM entfernt Dateien aus dem Projekt und legt die zugrunde liegenden Dateien standardmäßig in den Papierkorb. InvokeDebuggerCommand sendet einen lldb-Befehl an die aktive Debug-Session von Xcode. GetTopCrashIssues ruft nach eigener Beschreibung Absturzsignaturen für Ihre App aus Apples Dienst für Absturzberichte ab.2 Jedes davon ist ein Tool-Aufruf; die Berechtigungsregeln von Claude Code gelten also dafür. Der Server-Prozess selbst läuft außerhalb der Sandbox, wie der MCP-Server jedes Plugins.7

Die Skills und die Tools verweisen aufeinander. Sieben der 16 Skills nennen Bridge-Tools beim bloßen Namen. Einer der sieben, audit-xcode-security-settings, gibt außerdem die generische Form mit Präfix an, mcp__<server>__XcodeGlob, sagt, dass der Name des Servers je nach Umgebung variiert, und weist den Agenten an, keinen fest einzutragen. Die Abhängigkeit besteht auch in der Gegenrichtung. Die Beschreibungen aller vier Tools für String Catalogs und Lokalisierung weisen den Agenten an, vor dem Aufruf des Tools einen Skill des Plugins zu aktivieren: LocalizationPlanner und StringCatalogRead nennen xcode-integration:translation-coordinator, und StringCatalogContext und StringCatalogEdit nennen xcode-integration:translation. Die übrigen 50 Beschreibungen nennen keinen Skill.2 Eine Session mit der von Hand hinzugefügten Bridge und ohne Plugin hat alle vier Tools und keinen der beiden Skills. Ein Kommentator fragte im gemergten Pull Request, was der Eintrag bringe, da der MCP-Server von Xcode bereits funktioniere.1 Auf meinem Mac lautet die Antwort: die Skills, und vier der eigenen Tools der Bridge verlangen zwei davon namentlich.

Wenn Sie die Bridge bereits von Hand hinzugefügt haben

Claude Code ordnet MCP-Server-Definitionen nach Rang: zuerst die Geltungsbereiche lokal, Projekt und Benutzer, dann Server, die Plugins bereitstellen, dann claude.ai-Konnektoren. Ein Server, den eine Organisation über verwaltete Einstellungen bereitstellt, steht im Rang über ihnen allen. Den Server eines Plugins gleicht Claude Code anhand des Endpunkts mit den anderen ab; ein Plugin-Server mit demselben Befehl wie einer, den Sie konfiguriert haben, gilt also als Duplikat, und Claude Code verbindet sich einmal, mit Ihrer Definition.8

Meine Sessions zeigten genau das. War das Plugin neben meinem xcode-Eintrag im Benutzer-Geltungsbereich geladen, enthielt die Serverliste der Session xcode mit der Quelle user und keinen Eintrag für den Server des Plugins, und das Debug-Protokoll nannte den Grund (Zeitstempel und Log-Level entfernt):2

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

Die praktische Wirkung liegt in den Namen. Solange der von Hand hinzugefügte Eintrag bleibt, behalten die Tools die Namen mcp__xcode__BuildProject, mcp__xcode__XcodeRead und so weiter. Die Dokumentation gibt dem Server eines Plugins den Namen plugin:<plugin>:<server> und seinen Tools die Form mcp__plugin_<plugin>_<server>__<tool> und sagt, dass in Berechtigungsregeln und Hook-Matchern die Tool-Form zu verwenden ist.8 Nach dieser Regel würde eine Session mit dem Plugin und ohne von Hand hinzugefügten Eintrag dasselbe Tool mcp__plugin_xcode-integration_xcode__BuildProject nennen. Diese Anordnung habe ich nicht gemessen, weil meine Konfiguration den von Hand hinzugefügten Eintrag enthält. Wenn Sie Allow-Regeln oder Hooks haben, die für mcp__xcode__-Namen geschrieben sind, kommt es nach der Benennungsregel der Dokumentation einer Umbenennung gleich, den von Hand hinzugefügten Eintrag nach der Installation des Plugins zu entfernen.

Zwei Berechtigungsebenen, und die Installation berührt eine davon

Mit dem Akzeptieren des Befehls ist die Seite von Claude Code geklärt. Xcode behält seine eigene Schranke, und nichts im Plugin-Verzeichnis kann sie öffnen: Das Verzeichnis hat keine Hooks und keinen Installationsschritt.

Apple dokumentiert die Schranke für ein laufendes Xcode. In den Intelligence-Einstellungen von Xcode bietet unter Model Context Protocol ein Einblendmenü namens „Allow External Agents to Use Xcode Tools“ die Optionen Always, „While Xcode is Open“ und Never, und Xcode macht Sie mit einem Hinweis darauf aufmerksam, wenn sich ein externer Agent verbindet.10 Die Release Notes von Xcode 27 beschreiben eine zweite Anordnung, die Vorschau eines MCP-Servers, der ohne geöffneten Workspace läuft. Sie bleibt ausgeschaltet, bis Sie sudo xcrun mcp-server enable ausführen, und mit ihr können Sie codesignierten Agenten die Berechtigung erteilen, Projekte innerhalb eines Verzeichnisbaums zu nutzen.11

Auf meinem Mac läuft die zweite Anordnung. xcrun mcp-server status meldet die Berechtigung als aktiviert, einen zugelassenen Agenten und 11 zugelassene Ordner.2 Der zugelassene Agent ist Claude Code selbst, identifiziert durch seine Codesignatur; ich erwarte deshalb, dass eine Bridge, die das Plugin startet, unter dieselbe Freigabe fällt. Getestet habe ich das nicht. Ich habe auch nicht gesehen, was Xcode auf einem Mac fragt, auf dem Sie keinen Agenten zugelassen haben und das Plugin als Erstes die Bridge startet.

Was sich ändert, wenn sich Xcode ändert

Ein gepinnter Marketplace-Eintrag ändert sich, wenn sich der Katalog ändert. Der Xcode-Eintrag ändert sich, wenn Xcode sich ändert. Drei Xcode-Builds auf meinem Mac, der Release Candidate von 27.1 (27A9275), die 27.2-Beta (27B5019j) und 27.2 (27B52), erzeugten drei Verzeichnisse mit 15, 15 und 16 Skills. In der 27.2-Beta heißt der Skill, den die beiden anderen Builds app-resizability nennen, uikit-app-modernization, und xctrace gibt es nur in 27B52.2

Der Mechanismus dahinter ist der Lauf, der einmal pro Session stattfindet. Wenn Sie Xcode aktualisieren oder eine andere Kopie auswählen, gibt der Befehl beim nächsten Lauf einen anderen Pfad aus; bei einem installierten und aktivierten Plugin ist das normalerweise der Hintergrundlauf der nächsten Session. Laut der Referenz zum Laden installiert Claude Code das Ergebnis dann als neue Version und lädt es in der laufenden interaktiven Session mit einer Benachrichtigung neu, oder es fordert Sie auf, /reload-plugins auszuführen, wenn das Neuladen an Ort und Stelle den Prompt-Cache der Session ungültig machen würde.5 Was Sie zuvor akzeptiert haben, gilt weiter, weil die Befehlszeichenfolge dieselbe ist. Dieses Neuladen habe ich nicht beobachtet, da ich das Plugin nicht installiert habe.

Daraus folgen zwei Gewohnheiten. Führen Sie die drei Prüfzeilen nach einem Xcode-Update erneut aus, so wie Sie ein Changelog lesen würden, und beginnen Sie mit der ersten Zeile, weil sich der Pfad mit dem Build ändert. Und wenn ein Agent-Befehl nach einem Xcode-Update nichts ausgibt, suchen Sie zuerst nach einem Xcode, das Sie nicht geöffnet haben (pgrep -lx Xcode). Auf meinem Mac blieben andere xcrun agent-Befehle hängen, während ein verstecktes Xcode auf seinem Erststart-Bildschirm wartete, die wahrscheinliche Ursache, der ich in dem längeren Beitrag nachgegangen bin. xcrun agent plugin path blieb in keinem meiner Läufe hängen. Sollte der Befehl einmal über das 60-Sekunden-Limit hinaus laufen, schlägt laut der Dokumentation die Installation oder Aktualisierung fehl.4

Drei Wege, Xcode in Claude Code einzubinden

Von Hand hinzugefügte Bridge --plugin-dir, eine Session Marketplace-Installation
Befehl 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
Apples Skills Keine 16 unter Xcode 27.2 16 unter Xcode 27.2, dem Verzeichnis nach
Bridge-Tools 54 hier, mit Namen der Form mcp__xcode__<tool> Die des von Hand hinzugefügten Eintrags, wenn es einen gibt; sonst der eigene Server des Plugins, was ich nicht gemessen habe Dasselbe, der Dokumentation nach
Besteht Bis Sie sie entfernen Eine Session lang Bis Sie es deinstallieren; solange das Plugin aktiviert ist, läuft der Befehl normalerweise in jeder Session erneut
Was Sie genehmigen Einen Befehl, den Sie eingegeben haben Einen Befehl, den Sie eingegeben haben Einen Befehl, den der Katalog Ihnen zeigt
Für diesen Beitrag gemessen Ja Ja Nur die Verweigerungsmeldung

Wichtigste Erkenntnisse

Für iOS-Entwickler, die Claude Code nutzen: - Führen Sie zuerst die drei Prüfzeilen aus. Unter Xcode 27.2 zeigen sie 16 Skills, einen MCP-Server und keine Hooks.2 - Installieren Sie aus Ihrem eigenen Terminal mit claude plugin install xcode@claude-plugins-official, und vergleichen Sie den angezeigten Befehl mit dem im Katalog: xcrun agent plugin path --plugin-format claude.16 - Rechnen Sie nach der Schätzung von Claude Code mit rund 4.463 Token an Skill-Beschreibungen in jeder Session, noch bevor eine Session einen Skill aufruft.2

Für Entwickler, die bereits die von Hand hinzugefügte Bridge betreiben: - Das Plugin fügt Apples Skills hinzu. Claude Code unterdrückt den Server des Plugins als Duplikat, und Ihre Tool-Namen bleiben, wie sie sind, solange der von Hand hinzugefügte Eintrag bleibt.28 - Die Übersetzungs-Tools erwarten das Plugin: Alle vier Tools für String Catalogs und Lokalisierung weisen den Agenten an, einen von zwei Skills zu aktivieren, die nur das Plugin bereitstellt.2

Für Teams, die Tools vor dem Einsatz prüfen: - Kein Commit pinnt den Inhalt. Prüfen Sie das Verzeichnis für jeden Xcode-Build, und behandeln Sie ein Xcode-Update als Plugin-Update.14 - --accept-command <sha256> bindet eine geskriptete Installation an einen einzigen geprüften Befehl und Katalog, und disableCommandPluginSources schaltet den Quelltyp für eine Organisation ab.46

Für Autoren von Marketplaces und Plugins: - Eine command-Quelle macht das Tool auf dem Rechner des Benutzers zum Herausgeber. Der offizielle Marketplace von Anthropic lässt jede einzelne namentlich zu, als aufgeführte Ausnahme von seiner Pinning-Regel.3

Häufige Fragen

Was ist Apples Xcode-Plugin für Claude Code?

Ein Eintrag namens xcode im offiziellen Claude-Code-Marketplace von Anthropic, mit „Apple Inc.“ als Autor. Der Eintrag enthält keine Plugin-Dateien. Er speichert den Befehl xcrun agent plugin path --plugin-format claude, und auf den drei Xcode-27-Builds, die ich ausprobiert habe, schrieb Xcode das Plugin-Verzeichnis auf meinem Mac, wenn der Befehl lief.12

Wie installiere ich das Xcode-Plugin in Claude Code?

Führen Sie claude plugin install xcode@claude-plugins-official in Ihrem eigenen Terminal aus und akzeptieren Sie den angezeigten Befehl. Innerhalb einer Session ist der Ort zum Akzeptieren die Detailansicht des Plugins unter /plugin, der Meldung nach, die die verweigerte Installation ausgab.2 Ein Agent kann den Befehl nicht für Sie akzeptieren: Claude Code ignoriert -y innerhalb einer Session.6 Ich selbst habe die Installation nicht abgeschlossen. Im Standard-Geltungsbereich, dem des Benutzers, erhalten Sie das Plugin und seine ständig geladenen Skill-Beschreibungen in jedem Projekt auf dem Rechner. --scope local beschränkt es auf Sie in einem einzigen Repository, und --scope project trägt es in .claude/settings.json ein, eine Datei, die Sie committen. Das aktiviert das Plugin für alle, die in dem Repository arbeiten, und lädt nichts auf deren Rechner herunter, sodass jeder, der an dem Repository mitarbeitet, die Installation weiterhin einmal pro Klon ausführt. Akzeptiert wird pro Benutzer: Jede Person akzeptiert den Befehl, den Claude Code ihr anzeigt. Mein eigener Versuch nutzte --scope local.26 Um das Plugin später zu entfernen, nennt dieselbe Referenz claude plugin uninstall xcode@claude-plugins-official, mit --scope, wenn Sie in einem anderen Geltungsbereich als dem standardmäßigen des Benutzers installiert haben.6

Was enthält das Plugin?

Unter Xcode 27.2 (27B52): 16 Skills, eine .mcp.json, die einen Server deklariert, der xcrun mcpbridge ausführt, und ein Manifest mit drei Feldern. Das Inventar von Claude Code meldet null Agenten, null Hooks und null LSP-Server.2

Brauche ich das Plugin, wenn ich claude mcp add für xcrun mcpbridge bereits ausgeführt habe?

Sie brauchen es für die Skills. Claude Code behandelt den Server des Plugins als Duplikat Ihres eigenen und unterdrückt ihn; die Tools ändern sich also nicht. Die Skills sind neu, und vier Bridge-Tools, die Gruppe für String Catalogs und Lokalisierung, weisen den Agenten an, zuerst einen Skill aus dem Plugin zu aktivieren.28

Warum listet Claude Code 15 Skills auf, wenn der Ordner 16 enthält?

translation-coordinator setzt user-invocable: false. Claude Code blendet einen solchen Skill aus dem /-Menü aus und lässt das Modell ihn weiterhin aufrufen.9 Die Skill-Liste der Session zeigte 15, und das Modell meldete 16.2

Wie viel Kontext verbraucht das Plugin?

plugin details von Claude Code schätzt für die 16 Skill-Beschreibungen rund 4.463 Token in jeder Session. Der Aufruf eines Skills kostet mehr, von rund 380 Token für xctrace bis rund 21.700 für audit-xcode-security-settings. Die Schätzung schließt die Tool-Schemas des MCP-Servers nicht ein.2

Was läuft auf meinem Mac, nachdem ich es installiert habe?

Der Dokumentation und dem Verzeichnis nach: der akzeptierte Befehl, bei der Installation und, solange das Plugin aktiviert ist, normalerweise einmal pro Session im Hintergrund, und der Server-Prozess xcrun mcpbridge, wenn sich eine Session mit ihm verbindet. Das Verzeichnis hat keine Hooks.25 Alles andere ist ein Aufruf eines der Tools der Bridge, den Ihre Berechtigungsregeln abdecken, oder Skill-Text, der laut der Sicherheitsseite als Anweisungen in den Kontext von Claude gelangt und prägt, was Claude mit den Tools tut, die es bereits hat.7 Das eine Python-Skript, in audit-xcode-security-settings, läuft nur, wenn ein Agent es ausführt, und auch das ist ein Tool-Aufruf, den Ihre Berechtigungsregeln abdecken.

Welches Xcode brauche ich?

xcrun agent plugin antwortete in allen drei Builds auf meinem Mac: dem Release Candidate von 27.1 (27A9275), einer 27.2-Beta (27B5019j) und 27.2 (27B52). Ein früheres Xcode habe ich nicht ausprobiert, und keine von Apples Release Notes zu Xcode 27 erwähnt den Befehl.211

Was ich gemessen habe

Ein einziger Mac, 10. und 11. November 2026. Behandeln Sie die Zahlen als die Beobachtungen eines einzelnen Entwicklers, nicht als Dokumentation von Apple oder Anthropic.2

  • Mac und Tools: macOS 27.0 (26A428), Xcode 27.2 (27B52) ausgewählt, Claude Code 2.1.322. Der Headless-MCP-Modus von Xcode war eingeschaltet.
  • Katalog: anthropics/claude-plugins-official bei Commit 43fd1f9, dem Head an beiden Tagen.
  • Ohne Session gelesen: das Verzeichnis, das xcrun agent plugin path --plugin-format claude ausgibt, claude --plugin-dir <dir> plugin details, claude plugin validate und eine Zählung der Dateien nach Typ.
  • Sessions: vier Ein-Prompt-Sessions mit claude -p in einem leeren Projekt, keine davon gespeichert. Drei luden das Plugin mit --plugin-dir. Eine hatte nur meine von Hand hinzugefügte Bridge und fragte die Tool-Suche von Claude Code nach den Tools der Bridge. Keine Session rief ein Bridge-Tool auf.
  • Installation: in einer Shell ohne Terminal wie vorgesehen verweigert. Ich habe den Befehl nie akzeptiert.
  • Tool-Beschreibungen: die 54 Tool-Schemas, wie eine interaktive Claude-Code-Session sie über die Tool-Suche aus meiner von Hand hinzugefügten Bridge lud. Die Session rief kein Tool auf.
  • Abwesenheitsprüfungen: Apples Feeds für Entwickler-News, Releases und den Newsroom, Apples Xcode-Seite, die News-Seite von Anthropic und der Claude-Blog, abgerufen am 11. November und nach dem Plugin durchsucht.
  • Nicht verifiziert: die interaktive Abfrage und die Detailansicht; alles nach einer Marketplace-Installation, einschließlich des Hintergrundlaufs, des Neuladens nach einem Xcode-Update und der Versionszeichenfolge; der eigene Server des Plugins im Betrieb ohne von Hand hinzugefügten Eintrag; was Xcode fragt, wenn die Bridge des Plugins der erste Agent ist, den es sieht; jedes andere Xcode als 27B52 bei den Session-Messungen; ein Mac mit ausgeschaltetem Headless-Modus.

Die Skills selbst, der zweite Weg aus Xcode heraus (xcrun agent skills export) und der Hänger, auf den ich unter Xcode 27.2 gestoßen bin, stehen in Xcode 27 liefert Agent Skills, die Sie überallhin exportieren können. Wie zwei MCP-Server Claude Code in ein iOS-Build-System verwandelten behandelt die von Hand hinzugefügte Bridge, und MCP-Server sind die neue Angriffsfläche behandelt, warum die Tool-Liste eines Servers eine Lektüre verdient. Die Einrichtung als Ganzes steht im Leitfaden zur iOS-Entwicklung mit Agenten.

Quellen


  1. Anthropic, anthropics/claude-plugins-official, .claude-plugin/marketplace.json bei Commit 43fd1f9, gelesen am 10. November 2026 und erneut am 11. November, als dieser Commit noch der Head war. Quelle für den xcode-Eintrag und für die Zahlen: 317 Plugins, von denen 163 eine url-Quelle und 99 eine git-subdir-Quelle haben, jedes davon mit einem sha-Feld, 54 Pfade innerhalb des Repositorys sind und eines eine command-Quelle ist. Pull Request #6338 fügte den Eintrag hinzu: eröffnet am 30. September 2026, gemergt am 6. November 2026 um 00:55 UTC, 15 Zeilen in einer Datei, mit einer Beschreibung, der zufolge er die Änderung aus #6259 auf einen Branch innerhalb des Repositorys bringt, damit dessen Checks laufen können, und mit einem Kommentar vom 9. November, der fragt, was der Eintrag gegenüber dem bestehenden MCP-Server von Xcode bringt. Pull Request #6259, „Add Xcode plugin (xcode)“: eröffnet am 18. September 2026 um 23:12 UTC, eine automatische Antwort, der zufolge das Repository Beiträge nur von Mitgliedern des Anthropic-Teams annimmt, ein genehmigendes Review um 23:31 UTC, als Duplikat geschlossen am 6. November 2026 um 00:58 UTC. ↩↩↩↩↩↩↩↩↩↩↩

  2. Messungen und Prüfungen des Autors, 10. und 11. November 2026, auf dem Rechner und mit den Versionen, die unter „Was ich gemessen habe“ aufgeführt sind. Quellen: die Ausgabe von xcrun agent plugin path, claude plugin install (mit und ohne --json), claude --plugin-dir <dir> plugin details, claude plugin validate, claude --help und xcrun mcp-server status; der Inhalt des Plugin-Verzeichnisses, einschließlich des Headers jedes Skills und einer Suche in jeder Skill-Datei nach den 54 Tool-Namen der Bridge; das Eröffnungsereignis und das Debug-Protokoll von vier Ein-Prompt-Sessions von Claude Code; die 54 Tool-Beschreibungen der Bridge, wie eine interaktive Session sie erhielt; ein SHA-256 der Befehlszeichenfolge; und gespeicherte Kopien der Seiten, die unter „Abwesenheitsprüfungen“ genannt sind. Zahlen sind Zählungen von Dateien, Ordnern und Tool-Namen aus diesen Quellen. Token-Angaben sind Schätzungen von Claude Code. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Anthropic, anthropics/claude-plugins-official, Pull Request #7015, „ci(validate-plugins): re-pin validator and allow the xcode command source“, eröffnet und gemergt am 6. November 2026 (00:49 und 00:53 UTC). Quelle für die drei Stellen, an denen der Validator den Xcode-Eintrag durchfallen ließ, die Einstellung command-exempt: "xcode" und den Workflow-Kommentar, der jeden ausgenommenen Namen eine „listing decision“ nennt, die die Freigabe durch Marketplace Operations erfordert. ↩↩↩↩

  4. Anthropic, Dokumentation zu Claude Code, Marketplace reference, Abschnitte „command plugin source“ und „Copy mode and link mode“, abgerufen am 11. November 2026. Quelle dafür, wann eine command-Quelle zu verwenden ist, und für ihr IDE-Beispiel, für den Ausgabevertrag von einer Zeile, das standardmäßige timeout von 60 Sekunden, die Bedingungen, unter denen eine Installation oder Aktualisierung fehlschlägt, den Link-Modus, der das Verzeichnis an Ort und Stelle lädt, mit einer Version, die aus seinem Pfad und seinen Einträgen auf der obersten Ebene abgeleitet ist, und die Einstellung disableCommandPluginSources. ↩↩↩↩↩↩↩↩

  5. Anthropic, Dokumentation zu Claude Code, Plugin loading reference und Host and maintain a marketplace, abgerufen am 11. November 2026. Quelle dafür, wann eine Command-Quelle erneut läuft (bei jeder Installation oder Aktualisierung und einmal pro Session im Hintergrund), für das Neuladen, wenn sich ihre Ausgabe ändert, für den Unterschied zwischen dem Eintragsnamen eines Plugins und seinem Manifestnamen und für die Regel, dass Claude Code nur genau den Befehl ausführt, den ein Benutzer akzeptiert hat. ↩↩↩↩↩↩

  6. Anthropic, Dokumentation zu Claude Code, Plugin commands reference, abgerufen am 11. November 2026: die Abfrage Run this command now? [y/N], dass -y innerhalb einer Claude-Code-Session ignoriert wird, die Verweigerung, wenn kein Terminal angeschlossen ist, und --accept-command <sha256> mit dem Objekt shownCommand. Versionen und Datumsangaben aus dem Changelog von Claude Code: command-Quellen in 2.1.229 (12. August 2026) und --accept-command in 2.1.271 (14. September 2026). Was jeder Geltungsbereich einer Installation abdeckt, stammt aus Install and manage plugins, abgerufen am selben Tag. ↩↩↩↩↩↩↩↩↩↩↩

  7. Anthropic, Dokumentation zu Claude Code, Plugin security and trust, abgerufen am 11. November 2026. Quelle dafür, was ein Plugin von sich aus ausführen kann, dafür, dass Berechtigungsregeln die Tool-Aufrufe von Claude abdecken und nicht die eigenen Prozesse eines Plugins, dafür, dass MCP-Server außerhalb der Sandbox laufen, und für die Prüfschritte, einschließlich claude --plugin-dir <plugin directory> plugin details <plugin name>. ↩↩↩↩↩↩

  8. Anthropic, Dokumentation zu Claude Code, Connect Claude Code to tools via MCP, Abschnitt „Scope hierarchy and precedence“, und Add components to a plugin, abgerufen am 11. November 2026. Quelle für die Rangfolge, dafür, dass Plugins anhand des Endpunkts als Duplikate erkannt werden, und für die Namen des Servers und der Tools eines Plugins. ↩↩↩↩↩

  9. Anthropic, Dokumentation zu Claude Code, Extend Claude with skills, abgerufen am 11. November 2026. Quelle dafür, dass user-invocable: false einen Skill aus dem /-Menü ausblendet, während Claude ihn weiterhin aufrufen kann, und dafür, dass Plugin-Skills den Namensraum /plugin-name:skill-name erhalten. ↩↩↩

  10. Apple, Giving external agents access to Xcode, abgerufen am 11. November 2026 und unverändert gegenüber meiner Kopie vom 10. November. Quelle für die Einstellung „Allow External Agents to Use Xcode Tools“ und ihre drei Optionen, den Hinweis, wenn sich ein externer Agent verbindet, und claude mcp add --transport stdio xcode -- xcrun mcpbridge als dokumentierte Einrichtung. Die Seite erwähnte an diesem Datum kein Plugin. ↩↩↩

  11. Apple, Xcode 27 Release Notes, abgerufen am 11. November 2026. Quelle für die Vorschau eines MCP-Servers, der ohne geöffneten Xcode-Workspace läuft, für sudo xcrun mcp-server enable und für Berechtigungsfreigaben für codesignierte Agenten innerhalb eines Verzeichnisbaums. Ich habe diese Seite und die Release Notes zu Xcode 27.1, 27.2 und der 27.3-Beta nach xcrun agent durchsucht und keinen Treffer gefunden. ↩↩

  12. Anthropic, Dokumentation zu Claude Code, Publish and distribute a plugin, abgerufen am 11. November 2026. Quelle dafür, dass der offizielle Marketplace keine Einreichungen über das Portal des Plugin-Verzeichnisses annimmt. ↩

Verwandte Beiträge

Hooks für die Apple-Entwicklung: Muster, die das Projekt retten

Ein iOS-Agent hat Zugriff auf die Signatur-Schlüssel, Builds und Projektdateien des Entwicklers. Hooks begrenzen den Wir…

16 Min. Lesezeit

Code with Claude SF 2026: Was Anthropic tatsächlich ausgeliefert hat

Rückblick auf Code with Claude SF 2026: verdoppelte Claude Code-Ratenlimits, SpaceX-Colossus-1-Deal, 10 Finanzagenten-Vo…

12 Min. Lesezeit