Shiply

now.shiply由 shiply.now 發布官方發布者v1.1.0更新於 Oct 24, 2026

Publish any app in one call: SQL database, functions, email, and a custom domain. Flat price.

已驗證Streamable HTTP可網頁執行資料庫雲端與基礎設施檔案與儲存

概覽

AI 產生的概覽

Shiply 讓助理把靜態網站和應用程式發佈到 shiply.now 的線上網址,並管理版本、網域、雲端硬碟、變數和 SQL 資料庫。

可以做什麼
把檔案或雲端硬碟快照發佈成線上網站,接著驗證、改名、複製、提升或回復版本,也可把網站掛載到路徑下。管理網站存取政策、專屬網址、公開作品集頁面和 Explore 展示。讀寫私有雲端硬碟中的檔案。儲存、列出、掛載和卸載網站 Worker 環境使用的加密變數。建立、綁定和刪除 SQL 資料庫,並列出、查詢、插入和匯出網站資料集合中的記錄。查看帳號、方案與額度,並匯出帳號資料。
適用情境
適合讓助理端到端上線一個小型網站或應用程式:發佈、確認可連線、迭代版本,並在對話中接好資料庫、密鑰或自訂網域。也適合把助理筆記和素材存進雲端硬碟,或為網站集合寫入初始資料。
執行需求
透過 streamable HTTP 連線 shiply.now 遠端端點,不需本機執行環境。管理自有網站需要帳號和 Bearer API 金鑰;匿名發佈使用 claim token。密碼或受限存取、Neon Postgres、額外雲端硬碟等功能取決於付費方案。
安裝前請注意
部分工具具破壞性或對外可見:delete_site 和 delete_database 無法復原,會刪除已存檔案或資料;發佈、提升、改名或變更存取設定會改變訪客看到的內容,並可能讓現有訪客登出。加密變數庫保存 API 金鑰和機密,可用 reveal=true 顯示值,並可掛載到網站的 Worker 環境。帳號匯出會回傳個人資料和網站中繼資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Shiply,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/now.shiply%2Fshiply/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

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

工具

114

publish_site

Publish a 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 files are hash-skipped server-side, so re-publishing (including retrying a failed publish) is cheap — always update the same site rather than creating a new one. Works WITHOUT auth (anonymous: 24h lifetime, returns claimToken/claimUrl — SAVE THEM). With a Bearer shp_ key sites are permanent. ≤50 files / 2 MB inline; bigger: REST flow per https://shiply.now/llms.txt. index.html serves at /. spaMode for client-side routing.

輸入參數slugfiles必填titleclientspaModeagentNameclaimToken

site_status

SSL + readiness check

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

輸入參數target必填

verify_site

Verify a live deploy

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 confirm the site is reachable.

輸入參數target必填

list_sites

List my sites

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

輸入參數clientId

get_site

Site detail

Site settings + version history for one of my sites.

輸入參數slug必填

delete_site

Delete a site

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

輸入參數slug必填

rollback_site

Roll back a site

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

輸入參數slug必填versionId必填

list_versions

List a site's deploys

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.

輸入參數slug必填

pull_site

Pull a site's current files

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 (`.shiply/bundle/*`), not original source.

輸入參數slug必填

set_handle

Set a vanity 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>.)

輸入參數slug必填handle必填

duplicate_site

Duplicate a 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.

輸入參數slug必填title

promote_site

Promote a preview to a production 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.

輸入參數srcSlug必填destSlug必填

set_site_access

Set site access control

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.

輸入參數mode必填slug必填passwordallowedEmailsallowedDomains

get_site_access

Read site access control

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.

輸入參數slug必填

export_account

Export account data

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

無需輸入參數。

whoami

Account overview

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

Account plan + capability matrix

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 chat when a feature requires a higher plan. Returns plan id + name + subscription status, hard limits (sites, databases, custom domains, drives), and a capability matrix listing every gated feature (workers_lite, databases_neon_postgres, custom_domains, etc.) with whether you have access and the minimum plan needed.

無需輸入參數。

list_drives

List drives

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

輸入參數clientId

create_drive

Create a drive

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

輸入參數name必填client

drive_list_files

List drive files

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

輸入參數prefixdriveId必填

drive_put_file

Write a drive file

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

輸入參數path必填content必填driveId必填encoding

drive_delete_file

Delete a drive file

Delete a file from a Drive.

