Seiro MCP

Seiro MCP é um servidor MCP e Skills que permite fluxos de trabalho de build autônomos para aplicativos visionOS (Swift) usando Codex CLI / App.

Documentação

Seiro MCP Logo
MCP de build leve para visionOS para Agentes de Codificação de IA

CI License: MIT Docs

Seiro MCP é um servidor MCP leve focado em fluxos de trabalho de desenvolvimento visionOS para agentes de codificação de IA. Ele permite que o Codex CLI e outros clientes MCP compilem, validem e inspecionem projetos visionOS com segurança por meio de um conjunto dedicado de ferramentas MCP.

O objetivo do Seiro MCP não é expor todos os recursos do Xcode. Em vez disso, ele se concentra intencionalmente nos fluxos de trabalho de desenvolvimento que agentes de codificação de IA executam com mais frequência durante o desenvolvimento diário. Hoje, ele fornece ferramentas de build para visionOS juntamente com orientações de skill do Codex incluídas, e com o tempo será expandido com utilitários adicionais focados no desenvolvedor para computação espacial, permanecendo focado no desenvolvimento em vez do gerenciamento de releases.

Recursos

  • Fluxos de trabalho de desenvolvimento visionOS focados para agentes de codificação de IA
  • Automação de build segura por meio de restrições explícitas de projeto
  • Interface MCP amigável para IA para build, diagnósticos e artefatos
  • Integração com Codex Skill para operação de build visionOS preferida
  • Fluxo de trabalho de desenvolvimento local previsível
  • Escrito em Rust

Por que Seiro MCP?

A automação de Xcode de propósito geral é poderosa, mas agentes de codificação de IA geralmente precisam de um subconjunto focado de operações de desenvolvimento: validar o ambiente, compilar um projeto, inspecionar falhas e recuperar artefatos.

O Seiro MCP mantém essa interface intencionalmente pequena. Superfícies de ferramentas MCP menores são mais fáceis para agentes raciocinarem, mais fáceis para humanos revisarem e mais seguras de executar em ambientes de desenvolvimento local. O projeto prioriza fluxos de trabalho de desenvolvimento previsíveis em vez de automação de releases, orquestração de assinatura ou substituição completa do Xcode.

Leve não significa menos recursos. Significa expor as capacidades certas para desenvolvimento assistido por IA, deixando deliberadamente fluxos de trabalho orientados a releases, orquestração de assinatura e automação ampla do Xcode fora do escopo do projeto.

Início Rápido

cargo install seiro-mcp --locked
seiro-mcp config mcp
seiro-mcp config project
  1. Cole a saída de seiro-mcp config mcp na configuração do Codex CLI (~/.codex/config.toml).
  2. Execute seiro-mcp config project a partir da raiz do projeto de destino.
  3. Edite seiro-mcp.toml para permitir os caminhos e esquemas do projeto de destino.
  4. Reinicie o cliente MCP e use as ferramentas visionOS.

Agora você está pronto para pedir ao Codex para compilar seu projeto visionOS com o Seiro MCP.

Configuração opcional do Codex Skill:

seiro-mcp skill install

Instalação

Pré-requisitos

  • Rust 1.91.1 (recomendado rustup override set 1.91.1)
  • Cargo (o comando cargo deve estar disponível)
  • Codex CLI
  • Qualquer cliente MCP (por exemplo, MCP CLI / Inspector oficial)
  • git, bash/zsh

Se o DevToolsSecurity estiver desabilitado, habilite-o primeiro:

$ DevToolsSecurity -status
Developer mode is currently disabled.

$ sudo DevToolsSecurity -enable

1. Instalar a partir do crates.io

cargo install seiro-mcp --locked

Atualizar para v0.5.1

Se você já instalou uma versão anterior, atualize para v0.5.1 com:

cargo install seiro-mcp --locked --force --version 0.5.1
seiro-mcp --version

O histórico de releases e as notas de atualização são publicados em GitHub Releases.

Para atualizar a orientação de skill incluída após a atualização:

seiro-mcp skill remove seiro-mcp-visionos-build-operator
seiro-mcp skill install

2. Preparar o Codex e a configuração do projeto

(veja docs/config.md para detalhes)

Gere o trecho MCP do lado do Codex:

seiro-mcp config mcp

Cole a saída na configuração do Codex (~/.codex/config.toml):

[mcp_servers.seiro_mcp]
command = "/Users/<user>/.cargo/bin/seiro-mcp"

Em seguida, crie a configuração local do projeto Seiro MCP a partir da raiz do projeto de destino:

seiro-mcp config project

Isso cria seiro-mcp.toml:

[visionos]
allowed_paths = []
allowed_schemes = []
xcode_path = "/Applications/Xcode.app/Contents/Developer"

