ios-agent-skillBLOCK
Swift source, Apple guides and MCP tools for AI coding agents. Review iOS code, scaffold apps, and build/run/preview with Xcode Simulator.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Give your coding agent the Apple references, Swift source and local tools it needs to build and review an iOS app.
[](https://nagarjuna2997.github.io/ios-agent-skill/)
Watch the website walkthrough · Explore the website
Describe an app in one sentence and the /ios-build agent plans it, writes the SwiftUI code and Xcode project, then builds and runs it in the simulator (what has been verified, example apps on the website). For an existing project, the same package gives your coding agent reviews, local Apple references and simulator tools to check its work.
[](https://github.com/Nagarjuna2997/ios-agent-skill/actions/workflows/tests.yml) [](https://github.com/Nagarjuna2997/ios-agent-skill/actions/workflows/docs-consistency.yml) [](https://nagarjuna2997.github.io/ios-agent-skill/npm-downloads-details.json)
Explore the website · Client setup guides · npm · Release notes
Build an app from one sentence
/ios-build "" asks Claude Code to plan an iOS app, write its SwiftUI code and Xcode project, apply capability modules (sign-in, storage, payments, maps and more), then build, run and screenshot it in the iOS Simulator, ending with a report of what needs your accounts or money. The tools are pu
82124a748179OBSERVED · 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. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add ios-agent-mcp -- npx -y [email protected]
Exposed tools (74)
60 read · 13 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
FutureAppleDocsSearch | read | Search Apple documentation |
a-one | read | Does a thing. Use when you need it. |
a-two | read | Does another thing. Use when you need that. |
analyze_swift_project | read | |
audit_app_store_readiness | read | |
bad | read | A reviewer. Use after changes. Read-only — never edits. |
build_project | read | |
check_apple_capabilities | read | |
check_apple_permissions | read | |
check_availability_guards | read | |
demo-skill | read | Expert demo behavior for AI coding agents. Use when writing or reviewing demo code. |
export_screenshot_set | write | |
generate_color_system | read | |
get_apple_technology | read | |
get_apple_updates | read | |
get_reference_outline | read | |
get_screenshot_template | read | |
get_system_integration | read | |
inspect_screenshot_set | write | |
install_app | write | |
ios-docs | read | Writes documentation for Swift codebases and DocC comments. |
ios-explore | read | Read-only codebase search. Use when sweeping many files. |
ios-explorer | read | Read-only codebase search. Use when sweeping many files. |
ios-plan | read | Planner. Use before a multi-file feature. |
ios_add_capabilities | write | |
ios_add_package | write | |
ios_build | read | |
ios_capabilities | read | |
ios_create_project | write | |
ios_logs | read | |
ios_plan | read | |
ios_preflight | read | |
ios_progress | read | |
ios_report | read | |
ios_run | write | |
ios_screenshot | read | |
ios_write_files | write | |
launch_app | read | |
lint_skill | read | |
list_screenshot_templates | read | |
list_system_integrations | read | |
localize_screenshot_set | write | |
open_deep_link | read | |
plan_app_icon | read | |
plan_ios_app | read | |
preview_screenshot_set | write | |
read_local_reference | read | |
recommend_system_integrations | read | |
review_app_intents | read | |
review_backend_integration | read | |
review_color_system | read | |
review_swift_architecture | read | |
review_swift_concurrency | read | |
review_swift_memory | read | |
review_swift_performance | read | |
review_swift_security | read | |
review_swift_testing | read | |
review_swiftui | read | |
review_system_integrations | read | |
run_tests | write | |
scaffold_system_integration | read | |
screenshot | read | |
search_apple_technologies | read | |
search_local_references | read | |
simulator_boot | read | |
simulator_environment | read | |
simulator_list | read | |
simulator_preview_start | write | |
simulator_preview_stop | write | |
simulator_show | read | |
simulator_shutdown | read | |
swift-refactorer | read | Behavior-preserving Swift cleanups. Use for mechanical improvement with no behavior change. |
swift-reviewer | read | Independent verifier for Swift changes. Use after code is written. Read-only — it never edits code. |
terminate_app | destructive |
Trust audit
BLOCKgrade F · trust 42/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (2 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
exec(
Preserve the public API and documented behavior. Use offline synthetic inputs only. Do not weaken compiler checks, bypass isolation safety or remove functionality. Different correct implementations ar
Preserve the public API and documented behavior. Use offline synthetic inputs only. Do not weaken compiler checks, bypass isolation safety or remove functionality. Different correct implementations ar
Preserve the public API and documented behavior. Use offline synthetic inputs only. Do not weaken compiler checks, bypass isolation safety or remove functionality. Different correct implementations ar
Preserve the public API and documented behavior. Use offline synthetic inputs only. Do not weaken compiler checks, bypass isolation safety or remove functionality. Different correct implementations ar
Preserve the public API and documented behavior. Use offline synthetic inputs only. Do not weaken compiler checks, bypass isolation safety or remove functionality. Different correct implementations ar
origin = `http://127.0.0.1:${address.port}`;let address = URL(string: "http://127.0.0.1:8844/")!
test('Supabase publishable key does not trigger privileged secret diagnostics',async()=>{const r=await review({'App.swift':'import Supabase\nlet apiKey="sb_publishable_fixture_only_123456"'});assert.etest('secrets/source/brief text are not serialized', async (t) => { const { root } = await fixture(t); const token = 'sk-testsecretABCDEFGHIJKLMNOPQRSTUVWXYZ'; await source(root, 'let apiKey="' + tokefile("Sources/API.swift", ['let apiKey = "sk_live_9d8f7a6b5c4e3f2a1b0c"']),file("Sources/API.swift", ['let apiKey = "sk_live_9d8f7a6b5c4e3f2a1b0c"']),terminate_app
exec(process.execPath, [binary, "loop", action, "--project", root, ...args]);
await exec(
const { stdout } = await exec(process.execPath, [binary, "loop", "--help"]);const build = await exec(process.execPath, [binary, "build", "--help"]);
test('all security findings on a credential line redact the literal',()=>{const sentinel='synthetic_secret_very_long_123';const r=analyzeSecurity({path:'App.swift',content:`let apiKey="${sentinel}"; p&& node ../../../../dist/index.js doctor \
&& node ../../../../dist/index.js where --json > /dev/null )
import {project,ids,openstep,plist} from '../../mcp-server/test/helpers/launch-project.js';import {plist,ids,XMLParser,XMLValidator} from '../../mcp-server/test/helpers/launch-project.js';const template=fileURLToPath(new URL('../../templates/app-icon/',import.meta.url));'.env' ... WebSocket
const base=`http://127.0.0.1:${port}`;Gates applied: instruction_override, no_behavioural_pass.
82124a748179full audit observations/trust-audit/mcp-server/nagarjuna2997__ios-agent-skill.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 | 82124a748179 | BLOCK | F | 42 | first audit |
Questions
What is the ios-agent-skill MCP server?
Swift source, Apple guides and MCP tools for AI coding agents. Review iOS code, scaffold apps, and build/run/preview with Xcode Simulator.
What tools does ios-agent-skill expose?
74 in total: 60 read-only, 13 that write, and 1 that can delete or overwrite (terminate_app). Every one is listed on this page with its risk.
Is ios-agent-skill safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (42/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does ios-agent-skill need?
It reads INDEXNOW_KEY and PRIVATE_FEEDBACK_GITHUB_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does ios-agent-skill run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as ios-agent-studio at 2.10.1.
How current is this page?
The grade is for one exact copy of the source (82124a748179), read on 2026-10-08. The repository is watched and re-audited when it changes.