輸入參數path必填driveId必填

publish_from_drive

Publish a drive as a site

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

輸入參數titleprefixdriveId必填

set_profile

Set up a public 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 set_handle instead. enable shows the profile; autoAdd auto-lists new sites. Use after publishing to give the user a shareable portfolio.

輸入參數enablehandleautoAdd

feature_site

Feature a site on Explore

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

輸入參數show必填slug必填

set_variable

Save an encrypted 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 specific site with attach_variable (takes effect on that site's next function deploy).

輸入參數name必填value必填

list_variables

List variables

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

輸入參數reveal

delete_variable

Delete a variable

Remove one variable by name.

輸入參數name必填

attach_variable

Attach a variable to a site

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.

輸入參數name必填slug必填

detach_variable

Detach a variable from a site

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

輸入參數name必填slug必填

list_site_variables

List variables attached to a site

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

輸入參數slug必填

list_databases

List my 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 via GET /api/v1/databases/{id} (see llms.txt), which this id feeds.

無需輸入參數。

create_database

Create a 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.

輸入參數name必填bindingprovidersiteSlug

delete_database

Delete a database

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

輸入參數id必填

attach_database

Attach a database to a site

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.

輸入參數id必填siteSlug必填

data_list_collections

List Site Data 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`.

輸入參數slug必填

data_query

Query records from a collection

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

輸入參數slug必填limitcursorcollection必填

data_insert

Insert a record into a collection

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.

輸入參數slug必填record必填collection必填

data_export_collection

Export records (capped)

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>`.

輸入參數slug必填limitcollection必填

add_domain

Connect a custom 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.

輸入參數slug必填hostname必填

add_custom_domain

Register a 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.

輸入參數domain必填

add_subdomain

Point a subdomain at a site

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 -> cname.shiply.now); the certificate issues automatically once DNS resolves. Poll with check_domain.

輸入參數slug必填domain必填subdomain必填

set_primary_subdomain

Pick the canonical URL for a custom domain

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 first subdomain you add for a site is primary by default; call this only when you need to switch.

輸入參數domain必填hostname必填

list_custom_domains

List custom domains

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

無需輸入參數。

connect_provider

Connect the domain's DNS 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 providers, add the records manually.

輸入參數domain必填

sync_dns

Sync DNS records

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.

輸入參數domain必填

check_custom_domain

Check a 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 + tls + http + ready.

輸入參數domain必填

remove_custom_domain

Remove a custom domain

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

輸入參數domain必填

list_domains

List custom domains

List connected custom domains with status.

無需輸入參數。

check_domain

Check a custom domain

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

輸入參數id必填

remove_domain

Disconnect a custom domain

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

輸入參數id必填

get_analytics

Site analytics

Daily page views per site for the last 30 days.

無需輸入參數。

create_test

Create an email demand 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 confirmation. Read progress with get_test_status.

輸入參數ctasubidea必填priceheadline必填

list_tests

List demand tests

List your demand tests with signups + confirmed counts.

無需輸入參數。

get_test_status

Demand test status (the verdict)

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.

輸入參數testId必填

send_broadcast

Broadcast to confirmed subscribers

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.

輸入參數html必填texttestId必填subject必填

resend_confirmation

Resend a confirmation email

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

輸入參數email必填testId必填

verify_claim

Verify a Shiply claim pairing code

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 and proves to Shiply that this agent session is authorised to claim the site. After verification the user is auto-redirected to /welcome and the site binds to their account.

輸入參數code必填

list_inbox

List inbox threads

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

輸入參數limitfilteroffset

read_thread

Read an inbox thread

Return the thread metadata + all messages in chronological order. Use list_inbox first to get a threadId.

輸入參數threadId必填

summarize_thread

AI-summarize an inbox thread

One-paragraph summary of the thread, oriented to the most actionable signal (interest, complaint, question, unsubscribe).

輸入參數threadId必填

reply_to_thread

Reply to an inbox thread

Send an email reply on an existing thread. Goes FROM the original recipient address (the <slug>@shiply.now alias the sender used) and TO the original sender. Threaded via RFC 5322 In-Reply-To so Gmail/Outlook group it with the original. Subject defaults to 'Re: <original>' when omitted. Cap at 20,000 chars. Use after read_thread to make sure you're replying to the right conversation.

輸入參數body必填subjectthreadId必填

mark_thread_read

Mark a thread read

