Contents

Developer docs

Change log

Last updated on

Changes a developer would notice in the AI connector, OAuth, webhooks, the add-website link and reply by email, newest first. Each date is the day the change was made ready for release.

7 November 2026

  • get_upload_link with a title (uploads, available on request) now makes the preview at once, for an assistant that cannot send the files itself. The preview is password-protected (SiteViewer makes the password; it is never in the reply) and has no version yet: it is on the person's dashboard straight away, marked as waiting for its files, and the reply's url is its address, so you can tell the person where it will be. The reply also carries madeNow: true, waiting: true and the preview's id and slug in for. The link now lands on that preview's own upload. Until the files arrive, the address asks for the password and then says the preview isn't ready yet. After the link's 24 hours the preview stays as a draft; nothing removes it. Asked again with the same title while that preview is still waiting, you get the same preview with a fresh link (reused: true), not a second one; for a new link later, pass preview with its id. It counts toward the plan's preview limit (only Free has one). With preview, nothing changes.
  • list_previews and get_preview add waiting: true and a waiting_note for a preview still waiting for its files. The fields are absent for every other preview.

5 November 2026

  • get_upload_link (uploads, available on request) now gives a short link, https://siteviewer.app/u/ and an 11-character code, instead of a link of about 300 characters. It opens the same upload, for the same 24 hours, and is checked the same way. A link given out before this keeps working. Show the person the link as it comes back.

2 November 2026

  • The next version of the connector (Labs): every comment it returns now carries pinUrl, a link that opens the review room on that comment's version with its pin open (the link the dashboard's Inbox copies; no password or pass in it). A comment whose room can't open has none. A new read tool, get_pin_map (on request), returns one picture of a page with each open comment's pin drawn as its number where the client placed it, and each pin's number, status and link. On the page as it is now, a pin is found by its element first, as in the review room; each pin's by says whether it was placed by its element or by where it was made. A picture counts toward the 60 pages an hour only when it is drawn.
  • get_page, check_thread, review_feedback and get_preview_screenshot (with a page) in the next version open a password-protected page as its owner again. Since 28 October they could be shown the password page instead.
  • The next version of the connector (Labs) gains four writes only the team sees: create_task (a task as you, for you or a teammate by email; it also goes on the assignee's Google Calendar where they have connected it), complete_task, add_project_note (adds to the end of a preview's Notes, signed with your name and "(via AI)", never changing what is there) and run_health_checks (the quick checks unless you name others; page-load and AI checks only when named and switched on). Each needs write access, is listed only where its feature is on, and counts toward the 60 writes an hour. A teammate's private task is answered as not found.
  • A note from add_project_note is no longer lost when a teammate who had the preview's Notes tab open before it arrived saves their notes: their save now keeps the note (it is added to the end of what they wrote), and if they changed the notes in a way that cannot be combined, they choose what to keep. A dashboard page opened before this release saves as before until it is reloaded. Nothing changes in the tool or its reply.
  • Also in the next version: client comments straight into the chat. A new prompt, new_feedback, brings a preview's new client comments (open, waiting on the team) into the conversation with their pages and snapshots, and initialize now advertises resources: each preview's open comments are feedback://<slug>, listed by resources/list and read by resources/read. Both need read access and count toward the tool-call limit.
  • Smaller replies and tool list, for every connector. The JSON in a reply is now compact (one line), and a field with no value is left out instead of being sent as null, so read a missing field as empty (except next, which is still null on the last page); no field was renamed. previewTitle is left out when it is the same as preview, and firstAt when it is the same as at. Tool descriptions are shorter (the tool list with every tool on is about 37% smaller); the how-to they carried, such as what start_upload's commands do on a second run, is now in the reply. The get_change_brief JSON brief comes back compact too.
  • get_project_notes (Labs) returns 20,000 characters a call. When there is more, the reply's next is the offset to pass for the rest. maxChars asks for more in one call, up to 100,000 (the most one call ever returned).
  • More is left out of a push or an upload: credential and key files by name whatever their type (such as serviceAccountKey.json, token.json, env.json, Terraform state), a type hidden inside a name (such as wp-config.php.txt), and a small .json or .txt that holds a private key or a service account's credentials. A folder with package.json, a lock file or a build tool's settings at its top is refused whole, even with a page beside it.
  • Now published: .wasm (served as application/wasm), .glb and .gltf models, a .bin that a .gltf in the same build names, and _redirects and _headers at the top of the site.
  • Styles and scripts named for tokens, keys or env (such as a design system's tokens.css, or an app's runtime env script) are published again: names about tokens, keys or env are left out only as a .json or .txt. A package.json or a build tool's settings at the top of a site is now left out on its own and the rest of the site published; the whole push or upload is refused only for a project's source (a lock file, node_modules or .env at its top, a src folder beside its project files, a build tool's settings beside its output folder, or a server's root: a package.json that runs or depends on a server or database, or server scripts beside it).
  • A push or upload with a server's shape is refused whole even without a package.json: a server or database script at the top of the site, or a routes, models, controllers, middleware or handlers folder of scripts, at the top or in a workspace folder (apps, packages, services). A package.json whose dev script runs a server, or that depends on a server framework such as Hono or Elysia, counts too.
  • Uploads, available on request: an upload belongs to the connection that started it (signing in to the same app again keeps it), and stops when that access token is revoked or that app is disconnected. upload_status with no uploadId lists open uploads (an owner or admin sees all of them, and can cancel any). The upload's own address has a request limit.
  • When a workspace's paid plan ends (not when it is cancelled for the period end), every preview link in it answers 404 page not found, its short and tracked links included, and no client emails are sent, until a plan is chosen again. A comment's screenshot and attachment addresses follow their preview's link: they answer 404 while it is archived, deleted or its workspace's plan has ended.
  • An archived preview's link is off: every address it has, its short and tracked links included, answers 404 page not found until it is unarchived. A link the connector hands back for an archived preview, or a reply by email to one of its threads, behaves the same way. Unarchiving brings the same link back.

