엔드투엔드 흐름
MCP 도구 호출의 순서로 표현되는 실제 배포입니다.
MCP 도구 참조에는 모든 도구가 개별적으로 나열되어 있습니다. 이 페이지에서는 에이전트 세션이 실제로 어떤 모습인지 확인할 수 있도록 단일 실제 배포로 함께 연결합니다.
흐름은 다음을 가정합니다.
- 하나 이상의 사이트가 있는 Showly 작업 공간
- 범위가
project:read,site:read,site:write,preview:create,checks:run,publish:request,publish:confirm,logs:read인 MCP 토큰 https://mcp.showly.ai/mcp에 연결된 Claude Code 또는 Codex 클라이언트 — 예:
claude mcp add --scope user --transport http showly https://mcp.showly.ai/mcp, 그런 다음 첫 번째 도구 호출 시 브라우저에서 승인합니다. 참조 다른 모든 호스트에 대한 연결 가이드.
아래의 입력과 출력은 JSON로 단축됩니다. 전체 스키마는 도구 참조를 확인하세요.
1. list_projects — 프로젝트 선택
에이전트가 작업할 프로젝트를 찾으세요.
// Input
{}
// Output
{
"ok": true,
"data": [
{
"id": "22222222-2222-4222-8222-222222222222",
"name": "Acme",
"slug": "acme",
"createdAt": "2026-05-01T10:00:00.000Z"
}
]
}
상담원은 관련 projectId을 선택하고 나머지 세션 동안 이를 기억합니다.
2. list_sites — 사이트 찾기
프로젝트에는 여러 사이트가 포함될 수 있으므로 에이전트는 작업할 구체적인 siteId를 얻기 위해 선택한 projectId 아래에 사이트를 나열합니다.
// Input
{ "projectId": "22222222-2222-4222-8222-222222222222" }
// Output
{
"ok": true,
"data": [
{
"id": "33333333-3333-4333-8333-333333333301",
"name": "Marketing site",
"slug": "marketing-site",
"projectId": "22222222-2222-4222-8222-222222222222"
}
]
}
에이전트는 일치하는 siteId을 선택하여 나머지 세션 동안 이를 사용합니다.
3. get_site_context — 현재 상태 읽기
사용자가 변경하려는 사이트에 대한 매니페스트 + 최근 활동을 가져옵니다.
// Input
{ "siteId": "33333333-3333-4333-8333-333333333301" }
// Output
{
"ok": true,
"data": {
"site": {
"id": "33333333-3333-4333-8333-333333333301",
"name": "Marketing site"
},
"framework": "next",
"routes": ["/", "/pricing", "/about"],
"envReferences": ["NEXT_PUBLIC_ANALYTICS_ID"],
"latestPreviewUrl": "https://acme-pr-12.showly.site",
"lastProductionDeploymentId": "99999999-9999-4999-8999-999999999902"
}
}
4. create_change_plan — 의도 선언
무엇을 바꾸고 싶은지 설명하세요. 이 호출은 파일을 수정하지 않습니다.
// Input
{
"siteId": "33333333-3333-4333-8333-333333333301",
"request": "Change the hero headline to 'Ship without ceremony'"
}
// Output
{
"ok": true,
"data": {
"siteId": "33333333-3333-4333-8333-333333333301",
"request": "Change the hero headline to 'Ship without ceremony'",
"plan": [
{
"path": "app/page.tsx",
"action": "edit",
"summary": "Replace H1 text"
}
],
"nextStep": "apply_site_patch"
}
}
에이전트는 일반적으로 계속하기 전에 확인을 위해 사용자에게 계획을 보여줍니다.
5. apply_site_patch — 변경사항 작성
실제 파일 편집을 준비합니다.
// Input
{
"siteId": "33333333-3333-4333-8333-333333333301",
"files": [
{
"path": "app/page.tsx",
"content": "export default function Page() {\n return <h1>Ship without ceremony</h1>;\n}\n"
}
],
"message": "Update hero headline"
}
// Output
{
"ok": true,
"data": {
"changesetId": "cs_01HZ8K2QRR3KKTYR4MA8YPNZRC",
"siteId": "33333333-3333-4333-8333-333333333301",
"fileCount": 1,
"ttlSeconds": 3600,
"nextStep": "create_preview"
}
}
변경 세트는 일시적입니다. ttlSeconds 내에 구체화하지 않으면 만료됩니다.
6. create_preview — 미리보기 URL 구축
변경 세트를 미리보기 빌드로 구체화합니다.
// Input
{ "changesetId": "cs_01HZ8K2QRR3KKTYR4MA8YPNZRC" }
// Output
{
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"previewUrl": "https://acme-pr-13.showly.site",
"framework": "next",
"fileCount": 1
}
빌드는 격리된 작업 공간에서 실행됩니다. 대부분의 마케팅 사이트는 90초 이내에 완료됩니다.
7. run_checks — 연기 + 보푸라기
미리보기에 대해 작업공간의 검사 매트릭스를 실행합니다.
// Input
{ "deploymentId": "99999999-9999-4999-8999-99999999990a" }
// Output
{
"ok": true,
"data": {
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"checks": [
{ "id": "lint", "status": "passed" },
{ "id": "typecheck", "status": "passed" },
{ "id": "build", "status": "passed" },
{ "id": "audit-gate", "status": "pending" }
],
"summary": "3 passed / 1 pending"
}
}
검사에 실패하면 에이전트는 사용자에게 실패 사실을 알리고 수정된 계획을 사용하여 4단계로 되돌아갑니다.
8. request_publish — 승인 열기
작업 영역에 승인 워크플로가 활성화되어 있으면 게시는 다음을 통해 라우팅됩니다. 인간 승인자. 이 호출은 요청을 열고 검토자에게 딥 링크를 반환합니다. 승인 또는 거부를 위한 방문. 그렇지 않으면 에이전트는 2단계를 사용합니다. publish_site 확인. 두 흐름 모두 OTP/MFA 등록이 필요하지 않습니다.
// Input
{
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"message": "Hero headline update — agent-proposed"
}
// Output
{
"approvalId": "ap_01HZ8K2QRRA0V01Q3Q7H7R7K2P",
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"state": "pending",
"expiresAt": "2026-05-26T11:00:00.000Z",
"reused": false,
"webApprovalUrl": "https://showly.ai/app/deployments/99999999-9999-4999-8999-99999999990a/publish",
"actionUrl": "https://showly.ai/app/deployments/99999999-9999-4999-8999-99999999990a/publish"
}
에이전트는 사용자에게 webApprovalUrl를 표시합니다. 검토자는 이를 클릭하고 차이점을 검토한 후 승인합니다. Showly 그런 다음 미리보기 아티팩트를 프로덕션으로 승격합니다.
레거시rollback_deployment동사는 MCP 도구가 아닙니다. 이는 스텝업 MFA 뒤의 웹 UI에 있습니다.publish_site및rollback_to_version는 2단계 확인을 통해 MCP 호출 가능합니다. 자세한 내용은 도구 참조를 확인하세요.
9. get_deployment_logs — 확인
승인 후 프로덕션 배포에도 동일한 deploymentId이 적용됩니다. 로그를 가져와 빌드 아티팩트가 깔끔하게 승격되었는지 확인하세요.
// Input
{
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"lineCount": 50
}
// Output
{
"ok": true,
"data": {
"deploymentId": "99999999-9999-4999-8999-99999999990a",
"lineCount": 50,
"source": "db",
"lines": [
"[build] starting pnpm build",
"[build] generated 1 page in 14s",
"[deploy] promoted to production at 2026-05-26T10:05:21Z"
]
}
}
이것이 전체 루프입니다. 계획 → 패치 → 미리보기 → 확인 → 승인 → 출시 → 확인입니다.