Zero the unread counter for a thread. Useful after the agent has read but not acted. read_thread already calls this implicitly; use this explicitly when you want to clear unread without re-fetching the thread body.

輸入參數threadId必填

archive_thread

Archive a thread

Soft-archive the thread (sets archivedAt). Hidden from the default inbox view; surface again with list_inbox filter=archived. Reverse with unarchive_thread.

輸入參數threadId必填

unarchive_thread

Unarchive a thread

Restore an archived thread (clears archivedAt). It reappears in the default inbox list. Pair with list_inbox filter=archived to find archived threadIds first.

輸入參數threadId必填

forward_thread

Forward an inbox message to a new recipient

Forward a message from a thread (default: the most recent message) to a NEW recipient with an optional intro note. Body is composed as note + standard '---------- Forwarded message ----------' quote of the original. Goes from the thread's existing shiply alias so replies still route through the inbox. Subject defaults to 'Fwd: <original>'.

輸入參數to必填notesubjectthreadId必填messageId

list_test_inbox_addresses

List per-test inbox addresses

Return every active demand test's reply / inbound address (<slug>@<sitesDomain>). Use this when you need to TELL someone where to email — e.g. drafting a reply or sharing a test's contact address. Mail sent to these aliases lands in /dashboard/inbox tied to the test.

無需輸入參數。

list_unsubscribes

List unsubscribes

Shortcut for list_inbox with filter=unsubscribes — shows every thread tagged as an opt-out request.

輸入參數limit

list_suppressions

List suppressed emails / domains

Return the user's suppression list — addresses (and full domains) that shiply skips when sending. Bounces, complaints, manual user adds, and AI-detected unsubscribes all land here.

無需輸入參數。

add_suppression

Suppress an email or domain

Add an address (or whole domain) to the user's suppression list. Future confirmations and broadcasts will skip it across every test. Use kind='email' for a single address, kind='domain' for everyone @example.com.

輸入參數kind必填notesvalue必填

remove_suppression

Remove from suppression list

Delete one suppression by id. Use list_suppressions first to find the id.

輸入參數suppressionId必填

list_complaints

List complaints + bounces

Return threads tagged as complaints (spam reports) OR bounces (recipient rejected). Read these before any further sending.

無需輸入參數。

list_projects

List my client-intake projects

List the dev's customer-intake projects (newest first). Optional filters: status (draft|intake_open|brief_ready|brief_failed|archived), q (case-insensitive match on label or customer email), limit (default 100). Use to triage what's in flight before opening a specific project.

輸入參數qlimitstatusclientId

create_project

Create a client-intake project

Spin up a new customer-intake project on the dev's account. Returns the project row plus intakeUrl — the public link the customer fills out (10-step wizard). If customerEmail is provided, shiply also emails them the intake invite. Use originatedFromSiteId to link a project to an existing site (e.g. 'redesign this site').

輸入參數label必填customerNamecustomerEmailoriginatedFromSiteId

get_project

Get one project (full row)

Read one of the dev's projects by id — includes label, status, customer details, intake responses, AI brief, drive folder. Use before update_brief / regenerate_brief.

輸入參數id必填

update_brief

Patch the project brief

Overwrite the project's working brief (jsonb). Hard-capped at 500 KB. Use to revise the AI-generated brief by hand; the original AI output is preserved separately in briefAiOriginal so you can always compare. Does not change status.

輸入參數id必填brief必填

regenerate_brief

Re-run AI brief generation

Re-run the MiniMax/Anthropic brief generator from the project's current intake_responses and persist the result. Flips status to brief_ready on success or brief_failed on error. Use after the customer edits answers post-submit, or when the first AI attempt failed.

輸入參數id必填

archive_project

Archive a project

Move a project to status='archived'. Hidden from the default dashboard list. Optional reason is shown on the project page. Restore later with restore_project.

輸入參數id必填reason

restore_project

Restore an archived project

Move an archived project back to status='draft' so it reappears in the active list. Idempotent on non-archived projects? No — server rejects the transition unless the project is currently archived.

輸入參數id必填

list_project_files

List files uploaded to a project

Return the customer-uploaded files for one project (path, size, contentType, createdAt). Empty when no drive folder exists yet (no uploads). Use to inspect what intake assets the customer attached.

輸入參數id必填

resend_intake_invite

Re-send the customer intake invite email

