shipcheck
ShipCheck v0
コーディングエージェント向けの、独立したプレビューURL QA。エージェントが公開httpsプレビューURLと受け入れストーリーをPOSTする。こちらはPlaywrightのヒューリスティックを実行し、各ストーリーをスクリーンショットし、パス/フェイルの証拠パックを返す。失敗は、人間(またはこのページを調べているこのエージェント)が短いメモを追加するまでneeds_reviewのままになる。
UIを書いたモデル自身は、そのUIの良し悪しを判断するのには不向きだ。それがこのプロダクトの本質である。
Playwright MCPは無料だ。これはホスト型ブラウザではなく、失敗時に人間が関与する独立したチェックである。スクリーンショットAPIはピクセルを返すだけだ。ShipCheckが答えるのは「ストーリー3は実際に動いたか?」である。
Run
cd /workspace/shipcheck
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/playwright install chromium
.venv/bin/python -m shipcheck serve --host 0.0.0.0 --port 8787このボックスにはvenvがすでに存在する。デフォルトではAPIプロセスがディスクキューも処理する(インラインワーカー)。分割する場合:
SHIPCHECK_INLINE_WORKER=0 .venv/bin/python -m shipcheck serve --port 8787
.venv/bin/python -m shipcheck worker
.venv/bin/python -m shipcheck run-job sc_xxxxxxxxxxxxヘルスチェック: GET http://127.0.0.1:8787/health
公開(Cloudflareクイックトンネル、このボックス、2026年8月19日(水)): https://realtor-all-enclosed-altered.trycloudflare.com
同じプロセスがGET /(ランディングページ)、REST、POST /mcpを提供する。URLはPUBLIC_URL.txtにも記載されている。クイックトンネルはcloudflaredが停止すると消える。
ジョブは/workspace/shipcheck/queue/{job_id}.jsonに置かれる。レポートとスクリーンショットは/workspace/shipcheck/reports/にある。
リクエスト/レスポンスの例
curl -sS -X POST https://realtor-all-enclosed-altered.trycloudflare.com/qa_preview \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com/",
"stories": [
{"id": "home", "steps": ["open homepage"], "expect": "Example Domain"}
],
"viewport": "desktop"
}'レスポンス:
{
"job_id": "sc_ab12cd34ef56",
"status": "queued",
"price_usd": 6,
"billed": false,
"message": "queued. poll GET /qa_status/{job_id}; fetch GET /qa_get_report/{job_id} when status is pass or needs_review."
}curl -sS https://realtor-all-enclosed-altered.trycloudflare.com/qa_status/sc_ab12cd34ef56
curl -sS https://realtor-all-enclosed-altered.trycloudflare.com/qa_get_report/sc_ab12cd34ef56最終ステータスはpass(すべてのヒューリスティックがグリーンで、人間の対応は不要)またはneeds_review(ヒューリスティックの失敗が列挙される。後のパスでPOST /qa_note/{job_id}またはMCP qa_noteによりhuman_noteが追加される)。errorはインフラ側の問題(タイムアウト、クラッシュ、安全でないURL)であり、課金はされない。
将来の課金に備えたオプションのヘッダー: Authorization: Bearer <key>またはX-Api-Key。v0はキーがなくても受け付け、デビット(引き落とし)はしない。
オプションのストーリーステップ(指定しない場合はそのままメモとして扱われる): click:css=.buy, click:text=Sign in, fill:#email|user@example.com, wait:1000, see:Order total。
証拠パックの形はexamples/sample_report.jsonを参照。
セキュリティ
httpsのみ。localhost、ループバック(RFC1918)、リンクローカル、CGNAT、メタデータIP(169.254.169.254)、file://、埋め込まれた資格情報、プライベートへのリダイレクトを拒否する。すべてのPlaywrightリクエストは再チェックされる。ナビゲーションタイムアウトは20秒、ジョブ上限は4分。詳細はPRODUCT.mdにある。
SSRFテスト(ライブターゲットは不要):
cd /workspace/shipcheck
python -m pytest tests/test_ssrf.py tests/test_api.py -qCursor の mcp.json
Streamable-HTTP MCPはPOST /mcp(RESTと同じプロセス)で提供される。ツール: qa_preview、qa_status、qa_get_report、qa_note。これを.cursor/mcp.jsonまたは~/.cursor/mcp.jsonに追加する(typeは省略。Cursorはurlをstreamable HTTPとして扱う):
{
"mcpServers": {
"shipcheck": {
"url": "https://realtor-all-enclosed-altered.trycloudflare.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}v0はキーがなくても受け付け、引き落としはしない。同じファイルはexamples/mcp.jsonにもある。サーバーが起動している必要がある(python -m shipcheck serve --host 127.0.0.1 --port 8787)。公開URLはそのプロセスの前に立つCloudflareクイックトンネルだ。
ランディングページ: GET /(HTMLはshipcheck/landing.html)。公開プレビューのレート制限: 20 qa_preview ジョブ/日/IP(ループバックは無制限)。SHIPCHECK_PREVIEW_LIMIT_PER_IPで上書きでき、0で無効になる。
料金
意図(まだ課金しない): 実行ごとに $6 デスクトップ / $10 両ビューポート(または5–8ストーリー)。あとでPolarのプリペイドックレジットを使う。フック: shipcheck/billing.py。
次のステップ
Polarのクレジットパック+
Authorization: Bearerとしてのライセンスキー。成功時のみ引き落とす。ステータスが
needs_reviewになったらSlack/Telegramに通知し、人間がhuman_noteを書く(RESTPOST /note/{job_id}とMCPqa_noteはすでにそのメモを受け付ける)。PulseMCP / Glama / 公式MCPレジストリに掲載(ディスカバリーだけで、マーケットプレイスではない)。
公開サンプルレポート+30行の
llms.txt。
に関する dashboard、GitHub App、crypto railは追加しない。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Website QA for your coding agent: audit SEO, performance, security, accessibility over MCP.
Browser-backed QA with evidence and fix-ready reports for coding agents.
Verifies AI agent work end to end: real artifacts and outcomes checked, not self-reported success.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wtaylorwilson/shipcheck-preview-qa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server