MCP_CONFIG_PATH e --config permanecem disponíveis para locais de configuração não padrão. Quando nenhum está definido, o Seiro MCP lê seiro-mcp.toml do diretório atual do processo.

3. Opcional: instalar e executar a skill incluída

seiro-mcp skill install --dry-run
seiro-mcp skill install
  • O nome da skill incluída usa o prefixo seiro-mcp- para evitar colisões.
  • A fonte canônica da skill incluída é .agents/skills/seiro-mcp-visionos-build-operator/, incluindo SKILL.md, agents/openai.yaml e ativos de ícone em .agents/skills/seiro-mcp-visionos-build-operator/assets/.
  • Use seiro-mcp skill remove seiro-mcp-visionos-build-operator para reverter.
  • skill remove retorna not_found sem falhar quando a skill já está ausente.
  • Verifique a compatibilidade com seiro-mcp --version antes das operações de skill.
  • Para esta linha de release, seiro-mcp skill install tem como padrão seiro-mcp-visionos-build-operator. Passar esse nome de skill explicitamente ainda é suportado.
  • seiro-mcp skill install instala a skill incluída no diretório local de skills do Codex e não instala o binário do servidor Seiro MCP nem configura as configurações do MCP.
  • Use seiro-mcp --help, seiro-mcp skill --help e seiro-mcp --version para autoverificação.
    seiro-mcp --help
    seiro-mcp skill --help
    seiro-mcp skill install --help
    

Caminho alternativo de instalação pelo GitHub para Codex skill-installer:

  • Use o Codex skill-installer com estes argumentos quando quiser instalar a skill diretamente do repositório público do GitHub:
    • --repo karad/seiro-mcp
    • --path .agents/skills/seiro-mcp-visionos-build-operator
  • Isso instala apenas os arquivos de skill do Codex. Você ainda precisa do binário seiro-mcp além da configuração do servidor MCP (seiro-mcp config mcp e seiro-mcp config project).

Uso

Usando a partir do Codex CLI

Adicione uma entrada como a seguinte à configuração do Codex CLI (~/.codex/config.toml) para chamar as ferramentas visionOS:

[mcp_servers.seiro_mcp]
command = "/Users/<your-username>/.cargo/bin/seiro-mcp"
  • O Codex CLI não expande ${HOME}, então use caminhos absolutos e substitua <your-username>.
  • Prefira seiro-mcp config mcp para imprimir este trecho com o caminho real do binário instalado.
  • Por padrão, o Seiro MCP lê seiro-mcp.toml do diretório atual do projeto.
  • Reinicie o Codex CLI e confirme que mcp list mostra as ferramentas visionOS.

Como Funciona

1. Inicie o servidor por meio de um cliente MCP

  • O cliente MCP deve iniciar o servidor como um processo filho e realizar o handshake RMCP via stdio. Executar cargo run diretamente sem um cliente falhará imediatamente.
  • Exemplo com Inspector:
    npx @modelcontextprotocol/inspector seiro-mcp
    
  • Se você precisar de um caminho de configuração não padrão, passe MCP_CONFIG_PATH=/absolute/path/to/seiro-mcp.toml.
  • Se você estiver desenvolvendo a partir do código-fonte, compile o binário e inicie-o por meio de um cliente MCP.

2. Valide a política de sandbox antes de compilar

mcp call validate_sandbox_policy '{
    "project_path": "/Users/<user>/codex/workspaces/vision-app",
    "required_sdks": ["visionOS", "visionOS Simulator"],
    "xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'
  • Se status: "ok", prossiga para build_visionos_app.
  • Se status: "error" ou um erro MCP, corrija com base no código:
    • path_not_allowed: adicione o diretório pai do projeto a visionos.allowed_paths.
    • sdk_missing: primeiro inspecione details.diagnostics (probe_mode, effective_required_sdks, detected_sdks_raw, detected_sdks_normalized), depois instale o SDK visionOS em Xcode > Configurações > Plataformas.
    • devtools_security_disabled: execute DevToolsSecurity -enable.
    • xcode_unlicensed: execute sudo xcodebuild -license.
    • disk_insufficient: garanta 20GB+ de espaço livre para o build.

Pré-verificação opcional antes do build:

mcp call inspect_xcode_sdks '{
    "required_sdks": ["visionOS", "visionOS Simulator"],
    "xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'
  • Esta ferramenta somente leitura retorna missing_required_sdks e o mesmo contexto de sondagem de SDK usado para validação de sandbox.
  • Ordem recomendada de solução de problemas: diagnósticos validate_sandbox_policy -> inspect_xcode_sdks (opcional) -> repetir validação/build.

