VibeDeploy

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

Deploy AI-built sites and apps to EU hosting from your AI agent. OAuth sign-in, 14-day free trial.

已驗證Streamable HTTP可網頁執行雲端與基礎設施檔案與儲存開發者工具

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理把 AI 生成的靜態網站部署、編輯並託管在歐盟基礎設施上,支援自訂網域、快照與表單轉寄。

可以做什麼
  • 部署與發佈網站:用檔案建立或取代網站、從已存的原始碼樹建置、部署公開 tar 壓縮檔,或分塊暫存大型檔案後提交。
  • 檢視與編輯網站:列出網站、讀取線上檔案或可編輯原始碼樹、搜尋檔案、比對雜湊、執行尋找取代編輯、把外部圖片轉存到本站,以及軟刪除網站。
  • 管理網域與 DNS:新增、驗證、列出和移除自訂網域,讀取平台追蹤的 DNS 記錄,並查詢網域可用性與參考價格。
  • 檢視歷史與流量:查看部署歷史、快照與還原點,以及不揭露訪客 IP 的頁面瀏覽與 Web Vitals 統計。
  • 設定表單與帳戶:讀取方案、限額與用量,並設定表單轉寄郵件,包括自訂寄件網域。
適用情境
適合在對話中產生網站或單頁應用後,讓助理直接發佈到可存取的 HTTPS 網址,並在同一段對話中繼續修改與重新部署,包括綁定自訂網域或加入聯絡表單。
執行需求
遠端 streamable HTTP 端點,不需本機安裝。首次呼叫工具時以 OAuth 登入,需要 VibeDeploy 帳戶(14 天免費試用,不需信用卡)。部分操作需要團隊 owner 或 admin 角色。
安裝前請注意
以既有的網站名稱部署會取代全部檔案,除非提供確認字串;update_site 與 commit_deploy 的取代模式同樣會刪除未列出的檔案。delete_site、刪除原始碼檔案與移除網域會改變線上內容。上傳內容會經過密鑰與惡意軟體掃描。自訂網域與寄件網域需要發佈 DNS 記錄。網域可用性查詢為唯讀,不會購買網域。

安裝

在 SourceWeft 中

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

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "vibedeploy": {
      "type": "http",
      "url": "https://mcp.vibedeploy.be/mcp"
    }
  }
}

README

VibeDeploy MCP Server

Deploy and host AI-built websites on EU infrastructure, straight from your AI agent.

Remote server: https://mcp.vibedeploy.be/mcp (streamable HTTP, OAuth sign-in) Official MCP registry: be.vibedeploy/vibedeploy Website: vibedeploy.be · vibedeploy.eu

What it does

You build a site with your AI (a Claude artifact, a ChatGPT page, a Lovable or Bolt export, a Vite build, plain HTML). VibeDeploy is the missing last step: the agent deploys it to a live HTTPS URL in one tool call, and can keep editing and redeploying it later from the same conversation.

Hosting runs on Kubernetes in Belgium: automatic SSL, custom domains, deploy history with snapshots and rollback, staging, a forms relay for static contact forms, and GDPR-friendly EU data residency by default.

No local install is needed. This is a remote MCP server: you add one URL to your client and sign in once. Every account starts with a 14-day free trial, no card required.

Quick start

Claude Code

bash
claude mcp add --transport http vibedeploy https://mcp.vibedeploy.be/mcp

Claude Desktop / claude.ai

Settings → Connectors → Add custom connector → https://mcp.vibedeploy.be/mcp

Cursor / Windsurf / other MCP clients

json
{  "mcpServers": {    "vibedeploy": { "url": "https://mcp.vibedeploy.be/mcp" }  }}

The first tool call opens a browser window to authorize your VibeDeploy account. After that, try:

"Deploy this site to VibeDeploy and give me the URL."

Tools

38 tools, grouped by what they let the agent do:

AreaTools
Deploydeploy_site, build_and_deploy, deploy_from_url, chunked uploads via begin_deploy / add_files / add_file_chunk / commit_deploy / abort_deploy
Siteslist_sites, get_site, update_site, delete_site, get_site_analytics, check_domain_availability
Filesread_file, read_files, search_files, list_file_hashes, apply_edits, update_file_content, rehost_images
Source of truthlist_source_files, read_source_file, read_source_files, write_source_files, delete_source_file (an editable source tree per site, so agents can do incremental edits and rebuilds)
Domains and DNSadd_custom_domain, list_custom_domains, verify_custom_domain, remove_custom_domain, list_dns_records
Snapshots and historycreate_snapshot, list_snapshots, list_deploys, list_history
Account and formsget_account, get_forms_config, set_forms_config, verify_forms_sender_domain

