An MLOps pipeline using MCP (Model Context Protocol) server that bridges Xcode and Cursor, enabling real-time access to Xcode build errors, warnings, and debug output directly within Cursor.
- Real-time Error Monitoring: Automatically detects and parses Xcode build errors and warnings
- Debug Log Streaming: Captures and streams Xcode console output and debug logs
- Project Analysis: Analyzes Swift/SwiftUI projects for common issues
- File Integration: Provides tools to read and modify project files based on diagnostics
- Live Updates: Monitors DerivedData for new build results
- DerivedData Monitoring: Watches Xcode's DerivedData directory for new build logs
- Log Parsing: Extracts structured diagnostic information from build logs
- Console Integration: Captures real-time debug output from Xcode's console
- MCP Interface: Exposes diagnostics and file operations through MCP protocol
- Cursor Integration: Allows Cursor to query errors and make fixes automatically
Xcode Build System
↓
DerivedData Logs → MCP Server → Cursor/LLM
↓ ↑
Console Output ←--------┘
-
Clone this repository:
git clone https://github.com/YOUR_USERNAME/xcode-errors-mcp.git # Replace YOUR_USERNAME with actual GitHub username cd xcode-errors-mcp
-
Run the installation script:
./install.sh
-
Configure Cursor MCP settings:
- Open Cursor settings
- Navigate to MCP configuration
- Copy the contents of
cursor_config.jsonto your MCP configuration - IMPORTANT: Replace
/path/to/your/xcode-errors-mcpwith your actual installation path - Example: If you cloned to
/Users/yourname/xcode-errors-mcp, update all paths accordingly
-
Restart Cursor completely (⌘+Q and reopen) to activate the MCP server connection
Once connected, Cursor can:
- Query current build errors:
get_build_errors() - Monitor debug output:
get_console_logs() - Analyze project structure:
analyze_project() - Read/write project files:
read_file(),write_file()
-
Install dependencies:
./install.sh
-
Test the installation:
python3 examples/test_parser.py
-
Configure Cursor:
- Open Cursor Settings → Features → Model Context Protocol
- Copy the contents of
cursor_config.jsonto your MCP configuration - CRITICAL: Replace all instances of
/path/to/your/xcode-errors-mcpwith your actual installation path - Example configuration for installation in
/Users/yourname/xcode-errors-mcp:{ "mcpServers": { "xcode-errors": { "command": "/Users/yourname/xcode-errors-mcp/venv/bin/python", "args": [ "/Users/yourname/xcode-errors-mcp/src/xcode_mcp_server.py" ], "env": { "PYTHONPATH": "/Users/yourname/xcode-errors-mcp/src" } } } } - Restart Cursor completely (⌘+Q and reopen)
-
Verify it's working:
- Check that the MCP server shows a green indicator in Cursor settings
- If you see a red indicator, check
TROUBLESHOOTING.md
-
Start using it:
- Build a project in Xcode (to generate some logs)
- In Cursor, you can now use tools like:
get_build_errors()- Get current build errorsget_console_logs()- Get debug outputlist_recent_projects()- See your projectsanalyze_project("ProjectName")- Analyze issues
After cloning this repository, you must update the following placeholders with your actual paths:
Replace /path/to/your/xcode-errors-mcp with your installation directory:
command: Path to your Python virtual environmentargs: Path to the MCP server scriptenv.PYTHONPATH: Path to the src directory
cd xcode-errors-mcp
pwd # This shows your full installation pathIf you installed to /Users/yourname/xcode-errors-mcp, your cursor_config.json should look like:
{
"mcpServers": {
"xcode-errors": {
"command": "/Users/yourname/xcode-errors-mcp/venv/bin/python",
"args": [
"/Users/yourname/xcode-errors-mcp/src/xcode_mcp_server.py"
],
"env": {
"PYTHONPATH": "/Users/yourname/xcode-errors-mcp/src"
}
}
}
}Before publishing this repository, update the following placeholders:
- README.md: Replace
YOUR_USERNAMEwith your actual GitHub username in the clone URL - cursor_config.json: Already contains placeholder paths that users will need to update
- TROUBLESHOOTING.md: Already uses placeholder paths
✅ Ready for Testing - Core functionality implemented and tested!