Descoberta opcional de esquema antes do build:

mcp call inspect_xcode_schemes '{
    "project_path": "/Users/<user>/codex/workspaces/VisionApp/VisionApp.xcodeproj",
    "xcode_path": "/Applications/Xcode.app/Contents/Developer"
}'
  • Use isso quando project_path ou scheme for desconhecido.
  • Se project_path for omitido, a ordem de resolução é:
    1. .xcodeproj descoberto no diretório de trabalho atual
    2. visionos.default_project_path em seiro-mcp.toml

3. Inicie um build com build_visionos_app

mcp call build_visionos_app '{
    "project_path": "/Users/<user>/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 devem ser caminhos absolutos dentro de visionos.allowed_paths.
  • scheme deve estar listado em visionos.allowed_schemes.
  • configuration deve usar valores canônicos em minúsculas: debug ou release. Para compatibilidade, Debug / Release também são aceitos.
  • extra_args permitidos: -quiet, -UseModernBuildSystem=YES, -skipPackagePluginValidation, -allowProvisioningUpdates.
  • MOCK_XCODEBUILD_BEHAVIOR alterna o fixture de teste (tests/fixtures/visionos/mock-xcodebuild.sh) entre success / fail / timeout.
  • Em caso de sucesso, retorna job_id, artifact_path, artifact_sha256, log_excerpt, duration_ms; em caso de falha, retorna erros como build_failed ou timeout.
  • Se vários simuladores corresponderem ao nome de destino, build_visionos_app retorna destination_ambiguous com matched_devices, available_destinations e um suggested_destination pronto para nova tentativa.

Se um build falhar, inspecione os diagnósticos sem executar comandos de shell manuais:

mcp call inspect_build_diagnostics '{
    "job_id": "<UUID returned in build error context>",
    "include_log_excerpt": true,
    "prefer_typecheck": true
}'
  • availability: "available" retorna primary_location (file, line, column) dos diagnósticos de typecheck.
  • availability: "unavailable" recorre a um resumo xcodebuild_log com notas.

4. Baixe artefatos com fetch_build_output

mcp call fetch_build_output '{
    "job_id": "<UUID returned by build_visionos_app>",
    "include_logs": true
}'
  • artifact_zip aponta para target/visionos-builds/<job_id>/artifact.zip; copie-o antes que download_ttl_seconds expire.
  • Defina include_logs: false para omitir log_excerpt e reduzir o ruído no lado do cliente.

Suporte a Skills

O Seiro MCP mantém o fluxo somente MCP inalterado. Você pode escolher qualquer um dos modos:

  • Modo somente MCP: chame validate_sandbox_policy / build_visionos_app / inspect_build_diagnostics (em caso de falha) / fetch_build_output diretamente.
  • Modo assistido por skill: use a skill seiro-mcp-visionos-build-operator para fluxos de trabalho de projeto Xcode / visionOS para que o Codex prefira o Seiro MCP em vez de xcodebuild / swiftc diretos.
  • Se project_path ou scheme estiver ausente no modo assistido por skill, execute inspect_xcode_schemes primeiro como pré-verificação opcional.
  • Ao descobrir um projeto localmente, lembre-se de que .xcodeproj e .xcworkspace são pacotes de diretório. Não confie em buscas somente de arquivos, como rg --files, para decidir que eles estão ausentes.

Caminho da skill neste repositório:

  • .agents/skills/seiro-mcp-visionos-build-operator/SKILL.md

Instalar a partir do CLI:

seiro-mcp skill install --dry-run
seiro-mcp skill install

Instalar a partir do GitHub com Codex skill-installer:

  • --repo karad/seiro-mcp
  • --path .agents/skills/seiro-mcp-visionos-build-operator

Exemplos de prompt:

  • 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.

Importante:

  • Skills fornecem orientação de orquestração.
  • MCP fornece capacidade de execução.
  • No modo assistido por skill, a execução real permanece como chamadas de ferramentas MCP com contratos inalterados.
  • Instalar a skill do GitHub ou seiro-mcp skill install não instala o binário do servidor Seiro MCP nem configura a conexão do cliente MCP.
  • Para tarefas de projeto Xcode / visionOS, xcodebuild / swiftc de shell direto devem ser tratados como caminhos de fallback, não o caminho padrão.

Execução

  • O servidor deve ser iniciado como um processo filho por um cliente MCP; executar cargo run diretamente falhará com MCP_CLIENT_REQUIRED (código de saída 44).
  • O Seiro MCP atualmente suporta inicialização MCP stdio local. O modo TCP não faz parte do fluxo de trabalho local suportado.
  • Veja docs/runbook.md para a receita completa de inicialização.

