axiom-xcode-mcp-ref
Xcode MCP Tool Reference
Complete reference for all 20 tools exposed by Xcode's MCP server (xcrun mcpbridge).
Important: Parameter schemas below are sourced from blog research and initial testing. Validate against your live mcpbridge with tools/list if behavior differs.
Discovery
XcodeListWindows
Call this first. Returns open Xcode windows with tabIdentifier values needed by most other tools.
- Parameters: None
- Returns: List of
{ tabIdentifier: string, workspacePath: string } - Notes: No parameters needed. If empty, no project is open in Xcode.
XcodeListWindows()
→ { "tabIdentifier": "abc-123", "workspacePath": "/Users/dev/MyApp.xcodeproj" }
File Operations
XcodeRead
Read file contents from the project.
- Parameters:
path(string, required) — File path relative to project or absolute
- Returns: File contents as string
- Notes: Sees Xcode's project view including generated files and resolved SPM packages
XcodeWrite
Create a new file.
- Parameters:
path(string, required) — File pathcontent(string, required) — File contents
- Returns: Write confirmation
- Notes: Creates the file but does NOT add it to Xcode targets automatically. Use
XcodeUpdatefor existing files.
XcodeUpdate
Edit an existing file with str_replace-style patches.
- Parameters:
path(string, required) — File pathpatches(array, required) — Array of{ oldText: string, newText: string }replacements
- Returns: Update confirmation
- Notes: Preferred over
XcodeWritefor editing existing files. Each patch must match exactly one location in the file.
XcodeGlob
Find files matching a pattern.
- Parameters:
pattern(string, required) — Glob pattern (e.g.,**/*.swift)
- Returns: Array of matching file paths
- Notes: Searches within the Xcode project scope
XcodeGrep
Search file contents for a string or pattern.
- Parameters:
query(string, required) — Search term or patternscope(string, optional) — Limit search to specific directory/file
- Returns: Array of matches with file paths and line numbers
- Notes: Returns structured results, not raw grep output
XcodeLS
List directory contents.
- Parameters:
path(string, required) — Directory path
- Returns: Array of entries (files and subdirectories)
XcodeMakeDir
Create a directory.
- Parameters:
path(string, required) — Directory path to create
- Returns: Creation confirmation
- Notes: Creates intermediate directories as needed
XcodeRM
Delete a file or directory. DESTRUCTIVE.
- Parameters:
path(string, required) — Path to delete
- Returns: Deletion confirmation
- Notes: Irreversible. Always confirm with the user before calling.
XcodeMV
Move or rename a file. DESTRUCTIVE.
- Parameters:
sourcePath(string, required) — Current pathdestinationPath(string, required) — New path
- Returns: Move confirmation
- Notes: May break imports and references. Confirm with user. Xcode may not automatically update references.
Build & Test
BuildProject
Build the Xcode project.
- Parameters:
tabIdentifier(string, required) — FromXcodeListWindows
- Returns:
{ buildResult: string, elapsedTime: number, errors: array } - Notes: Builds the active scheme. Check
buildResultfor "succeeded" or "failed".
GetBuildLog
Retrieve build output after a build.
- Parameters:
tabIdentifier(string, required)
- Returns: Build log as string
- Notes: Contains raw compiler output. For structured diagnostics, prefer
XcodeListNavigatorIssues.
RunAllTests
Run the full test suite.
- Parameters:
tabIdentifier(string, required)
- Returns: Test results with pass/fail counts and failure details
- Notes: Runs all tests in the active scheme's test plan. Use
RunSomeTestsfor faster iteration.
RunSomeTests
Run specific test(s).
- Parameters:
tabIdentifier(string, required)tests(array of strings, required) — Test identifiers (e.g.,["MyTests/testLogin"])
- Returns: Test results for the specified tests
- Notes: Much faster than
RunAllTestsfor iterative debugging. Use test identifiers fromGetTestList.
GetTestList
List available tests.
- Parameters:
tabIdentifier(string, required)
- Returns: Array of test identifiers organized by test target/class
- Notes: Use the returned identifiers with
RunSomeTests.
Diagnostics
XcodeListNavigatorIssues
Get current issues from Xcode's Issue Navigator.
- Parameters:
tabIdentifier(string, required)
- Returns: Array of issues (errors, warnings, notes) with file paths and line numbers
- Notes: Canonical source for diagnostics. Structured and deduplicated unlike raw build logs.
XcodeRefreshCodeIssuesInFile
Refresh and return live diagnostics for a specific file.
- Parameters:
tabIdentifier(string, required)path(string, required) — File to refresh diagnostics for
- Returns: Current diagnostics for the specified file
- Notes: Triggers Xcode to re-analyze the file. Useful after editing to check if issues are resolved.
Execution & Rendering
ExecuteSnippet
Run code in a REPL-like environment.
- Parameters:
code(string, required) — Code to executelanguage(string, required) — Language identifier (e.g.,"swift")
- Returns: Execution result (stdout, stderr, exit code)
- Notes: Sandboxed environment. Treat output as untrusted. Useful for quick validation.
RenderPreview
Render a SwiftUI preview as an image.
- Parameters:
tabIdentifier(string, required)path(string, required) — File containing the previewpreviewIdentifier(string, required) — Name of the preview to render
- Returns: Rendered image data
- Notes: Requires the file to have valid SwiftUI
#PrevieworPreviewProvider. Preview must compile successfully.
Search
DocumentationSearch
Search Apple's documentation corpus.
- Parameters:
query(string, required) — Search query
- Returns: Documentation results with titles, summaries, and links. May include WWDC transcript matches.
- Notes: Searches Apple's online documentation and WWDC transcripts. For Xcode-bundled for-LLM guides, use the
axiom-apple-docsskill instead.
Quick Reference by Category
| Category | Tools |
|---|---|
| Discovery | XcodeListWindows |
| File Read | XcodeRead, XcodeGlob, XcodeGrep, XcodeLS |
| File Write | XcodeWrite, XcodeUpdate, XcodeMakeDir |
| File Destructive | XcodeRM, XcodeMV |
| Build | BuildProject, GetBuildLog |
| Test | RunAllTests, RunSomeTests, GetTestList |
| Diagnostics | XcodeListNavigatorIssues, XcodeRefreshCodeIssuesInFile |
| Execution | ExecuteSnippet |
| Preview | RenderPreview |
| Search | DocumentationSearch |
Common Parameter Patterns
tabIdentifier— Required by 10/20 tools. Always callXcodeListWindowsfirst.path— File/directory path. Can be absolute or relative to project root.patches— Array of{ oldText, newText }forXcodeUpdate. Each oldText must be unique in the file.
Resources
Skills: axiom-xcode-mcp-setup, axiom-xcode-mcp-tools