Apple의 Claude Code용 Xcode 플러그인: 무엇을 설치하는가
Claude Code용 Apple의 xcode 플러그인은 Anthropic의 공식 마켓플레이스에 있는 15줄이며, 파일은 없습니다. 이 항목은 xcrun agent plugin path --plugin-format claude라는 명령어 하나를 저장하고, 그 명령어가 실행될 때 사용자의 Mac에 있는 Xcode가 플러그인을 기록합니다.12 이 항목은 2026년 11월 6일(UTC)에 병합되었습니다. 제가 확인한 곳에서는 Apple이나 Anthropic의 발표를 찾지 못했습니다.2 Xcode 27.2에서 이 명령어는 파일 160개가 담긴 디렉터리를 출력합니다. 스킬 16개와 MCP 서버 항목 하나이며, 훅과 에이전트는 없습니다. Claude Code 자체의 인벤토리는 모든 세션에 약 4,463토큰이 추가된다고 추정하며, 그 서버 항목이 지정하는 브리지 명령어는 제 세션 하나에서 도구 54개를 나열했습니다.2 저는 그 디렉터리를 읽었고 --plugin-dir로 일회용 세션에 로드했습니다. 마켓플레이스 설치는 수락하지 않았으며, 어떤 진술이 어디에서 나왔는지는 각 섹션에서 밝힙니다.
요약
- 마켓플레이스 항목에 들어 있는 것은 플러그인이 아니라 명령어입니다. 카탈로그 밖에서 콘텐츠를 가져오는 다른 항목에는 모두 커밋 SHA가 붙어 있습니다.
xcode에는 고정할 대상이 없으며, 마켓플레이스 검증기의 예외 목록에 올라 있는 단 하나의 이름입니다.13 - 설치란 사람이 그 명령어를 수락하는 일입니다. Claude Code는 명령어를 출력하고 묻는데, 그 질문을 건너뛰는 플래그는 에이전트가 세션 안에서 설치를 실행할 때는 아무 효과가 없습니다.6
- 모든 것을 먼저 읽을 수 있습니다. 이 명령어는 디렉터리를 출력하고,
claude --plugin-dir <dir> plugin details xcode-integration은 세션을 시작하지 않고 그 인벤토리를 보여 줍니다.72 - Xcode 27.2에서 인벤토리는 스킬 16개, 에이전트 0개, 훅 0개, 그리고
xcrun mcpbridge를 실행하는 MCP 서버 하나입니다. 세션은 그중 스킬 15개를 사용자에게 나열합니다. 열여섯 번째 스킬은 헤더에 모델 전용으로 표시되어 있습니다.29 claude mcp add로 브리지를 이미 추가해 두었다면, Claude Code는 플러그인의 사본을 중복으로 보고 억제합니다. 제 Mac에서 플러그인은 스킬을 추가했고 그 밖에는 아무것도 추가하지 않았습니다.28- 수락의 대상은 명령어 문자열입니다. 그 명령어가 무엇을 출력하는지는 선택되어 있는 Xcode를 따르며, 카탈로그의 어떤 변경도 그 차이를 표시해 주지 않습니다.45
마켓플레이스에 들어온 것
등록 항목 전체가 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
| 소스 유형 | 항목 수 | 커밋 SHA로 고정 여부 |
|---|---|---|
| URL로 지정한 git 저장소 | 163 | 163개 모두 |
| git 저장소의 하위 디렉터리 | 99 | 99개 모두 |
| 마켓플레이스 저장소 안의 폴더 | 54 | 해당 없음. 폴더가 카탈로그 자체의 이력 안에 있습니다 |
| 사용자의 컴퓨터에서 실행되는 명령어 | 1 (xcode) |
아니요. 고정할 대상이 없습니다 |
이 항목이 들어온 과정의 기록을 보면 이 항목이 얼마나 이례적인지 알 수 있습니다. 한 기여자가 2026년 9월 18일에 “Add Xcode plugin (xcode)”라는 제목의 풀 리퀘스트 #6259를 열었습니다. 봇이 이 저장소는 Anthropic 팀원의 기여만 받는다고 답했고, 한 메인테이너가 풀 리퀘스트가 열린 지 19분 뒤에 변경을 승인했습니다. 9월 30일에는 두 번째 풀 리퀘스트 #6338이 검사가 실행될 수 있도록 같은 커밋을 저장소 내부의 브랜치로 옮겼습니다.1
검사는 작성된 그대로는 통과하지 못했습니다. 세 번째 풀 리퀘스트 #7015에 따르면 마켓플레이스의 검증기는 Xcode 항목을 세 군데에서 실패 처리했습니다. SHA가 없고, 명령어 안의 공백이 셸 메타문자로 간주되며, 클론할 URL이 없다는 것입니다. 수정은 워크플로를 새 command-exempt 입력이 있는 검증기 버전으로 옮기고 그 입력을 "xcode"로 설정했습니다. 그 줄 위의 주석은 목록에 오르는 이름 하나하나를 마켓플레이스 운영 담당의 승인이 필요한 “listing decision”이라고 부릅니다.3 세 풀 리퀘스트는 모두 11월 6일(UTC)에 9분 안에 닫혔습니다. #7015는 00:49에 열려 00:53에 병합되었고, #6338은 00:55에 병합되었으며, #6259는 00:58에 중복으로 닫혔습니다.13
제가 찾을 수 있었던 범위에서는 두 회사 어느 쪽도 이에 대해 아무 말도 하지 않았습니다. 11월 11일에 Apple의 개발자 뉴스, 릴리스, 뉴스룸 피드와 Apple의 Xcode 페이지, Anthropic의 뉴스 페이지, Claude 블로그를 확인했고, 플러그인에 대한 언급은 찾지 못했습니다. Apple의 외부 에이전트용 문서는 여전히 claude mcp add로 브리지를 직접 추가하는 방법을 설명하며 플러그인은 언급하지 않습니다.210 이 플러그인을 Apple의 것이라고 부르는 근거는 항목의 author 필드와, 그 명령어가 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 - Xcode 항목이 사용하는 모드인
link모드에서 Claude Code는 아무것도 복사하지 않습니다. 디렉터리의 최상위 항목들에 링크를 걸고 파일을 있는 자리에서 그대로 로드합니다. 버전은 파일의 내용이 아니라 디렉터리의 실제 경로와 최상위 항목들에서 나옵니다.4 - Claude Code는 사람이 수락한 바로 그 명령어만 실행합니다. 마켓플레이스가 나중에 명령어나 모드를 바꾸면, 각 사용자가 새 명령어를 수락할 때까지 백그라운드 실행이 멈춥니다.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 앱이 실행되지 않은 상태에서, 시간을 잰 세 번의 실행에서 이 명령어는 약 0.2초 만에 반환되었습니다. 제 Mac은 Xcode의 헤드리스 MCP 모드가 켜져 있습니다. sudo xcrun mcp-server enable로 시작하는 프리뷰이며, 뒤의 섹션에서 다룹니다. 이 Mac에서 각 Xcode 빌드에 대한 첫 호출은 Xcode 앱이 아니라 Xcode 번들 안의 백그라운드 헬퍼인 Xcode Service를 통해 디렉터리를 기록했습니다. 제가 시간을 잰 것은 이미 존재하는 디렉터리에 대한 호출뿐이며, 그 모드를 끈 상태에서는 이 명령어를 실행해 보지 않았습니다.2
같은 규칙이 검토가 다룰 수 있는 범위도 바꿉니다. Claude Code의 보안 문서는 설치하기 전에 플러그인의 소스를 읽으라고 안내합니다. 홈페이지나 마켓플레이스 저장소를 열어 거기서 플러그인의 디렉터리를 찾으라는 것입니다.7 xcode의 경우 홈페이지는 Apple의 Xcode 제품 페이지이고, 저장소에는 위의 15줄이 있습니다. 플러그인의 콘텐츠는 사용자의 Xcode가 기록한 뒤에야 존재하므로, 검토는 사용자의 Mac에서, 사용자의 Xcode 빌드를 대상으로 이루어집니다.
Claude Code가 수락을 요청하는 것
설치 과정에서 프로그램이 실행되므로, Claude Code는 명령어를 출력하고 실행하기 전에 묻습니다. 터미널에서 그 질문은 Run this command now? [y/N]입니다.6 저는 터미널이 연결되지 않은 셸에서 Claude Code 2.1.322로 설치를 실행했고, Claude Code는 묻는 대신 거부했습니다. 출력의 첫 네 줄은 다음과 같습니다.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.
이 단계에서 눈여겨볼 점은 세 가지입니다.
에이전트는 사용자를 대신해 수락할 수 없습니다. -y는 사용자 자신의 터미널에서 표시된 명령어를 수락합니다. CLI 레퍼런스에 따르면, 설치가 세션 안에서, 즉 Bash 도구나 훅에서 실행될 때 Claude Code는 이 플래그를 무시합니다.6 Claude Code에 플러그인을 설치해 달라고 요청하면, Claude Code가 그 명령어를 사용자에게 되돌려 줄 것으로 예상하시기 바랍니다.
스크립트는 정확히 한 명령어를 수락할 수 있습니다. --json을 붙이면 거부된 설치가 shownCommand 객체를 보고하고, 2.1.271에서 추가된 --accept-command <sha256>은 그 명령어만 수락하고 다른 명령어는 수락하지 않습니다. 레퍼런스는 이 플래그를 사용자 자신의 터미널에서 넘기라고 안내합니다. Claude Code 세션 안에서는 이 플래그가 아무 효과도 없기 때문이며, 따라서 에이전트는 해시로도 수락할 수 없습니다. 문서는 해시를 명령어, 플러그인, 마켓플레이스 카탈로그에 묶어 두며, 셋 중 하나라도 바뀌었으면 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
수락하기 전에 플러그인 읽기
마켓플레이스가 실행하려는 명령어는 사용자가 직접 실행할 수 있는 명령어입니다. 다음 세 줄이 설치가 링크하게 될 내용을 보여 줍니다.
# 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 넘겨야 하는 이름은 플러그인 매니페스트에 있는 이름인 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의 도구 호출을 규율하는 권한 규칙 밖에서 스스로 코드를 실행하는 것들을 나열합니다. 훅, 모니터, mod, 그리고 MCP 및 LSP 서버 프로세스입니다.7 Apple의 디렉터리에는 그중 하나인 MCP 서버가 있습니다. 디렉터리의 최상위에는 항목이 세 개 있습니다. 매니페스트 폴더, .mcp.json, skills/입니다. 파일 160개는 Markdown 파일 157개, JSON 파일 2개, Python 스크립트 1개입니다. 이 스크립트는 audit-xcode-security-settings 스킬 안에 있는 69줄짜리이고, argparse, json, re, pathlib만 임포트하며, 스크립트 자체의 설명에 따르면 저장된 빌드 설정 출력을 보안과 관련된 항목만 남도록 걸러 냅니다. 이 스크립트는 에이전트가 실행할 때에만 실행됩니다.2
claude plugin validate는 경고 하나와 함께 이 디렉터리를 통과시킵니다. 매니페스트에 author가 지정되어 있지 않다는 경고입니다. 같은 실행은 Anthropic의 claude.ai 디렉터리용 제출 검사의 일부도 적용하는데, 그 디렉터리는 공식 마켓플레이스와는 별개의 등록 목록입니다. 이 검사는 그 디렉터리라면 제출을 거부할 문제 두 가지, 즉 README 없음과 LICENSE 없음을 보고하고, 경고 하나로 아이콘 없음을 보고합니다. 이 결과는 이 등록 항목과는 관계가 없습니다. 게시 가이드에 따르면 공식 마켓플레이스는 그 디렉터리의 포털을 통한 제출을 받지 않습니다.212 이 폴더에는 자체 라이선스 조건이 명시되어 있지 않습니다. 저는 이 폴더를 Xcode의 일부로 취급합니다.
세션이 받는 것: 스킬 16개, 그중 15개가 나열됨
저는 빈 프로젝트에서 claude -p --plugin-dir "$DIR"로 이 디렉터리를 단일 프롬프트 세션에 로드했습니다. --plugin-dir로 로드한 플러그인은 그 세션 동안만 유지되며 아무것도 설치하지 않습니다.2
세션의 시작 이벤트는 이 플러그인을 xcode-integration@inline, 버전 1.0.0으로 나열했고, 디버그 로그는 거기서 스킬 16개가 로드되었다고 기록했습니다. 세션 자체의 스킬 및 슬래시 명령어 목록에는 그중 15개가 있었습니다. 빠진 하나인 translation-coordinator는 헤더에서 user-invocable: false를 설정하는데, 이는 스킬을 / 메뉴에서 숨기되 Claude는 계속 호출할 수 있게 두는 설정입니다.9 같은 세션에서 모델에게 가지고 있는 스킬을 출력해 달라고 요청하자, 모델은 코디네이터 스킬을 포함해 이름 16개를 출력했습니다. 이 마지막 확인은 모델 자신의 보고입니다.2
모든 이름에는 /xcode-integration:swiftui-specialist처럼 xcode-integration: 접두사가 붙습니다. 카탈로그는 이 플러그인을 xcode라고 부르고 매니페스트는 xcode-integration이라고 부르는데, Claude Code의 로딩 레퍼런스에 따르면 두 이름은 하는 일이 다릅니다. 카탈로그 이름은 설치 키이고, 매니페스트 이름은 플러그인 구성 요소의 네임스페이스입니다.5 제가 이 접두사를 관찰한 것은 --plugin-dir로 로드했을 때입니다. 마켓플레이스 설치에 대해서는 그 페이지에 의존하고 있습니다.
다음은 같은 출력의 나머지 부분에서 가져온, 각 스킬의 비용에 대한 Claude Code의 추정치이며, 그 스킬의 파일이 브리지의 도구를 하나라도 이름으로 언급하는지를 함께 적었습니다.2
| 스킬 | 항상 컨텍스트에 포함 | 호출 시 | 이름으로 언급하는 브리지 도구 |
|---|---|---|---|
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 | 없음 |
수치의 단위는 토큰이며, 도구가 추정한 값입니다. 각 행은 반올림된 값이어서 합하면 약 4,470이 되고, Claude Code 자체의 합계는 위의 ~4,463입니다. App Intents 스킬 두 개가 그중 약 1,710을 차지하는데, 설명이 길기 때문입니다. 이 추정치에는 MCP 서버의 도구 스키마가 빠져 있으며, 인벤토리에는 이 스키마가 런타임에 확인된다고 적혀 있습니다. 각 스킬이 무엇을 가르치는지는 Xcode 27에 탑재된 스킬과 그것을 꺼내는 두 가지 방법을 다룬 제 더 긴 글에 있습니다.
MCP 쪽 절반: 서버 항목 하나, 여기서는 도구 54개
.mcp.json은 명령어가 xcrun mcpbridge인 xcode라는 이름의 stdio 서버 하나를 선언합니다. 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 |
| 빌드 설정, 플래그, 인타이틀먼트, Info.plist | 6 | GetTargetBuildSettings, UpdateTargetBuildSetting, AddEntitlement |
| 테스트 | 5 | GetTestList, RunSomeTests, RunAllTests |
| 기기 및 시뮬레이터 상호작용 | 5 | DeviceInteractionStartSession, DeviceInteractionSynthesize |
| String Catalog와 현지화 | 4 | LocalizationPlanner, StringCatalogEdit |
| 크래시 및 필드 성능 보고서 | 4 | GetTopCrashIssues, GetFieldPerformanceIssueLogs |
| 프리뷰, 스니펫, 디버거 | 3 | RenderPreview, RunCodeSnippet, InvokeDebuggerCommand |
| 문서 | 1 | DocumentationSearch |
이 목록은 마켓플레이스 설명이 시사하는 것보다 더 멀리까지 닿습니다. XcodeRM은 프로젝트에서 파일을 제거하고, 기본적으로 그 실제 파일을 휴지통으로 옮깁니다. InvokeDebuggerCommand는 Xcode의 활성 디버그 세션에 lldb 명령어를 보냅니다. GetTopCrashIssues는 Apple의 크래시 보고 서비스에서 사용자 앱의 크래시 시그니처를 가져온다고 스스로를 설명합니다.2 이들은 각각 도구 호출이므로 Claude Code의 권한 규칙이 적용됩니다. 서버 프로세스 자체는 모든 플러그인의 MCP 서버가 그렇듯 샌드박스 밖에서 실행됩니다.7
스킬과 도구는 서로를 참조합니다. 스킬 16개 가운데 7개가 브리지 도구를 접두사 없는 이름으로 언급합니다. 그 7개 중 하나인 audit-xcode-security-settings는 접두사가 붙은 일반형 mcp__<server>__XcodeGlob도 함께 제시하면서, 서버 이름은 환경에 따라 달라진다고 설명하고 에이전트에게 서버 이름을 하드코딩하지 말라고 지시합니다. 의존 관계는 반대 방향으로도 이어집니다. String Catalog 및 현지화 도구 네 개의 설명은 모두 에이전트에게 도구를 호출하기 전에 플러그인 스킬을 활성화하라고 지시합니다. LocalizationPlanner와 StringCatalogRead는 xcode-integration:translation-coordinator를 지목하고, StringCatalogContext와 StringCatalogEdit는 xcode-integration:translation을 지목합니다. 나머지 50개의 설명은 어떤 스킬도 언급하지 않습니다.2 직접 추가한 브리지가 있고 플러그인은 없는 세션에는 네 도구가 모두 있고 두 스킬은 어느 쪽도 없습니다. 병합된 풀 리퀘스트의 한 댓글 작성자는 Xcode MCP 서버가 이미 작동하고 있었는데 이 등록 항목이 무엇을 더해 주느냐고 물었습니다.1 제 Mac에서 그 답은 스킬이며, 브리지 자체의 도구 네 개가 그중 두 개를 이름으로 요구합니다.
브리지를 이미 직접 추가해 두었다면
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> 형식을 부여하며, 권한 규칙과 훅 매처에는 이 도구 형식을 써야 한다고 설명합니다.8 그 규칙대로라면, 플러그인이 있고 직접 추가한 항목이 없는 세션은 같은 도구를 mcp__plugin_xcode-integration_xcode__BuildProject라고 부르게 됩니다. 제 설정에는 직접 추가한 항목이 있으므로 그 구성은 측정하지 않았습니다. mcp__xcode__ 이름을 대상으로 작성한 허용 규칙이나 훅이 있다면, 문서의 이름 규칙에 따르면 플러그인을 설치한 뒤 직접 추가한 항목을 제거하는 일은 이름 변경에 해당합니다.
두 개의 권한 계층, 설치가 닿는 것은 하나
명령어를 수락하면 Claude Code 쪽은 해결됩니다. Xcode에는 자체 관문이 따로 있고, 플러그인 디렉터리 안의 어떤 것도 그 관문을 열 수 없습니다. 디렉터리에는 훅도 없고 설치 단계도 없습니다.
Apple은 실행 중인 Xcode에 대한 관문을 문서화해 두었습니다. Xcode의 Intelligence 설정에서 Model Context Protocol 아래에 있는 “Allow External Agents to Use Xcode Tools”라는 팝업 메뉴는 Always, “While Xcode is Open”, Never를 제공하며, 외부 에이전트가 연결되면 Xcode가 알림을 표시합니다.10 Xcode 27의 릴리스 노트는 두 번째 구성을 설명하는데, 열려 있는 워크스페이스 없이 실행되는 MCP 서버의 프리뷰입니다. 이 서버는 sudo xcrun mcp-server enable을 실행하기 전까지 꺼져 있으며, 코드 서명된 에이전트에 디렉터리 트리 안의 프로젝트를 사용할 권한을 부여할 수 있게 해 줍니다.11
제 Mac은 두 번째 구성으로 실행됩니다. xcrun mcp-server status는 권한이 활성화되어 있고, 허용된 에이전트가 하나, 허용된 폴더가 11개라고 보고합니다.2 허용된 에이전트는 코드 서명으로 식별되는 Claude Code 자체이므로, 플러그인이 시작하는 브리지도 같은 권한 부여의 적용을 받을 것으로 예상합니다. 이는 테스트하지 않았습니다. 또한 어떤 에이전트도 승인한 적이 없고 플러그인이 브리지를 처음으로 시작하는 Mac에서 Xcode가 무엇을 묻는지도 본 적이 없습니다.
Xcode가 바뀌면 달라지는 것
고정된 마켓플레이스 항목은 카탈로그가 바뀔 때 바뀝니다. Xcode 항목은 Xcode가 바뀔 때 바뀝니다. 제 Mac에 있는 Xcode 빌드 세 개, 즉 27.1 릴리스 후보(27A9275), 27.2 베타(27B5019j), 27.2(27B52)는 디렉터리 세 개를 만들어 냈고, 스킬은 각각 15개, 15개, 16개였습니다. 27.2 베타에서는 나머지 두 빌드가 app-resizability라고 부르는 스킬의 이름이 uikit-app-modernization이며, xctrace는 27B52에만 있습니다.2
그 메커니즘은 세션마다 한 번씩 이루어지는 실행입니다. Xcode를 업데이트하거나 다른 사본을 선택하면 이 명령어는 다음에 실행될 때 다른 경로를 출력하는데, 플러그인이 설치되어 있고 활성화되어 있다면 그때는 보통 다음 세션의 백그라운드 실행입니다. 로딩 레퍼런스에 따르면 Claude Code는 그 결과를 새 버전으로 설치하고, 실행 중인 대화형 세션에서 알림과 함께 다시 로드하거나, 제자리에서 다시 로드하면 세션의 프롬프트 캐시가 무효화되는 경우에는 /reload-plugins를 실행하라고 안내합니다.5 명령어 문자열이 같으므로 이전의 수락은 그대로 유효합니다. 저는 플러그인을 설치하지 않았으므로 그 다시 로드가 일어나는 것을 지켜본 적은 없습니다.
여기서 두 가지 습관이 따라 나옵니다. Xcode를 업데이트한 뒤에는 변경 로그를 읽듯이 검토용 세 줄을 다시 실행하되, 경로가 빌드에 따라 바뀌므로 첫 번째 줄부터 시작하세요. 그리고 Xcode 업데이트 후 에이전트 명령어가 아무것도 출력하지 않는다면, 직접 열지 않은 Xcode가 있는지부터 찾아보세요(pgrep -lx Xcode). 제 Mac에서는 숨겨진 Xcode가 첫 실행 화면에서 기다리는 동안 다른 xcrun agent 명령어들이 멈췄으며, 이는 제가 더 긴 글에서 추적한 유력한 원인입니다. xcrun agent plugin path는 제 어떤 실행에서도 멈추지 않았습니다. 이 명령어가 60초 제한을 넘겨 실행되는 일이 있다면, 문서에 따르면 설치나 업데이트는 실패합니다.4
Xcode를 Claude Code에 연결하는 세 가지 방법
| 직접 추가한 브리지 | --plugin-dir, 한 세션 |
마켓플레이스 설치 | |
|---|---|---|---|
| 명령어 | 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의 스킬 | 없음 | Xcode 27.2에서 16개 | 디렉터리를 근거로 하면 Xcode 27.2에서 16개 |
| 브리지 도구 | 여기서는 54개, 이름은 mcp__xcode__<tool> |
직접 추가한 항목이 있으면 그 항목의 도구. 없으면 플러그인 자체 서버의 도구이며, 이 경우는 측정하지 않았습니다 | 문서를 근거로 하면 왼쪽 칸과 같음 |
| 유지 기간 | 제거할 때까지 | 한 세션 | 설치를 제거할 때까지. 플러그인이 활성화되어 있는 동안 명령어는 보통 세션마다 다시 실행됩니다 |
| 승인하는 대상 | 직접 입력한 명령어 | 직접 입력한 명령어 | 카탈로그가 보여 주는 명령어 |
| 이 글을 위한 측정 여부 | 예 | 예 | 거부 메시지만 |
핵심 요점
Claude Code를 쓰는 iOS 개발자에게:
- 먼저 검토용 세 줄을 실행하세요. Xcode 27.2에서 이 세 줄은 스킬 16개와 MCP 서버 하나를 보여 주며, 훅은 없습니다.2
- 자신의 터미널에서 claude plugin install xcode@claude-plugins-official로 설치하고, 표시되는 명령어를 카탈로그에 있는 명령어인 xcrun agent plugin path --plugin-format claude와 비교하세요.16
- Claude Code의 추정에 따르면, 세션이 스킬을 하나도 호출하기 전에 스킬 설명만으로 모든 세션에 약 4,463토큰이 들어간다고 예상하시면 됩니다.2
직접 추가한 브리지를 이미 쓰고 있는 개발자에게: - 플러그인은 Apple의 스킬을 추가합니다. Claude Code는 플러그인의 서버를 중복으로 보고 억제하며, 직접 추가한 항목이 남아 있는 동안 도구 이름은 지금 그대로 유지됩니다.28 - 번역 도구는 플러그인을 전제로 합니다. String Catalog 및 현지화 도구 네 개가 모두 에이전트에게 플러그인만이 제공하는 두 스킬 중 하나를 활성화하라고 지시합니다.2
도구를 쓰기 전에 검토하는 팀에게:
- 콘텐츠를 고정하는 커밋은 없습니다. Xcode 빌드마다 디렉터리를 검토하고, Xcode 업데이트를 플러그인 업데이트로 취급하세요.14
- --accept-command <sha256>은 스크립트로 하는 설치를 검토를 마친 명령어 하나와 카탈로그에 묶어 두고, disableCommandPluginSources는 조직 전체에서 이 소스 유형을 끕니다.46
마켓플레이스 및 플러그인 작성자에게:
- command 소스는 사용자의 컴퓨터에 있는 도구를 게시자로 만듭니다. Anthropic의 공식 마켓플레이스는 이런 소스를 하나하나 이름으로, 고정 규칙에 대한 명시된 예외로 받아들입니다.3
자주 묻는 질문
Claude Code용 Apple의 Xcode 플러그인은 무엇입니까?
Anthropic의 공식 Claude Code 마켓플레이스에 있는 xcode라는 이름의 항목으로, author는 “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 에이전트는 사용자를 대신해 명령어를 수락할 수 없습니다. Claude Code는 세션 안에서 -y를 무시합니다.6 저는 설치를 직접 완료하지 않았습니다. 기본값인 사용자 스코프에서는 컴퓨터의 모든 프로젝트에서 플러그인과 그 상시 로드되는 스킬 설명을 받게 됩니다. --scope local은 한 저장소에서 사용자 본인에게만 플러그인을 적용하고, --scope project는 플러그인을 .claude/settings.json에 기록하며, 이 파일은 사용자가 커밋합니다. 그러면 그 저장소에서 작업하는 모든 사람에게 플러그인이 활성화되지만 그들의 컴퓨터에는 아무것도 다운로드되지 않으므로, 협업자는 여전히 각자 클론마다 한 번씩 설치를 실행합니다. 수락은 사용자별로 이루어집니다. 각 사람이 Claude Code가 자신에게 보여 주는 명령어를 수락합니다. 제가 시도할 때는 --scope local을 사용했습니다.26 나중에 플러그인을 제거하려면, 같은 레퍼런스가 claude plugin uninstall xcode@claude-plugins-official을 제시하며, 기본 사용자 스코프가 아닌 곳에 설치했다면 --scope를 붙입니다.6
플러그인에는 무엇이 들어 있습니까?
Xcode 27.2(27B52)에서는 스킬 16개, xcrun mcpbridge를 실행하는 서버 하나를 선언하는 .mcp.json, 필드가 세 개인 매니페스트가 들어 있습니다. Claude Code의 인벤토리는 에이전트 0개, 훅 0개, LSP 서버 0개라고 보고합니다.2
xcrun mcpbridge에 대해 claude mcp add를 이미 실행했다면 플러그인이 필요합니까?
스킬을 쓰려면 필요합니다. Claude Code는 플러그인의 서버를 사용자의 서버와 중복된 것으로 취급해 억제하므로 도구는 달라지지 않습니다. 스킬은 새로 추가되는 것이고, 브리지 도구 네 개, 즉 String Catalog 및 현지화 도구 세트는 에이전트에게 먼저 플러그인의 스킬을 활성화하라고 지시합니다.28
폴더에는 스킬이 16개인데 Claude Code가 15개를 나열하는 이유는 무엇입니까?
translation-coordinator는 user-invocable: false를 설정합니다. Claude Code는 그런 스킬을 / 메뉴에서 숨기지만 모델은 계속 호출할 수 있게 둡니다.9 세션의 스킬 목록에는 15개가 표시되었고, 모델은 16개를 보고했습니다.2
플러그인은 컨텍스트를 얼마나 사용합니까?
Claude Code의 plugin details는 스킬 설명 16개에 대해 모든 세션에서 약 4,463토큰을 추정합니다. 스킬을 호출하면 비용이 더 들며, xctrace의 약 380토큰에서 audit-xcode-security-settings의 약 21,700토큰까지입니다. 이 추정치에는 MCP 서버의 도구 스키마가 포함되어 있지 않습니다.2
설치한 뒤 제 Mac에서는 무엇이 실행됩니까?
문서와 디렉터리를 근거로 하면, 수락한 명령어가 설치 시점에, 그리고 플러그인이 활성화되어 있는 동안에는 보통 세션마다 한 번씩 백그라운드에서 실행되고, 세션이 연결할 때 xcrun mcpbridge 서버 프로세스가 실행됩니다. 디렉터리에는 훅이 없습니다.25 그 밖의 모든 것은 브리지 도구 가운데 하나에 대한 호출이거나 스킬 텍스트입니다. 전자는 사용자의 권한 규칙이 다루고, 후자는 보안 페이지에 따르면 Claude의 컨텍스트에 지침으로 들어가 Claude가 이미 가진 도구로 하는 일에 영향을 줍니다.7 audit-xcode-security-settings에 있는 단 하나의 Python 스크립트는 에이전트가 실행할 때에만 실행되며, 그것 역시 사용자의 권한 규칙이 다루는 도구 호출입니다.
어떤 Xcode가 필요합니까?
xcrun agent plugin은 제 Mac에 있는 세 빌드 모두에서 응답했습니다. 27.1 릴리스 후보(27A9275), 27.2 베타(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의 헤드리스 MCP 모드는 켜져 있었습니다.
- 카탈로그:
anthropics/claude-plugins-official의 커밋43fd1f9, 이틀 모두의 헤드. - 세션 없이 읽은 것:
xcrun agent plugin path --plugin-format claude가 출력하는 디렉터리,claude --plugin-dir <dir> plugin details,claude plugin validate, 유형별 파일 수. - 세션: 빈 프로젝트에서 실행한 단일 프롬프트
claude -p세션 네 개이며, 어느 것도 저장하지 않았습니다. 세 개는--plugin-dir로 플러그인을 로드했습니다. 하나는 제가 직접 추가한 브리지만 있는 상태에서 Claude Code의 도구 검색에 브리지의 도구를 요청했습니다. 어떤 세션도 브리지 도구를 호출하지 않았습니다. - 설치: 터미널이 없는 셸에서 설계대로 거부되었습니다. 저는 그 명령어를 수락한 적이 없습니다.
- 도구 설명: 대화형 Claude Code 세션이 도구 검색을 통해 제가 직접 추가한 브리지에서 로드한 그대로의 도구 스키마 54개입니다. 그 세션은 어떤 도구도 호출하지 않았습니다.
- 부재 확인: Apple의 개발자 뉴스, 릴리스, 뉴스룸 피드, Apple의 Xcode 페이지, Anthropic의 뉴스 페이지, Claude 블로그를 11월 11일에 가져와 플러그인을 검색했습니다.
- 검증하지 않은 것: 대화형 프롬프트와 세부 정보 창. 백그라운드 실행, Xcode 업데이트 후의 다시 로드, 버전 문자열을 포함해 마켓플레이스 설치 이후의 모든 것. 직접 추가한 항목 없이 실행되는 플러그인 자체의 서버. 플러그인의 브리지가 Xcode가 처음 보는 에이전트일 때 Xcode가 무엇을 묻는지. 세션 측정에 대해서는 27B52 이외의 모든 Xcode. 헤드리스 모드가 꺼진 Mac.
스킬 자체, Xcode 밖으로 나가는 두 번째 경로(xcrun agent skills export), 그리고 제가 Xcode 27.2에서 겪은 멈춤 현상은 Xcode 27, 어디로든 내보낼 수 있는 에이전트 스킬을 탑재하다에 있습니다. 두 MCP 서버가 Claude Code를 iOS 빌드 시스템으로 만들었다는 직접 추가한 브리지를 다루고, MCP 서버는 새로운 공격 표면이다는 서버의 도구 목록을 읽어 볼 만한 이유를 다룹니다. 설정 전체는 iOS 에이전트 개발 가이드에 있습니다.
참고 문헌
-
Anthropic,
anthropics/claude-plugins-official,.claude-plugin/marketplace.jsonat commit 43fd1f9, 2026년 11월 10일에 읽었고, 그 커밋이 여전히 헤드였던 11월 11일에 다시 읽음.xcode항목과 다음 개수의 출처입니다. 플러그인 317개 가운데 163개는url소스이고 99개는git-subdir소스이며 하나도 빠짐없이sha필드가 있고, 54개는 저장소 안의 경로이며, 하나는command소스입니다. 풀 리퀘스트 #6338이 이 항목을 추가했습니다. 2026년 9월 30일에 열려 2026년 11월 6일 00:55 UTC에 병합되었고, 파일 하나에 15줄이며, 그 설명에는 검사가 실행될 수 있도록 #6259의 변경을 저장소 내부의 브랜치로 옮긴다고 적혀 있고, 기존 Xcode MCP 서버에 비해 이 등록 항목이 무엇을 더해 주느냐고 묻는 11월 9일 자 댓글이 달려 있습니다. 풀 리퀘스트 #6259, “Add Xcode plugin (xcode)”: 2026년 9월 18일 23:12 UTC에 열렸고, 이 저장소는 Anthropic 팀원의 기여만 받는다는 자동 답글이 달렸으며, 23:31 UTC에 승인 리뷰가 있었고, 2026년 11월 6일 00:58 UTC에 중복으로 닫혔습니다. ↩↩↩↩↩↩↩↩↩↩↩ -
저자의 측정과 확인. 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의 출력, 각 스킬의 헤더와 모든 스킬 파일에서 브리지의 도구 이름 54개를 검색한 결과를 포함한 플러그인 디렉터리의 내용, 단일 프롬프트 Claude Code 세션 네 개의 시작 이벤트와 디버그 로그, 대화형 세션이 받은 그대로의 브리지 도구 설명 54개, 명령어 문자열의 SHA-256, 그리고 “부재 확인”에 나열한 페이지들의 저장된 사본입니다. 개수는 그 출처들에서 센 파일 수, 폴더 수, 도구 이름 수입니다. 토큰 수치는 Claude Code의 추정치입니다. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic,
anthropics/claude-plugins-official, 풀 리퀘스트 #7015, “ci(validate-plugins): re-pin validator and allow the xcode command source”, 2026년 11월 6일에 열리고 병합됨(00:49 UTC와 00:53 UTC). Xcode 항목에 대한 검증기의 실패 세 가지,command-exempt: "xcode"설정, 그리고 예외로 지정된 이름 하나하나를 마켓플레이스 운영 담당의 승인이 필요한 “listing decision”이라고 부르는 워크플로 주석의 출처입니다. ↩↩↩↩ -
Anthropic, Claude Code documentation, Marketplace reference, “command plugin source” 섹션과 “Copy mode and link mode” 섹션, 2026년 11월 11일에 가져옴.
command소스를 언제 쓰는지와 그 IDE 예시, 한 줄 출력 계약, 60초의 기본timeout, 설치나 업데이트가 실패하는 조건, 디렉터리를 제자리에서 로드하고 버전을 그 경로와 최상위 항목에서 도출하는 link 모드,disableCommandPluginSources설정의 출처입니다. ↩↩↩↩↩↩↩↩ -
Anthropic, Claude Code documentation, Plugin loading reference 및 Host and maintain a marketplace, 2026년 11월 11일에 가져옴. command 소스가 언제 다시 실행되는지(설치나 업데이트 때마다, 그리고 세션마다 한 번씩 백그라운드에서), 그 출력이 바뀌었을 때의 다시 로드, 플러그인의 항목 이름과 매니페스트 이름의 차이, 그리고 Claude Code는 사용자가 수락한 바로 그 명령어만 실행한다는 규칙의 출처입니다. ↩↩↩↩↩↩
-
Anthropic, Claude Code documentation, Plugin commands reference, 2026년 11월 11일에 가져옴.
Run this command now? [y/N]프롬프트, Claude Code 세션 안에서-y가 무시된다는 점, 터미널이 연결되어 있지 않을 때의 거부,shownCommand객체와 함께 쓰이는--accept-command <sha256>의 출처입니다. 버전과 날짜는 Claude Code changelog에서 가져왔습니다.command소스는 2.1.229(2026년 8월 12일),--accept-command는 2.1.271(2026년 9월 14일)입니다. 각 설치 스코프가 무엇을 포괄하는지는 같은 날 가져온 Install and manage plugins에서 가져왔습니다. ↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic, Claude Code documentation, Plugin security and trust, 2026년 11월 11일에 가져옴. 플러그인이 스스로 실행할 수 있는 것, 권한 규칙이 Claude의 도구 호출은 다루지만 플러그인 자체의 프로세스는 다루지 않는다는 점, MCP 서버가 샌드박스 밖에서 실행된다는 점, 그리고
claude --plugin-dir <plugin directory> plugin details <plugin name>을 포함한 검토 단계의 출처입니다. ↩↩↩↩↩↩ -
Anthropic, Claude Code documentation, Connect Claude Code to tools via MCP, “Scope hierarchy and precedence” 섹션, 및 Add components to a plugin, 2026년 11월 11일에 가져옴. 우선순위, 플러그인이 엔드포인트를 기준으로 중복으로 판정된다는 점, 플러그인의 서버와 도구에 붙는 이름의 출처입니다. ↩↩↩↩↩
-
Anthropic, Claude Code documentation, Extend Claude with skills, 2026년 11월 11일에 가져옴.
user-invocable: false가 스킬을/메뉴에서 숨기지만 Claude는 계속 호출할 수 있다는 점과, 플러그인 스킬에/plugin-name:skill-name형식의 네임스페이스가 붙는다는 점의 출처입니다. ↩↩↩ -
Apple, Giving external agents access to Xcode, 2026년 11월 11일에 가져왔으며 제 11월 10일 사본과 달라진 것이 없음. “Allow External Agents to Use Xcode Tools” 설정과 그 세 가지 선택지, 외부 에이전트가 연결될 때의 알림, 그리고 문서화된 설정 방법인
claude mcp add --transport stdio xcode -- xcrun mcpbridge의 출처입니다. 그 날짜에 이 페이지는 플러그인을 언급하지 않았습니다. ↩↩↩ -
Apple, Xcode 27 Release Notes, 2026년 11월 11일에 가져옴. 열려 있는 Xcode 워크스페이스 없이 실행되는 MCP 서버의 프리뷰,
sudo xcrun mcp-server enable, 그리고 코드 서명된 에이전트에 디렉터리 트리 안에서 권한을 부여하는 기능의 출처입니다. 저는 이 페이지와 Xcode 27.1, 27.2, 27.3 베타의 릴리스 노트에서xcrun agent를 검색했고 일치하는 항목을 찾지 못했습니다. ↩↩ -
Anthropic, Claude Code documentation, Publish and distribute a plugin, 2026년 11월 11일에 가져옴. 공식 마켓플레이스가 플러그인 디렉터리 포털을 통한 제출을 받지 않는다는 점의 출처입니다. ↩