feat: add Xcode MCP marketplace support and comprehensive proposal

- Add XcodeBuildMCP integration test validating marketplace schema compatibility
- Create comprehensive proposal document for adding Xcode MCPs to marketplace
- Validate that existing marketplace infrastructure supports Xcode MCP configuration
- Research and document available Xcode MCPs with XcodeBuildMCP as top recommendation

Addresses #6482: Request to add Xcode MCP to marketplace
This commit is contained in:
Roo Code 2025-07-31 13:25:35 +00:00
parent e13083e532
commit 57584ad68c
2 changed files with 233 additions and 0 deletions

View file

@ -0,0 +1,96 @@
// Test to validate XcodeBuildMCP marketplace integration
import { describe, it, expect } from "vitest"
import { mcpMarketplaceItemSchema, type McpMarketplaceItem } from "@roo-code/types"
describe("XcodeBuildMCP Marketplace Integration", () => {
const xcodeBuildMcpConfig: McpMarketplaceItem = {
id: "xcodebuildmcp",
name: "XcodeBuildMCP",
description:
"A comprehensive Model Context Protocol server that provides Xcode-related tools for building, testing, and managing iOS/macOS projects, simulators, and devices.",
author: "Cameron Cooke",
authorUrl: "https://github.com/cameroncooke",
url: "https://github.com/cameroncooke/XcodeBuildMCP",
tags: ["xcode", "ios", "macos", "swift", "simulator", "device", "build", "test"],
prerequisites: ["Xcode 16.x or later", "Node.js 18.x or later", "macOS"],
content: JSON.stringify({
command: "npx",
args: ["-y", "xcodebuildmcp@latest"],
}),
parameters: [
{
name: "Enable Incremental Builds",
key: "INCREMENTAL_BUILDS_ENABLED",
placeholder: "true",
optional: true,
},
{
name: "Disable Sentry Telemetry",
key: "SENTRY_DISABLED",
placeholder: "true",
optional: true,
},
],
}
it("should validate XcodeBuildMCP configuration against marketplace schema", () => {
expect(() => mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)).not.toThrow()
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
expect(validated.id).toBe("xcodebuildmcp")
expect(validated.name).toBe("XcodeBuildMCP")
expect(validated.url).toBe("https://github.com/cameroncooke/XcodeBuildMCP")
expect(validated.parameters).toHaveLength(2)
})
it("should have valid URL fields", () => {
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
expect(validated.url).toMatch(/^https:\/\//)
expect(validated.authorUrl).toMatch(/^https:\/\//)
})
it("should have proper parameter configuration", () => {
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
// Check incremental builds parameter
const incrementalParam = validated.parameters?.find((p) => p.key === "INCREMENTAL_BUILDS_ENABLED")
expect(incrementalParam).toBeDefined()
expect(incrementalParam?.optional).toBe(true)
expect(incrementalParam?.name).toBe("Enable Incremental Builds")
// Check sentry parameter
const sentryParam = validated.parameters?.find((p) => p.key === "SENTRY_DISABLED")
expect(sentryParam).toBeDefined()
expect(sentryParam?.optional).toBe(true)
expect(sentryParam?.name).toBe("Disable Sentry Telemetry")
})
it("should have valid content configuration", () => {
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
const contentObj = JSON.parse(validated.content as string)
expect(contentObj.command).toBe("npx")
expect(contentObj.args).toEqual(["-y", "xcodebuildmcp@latest"])
})
it("should have appropriate tags for Xcode development", () => {
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
expect(validated.tags).toContain("xcode")
expect(validated.tags).toContain("ios")
expect(validated.tags).toContain("macos")
expect(validated.tags).toContain("swift")
expect(validated.tags).toContain("simulator")
expect(validated.tags).toContain("device")
expect(validated.tags).toContain("build")
expect(validated.tags).toContain("test")
})
it("should have proper prerequisites", () => {
const validated = mcpMarketplaceItemSchema.parse(xcodeBuildMcpConfig)
expect(validated.prerequisites).toContain("Xcode 16.x or later")
expect(validated.prerequisites).toContain("Node.js 18.x or later")
expect(validated.prerequisites).toContain("macOS")
})
})

View file

@ -0,0 +1,137 @@
# Xcode MCP Marketplace Addition Proposal
## Overview
This document proposes adding XcodeBuildMCP to the Roo Code MCP Marketplace to address GitHub issue #6482. After researching available Xcode MCPs, XcodeBuildMCP emerges as the most comprehensive and popular option.
## Research Findings
### Available Xcode MCPs
1. **XcodeBuildMCP** (⭐ 2,163 stars) - Most popular and comprehensive
- Repository: https://github.com/cameroncooke/XcodeBuildMCP
- NPM Package: `xcodebuildmcp`
- Features: Complete Xcode project management, simulator control, device management, Swift Package Manager integration
2. **xcodeproj-mcp-server** (⭐ 81 stars)
- Repository: https://github.com/giginet/xcodeproj-mcp-server
- Features: Xcode project file manipulation
3. **Claude-Project-Coordinator** (⭐ 38 stars)
- Repository: https://github.com/M-Pineapple/Claude-Project-Coordinator
- Features: Multi-project Xcode development coordination
4. **SwiftLens** (⭐ 30 stars)
- Repository: https://github.com/swiftlens/swiftlens
- Features: Swift codebase semantic analysis
5. **xctools-mcp-server** (⭐ 2 stars)
- Repository: https://github.com/nzrsky/xctools-mcp-server
- Features: Various Xcode tools
## Recommended MCP: XcodeBuildMCP
### Why XcodeBuildMCP?
- **Most Popular**: 2,163 GitHub stars indicate strong community adoption
- **Comprehensive**: Covers all major Xcode development workflows
- **Well-Maintained**: Active development with CI/CD, CodeQL scanning
- **Professional Quality**: MIT licensed, verified on MseeP platform
- **Easy Installation**: Available via NPM with simple configuration
### Features
- **Xcode Project Management**: Build, clean, discover projects and workspaces
- **Simulator Management**: List, boot, install/launch apps, capture logs and screenshots
- **Device Management**: Physical device support with app deployment and testing
- **Swift Package Manager**: Build packages, run tests and executables
- **App Utilities**: Bundle ID extraction, app lifecycle management
- **MCP Resources**: Efficient URI-based data access for supported clients
### Installation Configuration
```json
{
"mcpServers": {
"XcodeBuildMCP": {
"command": "npx",
"args": ["-y", "xcodebuildmcp@latest"]
}
}
}
```
### Optional Environment Variables
- `INCREMENTAL_BUILDS_ENABLED`: Enable experimental incremental builds
- `SENTRY_DISABLED`: Disable telemetry reporting
## Marketplace Configuration Proposal
Based on the existing marketplace schema in `packages/types/src/marketplace.ts`, here's the proposed configuration:
```yaml
items:
- id: "xcodebuildmcp"
name: "XcodeBuildMCP"
description: "A comprehensive Model Context Protocol server that provides Xcode-related tools for building, testing, and managing iOS/macOS projects, simulators, and devices."
author: "Cameron Cooke"
authorUrl: "https://github.com/cameroncooke"
url: "https://github.com/cameroncooke/XcodeBuildMCP"
tags: ["xcode", "ios", "macos", "swift", "simulator", "device", "build", "test"]
prerequisites: ["Xcode 16.x or later", "Node.js 18.x or later", "macOS"]
content: |
{
"command": "npx",
"args": ["-y", "xcodebuildmcp@latest"]
}
parameters:
- name: "Enable Incremental Builds"
key: "INCREMENTAL_BUILDS_ENABLED"
placeholder: "true"
optional: true
- name: "Disable Sentry Telemetry"
key: "SENTRY_DISABLED"
placeholder: "true"
optional: true
```
## Implementation Steps
1. **Add to Marketplace API**: The configuration above should be added to the marketplace API endpoint (`/api/marketplace/mcps`)
2. **Verify Schema Compatibility**: The existing marketplace infrastructure already supports:
- ✅ Basic MCP configuration with `command` and `args`
- ✅ Optional parameters with environment variables
- ✅ Prerequisites listing
- ✅ Author information and URLs
- ✅ Tags for categorization
3. **Test Installation**: Verify that the marketplace can properly install and configure XcodeBuildMCP
## Additional Recommendations
### Consider Adding Multiple Xcode MCPs
While XcodeBuildMCP is the most comprehensive, different MCPs serve different use cases:
1. **XcodeBuildMCP**: Complete Xcode development workflow
2. **xcodeproj-mcp-server**: Specialized for project file manipulation
3. **SwiftLens**: Focused on code analysis and understanding
### Future Enhancements
- Add MCP compatibility matrix showing which features work with which editors
- Include demo videos or screenshots in marketplace listings
- Add community ratings and reviews for MCPs
## Conclusion
Adding XcodeBuildMCP to the marketplace would significantly enhance Roo Code's iOS/macOS development capabilities. The MCP is mature, well-maintained, and provides comprehensive Xcode integration that would benefit many users working on Apple platform development.
The existing marketplace infrastructure is fully capable of supporting this addition without any code changes to the Roo Code repository.