Skip to content
Shiply logo

Shiply MCP server

Which servers in the official MCP registry are Shiply's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-15

← Back to Shiply

Whose server it is
  • Registry namenow.shiply/shiplyverified in the MCP registry

The registry name sits under shiply.now. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-15
  • Stateanswerschecked 2026-10-15
  • Tools114
  • Server calls itselfmcp-typescript server on vercel
  • Server version0.1.0
  • Protocol version2025-06-18

On 2026-10-15 the server answered initialize and tools/list without a sign-in. First answer in 1000 ms.

Tools it offers114 tools · read 2026-10-15
  • publish_site

    Publish files to the web → live URL at <slug>.shiply.now. UPDATING: never create a new site for changes — re-call with claimToken (anonymous sites) or slug (sites you own with a Bearer key) and the SAME URL gets the new version. Unchanged…

  • site_status

    Check any shiply slug or custom hostname: TLS certificate (issuer, days left) + HTTPS probe. ready=true means live.

  • verify_site

    Edge-check a shiply slug or custom hostname and return a structured readiness report: status (LIVE/PENDING), SSL details (valid, issuer, daysLeft), HTTP probe, and a presigned thumbnail URL when available. Use this after publishing to…

  • list_sites

    List the sites owned by this API key. Optional clientId filters to one client.

  • get_site

    Site settings + version history for one of my sites.

  • delete_site

    PERMANENTLY delete a site and all stored files. Irreversible — confirm with the user first.

  • rollback_site

    Re-point a site to any finalized version (rollback or roll-forward). Get version ids from get_site. Serving updates immediately.

  • list_versions

    List a site's finalized deploys newest-first (id, createdAt, isLive, fileCount, bytes), capped at 20. Pair with rollback_site: pick a version id from here and re-point the site to it.

  • pull_site

    Download the current files of a site you own (or created via a platform connection) so you can edit and republish to the same slug with publish_site. Static sites return editable source; framework/SSR sites return the built bundle…

  • set_handle

    Give ONE site a vanity URL: rename it to <handle>.shiply.now (3-30 chars, a-z 0-9 -). The old address 301-redirects for 30 days. (For a portfolio page listing all your sites, use set_profile instead — that lives at shiply.now/@<handle>.)

  • duplicate_site

    Server-side copy of an owned site under a new slug — instantly live. Copies files + title; does NOT copy access settings, domains, or data. Great for iterating on variants.

  • promote_site

    Copy the EXACT live bytes of one owned site (srcSlug — your preview) into another owned site (destSlug — your production site / custom domain), no rebuild. Dest keeps its slug, domains, and access settings; only the served bytes change.

  • set_link

    Path-mounting: serve an owned target site at a path on an owned host site (host/docs -> target). location is a path like "docs", or "__root__" for the host root. Both sites must be owned by you. Pass remove=true to unmount.

  • set_site_access

    Protect an owned site (paid plans). mode 'public' (anyone), 'password' (supply password), or 'restricted' (supply allowedEmails and/or allowedDomains — only those can request a login code). Changing any setting signs out existing visitors.

  • get_site_access

    Read an owned site's current access policy (mode: public/password/restricted, allowedEmails, allowedDomains, hasPassword). Read-only counterpart to set_site_access — check before changing it.

  • export_account

    Return a JSON bundle of the user's profile, sites, Site Data, drives, and metadata (secrets excluded). Data portability.

  • whoami

    Who am I? Returns the signed-in account: email, @handle, plan + limits, counts of sites/domains/drives, and connected DNS providers. Call this first to orient before managing sites or domains.

  • get_account_status

    Get the signed-in account's plan, capabilities, and upgrade URL. Call this FIRST when figuring out what features you have access to — it tells you exactly what's available and what's blocked. The upgrade_url is human-clickable; show it in…

  • list_drives

    List the user's private cloud Drives (id, name). Optional clientId filters to one client.

  • create_drive

    Create a private cloud Drive (plan-limited). Pass client to file it under a client.

  • drive_list_files

    List files in a Drive (driveId = drv_…, or "default"). Optional prefix filter.

  • drive_put_file

    Write a file into a Drive (driveId = drv_… or "default"). content is utf8 or base64. Use for agent memory, notes, context, assets.

  • drive_delete_file

    Delete a file from a Drive.

  • publish_from_drive

    Snapshot a Drive (or a prefix of it) into a new live site at <slug>.shiply.now. Files copied server-side.

  • set_profile

    Create or update the user's public PORTFOLIO page at shiply.now/@<handle> (handle 3-30 chars a-z0-9-) — a landing page listing the user's sites. This is NOT a site's address: to give one site a vanity URL like <handle>.shiply.now, use…

  • feature_site

    Toggle whether an owned, public site appears in the public shiply Explore gallery (https://shiply.now/explore). Only public-access sites are eligible.

  • set_variable

    Upsert a key/value in the user's encrypted variable store (UPPER_SNAKE name, ≤8 KiB value). Use for API keys the user's sites/agents need, e.g. SUPABASE_URL. NOTE: saving alone does NOT expose it to any site Worker's env — attach it to a…

  • list_variables

    List the encrypted variables. Values are masked unless reveal=true.

  • delete_variable

    Remove one variable by name.

  • attach_variable

    Expose one saved variable to ONE owned site's Worker env (plain_text binding). Opt-in per site — unattached variables are never injected, because the Worker runs the site's own code. Takes effect on the site's next function deploy.

  • detach_variable

    Stop exposing a variable to a site's Worker env. Takes effect on the site's next function deploy.

  • list_site_variables

    Names of the variables attached to an owned site's Worker env (values never shown here).

  • list_databases

    List the SQL databases (D1 or Neon Postgres) on my account, including which owned site (if any) each is attached to. Call this BEFORE db_query/db_schema-style work to discover a databaseId — those live on a per-database MCP server reached…

  • create_database

    Provision a SQL database — D1 (default, free) or Neon Postgres (--postgres, developer plan). Optionally attach it to an owned site's Worker env in the same call (siteSlug); otherwise attach it later with attach_database.

  • delete_database

    PERMANENTLY delete a database and all its data. Irreversible — confirm with the user first.

  • attach_database

    Bind an existing database to one owned site's Worker env (the binding name chosen at create_database time). Takes effect on the site's next function/publish deploy.

  • data_list_collections

    List collections declared in an owned site's .shiply/data.json with current record counts. Empty list means the site has no manifest yet — scaffold one with `shiply data init`.

  • data_query

    Page records from an owned site's collection, newest-first. limit ≤ 200 (default 50). cursor from a previous response's nextCursor.

  • data_insert

    Insert one record into a collection. Goes through the same public visitor endpoint a browser would use — manifest access.insert decides whether it is allowed. Use to seed waitlist data, test forms end-to-end, etc.

  • data_export_collection

    Return up to `limit` records (default 1000, max 5000) from a collection — for snapshotting into agent context. For larger sets use the CLI: `shiply data export <slug> <collection>`.

  • add_domain

    Serve a site on a domain the user owns. Returns the CNAME to add (hostname → cname.shiply.now); the certificate issues automatically once DNS resolves. Poll with check_domain.

  • add_custom_domain

    Register a registrable domain (e.g. example.com) the user owns and detect its DNS provider. Returns the provider and whether one-click connect is available. Then attach sites with add_subdomain.

  • add_subdomain

    Serve an owned site at <subdomain>.<domain> (use subdomain "@" or "" for the apex — apex needs a provider with CNAME flattening/ALIAS, e.g. Cloudflare). Auto-registers the parent domain. Returns the CNAME record to add (host ->…

  • set_primary_subdomain

    Mark a hostname as the primary (canonical) URL for its site. Sibling hostnames (apex + www both pointed at the same site) start 301-redirecting to it, preserving path + query. The host-side fix for the duplicate-content SEO problem. The…

  • list_custom_domains

    List registered custom domains grouped with their subdomains, each subdomain's site and status, and the detected provider.

  • connect_provider

    Start one-click DNS connect for a registered custom domain. For Cloudflare-hosted domains this returns an authorize URL — SHOW THE USER the url as a clickable link; after they authorize, records are written automatically. For other…

  • sync_dns

    For a connected custom domain, (re)write the CNAME records for all its subdomains automatically and report what changed. For unconnected domains, returns the records to add manually.

  • check_custom_domain

    Check whether a custom domain's subdomains are live: re-polls Cloudflare cert status + probes DNS/TLS/HTTPS on each subdomain. Poll this after connect_provider / add_subdomain to confirm the domain is serving. Returns per-subdomain status…

  • remove_custom_domain

    Remove a registered custom domain and all its subdomains; they stop serving immediately.

  • list_domains

    List connected custom domains with status.

  • check_domain

    Refresh certificate status + live TLS/HTTPS probe for a connected domain (by id from list_domains).

  • remove_domain

    Remove a connected domain (by id). It stops serving immediately.

  • get_analytics

    Daily page views per site for the last 30 days.

  • create_test

    Provision a demand test in one call: deploys a landing page with a native email-capture form and creates a confirmed-subscriber segment. Returns testId + live siteUrl. Share the siteUrl to collect signups; each signup gets a double-opt-in…

  • list_tests

    List your demand tests with signups + confirmed counts.

  • get_test_status

    ONE consolidated object: page funnel (views, signups, confirmed, conversion) ⊕ email events (delivered/opened/clicked/bounced) ⊕ a computed verdict. The single place to check progress — never query email separately.

  • send_broadcast

    Send a campaign to this test's confirmed (double-opt-in) subscribers — the "we're live" email. An unsubscribe link is added automatically. Fails if there are no confirmed subscribers yet.

  • resend_confirmation

    Re-send the double-opt-in confirmation to a signup that has not confirmed yet.

  • verify_claim

    Confirm a pairing code shown in the user's browser at https://shiply.now/claim/<slug>?pair=1. Use ONLY in the agent session that originally published the site — it reads the claimToken from .shiply.json in the current working directory…

  • list_inbox

    List the user's email inbox threads (outbound demand-test sends + inbound replies / unsubscribes / complaints / bounces). Filter by tag.

The first 60 of 114, as the server listed them.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "shiply": {
      "type": "http",
      "url": "https://shiply.now/mcp"
    }
  }
}

OpenAPI spec

26 paths, read 2026-10-15. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.