1 November 2026

  • The next version of the connector (Labs) gains six read tools: get_inbox, get_link_activity, get_project_notes, list_tasks, get_health and compare_versions. The last four are listed only where their feature is switched on for the workspace; get_inbox and get_link_activity are always there. Anything a client or a page wrote comes back fenced, and the email addresses of the people who open a link or write a comment are shortened.
  • list_versions there covers live-website previews; an uploaded site's answer is unchanged. get_feedback and review_feedback take an author filter.
  • get_page answers again from a page it read in the last 10 minutes (2 minutes for a live website), without opening a browser or counting toward the hourly page limit. Pass fresh: true to read the page now.
  • There, initialize now advertises prompts, and prompts/list and prompts/get offer one prompt, check_feedback_addressed. Without the next version, nothing changes.
  • publish_preview always creates the new preview password-protected. Leave password out and SiteViewer makes one; it is never in the reply, which says where the person finds it, changes it or makes the preview public (the preview's Settings tab in the dashboard). Before, a preview with no password was public.
  • push_files publishes only web file types (the list is under How the tools behave). Any other file is left out of the version and listed in a new skipped field and in the reply, with the reason. Before, every file was published.
  • Five tools for sending a whole site straight to storage, available on request: start_upload, upload_status, finish_upload, cancel_upload and get_upload_link. They follow the same two rules, and need write access.

31 October 2026

  • Scopes are enforced. A connection approved with mcp:read only sees and can only call the read tools, and tools/list lists only what a connection may call. Access tokens keep full access.
  • New overall limits in each clock hour: 600 tool calls per workspace, and 400 for each person connected by OAuth or each access token.
  • The limit of 60 publishing and transfer writes per workspace now counts in a fixed clock hour. Before, the hour started again with every write.
  • A refusal that is not about the token (a closed or held workspace, AI tools switched off, the Free plan) now returns HTTP 403 with code -32003 and a sentence saying why, instead of a 401 that sent clients back to sign in.
  • resolve_feedback leaves a comment on a custom status alone unless you pass replaceStatus: true.
  • reply_to_feedback no longer takes a thread away from the teammate it is assigned to.
  • Webhook retries not yet sent are cancelled when the workspace's AI tools or the webhooks feature are switched off.
  • Anything a client wrote, and the names and addresses they gave, now comes back between fence lines in every tool. In get_feedback the client's words moved from the JSON into the fenced block; the field names are unchanged, so read the last JSON block.
  • push_version on a preview made of many files now keeps every other file and replaces only the entry page. It refuses image, PDF and live-website previews, and replies list any broken file or page links.
  • get_approval_status no longer says a version is cleared to deploy. It reports that the version is approved and the address the approval came with.
  • People can disconnect an app they connected by consent, on the Connectors page. The consent screen shows the app's name and the address it will send them back to.
  • Reply by email: a thread takes up to 20 replies in an hour that starts at the first reply. Before, every reply started the hour again. Emails about a note only the team can see no longer carry a reply address.
  • A next version of the connector is available on request (Labs): live-website previews, page reading, checking comments against the current page, batched decisions, and actions a client sees behind the workspace's permission and a confirm step.

27 October 2026

  • Each workspace has a switch for its AI tools. Off, every connection and access token is refused; on again, they all work as before. Nothing is deleted.

24 October 2026

  • The connector is served only at https://siteviewer.app/mcp. The old mcp.siteviewer.app address is retired, and tokens issued for it still work at the new one.

17 October 2026

  • People invited to individual projects only can no longer connect AI tools, by OAuth or by token.
  • An access token acts as the person who made it, and works only while they are on the team with an open account.
  • When an account is closed, its OAuth connections stop working and their refresh tokens are revoked.

13 October 2026

  • Four file transfer tools: list_transfers, request_files, send_files and get_received_file.
  • Text from a file a client sent comes back fenced as data, never as instructions. Markup and code files come back as a download link only.

5 October 2026

  • The add-website link: /app?add=website&url= opens the dashboard's New project box with the address filled in.

3 October 2026

  • get_preview_screenshot returns the rendered page as an image, in parts up to 2000 pixels tall, and waits for a render already in progress instead of starting another.

1 October 2026

  • A workspace in the trash is closed to the connector: its tokens are refused until it is restored.

28 September 2026

  • OAuth client registration is limited to 20 per IP address per hour (429 beyond that), and a registration that never completes a connection is removed after 30 days.

30 August 2026

  • The AI connector (on Pro and Studio) and reply by email are on for every workspace. Before, both were in Labs.

7 July 2026

  • Reply by email (Labs): replying to a comment's notification email posts the reply into the thread.

1 July 2026

  • Webhooks (Labs): deploy.approved and deploy.unapproved, signed with HMAC-SHA256 and retried when delivery fails.
  • New tools: list_open_feedback, get_preview_screenshot, get_approval_status, list_versions, activate_version, push_files and reply_to_feedback.
  • reply_to_feedback writes a private note that only the team sees.
  • Every tool that takes a preview accepts its id, which never changes, as well as its slug.

12 June 2026

  • Write tools: push_version and publish_preview, with a quality check on the HTML before it goes live.
  • get_version_html and get_preview. Every tool is annotated as read-only or as a write.
  • The connector is for Pro and Studio workspaces.

11 June 2026

  • First release of the AI connector (Labs) at /mcp, with access tokens and three tools: list_previews, get_feedback and resolve_feedback.
  • OAuth 2.1, so Claude can connect by consent: discovery, dynamic client registration and PKCE.
  • The connector works on previews hosted as files; live-website previews are left out.