Typical flows

  • Claude artifact to live URL: Claude builds an artifact, you say "deploy this", the agent ships it and replies with the address. Details: hosting Claude artifacts.
  • Localhost project to production: the agent runs your build, deploys the output folder, and the URL outlives your laptop. Details: deploy localhost.
  • Custom domain: add_custom_domain plus one CNAME at your registrar; SSL issues automatically.
  • Safe iteration: every deploy is snapshotted, so a bad regeneration rolls back in one call.

Notes for client authors and agents

  • Transport is streamable HTTP at a single endpoint; authorization is standard OAuth (the server is its own issuer at mcp.vibedeploy.be).
  • Large sites: add_files splits between files, add_file_chunk splits within one file (isFirst / isLast); request bodies are capped at 100 MB.
  • The platform also supports a no-MCP path: a single deploy-guide file you paste into any chat AI, which teaches it to publish over plain HTTPS. See what is MCP hosting for how the two paths compare.

Support

VibeDeploy is operated by Serso BV (Belgium). All hosting layers, control plane, builds and data live in the EU.

來源:README.md,提交 5afc174

工具

43

get_account

Read plan, limits, and current usage

Return the team's plan, its limits, current usage, the trial end date and the per-token MCP rate limit. Call it before deploy_site or add_custom_domain to check a plan limit instead of running into PLAN_LIMIT_EXCEEDED.

無需輸入參數。

deploy_site

Deploy a site (create or full-replace)

Publish a static site or single-page app to a live HTTPS URL on the account's platform subdomain (e.g. {name}.vibedeploy.be). A new name creates the site. An existing name REPLACES EVERY FILE (files not in this call are deleted) and needs confirm:"I-want-to-replace-all-files"; preview with dryRun:true. Use update_site instead to change some files of an existing site. A 100-250 KB text file fits in this call with encoding:'gzip+base64' (gzip locally, then base64); use begin_deploy only when the files do not fit in one call. Ship a top-level 404.html for multi-page sites (otherwise unknown paths serve index.html) and use plain ASCII file names. Afterwards add_custom_domain can serve the site on the user's own domain.

輸入參數name必填files必填dryRunconfirm

update_site

Update an existing site

Change files on an existing site. Default mode 'patch' writes only the listed files and keeps the rest; `delete: [paths]` removes files. mode:'replace' deletes every file not listed. Preview with dryRun:true. Use deploy_site instead to create a new site. A 100-250 KB text file fits in one call with encoding:'gzip+base64' (gzip locally, then base64); prefer that over begin_deploy plus add_file_chunk. Fails with SITE_NOT_FOUND when the site does not exist.

輸入參數modenamefilesdeletedryRunsiteId

list_sites

List your sites

List the team's sites (name, URL, status, last deploy), most recently updated first, up to 100. Use list_sites to find a site name; use get_site for one site's files, source status and history.

輸入參數includeDeleted

get_site

Get site details

Return one site's details: live URL, status, plan, served file paths, whether editable source is stored (and its build settings), custom domains, bandwidth and the last 10 deploys. Use get_site to inspect a site before editing it; use list_sites to find site names, and get_app_status for container services.

輸入參數namesiteId

delete_site

Delete a site (restorable until purged)

Soft-delete a site (confirm:true required). It stops serving at once and is purged after the plan's restore window (purgesAt in the result); until then the user can restore it in the VibeDeploy dashboard. Use delete_site to remove the whole site; use remove_app instead to stop only its container services.

輸入參數namesiteIdconfirm必填

get_site_analytics

Get site traffic analytics

Return a privacy-safe traffic summary for a site over the last `period` days (default 7): total page views, distinct-visitor count, top pages, daily counts, device/browser breakdowns, and Web Vitals averages. Never exposes raw visitor IPs or user-agents.

輸入參數nameperiodsiteId

read_file

Read a file from a deployed site

Return one file the site serves now, as text (utf8) or base64 for binary files, e.g. to edit it and send it back with update_site mode:'patch'. Use read_file for the served files; use read_source_file instead for the editable source tree (get_site.sourceStored). Max 5242880 bytes; get_site.filePaths lists the paths.

輸入參數namepath必填siteIdmaxBytes

read_files

Read multiple files from a deployed site in one call

Read up to 50 served files in one call, with the same per-file rules as read_file and 8388608 bytes in total; paths past the budget fail with BATCH_BUDGET_EXCEEDED, so request them again in another call. Use read_source_files instead for the editable source tree.

輸入參數namepaths必填siteIdmaxBytesPerFile

