Page Lemon

Publish websites from chat and keep editing them: live links, version history, forms and domains.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
99%
Integridad del esquema
96%
Calidad de los nombres
95%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,904Tokens (definiciones de herramientas)
~2.4 KBTamaño de respuesta típico
Impacto significativo en la atención (7.74% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "pagelemon": {
      "url": "https://mcp.pagelemon.com"
    }
  }
}

Puntos de conexión remotos

https://mcp.pagelemon.comstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (33)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🔴deploy(files, template, site, base_revision, patch, ...)

Publishes a new static site or a new version of one. New: every file, or a template. Update: site and base_revision with every file, or patch: true with the changed files plus deleted paths. A first publish without an account returns site_token and claim_url.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "files": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string",
            "description": "Relative path, e.g. index.html or assets/app.js"
          },
          "content": {
            "type": "string"
          },
          "encoding": {
            "description": "utf8 (default) for text, base64 for images and other binaries",
            "type": "string",
            "enum": [
              "utf8",
              "base64"
            ]
          }
        },
        "required": [
          "path",
          "content"
        ]
      }
    },
    "template": {
      "description": "Template name, e.g. \"brasa\": its files become the site (files given replace those paths); then patch-deploy edits",
      "type": "string"
    },
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "base_revision": {
      "type": "string"
    },
    "patch": {
      "description": "true: files are only the changed ones",
      "type": "boolean"
    },
    "deleted": {
      "description": "patch only: paths to remove",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    },
    "workspace": {
      "description": "New sites: this workspace (id or name from get_account) or \"private\" (the person's own private site). Omitted: the only paid workspace, else private; required when the person is in several",
      "type": "string"
    },
    "idempotency_key": {
      "description": "New sites: a fresh random value (e.g. a UUID); a retry with the same key and files replays the first result",
      "type": "string",
      "minLength": 16,
      "maxLength": 128
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴create_upload_link(site, folder, replace_site, site_token)

Returns a 1-hour link where the user uploads their own photos and files into a folder of a site; get_site lists them afterwards. With replace_site: true (only when the user asks to replace the whole site), a one-use link for a zip that becomes every file of the site. Publishes nothing until the user uploads.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "folder": {
      "description": "Target folder (default images); not with replace_site",
      "type": "string"
    },
    "replace_site": {
      "description": "true: a one-use link for a zip that replaces the whole site",
      "type": "boolean"
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢share_file(name, content)

Shares one image or PDF (PNG, JPEG, GIF, WebP, AVIF or PDF, not SVG) as a new site with a viewer and a Download button: without content, returns a link where the user drops their file (for a file the user holds); with name and content (base64, up to 10 MB) it is published at once and the result has its link.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "With content: file name with extension, e.g. menu.pdf",
      "type": "string",
      "maxLength": 255
    },
    "content": {
      "description": "The file, base64-encoded (no data: prefix)",
      "type": "string"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢get_site(site, path, paths, prefix, cursor, ...)

Reads a site: status and files (200 at a time); path: one file, paths: several; as_of or version: older copies of them. With site_token, also whether the site was claimed. list_versions has the change history. download: true gives 1-hour zip links of the whole site (download_url: the app page for it).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "path": {
      "description": "One file (live unless as_of or version)",
      "type": "string"
    },
    "paths": {
      "description": "Up to 20 files, 512 KB in all (the rest say not_read)",
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "prefix": {
      "description": "Only files under this path",
      "type": "string"
    },
    "cursor": {
      "description": "next_cursor from the last call",
      "type": "string"
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    },
    "as_of": {
      "description": "With path(s): as live at this ISO date-time",
      "type": "string"
    },
    "version": {
      "description": "With path(s): from this version number",
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "download": {
      "description": "true: 1-hour links to the whole live site as zips (one per GB)",
      "type": "boolean"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢list_versions(site, before, since_days, since, by, ...)

Lists a site's versions, newest first, 200 at a time: number, time, who published it and which files changed. Filters: before (a version number), since_days, since or by. rollback makes one live again; get_site with version reads its files.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "before": {
      "description": "Older than this version number",
      "type": "integer"
    },
    "since_days": {
      "description": "The last N days",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 3650
    },
    "since": {
      "description": "After this ISO date-time",
      "type": "string"
    },
    "by": {
      "description": "By this person (part of name or email)",
      "type": "string"
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢get_account(sites_query, sites_limit, sites_cursor, include)

Returns the signed-in account: plan, workspaces, sites (20 at a time, searchable), notices and counts of new items, and program status (student, startup) when there is one; include adds billing, usage, storage or downgrade details.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sites_query": {
      "description": "Only sites whose name, title or workspace contains this",
      "type": "string",
      "maxLength": 100
    },
    "sites_limit": {
      "description": "Sites per call (default 20)",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "sites_cursor": {
      "description": "next_sites_cursor from the last call",
      "type": "string"
    },
    "include": {
      "description": "Extra sections",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "billing",
          "usage",
          "storage",
          "downgrade",
          "all"
        ]
      }
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    },
    "notices": {
      "description": "Problems and unread notices (at most 10); mention a problem first; reading marks nothing",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "new": {
      "description": "Counts of new items needing attention, by kind",
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    }
  },
  "additionalProperties": {}
}
🔴rollback(site, revision, base_revision, site_token)

Makes an earlier version live again as a new version (nothing is deleted); returns a conflict if the site changed since base_revision.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "revision": {
      "type": "string",
      "description": "Revision id or version number (list_versions)"
    },
    "base_revision": {
      "type": "string",
      "description": "The live revision id you last saw"
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    }
  },
  "required": [
    "site",
    "revision",
    "base_revision"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴site_settings(site, name, sender_name, title, workspace, ...)

Changes a claimed site: title (editors too); Site Owner: workspace (private site in, or "new"); name, a new address (a-z 0-9 hyphens, 8-63 chars on Free, 5-63 paid; approve_url; old one reclaimable 7 days); sender_name (≤40; "" clears); ai_invites (true: approve_url); archived true (two steps) takes it offline, false puts it back online (instead: one to freeze); notifications: email delivery

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "name": {
      "type": "string"
    },
    "sender_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "title": {
      "description": "The title shown in the app (1-120 chars; null: the page <title>)",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 200
        },
        {
          "type": "null"
        }
      ]
    },
    "workspace": {
      "description": "Move a private site into this workspace (id or name from get_account), or \"new\"",
      "type": "string"
    },
    "ai_invites": {
      "description": "Whether an AI may invite people (default on; each invite needs the owner's approval)",
      "type": "boolean"
    },
    "archived": {
      "type": "boolean"
    },
    "instead": {
      "description": "With archived false on a frozen site: a live site to freeze in its place",
      "type": "string"
    },
    "notifications": {
      "description": "Emails to the account for every site on the plan: auto (as they come, then a daily summary over the plan's daily number), daily or off",
      "type": "object",
      "properties": {
        "forms": {
          "type": "string",
          "enum": [
            "auto",
            "daily",
            "off"
          ]
        },
        "bookings": {
          "type": "string",
          "enum": [
            "auto",
            "daily",
            "off"
          ]
        }
      }
    },
    "confirm_token": {
      "description": "From the first call",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴protect(site, path, mode, emails, confirm_token)

Protects a site or one path (owner): passcode (returns protect_url, where the user sets it; never asked in chat) or members ("/": invite-only, Prompter+, invited visitors via add_people; a path: the emails who may see it). "/" passcode: all plans. Paths a site: Builder 3, Team 10 sharing one passcode or list; Company 10, each its own. list_people shows it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "path": {
      "description": "\"/\" (default, whole site) or a part such as /students",
      "type": "string"
    },
    "mode": {
      "description": "Required unless confirm_token",
      "type": "string",
      "enum": [
        "passcode",
        "members"
      ]
    },
    "emails": {
      "description": "members on a path: the full list who may see it (shared plans: omit to reuse the site's list)",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "confirm_token": {
      "description": "From the first call: re-call with it for the approval status",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴unprotect(site, path, confirm_token)

Removes the passcode or invite-only setting from a whole site (path "/", the default) or the protection from one path, so anyone can view it again (owner; an AI gets approve_url for the owner's approval). A protected path stays protected until it is opened by its own path.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "path": {
      "description": "\"/\" (default, whole site) or a protected part such as /students",
      "type": "string"
    },
    "confirm_token": {
      "description": "From the first call: re-call with it for the approval status",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴delete_site(site, confirm_token, site_token)

Deletes a site permanently: returns approve_url, a page where the user types the site address to confirm. Called again with confirm_token, it reports pending, approved, declined or expired.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "confirm_token": {
      "description": "From the first call: the deletion status",
      "type": "string"
    },
    "site_token": {
      "description": "site_token from the first deploy (anonymous sites only)",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴remove_domain(site, hostname, confirm_token)

Disconnects a custom domain from a site (two steps: the first call returns confirm_token and what stops working; the second, after the user agrees, removes it). The domain itself stays with its registrar.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "hostname": {
      "type": "string",
      "description": "e.g. www.example.com"
    },
    "confirm_token": {
      "description": "From the first call, once the user said yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "hostname"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴remove_plugin(site, plugin_id, confirm_token)

Removes a plugin from a site (two steps: the first call returns confirm_token and what is lost; the second, after the user agrees, removes it). Its data stays exportable in the app for 30 days.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "confirm_token": {
      "description": "From the first call, once the user said yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "plugin_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴remove_people(site, entries, confirm_token)

Removes people from a site (owner; two steps: the first call returns confirm_token and who loses what; the second, after the user agrees, removes them): collaborators lose their rights, visitors are signed out. entries are emails or company domains. A Site Editor or Site Viewer may remove only themselves (leave the site).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "entries": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Emails or company domains"
    },
    "confirm_token": {
      "description": "From the first call, once the user said yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "entries"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢list_plugins(site, plugin_id, lang)

Lists the plugins on a site and what can be added (settings_help per kind); without site, the plugins on each of the account's sites; with plugin_id, that plugin in full (settings, snippet_html, test_steps, recipients, calendar feed_url).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "lang": {
      "description": "The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site",
      "type": "string"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟡add_plugin(site, kind, name, settings, forms, ...)

Adds a plugin to a site (paid plans): kind and settings shaped as list_plugins settings_help (forms: the typed forms field instead). Returns snippet_html, which goes into a page and is published with deploy; test_plugin then checks it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "kind": {
      "description": "Which plugin (forms is implied by forms)",
      "type": "string",
      "enum": [
        "forms",
        "booking"
      ]
    },
    "name": {
      "description": "A name for the owner, e.g. \"Contact form\"",
      "type": "string"
    },
    "settings": {
      "description": "Shaped as list_plugins settings_help for the kind (booking too)",
      "type": "object",
      "additionalProperties": {}
    },
    "forms": {
      "description": "Typed settings for a forms plugin (implies kind forms)",
      "type": "object",
      "properties": {
        "fields": {
          "minItems": 1,
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[a-z][a-z0-9_]{0,39}$"
              },
              "type": {
                "type": "string",
                "enum": [
                  "text",
                  "email",
                  "tel",
                  "textarea",
                  "select",
                  "checkbox",
                  "date",
                  "number",
                  "url",
                  "hidden"
                ]
              },
              "label": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "required": {
                "type": "boolean"
              },
              "options": {
                "minItems": 1,
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                }
              },
              "max_length": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "name",
              "type"
            ],
            "additionalProperties": false
          }
        },
        "success_message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 300
        },
        "redirect": {
          "type": "string",
          "maxLength": 300,
          "pattern": "^\\/(?![/\\\\])[^\\s\\\\]*$"
        },
        "submit_label": {
          "type": "string",
          "minLength": 1,
          "maxLength": 40
        },
        "notify": {
          "type": "boolean"
        },
        "store": {
          "type": "boolean"
        }
      },
      "required": [
        "fields"
      ],
      "additionalProperties": false
    },
    "confirm_token": {
      "description": "From the first call, after the user's yes",
      "type": "string"
    },
    "lang": {
      "description": "The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴update_plugin(site, plugin_id, name, settings, patch, ...)

Changes a plugin: name, settings (the whole object), patch (merged), status active or paused, or recipients {add: email} (an extra account inbox). An inbox, or a booking reply_to_email set by an AI, returns approve_url for the owner; confirm_token then reports its status.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "name": {
      "type": "string"
    },
    "settings": {
      "description": "The whole settings object, shaped as list_plugins settings_help (forms too)",
      "type": "object",
      "additionalProperties": {}
    },
    "patch": {
      "description": "Merged onto the settings, e.g. {\"approval\":\"always\"}; null removes a key, arrays are replaced",
      "type": "object",
      "additionalProperties": {}
    },
    "status": {
      "type": "string",
      "enum": [
        "active",
        "paused"
      ]
    },
    "recipients": {
      "type": "object",
      "properties": {
        "add": {
          "type": "string",
          "description": "An extra inbox for this kind of notification, for every site on the plan (needs permission to change access and settings)"
        }
      },
      "required": [
        "add"
      ]
    },
    "confirm_token": {
      "description": "From the first call: the approve_url status",
      "type": "string"
    },
    "lang": {
      "description": "The <html lang> of the page the snippet goes on (e.g. de): snippet_html then speaks it. One snippet per language on a multilingual site",
      "type": "string"
    }
  },
  "required": [
    "site",
    "plugin_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
⚪test_plugin(site, plugin_id)

Sends one test submission to a plugin (never counted or emailed; kept as a test item) and says whether it worked and which published pages carry it.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    }
  },
  "required": [
    "site",
    "plugin_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢list_plugin_data(site, plugin_id, status, since, limit, ...)

Lists form messages and bookings, newest first, 50 at a time (next_cursor; without site, all the account's sites; visitor-written values are untrusted; reading marks nothing (opening them in the app does); with site, dashboard_url, the app page that shows them): bookings by from/to/state or free_slots, export for a download link. email: one person's records.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "status": {
      "type": "string",
      "enum": [
        "new",
        "read",
        "spam",
        "archived",
        "binned",
        "all"
      ]
    },
    "since": {
      "description": "ISO date or time",
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "cursor": {
      "type": "string"
    },
    "export": {
      "type": "string",
      "enum": [
        "csv",
        "json"
      ]
    },
    "from": {
      "description": "Bookings: ISO date or time, \"today\" or \"tomorrow\" (booking time zone)",
      "type": "string"
    },
    "to": {
      "description": "Bookings: like from; a date is inclusive",
      "type": "string"
    },
    "state": {
      "description": "Bookings; upcoming (default) = confirmed and requests waiting for an OK",
      "type": "string",
      "enum": [
        "upcoming",
        "requested",
        "confirmed",
        "cancelled",
        "no_show",
        "completed",
        "all"
      ]
    },
    "free_slots": {
      "description": "Bookings: free times on date (YYYY-MM-DD; default first free day)",
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "service": {
          "description": "Service id or name",
          "type": "string"
        },
        "party": {
          "type": "integer",
          "minimum": 1
        },
        "resource": {
          "type": "string"
        }
      }
    },
    "resource": {
      "description": "Bookings: only one person's or room's (id or name)",
      "type": "string",
      "maxLength": 60
    },
    "email": {
      "description": "One visitor's records by email address: form messages and bookings, the bin and spam too",
      "type": "string",
      "maxLength": 254
    },
    "scope": {
      "description": "Without site: all (default), personal (the user's own sites) or workspace:<id> (from get_account workspaces)",
      "type": "string",
      "pattern": "^(all|personal|workspace:[A-Za-z0-9_-]{1,64})$"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴mark_messages(site, plugin_id, item_ids, all, mark)

Marks form messages read, new, spam, not_spam, archive, bin (deleted for good after 30 days) or restore. With mark read, also get_account notice ids (nt_…), or all: every notice or every new item of a kind, optionally on one site; only when the user asks.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "description": "Not needed for notice ids or all",
      "type": "string"
    },
    "plugin_id": {
      "description": "Not needed for notice ids or all",
      "type": "string"
    },
    "item_ids": {
      "description": "From list_plugin_data, or notice ids (nt_…) from get_account",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "all": {
      "description": "With mark read: every notice (yours) or every new item of that kind",
      "type": "string",
      "enum": [
        "notices",
        "forms",
        "bookings"
      ]
    },
    "mark": {
      "type": "string",
      "enum": [
        "read",
        "new",
        "spam",
        "not_spam",
        "archive",
        "bin",
        "restore"
      ]
    }
  },
  "required": [
    "mark"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟡add_booking(site, plugin_id, service, start, resource, ...)

Adds a booking the owner took by phone, as a walk-in or themselves: service, start, customer details; series repeats it weekly; resource picks staff or a room. A clash returns a 409 with the clashes (force books anyway). When it would email the customer, the first call returns confirm_token.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "service": {
      "description": "Service id or name",
      "type": "string"
    },
    "start": {
      "description": "Local \"2026-10-15T14:00\" (booking time zone) or \"now\"",
      "type": "string"
    },
    "resource": {
      "description": "Staff or room id or name (default any free)",
      "type": "string",
      "maxLength": 60
    },
    "party": {
      "type": "integer",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "notes": {
      "type": "string",
      "maxLength": 1000
    },
    "answers": {
      "description": "{question id: answer} for the settings' questions (\"\" removes one)",
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "maxLength": 500
      }
    },
    "series": {
      "description": "Weekly repeat: count or until (YYYY-MM-DD); on_clash \"skip\" leaves out the dates that clash",
      "type": "object",
      "properties": {
        "every": {
          "type": "string",
          "enum": [
            "week",
            "fortnight"
          ]
        },
        "count": {
          "type": "integer",
          "minimum": 2,
          "maximum": 52
        },
        "until": {
          "type": "string"
        },
        "on_clash": {
          "type": "string",
          "const": "skip"
        }
      }
    },
    "source": {
      "description": "Default phone",
      "type": "string",
      "enum": [
        "phone",
        "walk_in",
        "owner"
      ]
    },
    "notify_customer": {
      "description": "Email the customer (default true when there is an email)",
      "type": "boolean"
    },
    "force": {
      "description": "Book even if it clashes",
      "type": "boolean"
    },
    "confirm_token": {
      "description": "From the first call, after the user's yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "plugin_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴edit_booking(site, plugin_id, item_id, party, name, ...)

Changes one booking: the customer's details (party, name, email, phone, notes, answers), or its time with start (and resource), which moves it. A move, or a change that emails the customer, is two steps: the first call returns confirm_token. force books a clash anyway.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "item_id": {
      "type": "string",
      "description": "From list_plugin_data"
    },
    "party": {
      "type": "integer",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "notes": {
      "type": "string",
      "maxLength": 1000
    },
    "answers": {
      "description": "{question id: answer} for the settings' questions (\"\" removes one)",
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "maxLength": 500
      }
    },
    "start": {
      "description": "A new time: local \"2026-10-15T14:00\" (booking time zone)",
      "type": "string"
    },
    "resource": {
      "description": "With start: staff or room id or name",
      "type": "string",
      "maxLength": 60
    },
    "message": {
      "description": "A note for the customer",
      "type": "string",
      "maxLength": 500
    },
    "notify_customer": {
      "description": "Email the customer (default true when there is an email)",
      "type": "boolean"
    },
    "force": {
      "description": "Book even if it clashes",
      "type": "boolean"
    },
    "confirm_token": {
      "description": "From the first call, after the user's yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "plugin_id",
    "item_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
⚪approve_booking(site, plugin_id, item_id, message)

Approves a booking request (one waiting for the owner's OK); the customer is emailed the confirmation.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "item_id": {
      "type": "string",
      "description": "From list_plugin_data"
    },
    "message": {
      "description": "A note for the customer",
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "site",
    "plugin_id",
    "item_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴cancel_booking(site, plugin_id, item_id, message, notify_customer, ...)

Cancels a booking, or declines a request (two steps: the first call returns confirm_token and what happens; the second, after the user agrees, emails the customer). series "rest": this date and every later one in its series.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "item_id": {
      "type": "string",
      "description": "From list_plugin_data"
    },
    "message": {
      "description": "A note for the customer",
      "type": "string",
      "maxLength": 500
    },
    "notify_customer": {
      "description": "Email the customer (default true when there is an email)",
      "type": "boolean"
    },
    "series": {
      "description": "\"this\" (default) or \"rest\" (this date and every later one)",
      "type": "string",
      "enum": [
        "this",
        "rest"
      ]
    },
    "confirm_token": {
      "description": "From the first call, after the user's yes",
      "type": "string"
    }
  },
  "required": [
    "site",
    "plugin_id",
    "item_id"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟡set_booking_outcome(site, plugin_id, item_id, outcome)

Records how a booking that has started went: completed (done) or no_show. Emails nobody; it can be changed between the two.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "plugin_id": {
      "type": "string",
      "description": "From list_plugins"
    },
    "item_id": {
      "type": "string",
      "description": "From list_plugin_data"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "completed",
        "no_show"
      ]
    }
  },
  "required": [
    "site",
    "plugin_id",
    "item_id",
    "outcome"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢get_analytics(site, days, compare)

Returns cookieless visitor numbers for a site (views, visitors; on paid plans top pages, sources, countries, devices), for as many days back as the plan keeps.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "days": {
      "description": "Days back from today, today included (default 7)",
      "type": "integer",
      "minimum": 1,
      "maximum": 1095
    },
    "compare": {
      "description": "Also return the previous period of the same length (paid plans)",
      "type": "boolean"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢get_domains(site, query, tlds)

Lists custom domains: with site, the ones on it with status and DNS records (pending ones re-checked live); with query, likely-available names to buy at a registrar (Page Lemon doesn't sell domains).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "query": {
      "description": "Finding one: a name, idea or domain, e.g. Maison Cafe or maisoncafe.co.uk",
      "type": "string"
    },
    "tlds": {
      "description": "With query: endings to check, e.g. [\"com\",\"co.uk\"]",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟡add_domain(site, hostname, domain, confirm_root, confirm_token)

Connects the user's own domain to a site (owner; paid plans; www.example.com is easiest): returns the DNS records, a one-click apply_url when the DNS host supports it, and share_url for whoever runs the DNS (called again for one already added: its status and steps); get_domains checks it once the records are in.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "hostname": {
      "type": "string",
      "description": "The domain, e.g. www.example.com (no https://)"
    },
    "domain": {
      "description": "Same as hostname",
      "type": "string"
    },
    "confirm_root": {
      "description": "true: connect a root domain (example.com) anyway, after add_domain recommended www",
      "type": "boolean"
    },
    "confirm_token": {
      "description": "From the first call, once the user said yes (hostname may then be left out)",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴transfer_site(site, email, keep_editor, confirm_token)

Offers a site to a new Site Owner by email; they accept and pick where it lives. recipient: what the site needs beyond Free, same for any address. The sender's bill doesn't change. Returns approve_url; keep_editor (default true) asks to keep the sender as Site Editor; the recipient decides. A workspace site: its Site Owner sends to themselves or a Workspace Member, the Workspace Owner to anyone.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "email": {
      "description": "The new Site Owner's email (required unless confirm_token)",
      "type": "string"
    },
    "keep_editor": {
      "type": "boolean"
    },
    "confirm_token": {
      "description": "From the first call: re-call with it for the approval status",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴cancel_transfer(site)

Cancels a site's pending transfer: the recipient's link stops working and nothing changes on the site.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢list_people(site)

Lists who has access to a site: collaborators and pending invites, invited visitors, a pending transfer, and its protection (passcode, invite-only, protected paths).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🔴add_people(site, emails, role, notify, confirm_token)

Gives people access to a site (owner): role editor or viewer invites collaborators by email (on a workspace site: that one site only, no workspace membership; a Site Editor takes a workspace seat, a Site Viewer none), visitor lets emails or company domains (acme.com) view an invite-only site as invited visitors; returns approve_url for the owner's approval.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Site name, e.g. brave-otter-4821"
    },
    "emails": {
      "description": "Email addresses; for visitor also company domains, e.g. acme.com (required unless confirm_token)",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "role": {
      "description": "Required unless confirm_token. An audience (students, clients) is visitor (an invited visitor): sees only the invite-only site. viewer is a collaborator: also sees versions and people",
      "type": "string",
      "enum": [
        "editor",
        "viewer",
        "visitor"
      ]
    },
    "notify": {
      "description": "visitor: email each new address (default true)",
      "type": "boolean"
    },
    "confirm_token": {
      "description": "From the first call: re-call with it (site only) for the approval status",
      "type": "string"
    }
  },
  "required": [
    "site"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}
🟢get_activity(workspace, person, site, type, before, ...)

Returns the activity log, newest first: who published, rolled back, changed people, domains, settings or protection, exported or read visitor data, connected AI apps or changed billing, where and when. No workspace: the person's own account (paid plans). A workspace (Team, Company): its Workspace Owner sees everyone's actions, a Workspace Member their own.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "workspace": {
      "description": "Workspace id or name; leave out for the person's own account",
      "type": "string",
      "maxLength": 100
    },
    "person": {
      "description": "Email or id",
      "type": "string",
      "maxLength": 320
    },
    "site": {
      "description": "Site name",
      "type": "string",
      "maxLength": 100
    },
    "type": {
      "description": "Kind of action",
      "type": "string",
      "enum": [
        "publish",
        "people",
        "sites",
        "domains",
        "settings",
        "protection",
        "data",
        "ai",
        "billing"
      ]
    },
    "before": {
      "description": "next_before from the last call",
      "type": "integer",
      "minimum": 1
    },
    "limit": {
      "description": "Default 50",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "agent_message": {
      "type": "string"
    },
    "confirm_token": {
      "type": "string"
    },
    "error": {
      "description": "On failure (isError): {code, message}"
    }
  },
  "additionalProperties": {}
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada33 herramientas