Modo de Inicialização

  • --config / MCP_CONFIG_PATH: --config vence; caso contrário, MCP_CONFIG_PATH -> ./seiro-mcp.toml (caminhos relativos são resolvidos para absolutos).
  • A configuração de token não é necessária para o fluxo de trabalho local padrão do Codex.
  • Códigos de saída:
    • 44: MCP_CLIENT_REQUIRED (stdin/stdout é um TTY; deve ser iniciado via cliente MCP)
  • Veja a seção Runbook "Procedimento de desligamento e códigos de saída" para detalhes.

Solução de Problemas

  • Arquivo de configuração não encontrado: execute seiro-mcp config project na raiz do projeto ou defina um MCP_CONFIG_PATH absoluto.
  • MCP_CLIENT_REQUIRED: ocorre ao executar cargo run diretamente; sempre inicie via um cliente MCP (Inspector / Codex, etc.).
  • seiro-mcp: command not found: verifique a instalação e use seiro-mcp config mcp para imprimir o trecho MCP do Codex.
  • path_not_allowed: adicione o pai do projeto a visionos.allowed_paths e reinicie.
  • scheme_not_allowed: adicione o esquema a visionos.allowed_schemes e reinicie.
  • sdk_missing: verifique details.diagnostics primeiro; se probe_mode for env, verifique VISIONOS_SANDBOX_SDKS. Em seguida, execute inspect_xcode_sdks e tente novamente após correções de SDK/configuração.
  • build_failed: use job_id do erro estruturado e chame inspect_build_diagnostics para identificar arquivo/linha antes de tentar novamente.

Referências

Motivação

À medida que os agentes de codificação de IA se tornam mais capazes, eles também precisam de maneiras confiáveis de interagir com ambientes de desenvolvimento locais. As soluções existentes frequentemente visam expor ampla funcionalidade do Xcode, mas muitas tarefas de desenvolvimento autônomo exigem apenas um subconjunto pequeno e bem definido dessas capacidades.

O Seiro MCP começou com uma ideia simples: fornecer apenas as ferramentas realmente necessárias para o desenvolvimento visionOS assistido por IA e tornar essas ferramentas confiáveis, seguras e fáceis de usar para agentes de IA. Em vez de se tornar um servidor de automação Xcode completo, o Seiro MCP foi projetado para ser um companheiro de desenvolvimento focado que ajuda agentes de IA a compilar, validar, inspecionar diagnósticos e apoiar projetos de computação espacial.

A visão de longo prazo é transformar o Seiro MCP em uma coleção de ferramentas de desenvolvimento cuidadosamente projetadas que melhorem o desenvolvimento assistido por IA para visionOS e computação espacial, preservando sua filosofia leve.

Roteiro

O Seiro MCP continuará a crescer como um kit de ferramentas de desenvolvimento focado para trabalho de computação espacial assistido por IA. As direções planejadas incluem:

  • Ferramentas adicionais de desenvolvimento para visionOS
  • Utilitários de análise de projetos
  • Fluxos de trabalho adicionais de desenvolvimento para visionOS
  • Suporte a Swift Package
  • Melhor orientação de fluxo de trabalho para agentes de IA
  • Mais utilitários de desenvolvimento para computação espacial

O roteiro permanece alinhado com a filosofia leve: o Seiro MCP deve expor as ferramentas de desenvolvimento certas para agentes de IA, não se tornar um servidor MCP Xcode completo.

Contribuindo

Estrutura de Diretórios

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

Para Contribuidores (clone + build local)

Se você está desenvolvendo este repositório em si, use o fluxo de clone:

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

Se alguma etapa falhar, corrija e execute novamente.

  • Em caso de sucesso, target/release/seiro-mcp é produzido.

Para Mantenedores (prontidão de release)

Antes de cargo publish, execute:

cargo check
cargo test --all -- --nocapture
cargo fmt -- --check
cargo clippy -- -D warnings
cargo build --release
cargo package --list
cargo publish --dry-run

--locked é recomendado para reprodutibilidade, mas não é obrigatório em todos os ambientes.

Testes e Critérios de Qualidade

  • Preferido: cargo run -p xtask -- preflight (executa fetch/check/test/fmt/clippy/build em ordem).
  • Manual: cargo fetch -> cargo check -> cargo test --all -> cargo fmt -- --check -> cargo clippy -- -D warnings -> cargo build --release.
  • Testes unitários em src/server/config/mod.rs cobrem a validação de configuração (casos de sucesso e erro).
  • tests/integration/visionos_build.rs cobre validate_sandbox_policy, build_visionos_app, inspect_build_diagnostics e fetch_build_output, incluindo o comportamento de TTL.

Código Aberto