Re-fire the 'your developer sent you a project intake' email to the project's customer. Throws invalid_request if the project has no customerEmail (the dev needs to set one via the dashboard first — customer email isn't agent-patchable). Use when the customer says they didn't receive the link.

輸入參數id必填

list_listings

List my marketplace listings

Return every marketplace listing the seller owns (any status: draft, live, paused, sold). Includes site slug and current price. Use to see what's for sale across the account.

無需輸入參數。

create_listing

List one of my sites for sale

Publish (or upsert) a marketplace listing for an owned site. Requires Stripe Connect set up (status='ready' — see get_connect_status). priceCents = whole-dollar between 100 and 999900. termsMode='standard' uses shiply's template; 'custom' requires termsCustom ≥50 chars. jurisdiction is required (e.g. 'California, USA').

輸入參數pitchstatussiteSlug必填termsMode必填priceCents必填termsCustomjurisdiction必填

update_listing

Update one of my listings

Patch a listing by siteSlug — change price, pitch, terms, jurisdiction, or status (draft|live|paused). Sold listings cannot be edited. Status transitions enforced server-side. Use to pause sales or drop the price.

輸入參數pitchstatussiteSlug必填termsModepriceCentstermsCustomjurisdiction

delete_listing

Unpublish a listing (set to draft)

Take a listing off the public marketplace by moving it to status='draft'. Marketplace v1 keeps the row so analytics + future re-listing work — there's no hard delete. Sold listings can't be modified. Use to stop accepting offers without losing pricing history.

輸入參數siteSlug必填

list_my_sales

List orders where I am the seller

Return every marketplace order for sites the user sold (incl. pending, paid, refunded, failed, disputed). Most recent first. Use to surface revenue + which orders are still inside the 30-day refund window (refundExpiresAt > now).

輸入參數limit

list_my_orders

List orders where I am the buyer

Return every marketplace order the user PURCHASED. Most recent first. Shows the acquired site, paid amount, and whether the order is still inside the 30-day refund window. Use to recap what the user owns by purchase.

輸入參數limit

refund_order

Refund one of my sales

Issue a full refund on a paid order the user sold. Must be inside the 30-day refund window (server enforces). Triggers a Stripe refund; the webhook flips the order to 'refunded' and reverts site ownership to the seller. Idempotent on already-refunded orders.

輸入參數reasonorderId必填

get_connect_status

Stripe Connect onboarding status

Return the seller's Stripe Connect state: not_started | in_progress | pending_verification | ready | disabled. When status != 'ready' the user can't list sites. Includes a one-shot onboardingUrl (if not_started or in_progress) and dashboardUrl (if ready). Refreshes from Stripe on every call.

無需輸入參數。

list_sending_domains

List my sending domains

Return every BYO sending domain the user has added (id, domain, fromAddress, status: pending|verified|failed, DNS records). Use to inspect verification state or find the id of a domain to verify/remove.

無需輸入參數。

add_sending_domain

Add a sending domain

Register a domain the user owns for outbound demand-test sends. Returns DNS records (SPF, DKIM, MX) to add at the DNS provider. After DNS propagates, call verify_sending_domain. Cannot be a shiply.now subdomain.

輸入參數domain必填

verify_sending_domain

Re-check DNS for a sending domain

Trigger Resend to re-check the domain's DNS records, persist the new status. Call after adding the DNS records returned by add_sending_domain. Status flips to 'verified' once SPF + DKIM + MX all check out.

輸入參數id必填

remove_sending_domain

Remove a sending domain

Delete a BYO sending domain. Any demand tests bound to it fall back to the managed shiply sender. Also GCs the underlying Resend domain. Irreversible — re-adding requires re-verifying DNS.

輸入參數id必填

contract_draft

Draft a contract from a brief_ready project

Draft a contract from a brief_ready project. Auto-fills 8 fields from the AI brief, Stripe Connect default currency, and dev profile. Returns the contract row with status='draft' so the dev can review fields before sending. After this, edit fields via PATCH /api/v1/contracts/{id} (no MCP edit tool yet), then call contract_send to fire it.

輸入參數projectId必填

contract_send

Send a draft contract to the customer

Send a draft contract to the customer. Validates all 8 fields are non-empty, computes content_hash, flips project to contract_sent, fires the customer email. Same handler works for amendment drafts — sending an amendment does not move project state.

輸入參數contractId必填

contract_amend

Create an amendment to a signed contract

