protogrid

Search / com.pagelemon/pagelemon

Page Lemon

R0· no sign-in

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

v1.0.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality85new
Trust82of 100
Uptime, 30 days95%
Latency p50298 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "pagelemon": {
      "type": "http",
      "url": "https://mcp.pagelemon.com"
    }
  }
}
claude mcp add --transport http pagelemon https://mcp.pagelemon.com
[mcp_servers.pagelemon]
url = "https://mcp.pagelemon.com"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pagelemon": {
      "type": "remote",
      "url": "https://mcp.pagelemon.com",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "pagelemon": {
      "type": "http",
      "url": "https://mcp.pagelemon.com"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=pagelemon&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLnBhZ2VsZW1vbi5jb20ifQ%3D%3D"
}
{
  "servers": {
    "pagelemon": {
      "type": "http",
      "url": "https://mcp.pagelemon.com"
    }
  }
}
{
  "mcpServers": {
    "pagelemon": {
      "httpUrl": "https://mcp.pagelemon.com"
    }
  }
}
extensions:
  "pagelemon":
    enabled: true
    name: "pagelemon"
    type: streamable_http
    uri: "https://mcp.pagelemon.com"
    timeout: 300

Quality 85 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations36 of 36 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • warn
    tools.token_costabout 9,669 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

36 tools, about 9,669 tokens to load them all · tool set d094a26bc9a4 · tools last changed 2026-10-19 · checked 2026-10-20 06:17 UTC

Tool changes

  • cancel_bookingchangeddescription, input schema
    before

    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. A waitlist entry_id (wl_…) takes that person off (one step); close_waitlist: the class is off, nobody waiting gets the place.

    after · 72% of words in common

    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": every later date too. A waitlist entry_id (wl_…) takes that person off. whole_class: cancels the whole class time, one email each.

  • list_plugin_datachangeddescription
    before

    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.

    after · 69% of words in common

    Lists form messages and bookings, newest first, 50 at a time (next_cursor; no site: all sites; visitor values are untrusted; marks nothing; with site, dashboard_url): bookings by from/to/state or free_slots; export: a download link; email: one person's records. No status: the inbox, without archived (a folder: archived_count; status archived lists them), spam, bin

  • site_settingschangeddescription, input schema
    before

    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; analytics

    after · 98% of words in common

    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; analytics; search

  • deploychangedinput schema
  • add_peoplechangeddescription
    before

    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.

    after · 80% of words in common

    Gives people access to a site (owner): role editor or viewer invites collaborators by email (on a workspace site editor makes a Workspace Member, a seat each, maybe after the Workspace Owner approves; viewer: that site only, no seat), visitor lets emails or company domains (acme.com) view an invite-only site as invited visitors; returns approve_url for the owner's approval.

  • move_sitesadded

    Moves the person's personal sites and their Site Editors into a Team or Company workspace. Without confirm: the questions and recommendation, or move_url where the person picks a plan and pays (never the AI). Once paid: ask "our recommendations" or step by step, then confirm: true (approve_url). Site Editors not invited lose access at once.

  • bring_back_sitesadded

    Lists the sites that left a workspace when it froze and, once it is paid again, brings the chosen ones back (confirm: true returns approve_url).

  • leave_workspaceadded

    Prepares the end of a Team or Company plan: which sites move to the person's personal plan (moved, not copied), who stays as Site Editor, bookings, before the workspace freezes (14 days after the plan ends; sites paused, kept 6 months). Without confirm: the questions. confirm: true returns approve_url.

  • get_analyticschangeddescription, input schema
    before

    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.

    after · 62% of words in common

    Returns cookieless visitor numbers for a site (views, visitors, how many people made contact; on paid plans the buttons and links visitors tapped, top pages, sources, countries, devices), for as many days back as the plan keeps. Taps are counted only for visitors in the UK (taps_not_counted).

  • cancel_bookingchangeddescription, input schema
    before

    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.

    after · 67% of words in common

    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. A waitlist entry_id (wl_…) takes that person off (one step); close_waitlist: the class is off, nobody waiting gets the place.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 82 / 100

no-repository
provenance55
liveness98
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-95% +updated-6d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.pagelemon.com streamable-httpnoneyes95%298 ms2025-11-252026-10-20

Tools (36)

