Skip to main content
Glama

ShipCheck v0

코딩 에이전트를 위한 독립적인 프리뷰 URL QA 도구입니다. 에이전트가 공개 https 프리뷰 URL과 승인 스토리를 POST하면, Playwright 휴리스틱을 실행하고 각 스토리를 스크린샷으로 캡처한 뒤 통과/실패 증거 패키지를 반환합니다. 실패는 사람(또는 페이지를 직접 확인하는 이 에이전트)이 짧은 메모를 추가할 때까지 needs_review 상태로 유지됩니다.

UI를 작성한 모델은 그 UI를 평가하는 데 부적합합니다. 그것이 바로 이 제품의 핵심입니다.

Playwright MCP는 무료입니다. 이것은 호스팅 브라우저가 아닙니다. 실패 시 사람이 개입하는 독립적인 검사입니다. 스크린샷 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 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 quick tunnel, 이 머신, 2026년 8월 19일 수요일): https://realtor-all-enclosed-altered.trycloudflare.com 동일한 프로세스가 GET /(랜딩 페이지), REST, POST /mcp를 모두 제공합니다. URL은 PUBLIC_URL.txt에도 있습니다. quick tunnel은 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(휴리스틱 실패 목록 표시, 이후 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, link-local, 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 -q

Cursor 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 quick tunnel입니다.

랜딩 페이지: GET /(HTML은 shipcheck/landing.html). 공개 프리뷰 속도 제한: IP당 일 20개 qa_preview 작업(루프백은 무제한). SHIPCHECK_PREVIEW_LIMIT_PER_IP로 재정의 가능하며, 0이면 비활성화됩니다.

가격

의도만 있고 아직 청구되지는 않음: 실행당 $6 데스크톱 / $10 양쪽 뷰포트(또는 5~8개 스토리). 추후 Polar 선불 크레딧. 훅: shipcheck/billing.py.

다음 단계

  1. Polar 크레딧 팩 + 라이선스 키를 Authorization: Bearer로 사용, 성공 시에만 차감.

  2. 상태가 needs_review일 때 Slack/Telegram 알림, 사람이 human_note 작성(REST POST /qa_note/{job_id}와 MCP qa_note는 이미 메모를 수용).

  3. PulseMCP / Glama / 공식 MCP 레지스트리에 등록(마켓플레이스가 아닌 디스커버리).

  4. 공개 샘플 보고서 + 30줄짜리 llms.txt.

대시보드, GitHub App, 암호화폐 레일은 추가하지 마세요.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Point 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.
    44
    20 PyPI
    2
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.
    4
    59 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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 npm
    4
    MIT