You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,7 @@ A Model Context Protocol (MCP) server that provides Xcode-related tools for inte
23
23
-[Diagnostic Tool](#diagnostic-tool)
24
24
-[Using with mise](#using-with-mise)
25
25
-[Using with npx](#using-with-npx)
26
+
-[MCP Server Logs](#mcp-server-logs)
26
27
-[Privacy](#privacy)
27
28
-[What is sent to Sentry?](#what-is-sent-to-sentry)
28
29
-[Opting Out of Sentry](#opting-out-of-sentry)
@@ -200,6 +201,17 @@ The diagnostic tool will output comprehensive information about:
200
201
201
202
When reporting issues on GitHub, please include the full output from the diagnostic tool to help with troubleshooting.
202
203
204
+
### MCP Server Logs
205
+
206
+
It can be helpful to have access to the log messages from the MCP server to identify any issues. The logs are captured by the client application, for example in Cursor:
If your MCP client doesn't have log files you can run the server directly using the MCP Inspector tool see [Debugging](CONTRIBUTING.md#debugging) for more information on how to do this. Once running the MCP tool prints all log messages to it's error pane, which can be helpful in diagnosing issues.
214
+
203
215
## Privacy
204
216
205
217
This project uses [Sentry](https://sentry.io/) for error monitoring and diagnostics. Sentry helps us track issues, crashes, and unexpected errors to improve the reliability and stability of XcodeBuildMCP.
"Gets the app bundle path for a macOS application using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_macos_app_path_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' })",
190
+
'get_mac_app_path_ws',
191
+
"Gets the app bundle path for a macOS application using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_mac_app_path_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' })",
192
192
{
193
193
workspacePath: workspacePathSchema,
194
194
scheme: schemeSchema,
@@ -214,14 +214,14 @@ export function registerGetMacOSAppPathWorkspaceTool(server: McpServer): void {
"Gets the app bundle path for a macOS application using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_macos_app_path_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' })",
223
+
'get_mac_app_path_proj',
224
+
"Gets the app bundle path for a macOS application using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_mac_app_path_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' })",
225
225
{
226
226
projectPath: projectPathSchema,
227
227
scheme: schemeSchema,
@@ -247,14 +247,14 @@ export function registerGetMacOSAppPathProjectTool(server: McpServer): void {
247
247
}
248
248
249
249
/**
250
-
* Registers the get_ios_device_app_path_workspace tool
"Gets the app bundle path for an iOS physical device application using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_ios_device_app_path_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' })",
256
+
'get_ios_dev_app_path_ws',
257
+
"Gets the app bundle path for an iOS physical device application using a workspace. IMPORTANT: Requires workspacePath and scheme. Example: get_ios_dev_app_path_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme' })",
258
258
{
259
259
workspacePath: workspacePathSchema,
260
260
scheme: schemeSchema,
@@ -278,14 +278,14 @@ export function registerGetiOSDeviceAppPathWorkspaceTool(server: McpServer): voi
278
278
}
279
279
280
280
/**
281
-
* Registers the get_ios_device_app_path_project tool
"Gets the app bundle path for an iOS physical device application using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_ios_device_app_path_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' })",
287
+
'get_ios_dev_app_path_proj',
288
+
"Gets the app bundle path for an iOS physical device application using a project file. IMPORTANT: Requires projectPath and scheme. Example: get_ios_dev_app_path_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme' })",
289
289
{
290
290
projectPath: projectPathSchema,
291
291
scheme: schemeSchema,
@@ -309,14 +309,14 @@ export function registerGetiOSDeviceAppPathProjectTool(server: McpServer): void
309
309
}
310
310
311
311
/**
312
-
* Registers the get_simulator_app_path_by_name_workspace tool
"Gets the app bundle path for a simulator by name using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorName. Example: get_simulator_app_path_by_name_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' })",
318
+
'get_sim_app_path_name_ws',
319
+
"Gets the app bundle path for a simulator by name using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorName. Example: get_sim_app_path_name_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' })",
320
320
{
321
321
workspacePath: workspacePathSchema,
322
322
scheme: schemeSchema,
@@ -348,14 +348,14 @@ export function registerGetSimulatorAppPathByNameWorkspaceTool(server: McpServer
348
348
}
349
349
350
350
/**
351
-
* Registers the get_simulator_app_path_by_name_project tool
"Gets the app bundle path for a simulator by name using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorName. Example: get_simulator_app_path_by_name_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' })",
357
+
'get_sim_app_path_name_proj',
358
+
"Gets the app bundle path for a simulator by name using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorName. Example: get_sim_app_path_name_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorName: 'iPhone 16' })",
359
359
{
360
360
projectPath: projectPathSchema,
361
361
scheme: schemeSchema,
@@ -387,14 +387,14 @@ export function registerGetSimulatorAppPathByNameProjectTool(server: McpServer):
387
387
}
388
388
389
389
/**
390
-
* Registers the get_simulator_app_path_by_id_workspace tool
"Gets the app bundle path for a simulator by UUID using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorId. Example: get_simulator_app_path_by_id_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' })",
396
+
'get_sim_app_path_id_ws',
397
+
"Gets the app bundle path for a simulator by UUID using a workspace. IMPORTANT: Requires workspacePath, scheme, platform, and simulatorId. Example: get_sim_app_path_id_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' })",
398
398
{
399
399
workspacePath: workspacePathSchema,
400
400
scheme: schemeSchema,
@@ -426,14 +426,14 @@ export function registerGetSimulatorAppPathByIdWorkspaceTool(server: McpServer):
426
426
}
427
427
428
428
/**
429
-
* Registers the get_simulator_app_path_by_id_project tool
"Gets the app bundle path for a simulator by UUID using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorId. Example: get_simulator_app_path_by_id_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' })",
435
+
'get_sim_app_path_id_proj',
436
+
"Gets the app bundle path for a simulator by UUID using a project file. IMPORTANT: Requires projectPath, scheme, platform, and simulatorId. Example: get_sim_app_path_id_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', platform: 'iOS Simulator', simulatorId: 'SIMULATOR_UUID' })",
"Builds an iOS app from a workspace for a physical device. IMPORTANT: Requires workspacePath and scheme. Example: ios_device_build_workspace({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' })",
42
+
'build_ios_dev_ws',
43
+
"Builds an iOS app from a workspace for a physical device. IMPORTANT: Requires workspacePath and scheme. Example: build_ios_dev_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme' })",
44
44
{
45
45
workspacePath: workspacePathSchema,
46
46
scheme: schemeSchema,
@@ -71,14 +71,14 @@ export function registerIOSDeviceBuildWorkspaceTool(server: McpServer): void {
"Builds an iOS app from a project file for a physical device. IMPORTANT: Requires projectPath and scheme. Example: ios_device_build_project({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' })",
80
+
'build_ios_dev_proj',
81
+
"Builds an iOS app from a project file for a physical device. IMPORTANT: Requires projectPath and scheme. Example: build_ios_dev_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme' })",
When done with any option, use: stop_and_get_simulator_log({ logSessionId: 'SESSION_ID' })`,
337
+
When done with any option, use: stop_sim_log_cap({ logSessionId: 'SESSION_ID' })`,
338
338
},
339
339
],
340
340
};
@@ -363,8 +363,8 @@ export function registerIOSSimulatorBuildByNameWorkspaceTool(server: McpServer):
363
363
364
364
registerTool<Params>(
365
365
server,
366
-
'ios_simulator_build_by_name_workspace',
367
-
"Builds an iOS app from a workspace for a specific simulator by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: ios_simulator_build_by_name_workspace({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
366
+
'build_ios_sim_name_ws',
367
+
"Builds an iOS app from a workspace for a specific simulator by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: build_ios_sim_name_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
368
368
{
369
369
workspacePath: workspacePathSchema,
370
370
scheme: schemeSchema,
@@ -411,8 +411,8 @@ export function registerIOSSimulatorBuildByNameProjectTool(server: McpServer): v
411
411
412
412
registerTool<Params>(
413
413
server,
414
-
'ios_simulator_build_by_name_project',
415
-
"Builds an iOS app from a project file for a specific simulator by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: ios_simulator_build_by_name_project({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
414
+
'build_ios_sim_name_proj',
415
+
"Builds an iOS app from a project file for a specific simulator by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: build_ios_sim_name_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
416
416
{
417
417
projectPath: projectPathSchema,
418
418
scheme: schemeSchema,
@@ -459,8 +459,8 @@ export function registerIOSSimulatorBuildByIdWorkspaceTool(server: McpServer): v
459
459
460
460
registerTool<Params>(
461
461
server,
462
-
'ios_simulator_build_by_id_workspace',
463
-
"Builds an iOS app from a workspace for a specific simulator by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: ios_simulator_build_by_id_workspace({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
462
+
'build_ios_sim_id_ws',
463
+
"Builds an iOS app from a workspace for a specific simulator by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: build_ios_sim_id_ws({ workspacePath: '/path/to/MyProject.xcworkspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
464
464
{
465
465
workspacePath: workspacePathSchema,
466
466
scheme: schemeSchema,
@@ -507,8 +507,8 @@ export function registerIOSSimulatorBuildByIdProjectTool(server: McpServer): voi
507
507
508
508
registerTool<Params>(
509
509
server,
510
-
'ios_simulator_build_by_id_project',
511
-
"Builds an iOS app from a project file for a specific simulator by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: ios_simulator_build_by_id_project({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
510
+
'build_ios_sim_id_proj',
511
+
"Builds an iOS app from a project file for a specific simulator by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: build_ios_sim_id_proj({ projectPath: '/path/to/MyProject.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
512
512
{
513
513
projectPath: projectPathSchema,
514
514
scheme: schemeSchema,
@@ -555,8 +555,8 @@ export function registerIOSSimulatorBuildAndRunByNameWorkspaceTool(server: McpSe
555
555
556
556
registerTool<Params>(
557
557
server,
558
-
'ios_simulator_build_and_run_by_name_workspace',
559
-
"Builds and runs an iOS app from a workspace on a simulator specified by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: ios_simulator_build_and_run_by_name_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
558
+
'build_run_ios_sim_name_ws',
559
+
"Builds and runs an iOS app from a workspace on a simulator specified by name. IMPORTANT: Requires workspacePath, scheme, and simulatorName. Example: build_run_ios_sim_name_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
560
560
{
561
561
workspacePath: workspacePathSchema,
562
562
scheme: schemeSchema,
@@ -603,8 +603,8 @@ export function registerIOSSimulatorBuildAndRunByNameProjectTool(server: McpServ
603
603
604
604
registerTool<Params>(
605
605
server,
606
-
'ios_simulator_build_and_run_by_name_project',
607
-
"Builds and runs an iOS app from a project file on a simulator specified by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: ios_simulator_build_and_run_by_name_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
606
+
'build_run_ios_sim_name_proj',
607
+
"Builds and runs an iOS app from a project file on a simulator specified by name. IMPORTANT: Requires projectPath, scheme, and simulatorName. Example: build_run_ios_sim_name_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorName: 'iPhone 16' })",
608
608
{
609
609
projectPath: projectPathSchema,
610
610
scheme: schemeSchema,
@@ -651,8 +651,8 @@ export function registerIOSSimulatorBuildAndRunByIdWorkspaceTool(server: McpServ
651
651
652
652
registerTool<Params>(
653
653
server,
654
-
'ios_simulator_build_and_run_by_id_workspace',
655
-
"Builds and runs an iOS app from a workspace on a simulator specified by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: ios_simulator_build_and_run_by_id_workspace({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
654
+
'build_run_ios_sim_id_ws',
655
+
"Builds and runs an iOS app from a workspace on a simulator specified by UUID. IMPORTANT: Requires workspacePath, scheme, and simulatorId. Example: build_run_ios_sim_id_ws({ workspacePath: '/path/to/workspace', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
656
656
{
657
657
workspacePath: workspacePathSchema,
658
658
scheme: schemeSchema,
@@ -699,8 +699,8 @@ export function registerIOSSimulatorBuildAndRunByIdProjectTool(server: McpServer
699
699
700
700
registerTool<Params>(
701
701
server,
702
-
'ios_simulator_build_and_run_by_id_project',
703
-
"Builds and runs an iOS app from a project file on a simulator specified by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: ios_simulator_build_and_run_by_id_project({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
702
+
'build_run_ios_sim_id_proj',
703
+
"Builds and runs an iOS app from a project file on a simulator specified by UUID. IMPORTANT: Requires projectPath, scheme, and simulatorId. Example: build_run_ios_sim_id_proj({ projectPath: '/path/to/project.xcodeproj', scheme: 'MyScheme', simulatorId: 'SIMULATOR_UUID' })",
0 commit comments