Xcode IndexSAFE
Give AI agents access to Xcode's index
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
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 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:
/Users//Development/xcode-index-mcp/.venv/bin/xcode-index-mcp
Note: Replace `` 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//Development/xcode-index-mcp/.venv/bin/xcode-index-mcp"
}
}
}Note: Replace `` 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//Development/xcode-index-mcp/.venv/bin/xcode-index-m
961a7c6f779aOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add xcode-index-mcp -- uvx xcode-index-mcp
{
"mcpServers": {
"xcode-index-mcp": {
"command": "uvx",
"args": [
"xcode-index-mcp"
]
}
}
}Exposed tools (4)
4 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
get_occurrences | read | |
load_index | read | |
search_pattern | read | |
symbol_occurrences | read |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (1 observation(s))
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (2)
.gooseHints
relative_swift_executable_dir = "../../swift-service/.build/debug"
Gates applied: no_behavioural_pass.
961a7c6f779afull audit observations/trust-audit/mcp-server/block__xcode-index.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | 961a7c6f779a | SAFE | B | 89 | first audit |
Questions
What is the Xcode Index MCP server?
Give AI agents access to Xcode's index
What tools does Xcode Index expose?
4 in total: 4 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Xcode Index safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Xcode Index need?
No credential environment variables were found in its source, so it appears to need none.
How current is this page?
The grade is for one exact copy of the source (961a7c6f779a), read on 2026-10-08. The repository is watched and re-audited when it changes.