home / mcp / xcodeproj mcp server
Provides programmatic access to manipulate Xcode project files and configurations via MCP endpoints.
Configuration
View docs{
"mcpServers": {
"giginet-xcodeproj-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"$PWD:/workspace",
"ghcr.io/giginet/xcodeproj-mcp-server",
"/workspace"
]
}
}
}You can programmatically create and manage Xcode project files using a dedicated MCP server. This server exposes a set of endpoints you can call from an MCP client to automate project setup, targets, files, build configurations, and dependencies, all by manipulating .xcodeproj structures through a stable library.
You interact with the MCP server through an MCP client. Start by connecting to the local or remote MCP endpoint that you configured. Use the available actions to create projects, add targets, manage files and groups, adjust build settings, and wire up dependencies. You can perform common workflows like scaffolding a multi-target project, adding a new Swift file to a target, including a folder as a synchronized resource, and inserting custom build phases for tools like code formatters and linters.
Prerequisites you need before starting: Docker and macOS if you plan to run Xcode projects locally.
Install the MCP server by pulling the pre-built Docker image and running it inside a container. The following commands will fetch the image and prepare it for use:
docker pull ghcr.io/giginet/xcodeproj-mcp-serverIf you are using Claude Code, add the MCP server by running a command that launches the server inside Docker and connects it to your workspace. You mount your current working directory into the container so the MCP server can access your Xcode projects.
$ claude mcp add xcodeproj -- docker run --rm -i -v $PWD:/workspace ghcr.io/giginet/xcodeproj-mcp-server /workspaceIf you are using Claude Desktop, place the following configuration in your Claude Desktop config file to point to the same Docker-based MCP server. This example uses macOS path conventions.
{
"mcpServers": {
"xcodeproj": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"${workspaceFolder}:/workspace",
"ghcr.io/giginet/xcodeproj-mcp-server",
"/workspace"
]
}
}
}Create a new Xcode project with a given project name, path, organization name, and bundle identifier.
List all targets in a specified project to understand current structure.
List all build configurations available in the project.
List all files registered under a specific target.
List groups in the project along with their hierarchical paths, optionally filtered by target.
Add a file to a target within a project at a specified path and optional group.
Remove a file from the project.
Move or rename a file within the project structure.
Add a synchronized folder reference to the project, linking a filesystem directory to the project navigator.
Create a new group in the project navigator under a specified parent group.
Create a new target with a specific type, platform, and bundle identifier.
Remove an existing target from the project.
Duplicate an existing target under a new target name.
Add a dependency from one target to another within the project.
Retrieve build settings for a given target and configuration.
Modify a build setting for a target within a specific configuration.
Add a framework to a target, with an option to embed it.
Attach a custom build phase to a target, including scripts and phase type.
Add a Swift Package dependency to a target or project.
List all Swift Package dependencies used by the project.
Remove a Swift Package dependency from the project.