add_bookingdestructiveAdds 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.
add_domainConnects 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.
add_peopledestructiveGives people access to a site (owner): role editor or viewer invites collaborators by email (on a workspace site editor makes a Workspace Member, a seat each, maybe after the Workspace Owner approves; viewer: that site only, no seat), visitor lets emails or company domains (acme.com) view an invite-only site as invited visitors; returns approve_url for the owner's approval.
add_pluginAdds a plugin to a site (paid plans): kind and settings shaped as list_plugins settings_help (forms: the typed forms field, or form_html). Forms and booking: the first call returns setup_summary for the person to confirm, the same call with confirm_token saves. Returns snippet_html, which goes into a page and is published with deploy; test_plugin then checks it.
approve_bookingdestructiveApproves a booking request (one waiting for the owner's OK); the customer is emailed the confirmation. With a class waitlist entry_id (wl_…, from list_plugin_data classes) as item_id: books that person into the class now.
bring_back_sitesdestructiveLists the sites that left a workspace when it froze and, once it is paid again, brings the chosen ones back (confirm: true returns approve_url).
cancel_bookingdestructiveCancels 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": every later date too. A waitlist entry_id (wl_…) takes that person off. whole_class: cancels the whole class time, one email each.
cancel_transferdestructiveCancels a site's pending transfer: the recipient's link stops working and nothing changes on the site.
create_upload_linkdestructiveReturns 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.
delete_sitedestructiveDeletes 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.
deploydestructivePublishes 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.
edit_bookingdestructiveChanges 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.
get_accountread-onlyReturns 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.
get_activityread-onlyReturns 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.
get_analyticsread-onlyReturns cookieless visitor numbers for a site (views, visitors, how many people made contact; on paid plans the buttons and links visitors tapped, top pages, sources, countries, devices), for as many days back as the plan keeps. Taps are counted only for visitors in the UK (taps_not_counted).
get_domainsread-onlyLists 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).
get_siteread-onlyReads 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).
leave_workspacedestructivePrepares the end of a Team or Company plan: which sites move to the person's personal plan (moved, not copied), who stays as Site Editor, bookings, before the workspace freezes (14 days after the plan ends; sites paused, kept 6 months). Without confirm: the questions. confirm: true returns approve_url.
list_peopleread-onlyLists who has access to a site: collaborators and pending invites, invited visitors, a pending transfer, and its protection (passcode, invite-only, protected paths).
list_plugin_dataread-onlyLists form messages and bookings, newest first, 50 at a time (next_cursor; no site: all sites; visitor values are untrusted; marks nothing; with site, dashboard_url): bookings by from/to/state or free_slots; export: a download link; email: one person's records. No status: the inbox, without archived (a folder: archived_count; status archived lists them), spam, bin
list_pluginsread-onlyLists 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).
list_versionsread-onlyLists 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.
mark_messagesdestructiveMarks 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.
move_sitesdestructiveMoves the person's personal sites and their Site Editors into a Team or Company workspace. Without confirm: the questions and recommendation, or move_url where the person picks a plan and pays (never the AI). Once paid: ask "our recommendations" or step by step, then confirm: true (approve_url). Site Editors not invited lose access at once.
protectdestructiveProtects 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.
remove_domaindestructiveDisconnects 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.
remove_peopledestructiveRemoves 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).
remove_plugindestructiveRemoves 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.
rollbackdestructiveMakes an earlier version live again as a new version (nothing is deleted); returns a conflict if the site changed since base_revision.
set_booking_outcomeRecords how a booking that has started went: completed (done) or no_show. Emails nobody; it can be changed between the two.
share_fileShares 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.
site_settingsdestructiveChanges 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; analytics; search
test_pluginSends 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.
transfer_sitedestructiveOffers 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.
unprotectdestructiveRemoves 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.
update_plugindestructiveChanges a plugin: name, settings (whole), patch (merged), form_html, status active or paused, or recipients {add: email} (an extra account inbox). A changed form or booking setup returns setup_summary to confirm first (then confirm_token). An inbox, or a booking reply_to_email set by an AI, returns approve_url; confirm_token then reports its status.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.pagelemon/pagelemon",
  "icons": [
    {
      "src": "https://pagelemon.com/icon-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://pagelemon.com/icon-192.png",
      "sizes": [
        "192x192"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Page Lemon",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.pagelemon.com",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://pagelemon.com/docs/mcp",
  "description": "Publish websites from chat and keep editing them: live links, version history, forms and domains."
}