Create an amendment to a SIGNED parent contract. Scope delta required; fee delta and target date optional. Returns the draft amendment for editing before send — call contract_send with the returned amendment id to fire it. Cannot amend an amendment (amend the parent instead).

輸入參數scopeDelta必填feeDeltaCentsparentContractId必填targetCompletionDate

contract_pdf

Get the signed contract PDF (base64)

Get the signed contract PDF as a base64-encoded download. PDF includes the contract, signature certificate, and any signed amendments. Returns { filename, contentType, base64 }. Errors with conflict:contract_not_signed if the parent contract has not been signed yet.

輸入參數contractId必填

contract_status

Read contract state + amendments

Read the current state of a contract: status, sent_at, viewed_at, signed_at, signer info, content_hash, plus any amendments. Use this to check whether a customer has signed yet. Returns { contract, amendments } — the contract row matches GET /api/v1/contracts/{id}.

輸入參數contractId必填

deploy_function

Deploy a Worker function to a site

Deploy a Worker function to a site. The function runs on every request to <slug>.shiply.now and can receive webhooks, run on cron triggers, and access bindings (D1, secrets, env vars). Requires Developer plan. Use when the user wants webhook receivers, cron jobs, or a backend for their site.

輸入參數langslug必填cronssource必填

get_function

Get the deployed function for a site

Return the deployed function source + metadata for a site, or null if no function deployed.

輸入參數slug必填

remove_function

Remove the deployed function from a site

Remove the deployed Worker function from a site (and all its routes, secrets, and cron triggers). Site falls back to static-only serving. Irreversible.

輸入參數slug必填

set_secret

Set a Worker secret on a site

Set a CF Worker secret on a site's deployed function. Value is encrypted-at-rest and accessible as env.<NAME> inside the worker. Use for Stripe keys, Resend API keys, etc.

輸入參數name必填slug必填value必填

list_secrets

List secret names for a site

List secret names (values not returned) for a site's deployed function.

輸入參數slug必填

remove_secret

Remove a secret from a site

Remove a secret from a site's deployed function. The binding disappears on next request.

輸入參數name必填slug必填

list_crons

List cron triggers for a site

List cron triggers for a site's deployed function. Each cron is (path, schedule, lastRunAt).

輸入參數slug必填

set_cron

Set or update a cron trigger

Set or update a cron trigger on a site's deployed function. Schedule is crontab syntax (UTC). Path is the URL the cron handler should fire on (for the worker's scheduled() handler context).

輸入參數path必填slug必填schedule必填

remove_cron

Remove a cron trigger

Remove a cron trigger from a site's deployed function.

輸入參數path必填slug必填

get_function_logs

Read recent function logs

Read recent runtime logs for a site's per-site Worker (console output, request summaries, exceptions) from Cloudflare Workers Observability — 7-day retention, newest first. Use this to debug a deployed function: each event has timestamp, level, message, outcome, statusCode, requestId, and CPU/wall time. Also returns a CF dashboard deep-link.

輸入參數slug必填limitsince

send_email

Send an email from a site

Send an email from <slug>.shiply.now's managed sender. The site can send transactional/notification email — no SMTP setup. Rate-limited and spam-checked; replies route back to the site inbox.

輸入參數to必填html必填slug必填textsubject必填

list_site_inbox

List a site's email inbox threads

Read the email threads (received, sent, web captures) for the agent's sites. Optionally scoped to one site by slug.

輸入參數slug

set_mailbox

Configure a site collection's email behavior

Turn a Site Data collection into a mailbox: double opt-in, owner notifications, sending domain, branding. Call once per (site, collection) to configure how captured leads are handled.

輸入參數slug必填brandingnotifyTocollection必填doubleOptInnotifyOwnersendingDomainId

list_mailbox_contacts

List a mailbox's contacts

List captured contacts for a (site, collection) mailbox, optionally filtered by status (signed_up/confirmed/unsubscribed). Returns email, status, confirmedAt, createdAt, and captured fields.

輸入參數slug必填statuscollection必填

send_mailbox_broadcast

Broadcast to a mailbox's confirmed audience

Send a one-shot broadcast to the confirmed (double-opt-in) subscribers of a (site, collection) mailbox. Spam-checked; unsubscribe footer auto-added. Fails if no confirmed subscribers exist yet.

輸入參數html必填slug必填textsubject必填collection必填

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。