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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Xcode Errors MCP Serverget the latest build errors from my current Xcode project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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!