Xcode Index
FreeNot checkedProvides direct access to Xcode's project index store through Apple's IndexStoreDB, enabling precise code navigation and refactoring operations on iOS/macOS pro
About
Provides direct access to Xcode's project index store through Apple's IndexStoreDB, enabling precise code navigation and refactoring operations on iOS/macOS projects with tools for loading project indexes, finding symbol occurrences, retrieving symbol references, and pattern-based symbol searching.
README
Gives Goose/Cursor access to your iOS/macOS project index through the Model Control Protocol (MCP) and IndexStoreDB. This provides exhaustive lists of function call sites to help your agent with refactoring and code navigation.
Example prompt
"Remove myParameter from the initializer on line 48 of MyViewController.swift. Use the Xcode Index MCP to ensure all references are updated."
How to use
Install
uv(Python package manager) and runuv syncbrew install uv cd /path/to/this/repo uv syncBuild the Swift service (Xcode must be installed)
cd swift-service swift buildThis step is required as it provides the interface to Xcode's index.
Install in Agent of your choice
Goose:
Go to settings and add a custom extension. In the modal that pops up, under the
commandfield, add this line:/Users/<USERNAME>/Development/xcode-index-mcp/.venv/bin/xcode-index-mcpNote: Replace
<USERNAME>with your actual system username, or with the correct path xcode-index-mcp on your machine.The rest should look something like this:

Cursor:
Go to
Settings > MCP > Add new global MCP server. Update mcp.json (typically located in your Cursor configuration directory) to look something like this:{ "mcpServers": { "Xcode Index MCP": { "command": "/Users/<USERNAME>/Development/xcode-index-mcp/.venv/bin/xcode-index-mcp" } } }Note: Replace
<USERNAME>with your actual system username, or with the correct path xcode-index-mcp on your machine.Claude Code:
Run this command in the terminal to add the mcp to Claude Code
claude mcp add xcode-index-mcp -- /Users/<USERNAME>/Development/xcode-index-mcp/.venv/bin/xcode-index-mcpNote: Replace
<USERNAME>with your actual system username, or with the correct path xcode-index-mcp on your machine.Update
.gooseHints,cursorRules, orCLAUDE.MDin your project to tell your agent how to use the plugin. Replace the project name with the name of your project as it appears in the derived data folder.Use tool `xcode-index-mcp` if available. Use project name <Your project name here>. The tool can locate call sites of functions, and function definitions from call sites. If you need a filepath to make a request, use `rg` to find the file and `rg -n` to find the line number. Use the absolute path when requesting symbols from a file.For Cursor, you may want to add these instructions in their own rule file - at the time of writing I don't think cursor reads the MCP
instructionsfield.
Running tests
To run tests for Swift, cd into swift-service and run swift test.
How it works
The tool consists of two main components:
- An MCP server in the
srcdirectory that handles communication with Goose/Cursor - A Swift service in the
swift-servicedirectory that interfaces with Xcode's index using Apple'sIndexStoreDBpackage
When the MCP server calls 'load_index', the Swift service will look through Xcode's derived data directory for a project file. When found it will attempt to load the project's index. Queries are passed from the MCP server to the index through a subset of the methods provided in IndexStoreDB.
Installing Xcode Index
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/block/xcode-index-mcpFAQ
Is Xcode Index MCP free?
Yes, Xcode Index MCP is free — one-click install via Unyly at no cost.
Does Xcode Index need an API key?
No, Xcode Index runs without API keys or environment variables.
Is Xcode Index hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Xcode Index in Claude Desktop, Claude Code or Cursor?
Open Xcode Index on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Xcode Index with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
