Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
95 MCP tools for iOS — build, test, simulate, automate UI, capture, and diagnose.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account justinthevoid, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.0.0) reached the registry 7 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need MCPB on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, FOGA node
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server and CLI for iOS development — build, test, automate, and diagnose from any AI agent or terminal.
104 MCP tools. 19 CLI command groups. Single native binary (~8 MB stripped, ~18 MB with debug symbols). Zero external runtime dependencies.
brew tap justinthevoid/tap && brew install xcforge
claude mcp add xcforge -- xcforge
This registers xcforge as an MCP server in your current project. Run it after installing via Homebrew.
git clone https://github.com/justinthevoid/xcforge.git
cd xcforge && swift build -c release cp .build/release/XCForgeCLI /usr/local/bin/xcforge
brew uninstall xcforge
brew untap justinthevoid/tap # optional: remove the tap
rm /usr/local/bin/xcforge
After uninstalling the binary, remove the "xcforge" entry from your MCP client config file (see Configure for file locations).
For Claude Code:
claude mcp remove xcforge
Add xcforge to your MCP client. Each client has a different config format and file location.
The fastest way is the CLI command shown above under Install. To configure manually, add to .mcp.json in your project root (or ~/.claude/.mcp.json for global):
{
"mcpServers": { "xcforge": { "command": "xcforge", "args": [], "type": "stdio" } } }
File: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": { "xcforge": { "command": "/opt/homebrew/bin/xcforge", "args": [] } } }
Note: Claude Desktop does not inherit your shell PATH. Use the full Homebrew path —
/opt/homebrew/bin/xcforgeon Apple Silicon,/usr/local/bin/xcforgeon Intel.
File: .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global)
{
"mcpServers": { "xcforge": { "command": "/opt/homebrew/bin/xcforge", "args": [] } } }
Note: Same PATH caveat as Claude Desktop — use the absolute path. Restart Cursor after changes.
File: .vscode/mcp.json in your project root
{
"servers": { "xcforge": { "command": "xcforge", "args": [], "type": "stdio" } } }
Note: VS Code uses
"servers"not"mcpServers". Requires the GitHub Copilot extension with agent mode enabled. VS Code typically resolves PATH from your shell, so the bare command works.
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": { "xcforge": { "command": "/opt/homebrew/bin/xcforge", "args": [] } } }
Note: Full path recommended. Restart Windsurf after editing.
File: ~/.config/zed/settings.json (or .zed/settings.json per-project)
{
"context_servers": { "xcforge": { "command": { "path": "/opt/homebrew/bin/xcforge", "args": [] }, "settings": {} } } }
Note: Zed uses
"context_servers"with a nested"command.path"— different from every other client.
| Client | Config key | File location | Needs absolute path? |
|---|---|---|---|
| Claude Code | mcpServers | .mcp.json | No |
| Claude Desktop | mcpServers | ~/Library/Application Support/Claude/claude_desktop_config.json | Yes |
| Cursor | mcpServers | .cursor/mcp.json | Yes |
| VS Code | servers | .vscode/mcp.json | No |
| Windsurf | mcpServers | ~/.codeium/windsurf/mcp_config.json | Yes |
| Zed | context_servers | ~/.config/zed/settings.json | Yes |
xcforge ships an agent skill: the tool reference an agent loads when it works on iOS tasks. The binary carries it, so installing it needs nothing else:
xcforge skill install # this repo: .claude/skills/xcforge (commit it to share with the team)
xcforge skill install --global # every project: ~/.claude/skills/xcforge xcforge skill install --dir # any other agent's skills directory xcforge skill status # where it's installed and whether it matches this xcforge xcforge skill show references/test-tools.md # print one file without installing
Re-run xcforge skill install after upgrading xcforge to refresh the copy; only changed files are rewritten. It won't overwrite an xcforge skill directory it didn't create unless you pass --force. xcforge skill uninstall removes it.
Once installed, Claude will automatically load the right reference files when you use xcforge tools — exact parameters, return values, and usage patterns for each category (build, test, simulator, UI automation, logs, LLDB, diagnosis, and more).
xcforge # MCP server (stdio JSON-RPC, 104 tools)
xcforge build --scheme MyApp # CLI mode (19 command groups)
Every tool available over MCP has a matching CLI command. Every CLI command supports --json.
| Category | Count | Highlights |
|---|---|---|
| Build | 6 | build_sim, build_compile (fast compile-only), build_run_sim, clean, project/scheme discovery |
| Test | 7 | test_sim with xcresult parsing, test_failures, test_coverage, list_tests, test_plan_inspect, agent output mode, known-failures gating |
| Simulator | 18 | Full lifecycle + video recording, location simulation, dark mode toggle, status bar override, info |
| Physical Devices | 10 | Via devicectl — list, install, launch (deep links, env), screenshot, WebDriverAgent on device |
| UI Automation | 20 | WebDriverAgent + native AX bridge — find, tap (point or pixel), swipe, drag, type, alerts |
| Screenshots | 3 | Framebuffer capture (0.3s), point-space coordinate alignment, optional grid overlay |
| Visual Regression | 3 | Pixel-diff baselines, multi-device checks (Dark Mode, Landscape, iPad), bless workflow |
| Logs | 4 | 4-layer filtered capture, 8 topic categories, regex wait |
| Console | 3 | stdout/stderr capture for launched apps |
| SPM | 5 | Resolve, update, show deps, reset, clean |
| Accessibility | 5 | Audit labels, traits, VoiceOver order, contrast |
| Git | 5 | Status, diff, log, commit, branch |
| LLDB Debugger | 8 | Attach, breakpoints, inspect variables, backtrace, step/continue, arbitrary commands |
| Diagnosis | 10 | Multi-step workflows: build, run, inspect, capture evidence, compare, verify |
| Plan Execution | 2 | Scripted multi-step automation with assertions |
| Session | 3 | Persistent defaults, .xcforge.yaml repo config, session profiles |
Test output is parsed from .xcresult bundles — the structured format Xcode generates internally — not from raw xcodebuild stdout/stderr.
A single test_sim call returns: pass/fail counts, failure messages with source location, exported failure screenshots, and the xcresult path for deeper inspection via test_failures or test_coverage.
The screenshot tool reads the simulator framebuffer via CoreSimulator's IOSurface API, falling back to ScreenCaptureKit, then simctl. Typical latency is ~300ms.
xcforge communicates directly with WebDriverAgent over HTTP and supplements it with a native Accessibility API bridge (AXPBridge). This means:
find_element with scroll: true auto-scrolls using 3 fallback strategieshandle_alert searches across SpringBoard, ContactsUI, and the active app — accept_all clears multiple permission dialogs in one calldrag_and_drop works with element IDs, not just coordinatesget_source returns the full view hierarchy in ~20msstart_log_capture streams os_log through 4 filter layers:
smart (broad + topic-ready), app (tight, auto-detected bundle), verboseread_logs classifies lines into 8 topics (app, crashes, network, lifecycle, springboard, widgets, background, system) and shows only app + crashes by defaultThe response includes a topic menu with counts, so the agent can pull in specific topics on demand without re-querying.
8 tools for attaching LLDB to running simulator processes, setting breakpoints, inspecting variables, viewing stack traces, and stepping through code. Sessions persist for 30 minutes, so you can attach once and run multiple debugging operations. CLI commands are one-shot (attach → operation → detach). Includes:
lldb_attach (by bundle ID or PID), lldb_detachUse alongside logs and screenshots for systematic root-cause analysis.
10 tools (off by default: turn them on with XCFORGE_TOOL_GROUPS=+diagnose or tool_groups) that chain together into structured diagnostic pipelines — start a session, build, launch, capture runtime signals, collect evidence (screenshots, logs, accessibility state), compare against previous runs, and verify fixes. Designed for agents to systematically debug issues across multiple iterations.
Only the beginning is shown; read the rest in the repo