xcode-mcp-server 1.3.2__tar.gz → 1.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. xcode_mcp_server-1.3.3/.github/workflows/claude-self-review.yml +70 -0
  2. xcode_mcp_server-1.3.3/.github/workflows/claude.yml +83 -0
  3. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/PKG-INFO +1 -1
  4. xcode_mcp_server-1.3.3/_venv-setup.sh +27 -0
  5. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/deploy-beta.sh +38 -64
  6. xcode_mcp_server-1.3.3/deploy.sh +118 -0
  7. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dev.sh +5 -28
  8. xcode_mcp_server-1.3.3/dist-archive/xcode_mcp_server-1.3.2-py3-none-any.whl +0 -0
  9. xcode_mcp_server-1.3.3/dist-archive/xcode_mcp_server-1.3.2.tar.gz +0 -0
  10. xcode_mcp_server-1.3.3/test_projects/templates/BrokenApp/BrokenApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  11. {xcode_mcp_server-1.3.2/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp.xcodeproj → xcode_mcp_server-1.3.3/test_projects/templates/BrokenApp/BrokenApp.xcodeproj}/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +1 -1
  12. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/__init__.py +1 -1
  13. xcode_mcp_server-1.3.2/.github/workflows/claude-code-review.yml +0 -44
  14. xcode_mcp_server-1.3.2/.github/workflows/claude.yml +0 -50
  15. xcode_mcp_server-1.3.2/deploy.sh +0 -143
  16. xcode_mcp_server-1.3.2/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  17. xcode_mcp_server-1.3.2/test_projects/fromXcode/macosEmptyCommandLineApp/macosEmptyCommandLineApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  18. xcode_mcp_server-1.3.2/test_projects/fromXcode/macosEmptyCommandLineApp/macosEmptyCommandLineApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  19. xcode_mcp_server-1.3.2/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  20. xcode_mcp_server-1.3.2/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  21. xcode_mcp_server-1.3.2/test_projects/templates/BrokenApp/BrokenApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  22. xcode_mcp_server-1.3.2/test_projects/templates/BrokenApp/BrokenApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  23. xcode_mcp_server-1.3.2/test_projects/templates/ConsoleApp/ConsoleApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  24. xcode_mcp_server-1.3.2/test_projects/templates/ConsoleApp/ConsoleApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  25. xcode_mcp_server-1.3.2/test_projects/templates/SimpleApp/SimpleApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  26. xcode_mcp_server-1.3.2/test_projects/templates/SimpleApp/SimpleApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  27. xcode_mcp_server-1.3.2/test_projects/templates/SwiftUITestApp/SwiftUITestApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  28. xcode_mcp_server-1.3.2/test_projects/templates/SwiftUITestApp/SwiftUITestApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  29. xcode_mcp_server-1.3.2/test_projects/templates/iOSTestApp/iOSTestApp.xcodeproj/project.xcworkspace/xcuserdata/andrew.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  30. xcode_mcp_server-1.3.2/test_projects/templates/iOSTestApp/iOSTestApp.xcodeproj/xcuserdata/andrew.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  31. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/.gitignore +0 -0
  32. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/CLAUDE.md +0 -0
  33. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/LICENSE +0 -0
  34. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/README.md +0 -0
  35. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/TODO.md +0 -0
  36. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.0.6-py3-none-any.whl +0 -0
  37. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.0.6.tar.gz +0 -0
  38. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.2.1-py3-none-any.whl +0 -0
  39. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.2.1.tar.gz +0 -0
  40. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b1-py3-none-any.whl +0 -0
  41. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b1.tar.gz +0 -0
  42. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b2-py3-none-any.whl +0 -0
  43. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b2.tar.gz +0 -0
  44. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b3-py3-none-any.whl +0 -0
  45. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b3.tar.gz +0 -0
  46. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b4-py3-none-any.whl +0 -0
  47. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b4.tar.gz +0 -0
  48. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b5-py3-none-any.whl +0 -0
  49. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b5.tar.gz +0 -0
  50. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b6-py3-none-any.whl +0 -0
  51. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b6.tar.gz +0 -0
  52. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b7-py3-none-any.whl +0 -0
  53. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.0b7.tar.gz +0 -0
  54. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.1-py3-none-any.whl +0 -0
  55. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/dist-archive/xcode_mcp_server-1.3.1.tar.gz +0 -0
  56. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/info.sh +0 -0
  57. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/pyproject.toml +0 -0
  58. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/requirements.txt +0 -0
  59. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/run_local_for_claude.sh +0 -0
  60. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/cleanup_tests.sh +0 -0
  61. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/create_projects.py +0 -0
  62. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/create_real_projects.py +0 -0
  63. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/create_spm_projects.sh +0 -0
  64. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/create_xcode_projects.sh +0 -0
  65. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/run_all_tests.sh +0 -0
  66. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/setup_test_projects.sh +0 -0
  67. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/scripts/setup_tests.sh +0 -0
  68. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  69. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  70. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp/Assets.xcassets/Contents.json +0 -0
  71. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp/ContentView.swift +0 -0
  72. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp/iosEmptySwiftUIAppApp.swift +0 -0
  73. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp.xcodeproj/project.pbxproj +0 -0
  74. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/iosEmptySwiftUIApp/iosEmptySwiftUIApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  75. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptyCommandLineApp/macosEmptyCommandLineApp/main.swift +0 -0
  76. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptyCommandLineApp/macosEmptyCommandLineApp.xcodeproj/project.pbxproj +0 -0
  77. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptyCommandLineApp/macosEmptyCommandLineApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  78. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  79. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  80. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp/Assets.xcassets/Contents.json +0 -0
  81. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp/ContentView.swift +0 -0
  82. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp/macosEmptySwiftUIAppApp.swift +0 -0
  83. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp.xcodeproj/project.pbxproj +0 -0
  84. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/fromXcode/macosEmptySwiftUIApp/macosEmptySwiftUIApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  85. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/BrokenApp/BrokenApp/main.swift +0 -0
  86. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/BrokenApp/BrokenApp.xcodeproj/project.pbxproj +0 -0
  87. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/BrokenApp/BrokenApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  88. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/ConsoleApp/ConsoleApp/main.swift +0 -0
  89. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/ConsoleApp/ConsoleApp.xcodeproj/project.pbxproj +0 -0
  90. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/ConsoleApp/ConsoleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  91. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SimpleApp/SimpleApp/main.swift +0 -0
  92. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SimpleApp/SimpleApp.xcodeproj/project.pbxproj +0 -0
  93. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SimpleApp/SimpleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  94. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  95. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  96. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp/Assets.xcassets/Contents.json +0 -0
  97. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp/ContentView.swift +0 -0
  98. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp/macosEmptySwiftUIAppApp.swift +0 -0
  99. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp.xcodeproj/project.pbxproj +0 -0
  100. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/SwiftUITestApp/SwiftUITestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  101. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  102. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  103. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp/Assets.xcassets/Contents.json +0 -0
  104. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp/ContentView.swift +0 -0
  105. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp/iosEmptySwiftUIAppApp.swift +0 -0
  106. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp.xcodeproj/project.pbxproj +0 -0
  107. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/test_projects/templates/iOSTestApp/iOSTestApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -0
  108. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/debug_build.py +0 -0
  109. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/debug_test.py +0 -0
  110. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/test_basic.py +0 -0
  111. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/test_build.py +0 -0
  112. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/test_fixed.py +0 -0
  113. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/test_minimal.py +0 -0
  114. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/tests/test_runner.py +0 -0
  115. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/__main__.py +0 -0
  116. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/cli.py +0 -0
  117. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/config_manager.py +0 -0
  118. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/config_ui.py +0 -0
  119. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/exceptions.py +0 -0
  120. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/security.py +0 -0
  121. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/server.py +0 -0
  122. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/__init__.py +0 -0
  123. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/build_project.py +0 -0
  124. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/clean_project.py +0 -0
  125. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/debug_list_notification_history.py +0 -0
  126. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_build_errors.py +0 -0
  127. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_build_results.py +0 -0
  128. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_directory_listing.py +0 -0
  129. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_directory_tree.py +0 -0
  130. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_latest_test_results.py +0 -0
  131. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_project_schemes.py +0 -0
  132. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_runtime_output.py +0 -0
  133. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/get_xcode_projects.py +0 -0
  134. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/list_booted_simulators.py +0 -0
  135. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/list_mac_app_windows.py +0 -0
  136. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/list_project_tests.py +0 -0
  137. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/list_running_mac_apps.py +0 -0
  138. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/run_project_tests.py +0 -0
  139. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/run_project_unmonitored.py +0 -0
  140. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/run_project_until_terminated.py +0 -0
  141. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/run_project_with_user_interaction.py +0 -0
  142. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/stop_project.py +0 -0
  143. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/take_app_screenshot.py +0 -0
  144. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/take_simulator_screenshot.py +0 -0
  145. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/take_window_screenshot.py +0 -0
  146. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/take_xcode_screenshot.py +0 -0
  147. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/tools/version.py +0 -0
  148. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/__init__.py +0 -0
  149. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/applescript.py +0 -0
  150. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/build_log_parser.py +0 -0
  151. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/decode_xcode_recents.swift +0 -0
  152. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/screenshot.py +0 -0
  153. {xcode_mcp_server-1.3.2 → xcode_mcp_server-1.3.3}/xcode_mcp_server/utils/xcresult.py +0 -0