list_file_hashes

List SHA-256 hashes of every file on a site

Return SHA-256 and size of every served file. Before a redeploy, hash your local files, compare, and upload only the changed ones with update_site mode:'patch' or begin_deploy plus add_files.

輸入參數namesiteId

list_source_files

List the editable source tree for a site

List path, SHA-256 and size of every file in the site's editable source tree (the stored pre-build code, not the served files). Read-only. A site without a source tree returns SOURCE_NOT_STORED: write the source with write_source_files, or copy plain static served files with promote_dist_to_source.

輸入參數namesiteIdautoPromoteforcePromote

promote_dist_to_source

Copy a site's served files into a new source tree

Create the editable source tree of a site that has none by copying the files it serves, so later changes can use write_source_files, apply_edits(target:'source') and build_and_deploy. The served files do not change, and a site that already has source is left as is. Use mode 'force' only after telling the user that build output (minified bundles) is not original source.

輸入參數modenamesiteId

read_source_file

Read a file from the editable source tree

Return one file from the site's editable source tree (the stored pre-build code), so any chat can edit the site without the original local files. list_source_files shows the paths. Use read_source_file for source; use read_file instead for the files the site serves.

輸入參數namepath必填siteIdmaxBytes

read_source_files

Read multiple source files in one call

Read up to 50 files from the editable source tree in one call (8388608 bytes in total). Each path succeeds or fails on its own; paths past the budget fail with BATCH_BUDGET_EXCEEDED. Use read_source_files for source; use read_files instead for the files the site serves.

輸入參數namepaths必填siteIdmaxBytesPerFile

write_source_files

Write files into the editable source tree

Write or overwrite files in the site's editable source tree (the first write creates it). The served files do not change until build_and_deploy runs. Use list_source_files first to see what exists. A legacy site without source storage returns SOURCE_STORAGE_NOT_ENABLED; the user can ask VibeDeploy support to enable it.

輸入參數namefiles必填siteId

delete_source_file

Delete a file from the source tree

Remove one file from the site's editable source tree. The served files do not change until build_and_deploy runs.

輸入參數namepath必填siteId

build_and_deploy

Build editable source and ship the result as the new dist

Build the site's stored editable source in an isolated one-shot build pod and atomically publish the output as the live site, replacing the served files (a restore point is normally taken first). Use build_and_deploy after changing stored source (write_source_files, apply_edits with target 'source'); use update_site instead to upload files that are already built. The first build saves buildCommand, outputDir and rootPath on the site, so later calls can omit them. A failed build returns its log in the error details.

輸入參數namesiteIdrootPathoutputDirbuildCommandsaveManifest

search_files

Grep across a site's files

Search every file of a site for a literal string or a regular expression: the served files by default, or the editable source tree with target 'source'. Use it before reading files in bulk, to find the ones that matter.

輸入參數globnameregexsiteIdtargetpattern必填maxMatchescaseInsensitive

deploy_from_url

Deploy a site from a public archive URL

Fetch a public tar(.gz) archive over HTTPS and deploy its files to an existing site in one call (begin_deploy, upload and commit_deploy combined). Use deploy_from_url when the files are already published at a public URL, such as a repository archive that holds only the built site (no dotfiles), or when your sandbox reaches the allowed hosts (listed under archiveUrl) but not mcp.vibedeploy.be; otherwise use deploy_site or update_site. In replace mode one top-level folder that wraps every file (as in repository archives) is removed, and a site that already has files needs confirm:"I-want-to-replace-all-files". A failed call never leaves a staging session open.

輸入參數mode必填name必填confirmarchiveUrl必填

rehost_images

Rehost a site's external images locally

Download the external images a site references (e.g. from the old site it was rebuilt from), store them on this VibeDeploy site under assets/img/, and rewrite the HTML <img> references to local paths so the site no longer depends on the original. Call this once AFTER deploying a site rebuilt with the Website Converter. Auto-detects the external image URLs from the site's own HTML; downloads are SSRF-guarded, size/count/time capped, and applied atomically (patch mode). Images already on a VibeDeploy platform domain are skipped.

輸入參數name必填

update_file_content

Surgical find/replace in one file

Apply literal find/replace edits to one file in one call, for small changes where uploading the whole file is wasteful. Each edit states how many matches it expects; any mismatch aborts the call with no writes. Served-file (dist) edits go live at once; source edits ship with build_and_deploy. Use apply_edits for several files.

輸入參數name必填path必填edits必填target

apply_edits

Multi-file find/replace in one call

