MCP 도구

엔드투엔드 흐름

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_siterollback_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"
    ]
  }
}

이것이 전체 루프입니다. 계획 → 패치 → 미리보기 → 확인 → 승인 → 출시 → 확인입니다.

다음은 무엇입니까?