用途:在 shell 中操作运行中的本地 Rails 开发服务器,验证服务端渲染契约(HTML、text/vnd.turbo-stream.html),是 rails-mcp-server 静态读码的运行时补充。
主要能力:req.sh 发起单次 HTTP 请求并持久化 cookie,支持 turbo 与 Turbo-Frame 头;submit_form.rb 自动读取表单隐藏字段(含 authenticity_token)并提交,处理 _method;readlog.sh 安全读取开发日志,支持 tail、grep、按 X-Request-Id 精确过滤及 otp 模式;flow.sh 一条命令完成登录→读 OTP→提交 OTP→执行认证动作;jar_to_storage.rb 与 storage_to_jar.rb 在 curl 会话与 Playwright storageState 之间转换。
使用方式:应用需本地开发运行并已知端口,设置 BASE_URL(默认 http://localhost:3000);脚本仅允许 localhost、回环 IP 与 *.localhost。建议在 development.rb 配置 config.log_tags = [ :request_id ] 以获得精确日志关联。Ruby 脚本通过 bundle exec ruby 运行。kamal-proxy 场景可设 BASE_URL=http://fragua.localhost,必要时用 RESOLVE=1 强制解析到回环。环境变量还有 JAR、LOG_FILE、MAX_BYTES。
适用场景:ERB + Hotwire、JavaScript 极少的应用;验证 turbo-stream 动作与目标、SQL、日志、JS 执行前的原始 HTML。
限制:不执行 JavaScript,Stimulus、DOM morphing、requestSubmit、ActionCable 广播渲染均不可见;仅本地、仅开发日志,readlog.sh 拒绝含 production 的路径;不要经 rails-mcp-server 的 execute_ruby 沙箱运行。JS 相关断言需配合 Playwright(如 npx @playwright/mcp@latest)。