  
该产品仍处于试验阶段。请小心使用。不提供保修。
Seiro MCP是一个空间计算MCP服务器,具有visionOS构建工具和捆绑的Codex技能指导。如今,它提供了从Codex CLI和其他MCP客户端安全运行visionOS项目构建的工具,支持自主的人工智能辅助编码工作流程。随着时间的推移,它将扩展更多以开发人员为中心的实用程序。
详细的启动/停止程序已上线 docs/runbook.md.
动机
起初,我试图在Mac上的本地Codex CLI环境中启动自主AI驱动的编码,但在我的设置中效果不佳。所以我决定构建一个简单的构建工具,只提供我真正需要的功能,并开始自己开发。在我工作的过程中,我对自主编码有了更深入的了解,并意识到了这个工具的新可能性。展望未来,我想开发将空间计算应用程序构建为MCP服务器所需的各种支持功能。
先决条件
- Rust 1.91.1(推荐
rustup override set 1.91.1) - 货物(
cargo命令必须可用) - Codex CLI
- 任何MCP客户端(例如,官方MCP CLI/Inspector)
git,bash/zsh
目录布局
src/
lib/ # shared logic: errors, telemetry, filesystem helpers
server/ # config + RMCP runtime
tools/ # visionOS tools
tests/
integration/ # integration tests (separate crate)
docs/ # configuration, runbook, review checklists安装
如果DevToolsSecurity已禁用,请先启用它:
$ DevToolsSecurity -status
Developer mode is currently disabled.
$ sudo DevToolsSecurity -enable1.从crates.io安装
cargo install seiro-mcp --locked从v0.2.1升级
如果您已经安装 v0.2.1,升级到 v0.2.2 与:
cargo install seiro-mcp --locked --force --version 0.2.2
seiro-mcp --version升级后刷新捆绑技能指南:
seiro-mcp skill remove seiro-mcp-visionos-build-operator
seiro-mcp skill install seiro-mcp-visionos-build-operator2.准备 config.toml
(参见 docs/config.md 详情)
- 复制自
config.example.toml作为一个起点。
[server]
host = "127.0.0.1"
port = 8787
[auth]
token = "change-me-please"
[visionos]
allowed_paths = []
allowed_schemes = []
default_project_path = "/absolute/path/to/YourApp.xcodeproj"
default_destination = "platform=visionOS Simulator,name=Apple Vision Pro"
required_sdks = ["visionOS", "visionOS Simulator"]
xcode_path = "/Applications/Xcode.app/Contents/Developer"
xcodebuild_path = "/usr/bin/xcodebuild"
max_build_minutes = 20
artifact_ttl_secs = 600
cleanup_schedule_secs = 60- 更新
token最多16+个字符。 - 要使用其他路径,请设置
MCP_CONFIG_PATH=/path/to/config.toml. - 在
[visionos],在中列出至少一个绝对路径allowed_paths以及控制构建超时/伪影TTL。 allowed_schemes必须列出允许构建的Xcode方案;其他任何东西都会回来scheme_not_allowed.
切换配置 MCP_CONFIG_PATH
- 在分离dev/prod配置时,添加
MCP_CONFIG_PATH发射环境:
MCP_CONFIG_PATH=/absolute/path/to/config.toml seiro-mcp --help- MCP客户端(如Codex CLI)可以通过
env.MCP_CONFIG_PATH也。 - 行为涵盖在
src/server/config/mod.rs::tests::load_config_from_env_override.
3.可选:安装并运行捆绑技能
seiro-mcp skill install seiro-mcp-visionos-build-operator --dry-run
seiro-mcp skill install seiro-mcp-visionos-build-operator- 捆绑技能名称使用
seiro-mcp-前缀以避免冲突。 - 捆绑的技能规范源代码是
.agents/skills/seiro-mcp-visionos-build-operator/,包括SKILL.md,agents/openai.yaml,以及图标资产.agents/skills/seiro-mcp-visionos-build-operator/assets/. - 使用
seiro-mcp skill remove seiro-mcp-visionos-build-operator回滚。 skill remove回报not_found当技能已经不存在时,不会失败。- 验证与的兼容性
seiro-mcp --version在技能操作之前。 - 对于这个发布线,捆绑的技能目标是
seiro-mcp-visionos-build-operator. seiro-mcp skill install将捆绑的技能安装到本地Codex技能目录中,不安装Seiro MCP服务器二进制文件或配置MCP设置。- 使用
seiro-mcp --help,seiro-mcp skill --help,以及seiro-mcp --version用于自我检查。
seiro-mcp --help
seiro-mcp skill --help
seiro-mcp skill install --helpCodex的替代GitHub安装路径 skill-installer:
- 使用Codex
skill-installer当您想直接从公共GitHub存储库安装技能时,请使用以下参数:
- --repo karad/seiro-mcp - --path .agents/skills/seiro-mcp-visionos-build-operator
- 这只安装Codex技能文件。你仍然需要
seiro-mcp二进制加MCP服务器配置(MCP_CONFIG_PATH,MCP_SHARED_TOKEN,并允许visionOS设置)。
对于贡献者(克隆+本地构建)
如果您正在开发此存储库本身,请使用克隆流:
git clone git@github.com:karad/seiro-mcp.git
cd seiro-mcp
cargo fetch
cargo run -p xtask -- langscan
cargo run -p xtask -- docs-langscan
cargo run -p xtask -- check-docs-links
cargo run -p xtask -- preflight如果任何步骤失败,请修复并重新运行。
- 关于成功,
target/release/seiro-mcp生产。
维护人员(发布准备就绪)
之前 cargo publish,运行:
cargo check
cargo test --all -- --nocapture
cargo fmt -- --check
cargo clippy -- -D warnings
cargo build --release
cargo package --list
cargo publish --dry-run--locked 建议用于再现性,但并非所有环境都是强制性的。
使用Codex CLI
在Codex CLI配置中添加以下条目(~/.codex/config.toml)调用visionOS工具:
[mcp_servers.seiro_mcp]
command = "/Users//.cargo/bin/seiro-mcp"
args = ["--transport=stdio"]
env.MCP_CONFIG_PATH = "/absolute/path/to/config.toml"
env.MCP_SHARED_TOKEN = "change-me-please"
working_directory = "/absolute/path/to/working-directory"- Codex CLI不扩展
${HOME},因此使用绝对路径并替换 ``. - 确认
which seiro-mcp并使用来自您环境的绝对路径。 - 通过以下方式切换服务器配置
env.MCP_CONFIG_PATH;确保env.MCP_SHARED_TOKEN火柴[auth].token. - 重新启动Codex CLI并确认
mcp list显示了visionOS工具。
运作原理
1.通过MCP客户端启动服务器
- MCP客户端必须将服务器作为子进程生成,并通过stdio执行RMCP握手。跑步
cargo run直接没有客户端将立即失败。 - 检查员示例:
MCP_SHARED_TOKEN= MCP_CONFIG_PATH=$PWD/config.toml \
npx @modelcontextprotocol/inspector seiro-mcp --transport=stdio- 如果你是从源头开发的,
cargo run --quiet -- --transport=stdio仍然可用。
2.在构建之前验证沙盒策略
mcp call validate_sandbox_policy '{
"project_path": "/Users//codex/workspaces/vision-app",
"required_sdks": ["visionOS", "visionOS Simulator"],
"xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'- 如果
status: "ok",继续build_visionos_app. - 如果
status: "error"或MCP错误,根据代码修复:
- path_not_allowed:将项目父目录添加到 visionos.allowed_paths. - sdk_missing:第一次检查 details.diagnostics (probe_mode, effective_required_sdks, detected_sdks_raw, detected_sdks_normalized),然后从Xcode>设置>平台安装visionOS SDK。 - devtools_security_disabled:run DevToolsSecurity -enable. - xcode_unlicensed:run sudo xcodebuild -license. - disk_insufficient:确保20GB+的可用空间用于构建。
构建前可选的飞行前准备:
mcp call inspect_xcode_sdks '{
"required_sdks": ["visionOS", "visionOS Simulator"],
"xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'- 此只读工具返回
missing_required_sdks以及用于沙盒验证的相同SDK探测上下文。 - 建议的故障排除顺序:
validate_sandbox_policy诊断→inspect_xcode_sdks(可选)→ 重试验证/构建。
构建前可选方案发现:
mcp call inspect_xcode_schemes '{
"project_path": "/Users//codex/workspaces/VisionApp/VisionApp.xcodeproj",
"xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'- 在以下情况下使用此功能
project_path或scheme未知。 - 如果
project_path省略,解析顺序为:
1. .xcodeproj 在当前工作目录中发现 1. visionos.default_project_path 在 config.toml
3.开始构建 build_visionos_app
mcp call build_visionos_app '{
"project_path": "/Users//codex/workspaces/VisionApp/VisionApp.xcodeproj",
"scheme": "VisionApp",
"destination": "platform=visionOS Simulator,name=Apple Vision Pro",
"configuration": "debug",
"extra_args": ["-quiet"],
"env_overrides": {"MOCK_XCODEBUILD_BEHAVIOR": "success"}
}'project_path/workspace必须是内的绝对路径visionos.allowed_paths.scheme必须列在visionos.allowed_schemes.configuration应使用小写规范值:debug或release为了兼容性,Debug/Release也被接受。- 允许
extra_args:-quiet,-UseModernBuildSystem=YES,-skipPackagePluginValidation,-allowProvisioningUpdates. MOCK_XCODEBUILD_BEHAVIOR切换测试夹具(tests/fixtures/visionos/mock-xcodebuild.sh)在success/fail/timeout.- 成功,回报
job_id,artifact_path,artifact_sha256,log_excerpt,duration_ms;失败时,返回错误,例如build_failed或timeout. - 如果多个模拟器与目的地名称匹配,
build_visionos_app回报destination_ambiguous随着matched_devices,available_destinations,并准备重试suggested_destination.
如果构建失败,请在不运行手动shell命令的情况下检查诊断:
mcp call inspect_build_diagnostics '{
"job_id": "",
"include_log_excerpt": true,
"prefer_typecheck": true
}'availability: "available"回报primary_location(file,line,column)来自类型检查诊断。availability: "unavailable"回落到axcodebuild_log带注释的总结。
4.下载工件 fetch_build_output
mcp call fetch_build_output '{
"job_id": "",
"include_logs": true
}'artifact_zip指向target/visionos-builds//artifact.zip;复制之前download_ttl_seconds到期。- 集
include_logs: false省略log_excerpt并降低客户端的噪声。
技能支持(visionOS/XXcode首选Seiro MCP)
Seiro MCP仅保持MCP流量不变。您可以选择以下任一模式:
- MCP专用模式:呼叫
validate_sandbox_policy/build_visionos_app/inspect_build_diagnostics(失败时)/fetch_build_output直接。 - 技能辅助模式:使用
seiro-mcp-visionos-build-operator熟练掌握Xcode/visionOS项目工作流程,因此Codex更喜欢Seiro MCP而不是直接xcodebuild/swiftc. - 如果
project_path或scheme在技能辅助模式下缺失,请运行inspect_xcode_schemes首先作为可选的飞行前准备。 - 在本地发现项目时,请记住
.xcodeproj和.xcworkspace是目录包。不要依赖仅文件搜索,例如rg --files决定他们缺席。
此存储库中的技能路径:
.agents/skills/seiro-mcp-visionos-build-operator/SKILL.md
从CLI安装:
seiro-mcp skill install seiro-mcp-visionos-build-operator --dry-run
seiro-mcp skill install seiro-mcp-visionos-build-operator使用Codex从GitHub安装 skill-installer:
--repo karad/seiro-mcp--path .agents/skills/seiro-mcp-visionos-build-operator
提示示例:
Use seiro-mcp-visionos-build-operator for this visionOS build task.Please run this using the seiro-mcp-visionos-build-operator skill.Use Seiro MCP for this Xcode project instead of direct xcodebuild.
重要提示:
- 技能提供编排指导。
- MCP提供执行能力。
- 在技能辅助模式下,实际执行仍然是MCP工具调用,合同不变。
- 从GitHub安装技能或
seiro-mcp skill install不安装Seiro MCP服务器二进制文件或配置MCP客户端连接。 - 对于Xcode/visionOS项目任务,直接使用shell
xcodebuild/swiftc应将其视为回退路径,而不是默认路径。
正在运行(stdio/tcp)
- 服务器必须由MCP客户端作为子进程启动;跑步
cargo run直接失败MCP_CLIENT_REQUIRED(出口44)。 - 看
docs/runbook.md了解完整的stdio/tcp配方。
模式和身份验证
--transport/MCP_CONFIG_PATH/--config:默认传输为stdio.与--transport=tcp,服务器监听server.host/server.port从配置。--config胜利;否则MCP_CONFIG_PATH→./config.toml(相对路径解析为绝对路径)。--token/MCP_SHARED_TOKEN:提供一个16-128个字符的匹配密码[auth].token;CLI标志优先于环境变量。启动时不匹配或缺少值失败,并将结构化错误打印到stderr。- 退出代码:
- 42: AUTH_TOKEN_MISMATCH (不匹配 [auth].token) - 43: MCP_TOKEN_REQUIRED (令牌丢失) - 44: MCP_CLIENT_REQUIRED (stdin/stdout是一个TTY;必须通过MCP客户端启动)
- 有关详细信息,请参阅Runbook部分“关机程序和退出代码”。
测试和质量门
- 首选:
cargo run -p xtask -- preflight(按顺序运行fetch/check/test/fmt/clippy/build)。 - 手册:
cargo fetch→cargo check→cargo test --all→cargo fmt -- --check→cargo clippy -- -D warnings→cargo build --release. - 单元测试
src/server/config/mod.rs覆盖配置验证(成功和错误案例)。 tests/integration/visionos_build.rs覆盖validate_sandbox_policy,build_visionos_app,inspect_build_diagnostics,以及fetch_build_output,包括TTL行为。
故障排除
- 未找到配置文件:地点
config.toml在repo根目录或设置绝对值MCP_CONFIG_PATH. - 无效端口:
server.port必须为1024–65535;在通过MCP客户端启动之前进行修复。 - 令牌丢失:如果出现以下情况,启动将被阻止
auth.token是空的;设置一个随机的16+字符串。 AUTH_TOKEN_MISMATCH/MCP_TOKEN_REQUIRED:确保MCP_SHARED_TOKEN或--token火柴[auth].token长度为16至128个字符。MCP_CLIENT_REQUIRED:运行时发生cargo run直接;始终通过MCP客户端(检查器/Codex等)启动。seiro-mcp: command not found:验证安装并使用来自的绝对路径which seiro-mcp在客户端设置中。path_not_allowed:将项目父级添加到visionos.allowed_paths并重新启动。scheme_not_allowed:将方案添加到visionos.allowed_schemes并重新启动。sdk_missing:检查details.diagnostics第一;如果probe_mode是env,验证VISIONOS_SANDBOX_SDKS。然后跑inspect_xcode_sdks并在SDK/config修复后重试。build_failed:使用job_id从结构化错误和调用inspect_build_diagnostics在重试之前识别文件/行。
参考文献
- visionOS快速入门:
docs/quickstart.md - runbook:
docs/runbook.md - 配置详细信息:
docs/config.md
开源
- 许可证:
LICENSE - 贡献:
CONTRIBUTING.md - 行为准则:
CODE_OF_CONDUCT.md - 安全:
SECURITY.md
