.claude-plugin/plugins/axiom/skills/axiom-xcode-mcp-ref/SKILL.md
Reference — all 20 Xcode MCP tools with parameters, return schemas, and examples
npx skillsauth add charleswiltgen/axiom axiom-xcode-mcp-refInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete reference for all 20 tools exposed by Xcode's MCP server (xcrun mcpbridge).
Source: Xcode 26.3 tools/list response. Validated against Keith Smiley's gist (2025-07-15).
Critical: tabIdentifier is required by 18 of 20 tools. Always call XcodeListWindows first.
Returns open Xcode windows. Call this first to get tabIdentifier values.
{ message: string } — description of open windowstabIdentifier.Read file contents (cat -n format, 600 lines default).
tabIdentifier (string, required)filePath (string, required) — project-relative or absolutelimit (integer, optional) — max lines to returnoffset (integer, optional) — starting line number{ content, filePath, fileSize, linesRead, startLine, totalLines }Create or overwrite a file. Automatically adds new files to the project structure.
tabIdentifier (string, required)filePath (string, required)content (string, required){ success, filePath, absolutePath, bytesWritten, linesWritten, wasExistingFile, message }Edit an existing file with text replacement.
tabIdentifier (string, required)filePath (string, required)oldString (string, required) — text to findnewString (string, required) — replacement textreplaceAll (boolean, optional, default false) — replace all occurrences{ filePath, editsApplied, success, originalContentLength, modifiedContentLength, message }oldString must be unique unless replaceAll is true. Prefer over XcodeWrite for editing existing files.Find files matching a wildcard pattern.
tabIdentifier (string, required)pattern (string, optional, default **/*) — glob patternpath (string, optional) — directory to search within{ matches[], pattern, searchPath, truncated, totalFound, message }Search file contents with regex.
tabIdentifier (string, required)pattern (string, required) — regex patternglob (string, optional) — file pattern filterpath (string, optional) — directory scopetype (string, optional) — file type filterignoreCase (boolean, optional)multiline (boolean, optional)outputMode (enum, optional) — content, filesWithMatches, countlinesContext (integer, optional) — context lineslinesBefore (integer, optional)linesAfter (integer, optional)headLimit (integer, optional) — max resultsshowLineNumbers (boolean, optional){ results[], pattern, searchPath, matchCount, truncated, message }outputMode to control result format.List directory contents.
tabIdentifier (string, required)path (string, required)recursive (boolean, optional, default true)ignore (array of strings, optional) — patterns to skip{ items[], path }Create a directory in the project.
tabIdentifier (string, required)directoryPath (string, required){ success, message, createdPath }Remove files or directories from project. Uses Trash by default.
tabIdentifier (string, required)path (string, required)deleteFiles (boolean, optional, default true) — move to Trashrecursive (boolean, optional){ removedPath, success, message }Move or copy files.
tabIdentifier (string, required)sourcePath (string, required)destinationPath (string, required)operation (enum, optional) — move or copyoverwriteExisting (boolean, optional){ success, operation, message, sourceOriginalPath, destinationFinalPath }Build the project and wait for completion.
tabIdentifier (string, required){ buildResult, elapsedTime, errors[] }classification, filePath, lineNumber, message.Retrieve build log with optional filtering.
tabIdentifier (string, required)severity (enum, optional) — remark, warning, errorpattern (string, optional) — regex filterglob (string, optional) — file pattern filter{ buildIsRunning, buildLogEntries[], buildResult, fullLogPath, truncated, totalFound }buildTask and emittedIssues[].Run the full test suite from the active scheme's test plan.
tabIdentifier (string, required){ summary, counts, results[], schemeName, activeTestPlanName }counts has total, passed, failed, skipped, expectedFailures, notRun. Each result has targetName, identifier, displayName, state.Run specific tests by identifier.
tabIdentifier (string, required)tests (array, required) — each element: { targetName: string, testIdentifier: string }GetTestList to discover valid test identifiers.List available tests from the active test plan.
tabIdentifier (string, required){ tests[], schemeName, activeTestPlanName }targetName, identifier, displayName, isEnabled, filePath, lineNumber, tags[].Get issues from Xcode's Issue Navigator.
tabIdentifier (string, required)severity (enum, optional) — remark, warning, errorpattern (string, optional) — regex filterglob (string, optional) — file pattern filter{ issues[], truncated, totalFound, message }message, severity, path, line, category, vitality (fresh/stale). Structured and deduplicated.Refresh diagnostics for a specific file.
tabIdentifier (string, required)filePath (string, required){ filePath, diagnosticsCount, content, success }Build and run a code snippet in the context of a source file.
tabIdentifier (string, required)codeSnippet (string, required) — code to executesourceFilePath (string, required) — Swift file whose context the snippet runs in (has access to its fileprivate declarations)timeout (integer, optional, default 120) — seconds{ executionResults } — console output from print statementslanguage parameter — Swift only.Render a SwiftUI preview snapshot.
tabIdentifier (string, required)sourceFilePath (string, required) — Swift file with #PreviewpreviewDefinitionIndexInFile (integer, optional, default 0) — zero-based index of which #Preview to rendertimeout (integer, optional, default 120){ previewSnapshotPath } — path to rendered image#Preview in the file is index 0.Search Apple Developer Documentation semantically.
query (string, required)frameworks (array of strings, optional) — scope to specific frameworks{ documents[] } — each with title, uri, contents, score| 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 |
tabIdentifier — Required by 18/20 tools. Always call XcodeListWindows first.filePath — Used by XcodeRead, XcodeWrite, XcodeUpdate, XcodeRefreshCodeIssuesInFile. Project-relative or absolute.path — Used by XcodeLS, XcodeRM, XcodeGlob. Directory path.directoryPath — Used by XcodeMakeDir.sourceFilePath — Used by ExecuteSnippet, RenderPreview. Must be a Swift source file.Skills: axiom-xcode-mcp-setup, axiom-xcode-mcp-tools
development
Use when building ANY watchOS app — app structure, independent apps, Watch Connectivity, Smart Stack widgets, complications, controls, RelevanceKit, background tasks, ClockKit migration.
development
Use when working with HealthKit, WorkoutKit, health data, workouts, or fitness features on iOS or watchOS. Covers permissions, queries, background delivery, custom workouts, multidevice coordination.
development
Use when building, fixing, or improving ANY SwiftUI UI — views, navigation, layout, animations, performance, architecture, gestures, debugging, iOS 26 features.
content-media
Use when working with camera, photos, audio, haptics, ShazamKit, or Now Playing. Covers AVCaptureSession, PHPicker, PhotosPicker, AVFoundation, Core Haptics, audio recognition, MediaPlayer, CarPlay, MusicKit.