Apply literal find/replace edits to several files in one call, in the served files (target 'dist', live at once) or the editable source (target 'source', shipped by build_and_deploy). Same edit rules as update_file_content. All or nothing: if any edit's match count differs from its expected count, no file is written.

輸入參數name必填files必填target

get_forms_config

Get forms-relay config for a site

Read the form-to-email relay config of a site, plus the resolved delivery mode, the active From address, and (for a custom sender domain) the DNS records to publish and their verification status. The submission format for the site's form is described under set_forms_config.

輸入參數siteName必填

set_forms_config

Enable or update the forms relay for a site

Configure the built-in form-to-email relay, fully self-service. Supports a custom From (via a verified sender domain or your own SMTP relay), an explicit Reply-To, and full email branding (subject template, field labels/order, logo, accent color, or a custom HTML body). Requires team role owner or admin. Pass config:null to switch the relay off. If you set a custom `sender` without an `smtpRelay`, the response returns the DNS records to publish; then call verify_forms_sender_domain. Submissions: POST JSON to the returned `endpoint` with Content-Type: application/json (UTF-8). Flat object of form fields (strings/numbers/booleans; checkbox groups may be arrays of strings, joined with ', '). Max 30 fields, 5000 chars/field, 20000 total. Response: {success:true,data:{ok:true}} or {success:false,error:{code,message}}. Rate limit: 10 submits per IP per 10 minutes. Include a hidden honeypot input (default "_gotcha") and leave it empty.

輸入參數config必填siteName必填

verify_forms_sender_domain

Verify a forms custom sender domain

Check the DNS records for a site's custom sender domain (DKIM TXT + SPF include). Once the DKIM record is observed, the sender domain is marked verified and the relay sends from the custom From (DKIM-signed). Until then it falls back to the platform address. DNS can take a few minutes to propagate; re-run if it fails the first time. Not needed when the site uses a custom smtpRelay.

輸入參數siteName必填

add_custom_domain

Attach a custom domain (step 1 of 2)

Start attaching a user-owned domain to an existing site: returns the DNS records the user adds at their DNS provider (a routing record that sends visitors here, plus a TXT that proves ownership). Idempotent: the same siteName and domain return the existing record. Once the records are published (usually minutes, up to 24h), call verify_custom_domain with the returned recordId; VibeDeploy also re-checks automatically for a few days and emails the user when the domain is live. The site must already exist; call deploy_site first if it does not.

輸入參數domain必填siteName必填

verify_custom_domain

Verify a custom domain (step 2 of 2)

Check the records from add_custom_domain (the ownership TXT and the routing record) and, when both are right, start serving the site on that domain; the HTTPS certificate follows automatically, usually within a minute or two. If it fails, the result names each record to add, change or remove; DNS changes can take a few minutes to propagate. Calling it again on a verified domain is a harmless re-check.

輸入參數recordId必填siteName必填

remove_custom_domain

Detach a custom domain

Detach a custom domain from a site. The site itself is unaffected and keeps serving on its platform subdomain (e.g. {name}.vibedeploy.be).

輸入參數domainrecordIdsiteName必填

list_custom_domains

List custom domains on a site

Return all custom domains attached to a site, both those added with add_custom_domain (source 'mcp', with a recordId for verify_custom_domain or remove_custom_domain) and those linked in the VibeDeploy dashboard (source 'dashboard', verified or removed on the dashboard Web Addresses page at manageUrl). Call it before add_custom_domain to avoid adding a domain twice.

輸入參數siteName必填

list_dns_records

List DNS records for a site

Read the DNS records VibeDeploy tracks for a site (host, type, value), oldest first, including custom-domain verification records. Read-only: it never creates, changes or deletes a DNS record.

輸入參數namesiteId

check_domain_availability

Check domain availability and indicative price

Check whether a domain can be registered and get an indicative price (VAT included where it applies). Read-only: it never buys, registers or reserves a domain. alternatives:true also checks the same name on be, com, net, eu, nl, io, dev and app. Not tied to a site. The result states whether the user's plan includes buying domains in the dashboard (purchase.dashboardUrl); a domain the user already owns is connected with add_custom_domain.

輸入參數domain必填alternatives

begin_deploy

Begin a multi-call deploy session

Open a staging session for a deploy that is too large for one call: stage files with add_files (repeatable), add_file_chunk, or one tar(.gz) POST to the returned uploadUrl, then publish with commit_deploy. Use begin_deploy only when the files do not fit in one deploy_site or update_site call. Up to 5 open sessions per token; a session expires after 1 hour.

輸入參數mode必填name必填

add_files

Add files to a staging session

