shipcheck
ShipCheck v0
Независимый QA по preview URL для агентов, пишущих код. Агент отправляет POST-запросом публичный https preview URL и приёмочные сценарии. Мы запускаем эвристики Playwright, делаем скриншот каждого сценария и возвращаем комплект доказательств с результатом pass/fail. Неудачные результаты остаются в статусе needs_review, пока человек (или этот агент, просматривающий страницу) не добавит короткое примечание.
Модель, написавшая UI, — плохой судья для этого UI. В этом и заключается продукт.
Playwright MCP бесплатен; это не облачный браузер. Это независимая проверка с участием человека при неудаче. Screenshot API дают пиксели. ShipCheck отвечает на вопрос: «действительно ли сработал сценарий 3?»
Запуск
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 8787venv уже существует на этой машине. По умолчанию процесс 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
Публичный URL (быстрый туннель Cloudflare, эта машина, среда, 19 августа 2026): 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/.
Related MCP server: Prufa
Пример запроса / ответа
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 (перечислены ошибки эвристик; последующий проход добавляет human_note через POST /qa_note/{job_id} или MCP qa_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, link-local, CGNAT, IP-адреса метаданных (169.254.169.254), file://, встроенные учётные данные и redirect-to-private отклоняются. Каждый запрос 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). Лимит публичных preview-задач: 20 qa_preview задач/день/IP (loopback без ограничений). SHIPCHECK_PREVIEW_LIMIT_PER_IP переопределяет лимит; 0 отключает.
Цены
Задумано, но пока не взимается: $6 десктоп / $10 оба вьюпорта (или 5–8 сценариев) за один прогон. Предоплаченные кредиты Polar — позже. Хук: shipcheck/billing.py.
Следующие шаги
Кредитные пакеты Polar + лицензионный ключ в качестве
Authorization: Bearer; списание только при успехе.Пинг в Slack/Telegram, когда статус —
needs_review; человек пишетhuman_note(RESTPOST /qa_note/{job_id}и MCPqa_noteуже принимают примечание).Разместить в PulseMCP / Glama / официальном реестре MCP (обнаружение, а не маркетплейс).
Публичный пример отчёта +
llms.txtиз 30 строк.
Не добавляйте дашборд, GitHub App или криптовалютный платёжный канал.
This server cannot be deployed
Maintenance
Related MCP Connectors
Human QA on real phones and browsers for your coding agent. Pass/fail per step, with screenshots.
Independent preview-URL QA for coding agents. Playwright heuristics, pass/fail pack.
Website QA for your coding agent: audit SEO, performance, security, accessibility over MCP.
Read-only web QA agent: scans a site in a real browser and returns evidence-backed findings
1
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables acceptance gates for AI coding-agent runs by recording evidence, running deterministic validation, applying a quality gate, and rendering auditable outcomes.7Apache 2.0
- AlicenseAqualityCmaintenancePoint your coding agent at a URL and get a real-browser QA audit: broken signup/login/checkout flows, JS console errors, missing analytics, consent + security headers, mobile tap targets, and accessibility — returned as machine-verified findings graded A-F.4420 PyPI2Apache 2.0

QualityMax QA MCPofficial
AlicenseAqualityAmaintenanceEnables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.459 npm4MIT- AlicenseNot gradedqualityAmaintenanceEnables AI platforms to run ensemble front-end quality tests on public web pages, including accessibility, usability, and standards conformity, and to retrieve the resulting reports.842 npm4MIT