A simple MCP server for xcodebuild, tailored to Mac app development
npm install @roeybiran/xcodebuild-mini-mcpAn MCP (Model Context Protocol) server that provides Xcode build operations through the MCP interface, following the official MCP Node.js guide.
This MCP server provides the following tools:
- build - Build an Xcode scheme
- list_tests - List all tests for an Xcode scheme
- build_tests - Build tests for an Xcode scheme
- run_tests - Run tests for an Xcode scheme (with optional test filtering)
- list_packages - List all packages in the Xcode project
1. Install dependencies:
``bash`
npm install
2. Build the TypeScript code:
`bash`
npm run build
`bash`
npm start
Or for development:
`bash`
npm run dev
To use this MCP server with an MCP client, add it to your client configuration:
`json`
{
"mcpServers": {
"xcodebuild-mini": {
"command": "npx",
"args": ["-y", "@roeybiran/xcodebuild-mini-mcp"],
}
}
}
#### build
Build an Xcode scheme.
Parameters:
- scheme (required): The Xcode scheme to buildwarn
- (optional): Show warnings in output (default: false)
Example:
`json`
{
"name": "build",
"arguments": {
"scheme": "MyApp",
"warn": true
}
}
#### list_tests
List all tests for an Xcode scheme.
Parameters:
- scheme (required): The Xcode scheme to list tests for
Example:
`json`
{
"name": "list_tests",
"arguments": {
"scheme": "MyApp"
}
}
#### build_tests
Build tests for an Xcode scheme.
Parameters:
- scheme (required): The Xcode scheme to build tests for
Example:
`json`
{
"name": "build_tests",
"arguments": {
"scheme": "MyApp"
}
}
#### run_tests
Run tests for an Xcode scheme.
Parameters:
- scheme (required): The Xcode scheme to run tests foronly
- (optional): Run only specific test
Example:
`json`
{
"name": "run_tests",
"arguments": {
"scheme": "MyApp",
"only": "MyAppTests/testExample"
}
}
#### list_packages
List all packages in the Xcode project.
Parameters:
None
Example:
`json`
{
"name": "list_packages",
"arguments": {}
}
- Node.js 18+
- Xcode command line tools
- The xcodebuild command must be available in PATH
``
xcodebuild-mini-mcp/
├── src/
│ ├── index.ts # Main MCP server implementation (following MCP guide patterns)
│ └── xcodebuild.ts # TypeScript implementation of Xcode build operations
├── dist/ # Compiled JavaScript output
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # This file
This server follows the official MCP Node.js guide patterns:
- Server Initialization: Uses the recommended Server class from @modelcontextprotocol/sdkStdioServerTransport
- Transport: Uses for stdio-based communicationListToolsRequestSchema
- Tool Handlers: Implements and CallToolRequestSchema handlersconsole.error
- Error Handling: Proper error handling with structured responses
- Logging: Uses for logging (stdout is reserved for JSON-RPC messages)
`bash`
npm run build
`bash``
npm run dev
The MCP server handles errors gracefully and returns structured error responses. Common error scenarios include:
- Invalid scheme names
- Build failures
- Test execution failures
- Missing dependencies
All errors are returned with descriptive messages and proper error flags.
MIT