Outils MCP

Flux de bout en bout

Un déploiement réel exprimé sous la forme d'une séquence d'appels d'outil MCP.

La MCP référence de l'outil répertorie chaque outil individuellement. Cette page les regroupe en un seul déploiement réel afin que vous puissiez voir à quoi ressemble réellement la session d'un agent.

Le flux suppose :

  • un espace de travail Showly avec au moins un site
  • un jeton MCP avec les scopes project:read, site:read, site:write, preview:create, checks:run, publish:request, publish:confirm, logs:read
  • un client Claude Code ou Codex connecté à https://mcp.showly.ai/mcp — par ex.

claude mcp add --scope user --transport http showly https://mcp.showly.ai/mcp, puis autorisez dans le navigateur au premier appel de l'outil. Voir le guide de connexion pour chaque autre hôte.

Les entrées et sorties ci-dessous sont raccourcies JSON. Voir la référence de l'outil pour les schémas complets.

1. list_projects — choisissez le projet

Recherchez le projet sur lequel l'agent interviendra.

// Input
{}
// Output
{
  "ok": true,
  "data": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "name": "Acme",
      "slug": "acme",
      "createdAt": "2026-05-01T10:00:00.000Z"
    }
  ]
}

L'agent sélectionne le projectId pertinent et s'en souvient pour le reste de la session.

2. list_sites — trouver le site

Un projet peut contenir plusieurs sites, l'agent répertorie donc les sites sous le projectId choisi pour obtenir un siteId concret sur lequel opérer.

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

L'agent sélectionne le siteId correspondant et l'utilise pour le reste de la session.

3. get_site_context — lire l'état actuel

Récupérez le manifeste + l'activité récente du site que l'utilisateur souhaite modifier.

// 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 — déclarer l'intention

Décrivez ce que vous souhaitez changer. Cet appel ne modifie pas les fichiers.

// 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"
  }
}

L'agent montre généralement le plan à l'utilisateur pour confirmation avant de continuer.

5. apply_site_patch — écrivez le changement

Organisez les modifications réelles du fichier.

// 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"
  }
}

L'ensemble de modifications est temporaire — si vous ne le matérialisez pas avant ttlSeconds, il expire.

6. create_preview — créer une URL d'aperçu

Matérialisez l’ensemble de modifications en tant que version d’aperçu.

// Input
{ "changesetId": "cs_01HZ8K2QRR3KKTYR4MA8YPNZRC" }
// Output
{
  "deploymentId": "99999999-9999-4999-8999-99999999990a",
  "previewUrl": "https://acme-pr-13.showly.site",
  "framework": "next",
  "fileCount": 1
}

La build s’exécute dans un espace de travail isolé. La plupart des sites marketing terminent en moins de 90 secondes.

7. run_checks — fumée + peluches

Exécutez la matrice de vérification de l'espace de travail par rapport à l'aperçu.

// 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"
  }
}

Si une vérification échoue, l'agent doit signaler l'échec à l'utilisateur et revenir à l'étape 4 avec un plan corrigé.

8. request_publish — ouvre l'approbation

Lorsque les workflows d'approbation sont activés dans l'espace de travail, les itinéraires de publication via un approbateur humain. Cet appel ouvre la demande et renvoie un lien profond au réviseur visites à approuver ou à refuser. Sinon, l'agent utilise la méthode en deux étapes publish_siteconfirmation. Aucun des deux flux ne nécessite une inscription 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"
}

L'agent fait apparaître webApprovalUrl à l'utilisateur. Un réviseur clique dessus, examine la différence et approuve ; Showly promeut ensuite l'artefact d'aperçu en production.

L'ancien verbe rollback_deployment n'est pas un outil MCP : il réside dans l'interface utilisateur Web derrière l'authentification multifacteur avancée. publish_site et rollback_to_version sont MCP appelables via une confirmation en deux étapes ; voir la référence de l'outil pour plus de détails.

9. get_deployment_logs — confirmer

Après approbation, le déploiement de production porte le même deploymentId. Extrayez les journaux pour confirmer que l'artefact de construction est promu proprement.

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

C'est la boucle complète : planifier → patch → prévisualiser → vérifier → approuver → expédier → confirmer.

Quelle est la prochaine étape

-Référence de l'outil — schémas, portées et champs d'audit exacts.