{
  "serverInfo": {
    "name": "Revamp",
    "version": "1.0.0"
  },
  "authentication": {
    "required": true,
    "schemes": [
      "oauth2"
    ]
  },
  "tools": [
    {
      "name": "start_website_redesign",
      "title": "Redesign a website",
      "description": "Use when the user wants Revamp to redesign an existing public website from its URL. Creates a real project and starts generation without an open Studio tab. Then use check_project with the returned IDs until the turn finishes and a preview is available. Do not use for a new website without a source URL.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "A new UUID for this request; reuse it only to retry the same request."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Short name for the project."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Public URL of the existing website."
          },
          "brief": {
            "description": "Optional redesign direction or goals.",
            "type": "string",
            "maxLength": 2000
          },
          "clientId": {
            "description": "Optional ID of an existing client folder from list_clients.",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "name",
          "url"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Use this ID with check_project and refine_project."
          },
          "projectName": {
            "type": "string"
          },
          "submissionId": {
            "type": "string",
            "description": "Use with check_project to follow this specific generation request."
          },
          "status": {
            "type": "string",
            "description": "Submitted agent turn status. This does not mean a build or preview is ready; call check_project."
          },
          "studioUrl": {
            "type": "string",
            "format": "uri",
            "description": "Optional visual workspace; opening it is not required for generation."
          }
        },
        "required": [
          "projectId",
          "projectName",
          "submissionId",
          "status",
          "studioUrl"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "start_new_website",
      "title": "Create a website",
      "description": "Use when the user wants Revamp to create a new website from a brief. Creates a real project and starts generation without an open Studio tab. Then use check_project with the returned IDs until the turn finishes and a preview is available. For an existing site URL use start_website_redesign; for an interactive web app use start_web_app.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "A new UUID for this request; reuse it only to retry the same request."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Short name for the project."
          },
          "brief": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "The website’s purpose, audience, goals, and requested pages or features."
          },
          "clientId": {
            "description": "Optional ID of an existing client folder from list_clients.",
            "type": "string"
          },
          "designReferences": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "pngBase64": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1398104,
                  "description": "Base64 PNG pixels, without a data URL prefix. Under 1 MB and 4 million pixels per image. No external URLs."
                }
              },
              "required": [
                "name",
                "pngBase64"
              ]
            },
            "maxItems": 3,
            "description": "Optional visual design references. They guide an editable responsive website, not a flattened screenshot."
          }
        },
        "required": [
          "requestId",
          "name",
          "brief"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Use this ID with check_project and refine_project."
          },
          "projectName": {
            "type": "string"
          },
          "submissionId": {
            "type": "string",
            "description": "Use with check_project to follow this specific generation request."
          },
          "status": {
            "type": "string",
            "description": "Submitted agent turn status. This does not mean a build or preview is ready; call check_project."
          },
          "studioUrl": {
            "type": "string",
            "format": "uri",
            "description": "Optional visual workspace; opening it is not required for generation."
          }
        },
        "required": [
          "projectId",
          "projectName",
          "submissionId",
          "status",
          "studioUrl"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "start_web_app",
      "title": "Build a web app",
      "description": "Use when the user wants Revamp to create a web app with interactive behavior, such as booking, a customer portal, or a dashboard. Creates a real project and starts generation without an open Studio tab. Then use check_project with the returned IDs until the turn finishes and a preview is available. For a website without that interactive behavior use start_new_website.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "A new UUID for this request; reuse it only to retry the same request."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Short name for the project."
          },
          "brief": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "The intended users, goals, and requested web app behavior."
          },
          "clientId": {
            "description": "Optional ID of an existing client folder from list_clients.",
            "type": "string"
          }
        },
        "required": [
          "requestId",
          "name",
          "brief"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Use this ID with check_project and refine_project."
          },
          "projectName": {
            "type": "string"
          },
          "submissionId": {
            "type": "string",
            "description": "Use with check_project to follow this specific generation request."
          },
          "status": {
            "type": "string",
            "description": "Submitted agent turn status. This does not mean a build or preview is ready; call check_project."
          },
          "studioUrl": {
            "type": "string",
            "format": "uri",
            "description": "Optional visual workspace; opening it is not required for generation."
          }
        },
        "required": [
          "projectId",
          "projectName",
          "submissionId",
          "status",
          "studioUrl"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "check_project",
      "title": "Check project",
      "description": "Use after starting or refining a Revamp project to check the specific agent turn, its customer-facing reply, and the latest public preview. A completed turn is not proof that the requested build succeeded, and an existing preview may predate the request. No Studio tab needs to be open.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Project ID returned by a start tool or list_projects."
          },
          "submissionId": {
            "description": "Submission ID returned by a start or refinement tool, when checking that specific request.",
            "type": "string"
          }
        },
        "required": [
          "projectId"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "projectName": {
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Agent turn status, not build success; null means no matching submission was found."
          },
          "reply": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Customer-facing agent reply when available; null while no reply is available."
          },
          "previewUrl": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ],
            "description": "Latest available public preview. It may predate the requested edit; null means no URL was available at this check."
          },
          "studioUrl": {
            "type": "string",
            "format": "uri",
            "description": "Visual workspace for further editing; no open tab is needed to run the project."
          }
        },
        "required": [
          "projectId",
          "projectName",
          "status",
          "reply",
          "previewUrl",
          "studioUrl"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "refine_project",
      "title": "Improve a project",
      "description": "Use when the user asks Revamp to change an existing website or web app project. Edits that same project and can replace prior work; use check_project with the returned IDs for the result and preview. Do not use for a new project.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Existing Revamp project ID."
          },
          "requestId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "A new UUID for this request; reuse it only to retry the same request."
          },
          "instruction": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000,
            "description": "The specific change the user wants."
          }
        },
        "required": [
          "projectId",
          "requestId",
          "instruction"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "Use this ID with check_project and refine_project."
          },
          "submissionId": {
            "type": "string",
            "description": "Use with check_project to follow this specific generation request."
          },
          "status": {
            "type": "string",
            "description": "Submitted agent turn status. This does not mean a build or preview is ready; call check_project."
          },
          "studioUrl": {
            "type": "string",
            "format": "uri",
            "description": "Optional visual workspace; opening it is not required for generation."
          }
        },
        "required": [
          "projectId",
          "submissionId",
          "status",
          "studioUrl"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "list_projects",
      "title": "List projects",
      "description": "Use to find the signed-in customer’s recent Revamp projects and IDs, including projects started in Studio.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "redesign",
                    "new_project"
                  ],
                  "description": "new_project includes new websites and web apps; the catalog does not distinguish them."
                },
                "studioUrl": {
                  "type": "string",
                  "format": "uri"
                },
                "originalUrl": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ],
                  "description": "Original website for a redesign; null for a new project."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "Last catalog update as an ISO timestamp, not generation progress."
                }
              },
              "required": [
                "projectId",
                "name",
                "kind",
                "studioUrl"
              ],
              "additionalProperties": false
            },
            "description": "Up to 30 recent Studio V2 projects owned by the signed-in customer."
          }
        },
        "required": [
          "projects"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    },
    {
      "name": "list_clients",
      "title": "List clients",
      "description": "Use in an agency or freelancer workspace to find existing client folders before filing a new project for a client.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "$schema": "http://json-schema.org/draft-07/schema#"
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "clients": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "clientId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                  "description": "Pass as clientId when starting a project for this client."
                },
                "name": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pitching",
                    "won",
                    "live",
                    "maintained"
                  ]
                }
              },
              "required": [
                "clientId",
                "name",
                "status"
              ],
              "additionalProperties": false
            },
            "description": "Existing agency client folders; empty for a non-agency account."
          }
        },
        "required": [
          "clients"
        ],
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      },
      "execution": {
        "taskSupport": "forbidden"
      }
    }
  ],
  "resources": [],
  "prompts": []
}
