mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-05 08:10:14 +00:00
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:
parent
e13083e532
commit
57584ad68c
2 changed files with 233 additions and 0 deletions
|
|
@ -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")
|
||||
})
|
||||
})
|
||||
137
xcode-mcp-marketplace-proposal.md
Normal file
137
xcode-mcp-marketplace-proposal.md
Normal 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.
|
||||
Loading…
Add table
Reference in a new issue