Xcode MCP Server
Xcode MCP Server
Servidor del Model Context Protocol para el ecosistema Apple
Conecta OpenCode, Codex y Claude Code con Xcode — 43 herramientas profesionales en un único index.js
🌐 Idioma: Inglés | Español
Instalación • Herramientas • OpenCode • Codex • Claude Code • Documentación
¿Qué es esto?
Xcode MCP Server es un puente serio y listo para producción entre tu IDE de IA (OpenCode / Codex / Claude Code) y Xcode + herramientas de desarrollo de Apple.
Un LLM ya no solo escribe Swift: compila, prueba, perfila, gestiona simuladores, dispositivos físicos, firma e incluso abre Xcode en la línea exacta, todo mediante MCP
stdiosin servidor HTTP.
Stack: ES Modules · @modelcontextprotocol/sdk@1.30 · StdioServerTransport · promisify(exec) · Yarn 4 Berry · Make
✅ Archivo único
index.js(2250 líneas) — sin paso de compilación, sin compilar, auditable en un solo archivo. Shebang#!/usr/bin/env node, listo paranode,yarn startonpx.✅ 43 herramientas con esquema JSON estricto (
additionalProperties:false) +try/catchglobal. Cada herramienta devuelvecontent: [{type:"text"}]eisError:trueen caso de error — sin// TODO.✅ Cobertura completa de Apple:
xcodebuild,simctl(9),devicectl(2),xctrace(5 plantillas),agvtool,security,osascript/xed.✅ DX moderna: Yarn 4 incluido (
.yarn/releases),Makefileautodocumentado conhelp,docs/modular, CI de macOS + prueba de humomake test.✅ Multicliente: el mismo
index.jsfunciona con OpenCode, Codex y Claude Code sin cambios.
Related MCP server: Xcode MCP Server
✨ Características
Categoría | Herramientas | Descripción |
Compilación | 6 |
|
Pruebas | 2 |
|
Simuladores | 9 |
|
Dispositivos | 2 |
|
Perfilado | 1 |
|
Versiones | 2 |
|
Editor | 2 |
|
Localización | 1 |
|
Recursos | 6 |
|
AppIcon | 1 |
|
Paquete / SPM | 11 |
|
📋 Tabla de contenidos
📦 Requisitos
Dependencia | Versión | Instalación | Obligatorio |
macOS | 13+ (14+ recomendado) | — | ✅ para |
Xcode | 15+ | App Store → | ✅ |
Node.js | ≥ 18 |
| ✅ |
Yarn | 4.x Berry |
| ✅ |
make | 3.81+ |
| ✅ |
swift-format | última |
| ◻️ opcional |
swiftlint | última |
| ◻️ opcional |
Linux/Windows: solo funciona
make lint(no hay Xcode). CI ejecuta un trabajosyntax-linuxpara eso.
🚀 Instalación paso a paso
Sigue exactamente este orden. Copia y pega bloque a bloque.
Paso 0 — Verificar Xcode y Node
xcodebuild -version
# Xcode 15.4 Build version 15F31d
node --version
# v20.11.0 (or newer)
yarn --version
# 4.18.0 — if "command not found", run:
corepack enable
corepack prepare yarn@stable --activate
yarn --versionPaso 1 — Clonar el repositorio
git clone https://github.com/YanxReal/Xcode-MPC.git
cd Xcode-MPCPaso 2 — Instalar dependencias
Opción A — con Make (recomendada, moderna):
make installQué hace make install:
Detecta
yarn, lo instala víacorepacksi faltaEjecuta
yarn install(leeyarn.lock, instala@modelcontextprotocol/sdk)Ejecuta
chmod +x index.js
Salida esperada:
➤ YN0000: · Yarn 4.18.0
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed
➤ YN0000: · Done with warnings in 3s
✓ dependencies installedOpción B — con Yarn directamente:
yarn install
chmod +x index.jsSi vienes de npm:
rm -f package-lock.json
yarn installPaso 3 — Verificar el entorno
make doctorDebería mostrar:
Node: v20.x
Yarn: 4.18.0
Xcode: Xcode 15.x
xcrun: xcrun version 70
...
✓ doctor completeSi ves xcodebuild: command not found:
sudo xcode-select -s /Applications/Xcode.appPaso 4 — Validar el servidor MCP
make lint
# ➜ node --check index.js
# ✓ lint ok
make test
# ➜ smoke test MCP...
# ✓ tools/list: 43 tools
# ✓ xcode_sync_strings OK
# ✓ xcode_certificates_check OK
# ✓ smoke test PASSEDO manualmente:
python3 scripts/smoke_test.py
# or
node scripts/smoke_test.mjsPaso 5 — Configurar tu cliente de IA
Elige uno (o los tres: el mismo index.js funciona en todos):
Cliente | Archivo de configuración | Comando |
OpenCode |
|
|
Codex |
|
|
Claude Code |
| CLI o |
Paso a paso completo con JSON/TOML para copiar y pegar:
Paso 6 — Reiniciar y probar
Reinicia OpenCode / Codex / Claude Code y escribe:
list the xcode toolsDeberías ver 43 herramientas y en el log:
✅ Xcode MCP Server started (stdio) — 43 tools registered¡Hecho! Ahora puedes decir:
Build MyApp with xcode_build scheme MyApp destination "platform=iOS Simulator,name=iPhone 15"✅ Verificación
# 1. Syntax
make lint
# 2. Smoke MCP (no Xcode needed, just Node)
make test
# 3. Apple environment
make doctor
# Checks: node, yarn, xcodebuild, xcrun, simctl, swiftlint, security, osascript
# 4. Visual inspector (optional)
make inspect
# or
yarn inspect
# Open http://localhost:6274 → tools/list → tools/call🔧 Uso con OpenCode / Codex / Claude Code
OpenCode
~/.config/opencode/opencode.json:
{
"mcpServers": {
"xcode": {
"command": "node",
"args": ["/Users/YanxReal/Dev/Tools/Xcode-MPC/index.js"],
"env": {}
}
}
}Codex (OpenAI)
~/.codex/config.toml:
[mcp_servers.xcode]
command = "node"
args = ["/Users/YanxReal/Dev/Tools/Xcode-MPC/index.js"]Claude Code (Anthropic)
claude mcp add xcode -- node /Users/YanxReal/Dev/Tools/Xcode-MPC/index.js
# verify
claude mcp list
# xcode: connected — 43 toolsO por proyecto con .mcp.json:
{
"mcpServers": {
"xcode": {
"command": "node",
"args": ["/Users/YanxReal/Dev/Tools/Xcode-MPC/index.js"]
}
}
}Ejemplos de prompts para cada cliente →
docs/opencode.md·docs/codex.md·docs/claude-code.md· Plantillas:.mcp.json.example·.codex-config.toml.example
🛠️ Herramientas (43)
1. Compilación, diagnóstico y limpieza
Herramienta |
| Argumentos clave | |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| format |
2. Pruebas y cobertura
Herramienta |
| Argumentos clave |
|
|
|
|
|
|
3. Simuladores xcrun simctl (9)
simctl_list (filtro booted), simctl_lifecycle (boot|shutdown|erase), simctl_install_launch, simctl_media_capture (screenshot|record), simctl_push_notification, simctl_location_mock, simctl_privacy_control, simctl_ui_appearance (light|dark), simctl_open_url
4. Dispositivos físicos xcrun devicectl (2)
devicectl_list (--json), devicectl_logs (deviceUdid*, durationSeconds)
5. Perfilado xcrun xctrace (1)
xctrace_profile (template: Time Profiler|Allocations|Leaks|System Trace, timeLimitSeconds, outputFilePath*)
6. Versiones y seguridad (2)
agvtool_version_bump (bump_build|set_version|set_build), xcode_certificates_check (security find-identity)
7. Editor GUI de Xcode (2)
xcode_get_active_file (AppleScript osascript), xcode_open_at_line (filePath*, line*, column — xed → xcode://)
8. Localización (1)
xcode_sync_strings (.xcstrings → missing / pendingTranslation / emptyValues)
9. Assets Assets.xcassets + actool (6)
asset_list_contents (lista *.colorset/*.imageset), asset_manage_color (#RRGGBB Claro + Oscuro), asset_manage_image (escalas/vector + preserves-vector-representation), asset_read_info (Contents.json), asset_delete (seguro), asset_validate_actool (xcrun actool --compile)
10. AppIcon para todos los SO de Apple (1)
asset_generate_appicon (iOS, macOS, watchOS, tvOS, visionOS — 42 posiciones, sips -z si baseImagePath)
11. Paquetes SPM / CocoaPods / Carthage (11)
package_resolve/update/list/read_resolved/reset_cache/compute_checksum, spm_add/remove_dependency, cocoapods_manage, carthage_manage, cocoapods_to_spm_migrate (Podfile→Package.swift)
Referencia completa con JSON Schema y ejemplos de copiar y pegar →
docs/tools.md
📖 Comandos Make
make help # Show this pretty help (colors)
make install # yarn install + chmod +x
make reinstall # clean + install (from scratch)
make lint # node --check index.js
make doctor # Check Node/Yarn/Xcode/simctl/swiftlint/osascript
make test # Smoke test MCP (43 tools + 2 calls)
make start # yarn start (stdio)
make dev # yarn dev (--watch)
make inspect # MCP Inspector at http://localhost:6274
make clean # Remove node_modules/.yarn/cache/build
make fmt # prettier if available
make release VERSION=1.0.1 # bump + tag + pushDetalles → docs/development.md
📚 Documentación
Documento | Audiencia | Contenido |
Todos | Yarn Berry, Corepack, | |
LLM / Dev | Las 43 herramientas, JSON Schema, ejemplos JSON de copiar y pegar | |
OpenCode |
| |
Codex |
| |
Claude Code |
| |
Colaboradores | Estructura, añadir una herramienta, CI, lanzamiento | |
Curiosos | Por qué un único archivo, helpers, dispatcher, flujo stdio |
🧪 Prueba de humo manual
# Without Make:
python3 scripts/smoke_test.py
# STDERR: ✅ Xcode MCP Server started — 43 tools
# ✓ tools/list: 43 tools
# ✓ xcode_sync_strings OK
# ✓ smoke test PASSED
# With Make:
make test🏗️ Arquitectura
index.js (2250 lines, 1 file)
├── Shebang + Imports (MCP SDK, promisify(exec), fs, path, os)
├── Helpers: shellEscape, expandTilde, runCommand (try/catch + 10MB buffer), formatResult
├── TOOLS[43]: Strict JSON Schema (additionalProperties:false)
├── Handlers[43]: async handle_* with validation + fallbacks (xed→xcode://, swift-format→swiftlint)
├── Dispatcher: HANDLERS map + ListTools/CallTool (try/catch → isError:true)
└── Server: StdioServerTransport (stdin JSON-RPC, stdout JSON-RPC, stderr logs)Consulta docs/architecture.md para conocer la decisión de usar un único archivo y el flujo OpenCode → stdin → handler → xcrun → stdout.
🤝 Contribuir
# 1. Fork and branch
git checkout -b feat/my-tool
# 2. Develop: add to TOOLS + Handler + HANDLERS in index.js
make install && make lint && make test
# 3. Document in docs/tools.md + README.md
# 4. PRIncidencias: Informe de error · Solicitud de función · Plantilla de PR
CI se ejecuta en macos-14 y ubuntu-latest — tu PR se prueba automáticamente.
📄 Licencia
MIT © YanxReal — consulta LICENSE.
🔗 Enlaces
Repositorio: https://github.com/YanxReal/Xcode-MPC
Especificación MCP: https://modelcontextprotocol.io
Yarn Berry: https://yarnpkg.com/getting-started
Hecho con ❤️ para el ecosistema Apple · Yarn 4 + Make + CI + Docs
Si te resulta útil, deja una ⭐ en GitHub
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceBridges Claude AI with Xcode, enabling AI-powered code assistance, project management, and automated development tasks securely on your local machine.76186385MIT
- -licenseNot gradedqualityNot gradedmaintenanceA server that acts as a bridge between Claude and local Xcode projects, enabling AI-powered code assistance, project management, and automated development tasks without exposing your code to the internet.
- AlicenseBqualityCmaintenanceProvides programmatic access to Xcode functionality, enabling AI assistants to create, build, test, and manage iOS/macOS projects directly.3385MIT
- AlicenseAqualityBmaintenanceEnable Claude Code, Cursor, or your favorite LLM to interact with Xcode, building your projects the same way you do, and seeing the same errors. Greatly increases productivity when working on iOS, iPadOS, macOS, visionOS, tvOS projects & Swift packages - or any time you might use Xcode.295MIT
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/YanxReal/Xcode-MPC'
If you have feedback or need assistance with the MCP directory API, please join our Discord server