@@ -0,0 +1,70 @@
1
+ name: Claude Self-Review
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+
7
+ jobs:
8
+ self-review:
9
+ if: startsWith(github.event.pull_request.head.ref, 'claude/')
10
+ runs-on: ubuntu-latest
11
+ permissions:
12
+ contents: write
13
+ pull-requests: write
14
+ issues: write
15
+ id-token: write
16
+ steps:
17
+ - name: Check review iteration count
18
+ id: check-iterations
19
+ env:
20
+ GH_TOKEN: ${{ github.token }}
21
+ PR_NUMBER: ${{ github.event.pull_request.number }}
22
+ run: |
23
+ MAX_REVIEWS=3
24
+ COUNT=$(gh api "repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" \
25
+ --jq '[.[] | select(.user.login == "github-actions[bot]" and (.body | contains("Self-review pass"))) ] | length')
26
+ echo "review_count=$COUNT" >> "$GITHUB_OUTPUT"
27
+ if [ "$COUNT" -ge "$MAX_REVIEWS" ]; then
28
+ echo "skip=true" >> "$GITHUB_OUTPUT"
29
+ echo "Reached max self-review iterations ($MAX_REVIEWS). Skipping."
30
+ else
31
+ echo "skip=false" >> "$GITHUB_OUTPUT"
32
+ echo "Self-review pass $((COUNT + 1)) of $MAX_REVIEWS"
33
+ fi
34
+
35
+ - name: Checkout repository
36
+ if: steps.check-iterations.outputs.skip != 'true'
37
+ uses: actions/checkout@v4
38
+ with:
39
+ fetch-depth: 1
40
+ ref: ${{ github.head_ref }}
41
+
42
+ - name: Set up global Claude config
43
+ if: steps.check-iterations.outputs.skip != 'true'
44
+ env:
45
+ GH_TOKEN: ${{ secrets.CROSS_REPO_PAT }}
46
+ run: |
47
+ mkdir -p ~/.claude
48
+ gh api repos/drewster99/dev-ops/contents/claude-rules/base.md \
49
+ --jq '.content' | base64 -d > ~/.claude/CLAUDE.md
50
+ echo "" >> ~/.claude/CLAUDE.md
51
+ gh api repos/drewster99/dev-ops/contents/claude-rules/ci.md \
52
+ --jq '.content' | base64 -d >> ~/.claude/CLAUDE.md
53
+
54
+ - name: Self-review and fix
55
+ if: steps.check-iterations.outputs.skip != 'true'
56
+ uses: anthropics/claude-code-action@v1
57
+ with:
58
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
59
+ prompt: |
60
+ Self-review pass ${{ steps.check-iterations.outputs.review_count }} of 3.
61
+
62
+ You opened this PR. Review your own work before a human sees it.
63
+
64
+ 1. Re-read every changed file. Check for bugs, edge cases, missing error handling.
65
+ 2. Verify code style matches CLAUDE.md and existing patterns in this repo.
66
+ 3. Look for security issues (injection, hardcoded secrets, unsafe operations).
67
+ 4. If you find problems, fix them and push to this branch.
68
+ 5. After fixing, re-review your fixes.
69
+ 6. Add a PR comment starting with "Self-review pass N:" summarizing findings and any fixes made.
70
+ 7. If everything looks clean, say so. Don't make changes for the sake of making changes.
@@ -0,0 +1,83 @@
1
+ name: Claude Code
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created]
6
+ pull_request_review_comment:
7
+ types: [created]
8
+ issues:
9
+ types: [opened, assigned]
10
+ pull_request_review:
11
+ types: [submitted]
12
+
13
+ jobs:
14
+ claude:
15
+ if: |
16
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
+ (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude'))) ||
20
+ (github.event_name == 'issues' && github.event.action == 'assigned' && github.event.assignee.login == 'claude[bot]')
21
+ runs-on: ubuntu-latest
22
+ permissions:
23
+ contents: write
24
+ pull-requests: write
25
+ issues: write
26
+ id-token: write
27
+ actions: read
28
+ steps:
29
+ - name: Checkout repository
30
+ uses: actions/checkout@v4
31
+ with:
32
+ fetch-depth: 1
33
+
34
+ - name: Set up global Claude config
35
+ env:
36
+ GH_TOKEN: ${{ secrets.CROSS_REPO_PAT }}
37
+ run: |
38
+ mkdir -p ~/.claude
39
+ gh api repos/drewster99/dev-ops/contents/claude-rules/base.md \
40
+ --jq '.content' | base64 -d > ~/.claude/CLAUDE.md
41
+ echo "" >> ~/.claude/CLAUDE.md
42
+ gh api repos/drewster99/dev-ops/contents/claude-rules/ci.md \
43
+ --jq '.content' | base64 -d >> ~/.claude/CLAUDE.md
44
+
45
+ - name: Run Claude Code
46
+ id: claude
47
+ uses: anthropics/claude-code-action@v1
48
+ with:
49
+ claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
50
+ additional_permissions: |
51
+ actions: read
52
+
53
+ - name: Auto-create PR if Claude pushed a branch
54
+ if: github.event_name == 'issues' || (github.event_name == 'issue_comment' && !github.event.issue.pull_request)
55
+ env:
56
+ GH_TOKEN: ${{ github.token }}
57
+ run: |
58
+ # Find branches created by this workflow run
59
+ ISSUE_NUMBER=${{ github.event.issue.number }}
60
+ BRANCH=$(git branch -r --list "origin/claude/*${ISSUE_NUMBER}*" | head -1 | xargs)
61
+
62
+ if [ -z "$BRANCH" ]; then
63
+ echo "No Claude branch found for issue #${ISSUE_NUMBER}, skipping PR creation."
64
+ exit 0
65
+ fi
66
+
67
+ LOCAL_BRANCH="${BRANCH#origin/}"
68
+
69
+ # Check if a PR already exists for this branch
70
+ EXISTING_PR=$(gh pr list --head "$LOCAL_BRANCH" --json number --jq '.[0].number' 2>/dev/null)
71
+ if [ -n "$EXISTING_PR" ]; then
72
+ echo "PR #${EXISTING_PR} already exists for branch ${LOCAL_BRANCH}."
73
+ exit 0
74
+ fi
75
+
76
+ echo "Creating PR from ${LOCAL_BRANCH} for issue #${ISSUE_NUMBER}..."
77
+ gh pr create \
78
+ --head "$LOCAL_BRANCH" \
79
+ --title "$(gh issue view $ISSUE_NUMBER --json title --jq .title)" \
80
+ --body "Resolves #${ISSUE_NUMBER}
81
+
82
+ Auto-generated by Claude Code from issue #${ISSUE_NUMBER}." \
83
+ || echo "PR creation failed -- Claude may not have pushed commits."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xcode-mcp-server
3
- Version: 1.3.2
3
+ Version: 1.3.3
4
4
  Summary: Drew's MCP server for Xcode integration
5
5
  Project-URL: Homepage, https://github.com/drewster99/xcode-mcp-server
6
6
  Project-URL: Repository, https://github.com/drewster99/xcode-mcp-server
@@ -0,0 +1,27 @@
1
+ #!/bin/bash
2
+ # Shared venv setup — sourced by deploy.sh, deploy-beta.sh, dev.sh
3
+
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+ VENV_DIR="$SCRIPT_DIR/venv"
6
+
7
+ # Find python3 (preferred) or python
8
+ if command -v python3 &> /dev/null; then
9
+ PYTHON_CMD="python3"
10
+ elif command -v python &> /dev/null; then
11
+ PYTHON_CMD="python"
12
+ else
13
+ echo "❌ python3/python not found in PATH"
14
+ exit 1
15
+ fi
16
+ echo "✅ Using $PYTHON_CMD: $(command -v $PYTHON_CMD)"
17
+
18
+ # Create venv if needed
19
+ if [ ! -d "$VENV_DIR" ]; then
20
+ echo "📦 Creating venv at $VENV_DIR..."
21
+ $PYTHON_CMD -m venv "$VENV_DIR"
22
+ fi
23
+
24
+ # Activate
25
+ source "$VENV_DIR/bin/activate"
26
+ pip install -q --upgrade pip
27
+ echo "✅ venv activated: $(which python)"
@@ -7,69 +7,27 @@ set -e # Exit on error
7
7
 
8
8
  echo "🚀 Starting xcode-mcp-server BETA deployment..."
9
9
  echo ""
10
- /bin/echo -n "Hit enter to continue:"
11
- read foo
12
-
13
- # Check dependencies
14
- MISSING_DEPS=()
15
-
16
- # Check for python or python3
17
- if command -v python &> /dev/null; then
18
- PYTHON_CMD="python"
19
- echo "✅ python found: $(which python)"
20
- elif command -v python3 &> /dev/null; then
21
- PYTHON_CMD="python3"
22
- echo "✅ python3 found: $(which python3)"
23
- else
24
- echo "❌ python/python3 is not installed or not in PATH"
25
- MISSING_DEPS+=("python")
26
- fi
27
10
 
28
- if ! $PYTHON_CMD -c "import hatch" &> /dev/null; then
29
- echo "❌ hatch is not installed"
30
- MISSING_DEPS+=("hatch")
31
- else
32
- echo "✅ hatch found"
11
+ # Pre-flight: ensure no unstaged changes
12
+ UNSTAGED=$(git diff --name-only)
13
+ if [ -n "$UNSTAGED" ]; then
14
+ echo "❌ You have unstaged changes:"
15
+ git diff --stat
16
+ echo ""
17
+ echo "Please stage ('git add') or commit your changes before deploying."
18
+ exit 1
33
19
  fi
20
+ echo "✅ No unstaged changes"
21
+ echo ""
34
22
 
35
- if ! $PYTHON_CMD -c "import twine" &> /dev/null; then
36
- echo "❌ twine is not installed"
37
- MISSING_DEPS+=("twine")
38
- else
39
- echo "✅ twine found"
40
- fi
23
+ /bin/echo -n "Hit enter to continue:"
24
+ read foo
41
25
 
26
+ # Set up venv and install deploy dependencies
27
+ source "$(dirname "${BASH_SOURCE[0]}")/_venv-setup.sh"
28
+ pip install -q hatch build twine
42
29
  echo ""
43
30
 
44
- # Handle missing dependencies
45
- if [ ${#MISSING_DEPS[@]} -gt 0 ]; then
46
- for dep in "${MISSING_DEPS[@]}"; do
47
- if [ "$dep" = "python" ]; then
48
- echo "Python must be installed manually. Please install Python 3.8+ first."
49
- exit 1
50
- elif [ "$dep" = "hatch" ]; then
51
- read -p "Install hatch with pip? (y/n): " -r
52
- if [[ $REPLY =~ ^[Yy]$ ]]; then
53
- $PYTHON_CMD -m pip install hatch
54
- echo "✅ hatch installed"
55
- else
56
- echo "Deployment cannot continue without hatch"
57
- exit 1
58
- fi
59
- elif [ "$dep" = "twine" ]; then
60
- read -p "Install twine with pip? (y/n): " -r
61
- if [[ $REPLY =~ ^[Yy]$ ]]; then
62
- $PYTHON_CMD -m pip install twine
63
- echo "✅ twine installed"
64
- else
65
- echo "Deployment cannot continue without twine"
66
- exit 1
67
- fi
68
- fi
69
- done
70
- echo ""
71
- fi
72
-
73
31
  # Create dist-archive directory if it doesn't exist
74
32
  mkdir -p dist-archive
75
33
 
@@ -88,7 +46,7 @@ echo ""
88
46
 
89
47
  # Get current version and increment beta version
90
48
  echo "📝 Incrementing beta version..."
91
- CURRENT_VERSION=$($PYTHON_CMD -m hatch version)
49
+ CURRENT_VERSION=$(hatch version)
92
50
  echo "Current version: $CURRENT_VERSION"
93
51
 
94
52
  # Check if current version is already a beta (e.g., 1.2.3b4)
@@ -118,12 +76,12 @@ else
118
76
  exit 1
119
77
  fi
120
78
 
121
- $PYTHON_CMD -m hatch version "$NEW_VERSION"
79
+ hatch version "$NEW_VERSION"
122
80
  echo ""
123
81
 
124
82
  # Build the package
125
83
  echo "🔨 Building package..."
126
- $PYTHON_CMD -m build
84
+ python -m build
127
85
  echo ""
128
86
 
129
87
  # Copy new build to archive
@@ -133,13 +91,29 @@ echo ""
133
91
 
134
92
  # Upload to PyPI
135
93
  echo "📤 Uploading to PyPI..."
136
- $PYTHON_CMD -m twine upload dist/*
94
+ twine upload dist/*
137
95
  echo ""
138
96
 
139
- echo "Checking available xcode-mcp-server versions available on PyPi:"
140
- $PYTHON_CMD -m pip index versions xcode-mcp-server
97
+ # Verify on PyPI
98
+ echo "🔍 Verifying version $NEW_VERSION on PyPI..."
99
+ sleep 2
100
+ if curl -sf "https://pypi.org/pypi/xcode-mcp-server/$NEW_VERSION/json" > /dev/null 2>&1; then
101
+ echo "✅ Version $NEW_VERSION confirmed on PyPI"
102
+ else
103
+ echo "⚠️ Could not verify version $NEW_VERSION on PyPI."
104
+ echo "Skipping auto-commit. Please verify manually and commit the version change."
105
+ exit 1
106
+ fi
141
107
  echo ""
142
- echo "✅ Beta deployment complete!"
108
+
109
+ # Commit and push the version bump
110
+ echo "📝 Committing version bump..."
111
+ git add xcode_mcp_server/__init__.py
112
+ git commit -m "v$NEW_VERSION"
113
+ git push
114
+ echo ""
115
+
116
+ echo "✅ Beta deployment complete! v$NEW_VERSION is live."
143
117
  echo ""
144
118
  echo "Test the deployed beta version with:"
145
119
  echo ""
@@ -0,0 +1,118 @@
1
+ #!/bin/bash
2
+
3
+ # Deployment script for xcode-mcp-server
4
+ # This script builds and publishes the package to PyPI
5
+
6
+ # If you want to deploy a BETA, this script won't do it,
7
+ # but you can do it manually:
8
+ #
9
+ # You can use pre-release version numbers following
10
+ # https://peps.python.org/pep-0440/. PyPI will accept them, but pip won't
11
+ # install them by default.
12
+ #
13
+ # Pre-release version formats:
14
+ # - 1.2.3b1 - beta 1
15
+ # - 1.2.3a1 - alpha 1
16
+ # - 1.2.3rc1 - release candidate 1
17
+ #
18
+ # To publish a beta:
19
+ # python -m hatch version 1.2.3b1 # Set beta version
20
+ # python -m build
21
+ # python -m twine upload dist/*
22
+ #
23
+ # Users can install it with:
24
+ # # Specific beta version (safest for testers)
25
+ # pip install xcode-mcp-server==1.2.3b1
26
+ # uvx xcode-mcp-server==1.2.3b1
27
+ #
28
+ # Regular users doing pip install xcode-mcp-server will get the latest
29
+ # stable version and skip all pre-releases automatically.
30
+
31
+ set -e # Exit on error
32
+
33
+ echo "🚀 Starting xcode-mcp-server deployment..."
34
+ echo ""
35
+
36
+ # Pre-flight: ensure no unstaged changes
37
+ UNSTAGED=$(git diff --name-only)
38
+ if [ -n "$UNSTAGED" ]; then
39
+ echo "❌ You have unstaged changes:"
40
+ git diff --stat
41
+ echo ""
42
+ echo "Please stage ('git add') or commit your changes before deploying."
43
+ exit 1
44
+ fi
45
+ echo "✅ No unstaged changes"
46
+ echo ""
47
+
48
+ /bin/echo -n "Hit enter to continue:"
49
+ read foo
50
+
51
+ # Set up venv and install deploy dependencies
52
+ source "$(dirname "${BASH_SOURCE[0]}")/_venv-setup.sh"
53
+ pip install -q hatch build twine
54
+ echo ""
55
+
56
+ # Create dist-archive directory if it doesn't exist
57
+ mkdir -p dist-archive
58
+
59
+ # Archive any existing dist files
60
+ if [ -d "dist" ] && [ "$(ls -A dist 2>/dev/null)" ]; then
61
+ echo "📦 Archiving previous dist files..."
62
+ mv dist/* dist-archive/
63
+ echo ""
64
+ fi
65
+
66
+ # Clean dist directory
67
+ echo "🧹 Cleaning dist directory..."
68
+ rm -rf dist
69
+ mkdir -p dist
70
+ echo ""
71
+
72
+ # Increment version
73
+ echo "📝 Incrementing patch version..."
74
+ hatch version patch
75
+ NEW_VERSION=$(hatch version)
76
+ echo ""
77
+
78
+ # Build the package
79
+ echo "🔨 Building package..."
80
+ python -m build
81
+ echo ""
82
+
83
+ # Copy new build to archive
84
+ echo "💾 Copying new build to archive..."
85
+ cp dist/* dist-archive/
86
+ echo ""
87
+
88
+ # Upload to PyPI
89
+ echo "📤 Uploading to PyPI..."
90
+ twine upload dist/*
91
+ echo ""
92
+
93
+ # Verify on PyPI
94
+ echo "🔍 Verifying version $NEW_VERSION on PyPI..."
95
+ sleep 2
96
+ if curl -sf "https://pypi.org/pypi/xcode-mcp-server/$NEW_VERSION/json" > /dev/null 2>&1; then
97
+ echo "✅ Version $NEW_VERSION confirmed on PyPI"
98
+ else
99
+ echo "⚠️ Could not verify version $NEW_VERSION on PyPI."
100
+ echo "Skipping auto-commit. Please verify manually and commit the version change."
101
+ exit 1
102
+ fi
103
+ echo ""
104
+
105
+ # Commit and push the version bump
106
+ echo "📝 Committing version bump..."
107
+ git add xcode_mcp_server/__init__.py
108
+ git commit -m "v$NEW_VERSION"
109
+ git push
110
+ echo ""
111
+
112
+ echo "✅ Deployment complete! v$NEW_VERSION is live."
113
+ echo ""
114
+ echo "Test the deployed version with:"
115
+ echo ""
116
+ echo " uvx xcode-mcp-server"
117
+
118
+ exit 0
@@ -4,7 +4,7 @@
4
4
  # This script sets up the environment and runs the MCP inspector for testing
5
5
  #
6
6
  # To connect a specific release or beta to the MCP Inspector, do like this:
7
- #
7
+ #
8
8
  # npx @modelcontextprotocol/inspector uvx xcode-mcp-server==1.3.0b3
9
9
  #
10
10
  #
@@ -17,34 +17,11 @@ echo ""
17
17
  SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
18
18
  cd "$SCRIPT_DIR"
19
19
 
20
- # Conda environment name
21
- CONDA_ENV_NAME="xcode-mcp-dev"
22
-
23
- # Check if conda is available
24
- if ! command -v conda &> /dev/null; then
25
- echo "❌ Error: conda is not installed or not in PATH"
26
- echo "Please install Miniconda or Anaconda first"
27
- exit 1
28
- fi
29
-
30
- # Initialize conda for bash
31
- eval "$(conda shell.bash hook)"
32
-
33
- # Check if the conda environment exists
34
- if ! conda env list | grep -q "^${CONDA_ENV_NAME} "; then
35
- echo "📦 Creating conda environment: ${CONDA_ENV_NAME}"
36
- conda create -y -n "${CONDA_ENV_NAME}" python=3.12
37
- echo ""
38
- fi
39
-
40
- # Activate the conda environment
41
- echo "🐍 Activating conda environment: ${CONDA_ENV_NAME}"
42
- conda activate "${CONDA_ENV_NAME}"
20
+ # Set up venv and install dev dependencies
21
+ source "$SCRIPT_DIR/_venv-setup.sh"
43
22
  echo ""
44
23
 
45
- # Install/upgrade dependencies
46
- echo "📥 Installing Python dependencies..."
47
- pip install -q --upgrade pip
24
+ echo "📥 Installing development dependencies..."
48
25
  pip install -q -e .
49
26
  pip install -q mcp
50
27
  echo ""
@@ -65,7 +42,7 @@ echo ""
65
42
  echo "📋 Configuration:"
66
43
  echo " Python: $(which python)"
67
44
  echo " Python version: $(python --version)"
68
- echo " Conda env: ${CONDA_ENV_NAME}"
45
+ echo " venv: $VENV_DIR"
69
46
  echo " Allowed folders: ${XCODEMCP_ALLOWED_FOLDERS}"
70
47
  echo " Server path: ${SCRIPT_DIR}/xcode_mcp_server/__main__.py"
71
48
  echo ""
@@ -4,7 +4,7 @@
4
4
  <dict>
5
5
  <key>SchemeUserState</key>
6
6
  <dict>
7
- <key>iosEmptySwiftUIApp.xcscheme_^#shared#^_</key>
7
+ <key>BrokenApp.xcscheme_^#shared#^_</key>
8
8
  <dict>
9
9
  <key>orderHint</key>
10
10
  <integer>0</integer>
@@ -1,6 +1,6 @@
1
1
  """Xcode MCP Server - Model Context Protocol server for Xcode integration"""
2
2
 
3
- __version__ = "1.3.2"
3
+ __version__ = "1.3.3"
4
4
 
5
5
 
6
6
  def main():
@@ -1,44 +0,0 @@
1
- name: Claude Code Review
2
-
3
- on:
4
- pull_request:
5
- types: [opened, synchronize, ready_for_review, reopened]
6
- # Optional: Only run on specific file changes
7
- # paths:
8
- # - "src/**/*.ts"
9
- # - "src/**/*.tsx"
10
- # - "src/**/*.js"
11
- # - "src/**/*.jsx"
12
-
13
- jobs:
14
- claude-review:
15
- # Optional: Filter by PR author
16
- # if: |
17
- # github.event.pull_request.user.login == 'external-contributor' ||
18
- # github.event.pull_request.user.login == 'new-developer' ||
19
- # github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'
20
-
21
- runs-on: ubuntu-latest
22
- permissions:
23
- contents: read
24
- pull-requests: read
25
- issues: read
26
- id-token: write
27
-
28
- steps:
29
- - name: Checkout repository
30
- uses: actions/checkout@v4
31
- with:
32
- fetch-depth: 1
33
-
34
- - name: Run Claude Code Review
35
- id: claude-review
36
- uses: anthropics/claude-code-action@v1
37
- with:
38
- claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
39
- plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
40
- plugins: 'code-review@claude-code-plugins'
41
- prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
42
- # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
43
- # or https://code.claude.com/docs/en/cli-reference for available options
44
-
@@ -1,50 +0,0 @@
1
- name: Claude Code
2
-
3
- on:
4
- issue_comment:
5
- types: [created]
6
- pull_request_review_comment:
7
- types: [created]
8
- issues:
9
- types: [opened, assigned]
10
- pull_request_review:
11
- types: [submitted]
12
-
13
- jobs:
14
- claude:
15
- if: |
16
- (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
- (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
- (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
- (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20
- runs-on: ubuntu-latest
21
- permissions:
22
- contents: write
23
- pull-requests: write
24
- issues: write
25
- id-token: write
26
- actions: read # Required for Claude to read CI results on PRs
27
- steps:
28
- - name: Checkout repository
29
- uses: actions/checkout@v4
30
- with:
31
- fetch-depth: 1
32
-
33
- - name: Run Claude Code
34
- id: claude
35
- uses: anthropics/claude-code-action@v1
36
- with:
37
- claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38
-
39
- # This is an optional setting that allows Claude to read CI results on PRs
40
- additional_permissions: |
41
- actions: read
42
-
43
- # Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
44
- # prompt: 'Update the pull request description to include a summary of changes.'
45
-
46
- # Optional: Add claude_args to customize behavior and configuration
47
- # See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
48
- # or https://code.claude.com/docs/en/cli-reference for available options
49
- # claude_args: '--allowed-tools Bash(gh pr:*)'
50
-