The Xcode 索引 MCP MCP server is a publicly available project. Review the upstream repository for installation instructions, supported tools, compatibility, permissions, and current maintenance status.
Configuration
Configuration, transport, authentication, and runtime requirements vary by project. Open the repository before connecting and use the smallest set of credentials and permissions required.
Context7 Platform - Up-to-date Code Docs For Any Prompt
upstash
Community
Context7 MCP server providing up-to-date, version-specific documentation and code examples for libraries, enabling coding agents to fetch accurate docs and code snippets. Requires an API key for higher rate limits, passed via CONTEXT7_API_KEY header.
57.7Kstars0forks
Playwright MCP
Microsoft Corporation
Community
A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. Enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
35.5Kstars0forks
AIHawk
feder-cr
Community
AIHawk is an anti detect browser and web browsing agent, open source, with an MCP server for coding agents: undetected, no captchas, no blocks. It requires an OpenRouter API key for the standalone web UI mode, which can be provided via the --openrouter-key flag or the OPENROUTER_API_KEY environment variable or a .env file in the running directory.
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 run uv sync
brew install uv
cd /path/to/this/repo
uv sync
Build the Swift service (Xcode must be installed)
cd swift-service
swift build
This 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 command field, add this line:
Note: 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:
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-mcp
Note: Replace <USERNAME> with your actual system username, or with the correct path xcode-index-mcp on your machine.
Update .gooseHints, cursorRules, or CLAUDE.MD in 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 instructions field.
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 src directory that handles communication with Goose/Cursor
A Swift service in the swift-service directory that interfaces with Xcode's index using Apple's IndexStoreDB package
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.