mcpbeat

Vibedeploy MCP Server

be.vibedeploy/vibedeploy
answering

Vibedeploy is answering right now. Last checked 13 min ago. It exposes 39 tools.

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

The linked repository no longer exists on GitHub — it was deleted or made private.

Uptime history 39 hours of history
39 hours agonow
100.0%
Uptime 24h
91 of 91 checks
39
Tools
read from the server
146 ms
Response time
average over 24h
open, no key
Access
streamable-http

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 13 min ago.

run in your terminal
claude mcp add vibedeploy --transport http https://mcp.vibedeploy.be/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "vibedeploy": {
      "url": "https://mcp.vibedeploy.be/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.vibedeploy]
url = "https://mcp.vibedeploy.be/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "vibedeploy": {
      "url": "https://mcp.vibedeploy.be/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "vibedeploy": {
      "url": "https://mcp.vibedeploy.be/mcp"
    }
  }
}

Available tools 39

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

source
delete_source_file
Remove one file from the site's editable source tree. The served dist is unchanged.
list_source_files
Return SHA-256 + size for every file in the site's editable source tree (the platform's copy of the pre-build code, not the served dist). Use BEFORE editing so you know which paths exist and which haven't changed since the last build. autoPromote:true will mirror the served dist into source for static-only sites whose source tree is empty (does nothing if the dist looks built).
read_source_file
Return the bytes of one source file (the platform's editable copy of the pre-build code), letting an AI in any future chat fetch and edit content without needing the original local files. Use list_source_files first to discover paths. For the served dist, use read_file instead.
read_source_files
Batched read across the editable source tree (up to 50 paths). Each entry is independent: a missing/oversized file fails its own slot but doesn't abort the batch. Cumulative cap 8388608 bytes; remainder fails with BATCH_BUDGET_EXCEEDED.
write_source_files
Stage edits to a site's editable source tree (not the live dist). Use list_source_files first to discover what's there. The dist is unchanged until you re-deploy via update_site or run build_and_deploy. Sites have source storage enabled by default; if a legacy site doesn't, the call fails with SOURCE_STORAGE_NOT_ENABLED and the user should contact VibeDeploy support to enable it.
file
add_file_chunk
Stream a single file across multiple calls when its content exceeds the per-MCP-call output budget. LAST RESORT — try these first: (1) add_files with encoding:'gzip+base64' fits ~250 KB of text source in ONE call (gzip locally, base64, send — no chunking, no ordering hazards); (2) begin_deploy's uploadUrl takes a 100 MB tarball in one HTTP POST if your sandbox can reach mcp.vibedeploy.be; (3) deploy_from_url if the files are fetchable from a public URL. Only chunk when none of those work. When you DO chunk, gzip+base64 each chunk too — it quadruples the source bytes per chunk. Mark the first chunk with isFirst=true (truncates + mkdir) and the last with isLast=true (returns assembled size). Send chunks for the same path serially — concurrent chunks interleave and corrupt the file.
list_file_hashes
Return SHA-256 + size for every file currently served. Use BEFORE re-deploying to skip files whose content hasn't changed: hash your local files, diff against this list, and only ship the differences via update_site mode:'patch' or begin_deploy → add_files. For SPAs with content-hashed bundle names this typically reduces a full-site redeploy to a handful of files.
read_file
Return the bytes of one file currently served by the site. Use this to inspect or edit existing content (call read_file → modify → update_site mode:'patch') so a new chat can iterate on a site without re-uploading. Files larger than 5242880 bytes can't be read in one call. Use list of paths from get_site.filePaths to discover what's available.
update_file_content
Apply one or more literal find/replace edits to a single file on the site, in one tool call. Designed for tiny edits where uploading the full file would be wasteful (one nav-button reference, one encoding fix, one env var bump). Each edit must specify how many matches it expects; mismatches abort the whole call with NO writes. For dist edits the change goes live immediately; for source edits you still need to call build_and_deploy.
site
delete_site
Soft-delete a site. confirm=true is required. The site moves to status 'deleted' immediately (its hostname is freed and it stops serving), and is fully purged after the team's recovery window by a sweeper. Use this for the normal 'remove this from my dashboard' flow. The response field 'accepted' is true when the soft-delete is recorded; the response also includes 'purgesAt' so you can tell the user when recovery becomes impossible.
get_site
Return name, url, plan, last deploy time, and recent deploy history.
get_site_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.
update_site
Patch or replace files on an existing site. Defaults to patch mode: only the listed files change; everything else stays. Pass mode:'replace' to wipe-and-replace the whole site (the legacy behaviour, surfaced explicitly so it can't happen by accident). Use `delete: [paths]` in patch mode to remove specific files without wiping the rest. Use `dryRun: true` to preview the diff before committing. LARGE FILES: a 100-250 KB text file fits in one call with encoding:'gzip+base64' (gzip locally, base64 the result) — prefer that over begin_deploy + add_file_chunk streaming. Errors if the site does not exist.
custom
add_custom_domain
Start attaching a user-owned domain to an existing site. Returns a TXT record the user must add at their DNS provider. Idempotent: calling twice with the same (siteName, domain) returns the existing record instead of creating a duplicate. After the TXT is published (typically within minutes; up to 24h), call verify_custom_domain with the returned recordId. The site itself must already exist on a platform subdomain (e.g. {name}.vibedeploy.be or {name}.vibedeploy.eu). Call deploy_site first if it doesn't.
list_custom_domains
Return all custom domains attached to a site. Each entry has a recordId you can pass to verify_custom_domain or remove_custom_domain.
remove_custom_domain
Remove a custom domain from a site. The site itself is unaffected; only the custom hostname is detached. The {name}.vibedeploy.be subdomain keeps serving the site.
files
add_files
Append files to an open staging session. Call as many times as needed; commit_deploy applies them all at once. Validates path/extension/encoding on every call so a bad file fails fast. Same 500 MB cap as single-call deploys, but cumulative across the session. LARGE TEXT FILES: a file that looks too big to inline (100-250 KB of HTML/CSS/JS) usually still fits in ONE call — gzip it locally, base64 the result, send with encoding:'gzip+base64' (text compresses 3-5×, so ~250 KB of source ≈ ~70 KB on the wire). Prefer that over add_file_chunk: one call, no ordering hazards. Only chunk when a single file exceeds ~250 KB of source even after gzip, or when you have no way to gzip locally. If your environment can run shell but can't reach this host, gzip+base64 via add_files is the fastest path; if it CAN reach this host, begin_deploy's uploadUrl (tarball POST, 100 MB) beats everything.
read_files
Batched version of read_file. Pass up to 50 paths; each is fetched independently with the same per-file rules as read_file. The whole batch is capped at 8388608 bytes total — once that's exhausted, remaining paths fail with BATCH_BUDGET_EXCEEDED so the agent can re-request them in another call.
search_files
Search for a literal string or basic regex across all files in either the served dist or the editable source tree. Use this BEFORE batch-reading files to find candidates — saves the 'read 14 batches just to find which 3 files matter' round trip. Pass `target: "source"` to search the editable tree (requires Site.sourceStored=true).
deploy
deploy_from_url
Publish a website to a live URL from a public archive link. Point this at a tar(.gz) archive on github / gist / S3 and the server fetches and deploys it, no upload from your side. Server-side fetch of a tar(.gz) archive from a public HTTPS URL, then deploy its contents. Sidesteps the case where your code-execution sandbox can reach github / gist / S3 etc. but not mcp.vibedeploy.be's upload endpoint. Equivalent to begin_deploy → POST uploadUrl → commit_deploy in one call. Hostname allowlist enforced; see the archiveUrl description.
deploy_site
Publish a website to a live URL. Deploy a static site or single-page app you built (with AI or by hand) to your platform subdomain (e.g. {name}.vibedeploy.be or {name}.vibedeploy.eu) with automatic SSL, and optionally a custom domain. The fastest way to get a localhost project or an AI-generated site online. DESTRUCTIVE on existing sites: replaces every file on the named site with the supplied set. Files not in this call are deleted. For a new site, creates and provisions it. For an existing site, requires `confirm: "I-want-to-replace-all-files"` to proceed; without confirm the call is rejected before anything is touched. Use update_site (default mode:'patch') if you want to add or change individual files without removing the rest. Use dryRun:true to preview the diff. LARGE FILES: don't split a big text file across a placeholder deploy + chunked follow-ups — a 100-250 KB HTML/CSS/JS file fits in THIS call when sent with encoding:'gzip+base64' (gzip locally, base64 the result; text compresses 3-5×). The site is published at your platform subdomain (e.g. {name}.vibedeploy.be or {name}.vibedeploy.eu). After deploy, call add_custom_domain to also serve at a user-owned hostname.
forms
get_forms_config
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. 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.
set_forms_config
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.
verify
verify_custom_domain
Check the TXT record the user added at step 1 and, if found, attach the domain to the site's ingress. If verification fails, the most common cause is DNS propagation delay; wait a few minutes and try again. Once verified, the domain serves the site immediately (HTTPS issues automatically within ~30s).
verify_forms_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.
abort
abort_deploy
Discard a staging session and its scratch dir. Live site is untouched. Returns immediately; cleanup is best-effort and the sweeper will retry if it fails.
account
get_account
Return the team's plan, its limits, and current usage. Use this BEFORE deploy_site or add_custom_domain to know whether a deploy would trip a plan limit, instead of provoking PLAN_LIMIT_EXCEEDED. Also returns the per-token MCP rate-limit ceiling (live remaining is in X-RateLimit-Remaining response header).
apply
apply_edits
Apply find/replace edits across MANY files in one tool call. Batch sibling of update_file_content. Per-file edit semantics identical (count: 1 default, -1 = all, positive int asserts exact count). Whole call is atomic across files: validation runs first, writes only proceed if every edit's count check passes.
begin
begin_deploy
Opens a staging session for a multi-call deploy. Use when the site is too large to fit in a single deploy_site/update_site call. Pair with add_files (one or more times) OR a single tarball upload to the returned uploadUrl, then commit_deploy. Active session limit per token: 5. Default TTL: 1 hour.
build
build_and_deploy
Run a build inside a hardened one-shot pod against the site's editable source tree (write source first via write_source_files / list_source_files autoPromote), then atomically swap the build output into the live dist. Reuses the same build pod the GitProject git-deploy flow uses, so the same isolation guarantees apply: no SA token, no DB/Vault reach, NetworkPolicy-restricted egress. The first run writes the chosen buildCommand/outputDir into Site.sourceManifest; subsequent calls can omit those fields.
commit
commit_deploy
Atomically apply a staging session's files to the live site. Runs preflight + secret/malware scan against the complete staged set; on failure the session stays open and can be re-attempted or aborted. For replace-mode against a site with existing files, requires confirm:"I-want-to-replace-all-files".
deploys
list_deploys
Return staging sessions for the team this token belongs to. Defaults to currently-active ones (open + committing). Up to 50 rows.
dns
list_dns_records
Read the DNS records VibeDeploy tracks for a site (the records it created/manages on your behalf), oldest first. Returns each record's host, type, and value. Any team member, including viewers, can read DNS records. This tool is read-only and does NOT create, change, or delete any DNS record.
domain
check_domain_availability
Check whether a domain can be registered and get an INDICATIVE retail price. IMPORTANT: this is a read-only lookup — it does NOT buy, register, reserve, or pay for any domain, and it changes nothing. The returned price is GROSS (includes 21% VAT) and indicative only. Set alternatives:true to also check the same name across other common TLDs (be, com, net, eu, nl, io, dev, app). Requires a valid team token but is not tied to a specific site.
history
list_history
Return the most recent 50 deploy and snapshot history entries for a site, newest first. Includes the source (how it was triggered), an optional label, the associated Longhorn snapshot name (if any), the file count, and the number of secrets detected. Any team member can read history.
rehost
rehost_images
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 hosted on vibedeploy.be are skipped.
sites
list_sites
List sites for the team this connection belongs to.
snapshot
create_snapshot
Take a point-in-time Longhorn snapshot of a site's served files. This is an additive backup — it does not change anything served. It records a manual-snapshot history entry and runs retention cleanup. Viewers cannot create snapshots. Returns NO_VOLUME if the site has no volume yet (it has never been deployed).
snapshots
list_snapshots
List the Longhorn volume snapshots for a site. Snapshots are point-in-time backups of the site's served files. Any team member can list snapshots. Returns NO_VOLUME if the site has no volume yet (it has never been deployed).

Endpoints

URLTransportStateLatencyChecked
https://mcp.vibedeploy.be/mcp streamable-http answering 129 ms 13 min ago

Vibedeploy — questions

Answers built from our own checks of this server.

What can Vibedeploy do?
It exposes 39 tools, read directly from the server on our last check. Among them: abort_deploy, add_custom_domain, add_file_chunk, add_files, apply_edits, begin_deploy and 33 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Vibedeploy mostly used for?
Its tools cluster around source, file and site. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Vibedeploy working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 146 ms. The bar chart above shows every period we have measured.
Is Vibedeploy still maintained?
The linked repository no longer exists on GitHub — it was deleted or made private. We show this because it changes what you can expect: an unmaintained server may keep answering for months and then stop without warning.
How do I connect Vibedeploy?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Vibedeploy need an API key?
No. Vibedeploy completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 39 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Vibedeploy?
It answers our handshake in 146 ms on average, which is faster than 74% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.