Monitors Xcode's DerivedData directory and console output to provide real-time access to build errors, warnings, and debug logs, enabling automated analysis and fixes of Swift/SwiftUI projects.
Xcode Errors MCP Server (WIP)
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.
⚠️ This repo is still under development and things may break without warning.
Features
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
How It Works
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
Architecture
Installation
Clone this repository:
git clone https://github.com/YOUR_USERNAME/xcode-errors-mcp.git # Replace YOUR_USERNAME with actual GitHub username cd xcode-errors-mcpRun the installation script:
./install.shConfigure Cursor MCP settings:
Open Cursor settings
Navigate to MCP configuration
Copy the contents of
cursor_config.jsonto your MCP configurationIMPORTANT: Replace
/path/to/your/xcode-errors-mcpwith your actual installation pathExample: 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
Usage
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()
Quick Start
Install dependencies:
./install.shTest the installation:
python3 examples/test_parser.pyConfigure Cursor:
Open Cursor Settings → Features → Model Context Protocol
Copy the contents of
cursor_config.jsonto your MCP configurationCRITICAL: Replace all instances of
/path/to/your/xcode-errors-mcpwith your actual installation pathExample 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
Configuration Placeholders
After cloning this repository, you must update the following placeholders with your actual paths:
1. cursor_config.json
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
2. Finding Your Installation Path
3. Example Configuration
If you installed to /Users/yourname/xcode-errors-mcp, your cursor_config.json should look like:
For Publishers
Before publishing this repository, update the following placeholders:
README.md: Replace
YOUR_USERNAMEwith your actual GitHub username in the clone URLcursor_config.json: Already contains placeholder paths that users will need to update
TROUBLESHOOTING.md: Already uses placeholder paths
Development Status
✅ Ready for Testing - Core functionality implemented and tested!