A Model Context Protocol Server to manipulate *.xcodeproj
xcodeproj-mcp-server
[!WARNING] This product is in the development phase. It will be released soon.
A Model Context Protocol (MCP) server for manipulating Xcode project files (.xcodeproj) using Swift.
Overview
xcodeproj-mcp-server is an MCP server that provides tools for programmatically manipulating Xcode project files. It leverages the tuist/xcodeproj library for reliable project file manipulation and implements the Model Context Protocol using the swift-sdk.
This server enables AI assistants and other MCP clients to:
- Create new Xcode projects
- Manage targets, files, and build configurations
- Modify build settings
- Add dependencies and frameworks
- Automate common Xcode project tasks
How to set up for Claude Desktop and Claude Code
Prerequisites
- macOS 14.0 or later
- Xcode 16.4 or later
Installation
First, clone the repository and build the project in release mode:
git clone https://github.com/giginet/xcodeproj-mcp-server.git
cd xcodeproj-mcp-server
swift build -c release
Configuration for Claude Desktop
Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"xcodeproj": {
"command": "/path/to/xcodeproj-mcp-server/.build/release/xcodeproj-mcp-server"
}
}
}
Replace /path/to/xcodeproj-mcp-server
with the actual path where you cloned the repository.
Configuration for Claude Code
# Add MCP server using the local executable
$ claude mcp add --name xcodeproj --command "/path/to/xcodeproj-mcp-server/.build/release/xcodeproj-mcp-server"
Replace /path/to/xcodeproj-mcp-server
with the actual path where you cloned the repository.
Available Tools
Project Management
-
create_xcodeproj
- Create a new Xcode project- Parameters:
project_name
,path
,organization_name
,bundle_identifier
- Parameters:
-
list_targets
- List all targets in a project- Parameters:
project_path
- Parameters:
-
list_build_configurations
- List all build configurations- Parameters:
project_path
- Parameters:
-
list_files
- List all files in the project- Parameters:
project_path
- Parameters:
File Operations
-
add_file
- Add a file to the project- Parameters:
project_path
,file_path
,target_name
,group_path
- Parameters:
-
remove_file
- Remove a file from the project- Parameters:
project_path
,file_path
- Parameters:
-
move_file
- Move or rename a file within the project- Parameters:
project_path
,source_path
,destination_path
- Parameters:
-
create_group
- Create a new group in the project navigator- Parameters:
project_path
,group_name
,parent_group_path
- Parameters:
Target Management
-
add_target
- Create a new target- Parameters:
project_path
,target_name
,type
,platform
,bundle_identifier
- Parameters:
-
remove_target
- Remove an existing target- Parameters:
project_path
,target_name
- Parameters:
-
duplicate_target
- Duplicate an existing target- Parameters:
project_path
,source_target_name
,new_target_name
- Parameters:
-
add_dependency
- Add dependency between targets- Parameters:
project_path
,target_name
,dependency_name
- Parameters:
Build Configuration
-
get_build_settings
- Get build settings for a target- Parameters:
project_path
,target_name
,configuration_name
- Parameters:
-
set_build_setting
- Modify build settings- Parameters:
project_path
,target_name
,setting_name
,value
,configuration_name
- Parameters:
-
add_framework
- Add framework dependencies- Parameters:
project_path
,target_name
,framework_name
,embed
- Parameters:
-
add_build_phase
- Add custom build phases- Parameters:
project_path
,target_name
,phase_type
,name
,script
- Parameters:
Utility
open_xcodeproj
- Open an Xcode project in Xcode- Parameters:
project_path
,wait
(optional)
- Parameters:
License
This project is licensed under the MIT License.