Add files to an open begin_deploy session; call it as often as needed, then commit_deploy publishes them together. Paths, extensions and encodings are checked on every call. A 100-250 KB text file usually fits in one call with encoding:'gzip+base64' (gzip locally, then base64); prefer that over add_file_chunk. If your shell can reach mcp.vibedeploy.be, one tar(.gz) POST to begin_deploy's uploadUrl is faster still.

輸入參數files必填deployId必填

add_file_chunk

Append one chunk of a single file to a staging session

Send one file in several calls when it is too big for a single tool call. Last resort: first try add_files with encoding:'gzip+base64' (about 250 KB of text in one call), begin_deploy's uploadUrl (one 100 MB tar POST) or deploy_from_url (public archive URL). When chunking, gzip+base64 each chunk too, mark the first with isFirst and the last with isLast, and send chunks of one file one after another: parallel chunks corrupt it. After a transport error, do not resend the chunk blindly: restart the file from its first chunk (isFirst truncates it).

輸入參數path必填isLast必填content必填isFirst必填deployId必填encodingexpectedByteOffset

commit_deploy

Commit a staged deploy

Publish a begin_deploy session's staged files to the live site in one atomic step, after a secret and malware scan of the complete set (on failure the session stays open to retry or abort). Replace mode on a site that has files needs confirm:"I-want-to-replace-all-files". After a timeout or dropped connection, call it again with the same deployId: it returns the running or finished commit instead of starting a second one. Use commit_deploy only to finish a begin_deploy session; deploy_site and update_site publish in one call.

輸入參數deletedryRunconfirmdeployId必填

abort_deploy

Abort a staging session

Discard a begin_deploy session and its staged files; the live site is untouched. Cleanup is best effort and retried later if it fails.

輸入參數deployId必填

list_deploys

List staging sessions

List the team's begin_deploy staging sessions, by default the active ones (open and committing), up to 50. Useful after a crash or restart to commit or abort leftovers.

輸入參數status

list_history

List deploy/snapshot history for a site

Return the site's last 50 deploy and snapshot entries, newest first: how each was triggered, label, snapshot name, file count and secrets detected. Each entry's snapshot holds the content from BEFORE that entry. Restoring is done by the user in the VibeDeploy dashboard within the plan's restore window; there is no restore tool.

輸入參數namesiteId

list_snapshots

List snapshots for a site

List the snapshots of a site's served files (point-in-time restore points). NO_VOLUME means the site was never deployed. Restoring a snapshot is done by the user in the VibeDeploy dashboard within the plan's restore window.

輸入參數namesiteId

create_snapshot

Create a manual snapshot (restore point) for a site

Take a point-in-time snapshot of a site's served files, a restore point the user can restore in the VibeDeploy dashboard within the plan's restore window. Served content does not change, but retention cleanup may remove older snapshots. Container data is not included. Requires an owner or admin team role. NO_VOLUME means the site was never deployed.

輸入參數namelabelsiteId

deploy_app

Run container services (server, database, workers) for a site

Run container services next to a site, from any public image: the user's own server (running code from the site's source tree), a database such as Postgres or MySQL, Redis, or workers, each in a gVisor sandbox. The call applies the whole config: services missing from it are stopped (their volumes are kept) and the others restart, picking up new source files. It waits until every service is ready and returns per-service status; if one is not ready, call get_app_status with logs. One service may be public: it serves the site's HTTP traffic on its port. Use "${generated:NAME}" for database passwords. API keys and other outside secrets never go in the config, the source or the chat: the user adds them in the VibeDeploy dashboard (site Settings, Secrets) and every service receives them as environment variables. Per site: up to 6 services, 2048Mi memory and 2000m CPU in total, 4 volumes, 3Gi storage. Container volumes are not included in snapshots yet.

輸入參數nameconfigsiteId

get_app_status

Show container service status and logs

Show the site's container services: per-service status (ready, restarts, waiting or crash reasons, volumes), the stored config, the names of the site secrets that are set (never values) with the dashboard link where the user adds them, and optionally the recent logs of one service. Use get_app_status instead of get_site for anything about containers.

輸入參數logsnametailsiteId

remove_app

Stop all container services of a site

Stop every container service of the site; the site serves its static files again. Volumes (database data) are kept unless deleteData is true, which deletes them for good. Use remove_app to stop only the containers; use delete_site to remove the whole site.

輸入參數namesiteIddeleteData

版本歷史

2
  1. v1.1.0最新Oct 14, 2026
  2. v1.0.1Sep 16, 2026

評分

已滿足適用檢查項的 90%

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

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

    請在儲存庫或註冊中心條目中宣告授權條款。