Muse tool discovery and a model-driven build are separate milestones. The existing echo-provider record proves a connection and a Stop hook, not that Muse wrote or repaired the same to-do app.
- 1Installed executable
- 2MCP discovery
- 3Model task
- 4Independent checks
Work through the example
Read the bounded connection record before attempting edits. Keep sandbox configuration errors separate from compiler diagnostics.
Start with a disposable branch and synthetic data. Write the expected outcome before changing the implementation, then keep the first failing result. This prevents a later repair from quietly redefining the task. The procedure below is grounded in the repository reference; its examples must still be checked against your project and installed toolchain.
Implementation reference
The following focused section is adapted from the maintained project guide. It preserves the source’s examples and limitations.
Muse Code
Muse Code joins Claude, Codex and Gemini CLI through the same unified local MCP
server. No separate server package, plugin ZIP or MUSE.md is needed.
Install the server outside the agent sandbox, using Node.js 20 or later:
npm install -g ios-agent-mcp@latest
Merge this into ~/.config/muse/settings.json; preserve your other settings and
existing server entries. Do not replace the whole file. schema_version is required.
{
"schema_version": 1,
"mcpServers": {
"ios-agent": {
"command": "ios-agent-mcp",
"args": []
}
}
}
Copyable template · Settings-key verification note · Hook verification scope. If Muse cannot find
the command, use the absolute executable path printed by command -v ios-agent-mcp.
Restart Muse after updating settings. This avoids fetching a package inside Muse's
default proxy-only sandbox. It does not disable sandboxing or grant network access.
For local instructions, use the repository's AGENTS.md. For skill discovery,
keep the original frontmatter-bearing SKILL.md under your project's
project-local .claude/skills/ios-agent-skill folder with its companion references. Do not rename the
frontmatter-stripped AGENTS.md to SKILL.md. Trust only workspaces you recognize.
Verified compatibility, 2026-09-16
Muse Code 1.3.0 (1.3.0-R3233.1) connected to the published ios-agent-mcp 2.7.0
using stdio and discovered 36 tools, including reviews, local references,
create_app and simulator tools. Initialization and tool discovery used the actual
Muse executable with its local echo provider. No account credentials or model
request were needed. muse init and discovery of the repository's Claude-format
skill were separately verified earlier.
A command-based Stop hook executed in an isolated test. The optional maintainer hook template runs this repository's existing verification script. It is for sessions rooted in this repository only: confirm the working directory before enabling it. Do not copy it into an unrelated user's app or apply it globally across projects. Hook commands execute shell code, so inspect commands before merging them into your settings.
Not verified: model-directed tool invocation, PreToolUse/PostToolUse ports, verification observer behavior, sandboxed simulator operations and end-to-end app creation by Muse. Tool discovery is not evidence that a model completed an app. No observer toggle or privacy/pricing-tier claim is supplied without verification.
Recorded verification result. The harness asserts four representative tools and records the complete discovered catalog and installed server package version.
Recheck on upgrades
From this repository, with Muse and the MCP package already installed:
node scripts/verify-muse.mjs /absolute/path/to/muse /absolute/path/to/ios-agent-mcp/dist/unified.js
This uses temporary configuration, disables foreign personal context, and checks
MCP discovery plus a Stop hook without a model call. It prints versioned JSON
results and removes the temporary files. It does not edit your Muse settings.
Rerun it when either client or server changes; record model-based checks separately.
Updating npm's @latest does not automatically upgrade an existing global install:
rerun npm install -g ios-agent-mcp@latest when choosing to upgrade.
Official sources: Meta announcement, configuration, and extensions. The latter documentation requires sign-in; the compatibility claims above come from executable tests.
Acceptance and failure review
| Checkpoint | What to inspect | If it does not match |
|---|---|---|
| Installed executable | Confirm the input and environment | Preserve the failure and return to this step |
| MCP discovery | Inspect the intermediate artifact | Preserve the failure and return to this step |
| Model task | Run the focused check | Preserve the failure and return to this step |
| Independent checks | Record the observed result | Preserve the failure and return to this step |
Ask the agent to explain the smallest change that resolves the observed mismatch. Keep unrelated refactors out of the repair. A change that makes a warning disappear is not enough if the behavior or ownership contract has changed. Re-run the same acceptance check so the before and after results are comparable.
Evidence and limits
Muse is not on the current PATH, and the existing echo test cannot stand in for the requested app run.
This is an educational guide. Its presence in the series does not certify a completed client-specific lab. The series evidence record separates executed checks from exercises and blocked environments.
Inspect the source used in this lesson.
Related reading
- Which Muse Code MCP settings actually work with a local Swift review server?
A reproducible Muse 1.3.0 connection check, with the exact configuration and clear limits on what discovery proves.
- Muse Code: what our integration actually verifies
Discovery and hooks are useful milestones, but they are not a finished app.
What to do next
Next: Writing an app brief an agent can build from: ten practice briefs