# DeployX > Deployment control plane. Deploys GitHub repositories to production through the user's own Vercel account, and runs environment variables, domains, a JSON document store, file storage, cron schedules, uptime monitoring and webhooks beside each project. Base URL: https://deployx.verionx.org Authentication: personal API token, "Authorization: Bearer dxp_<48 hex>". The user creates one at https://deployx.verionx.org/app/settings/tokens. Never invent or guess a token; ask the user. ## Connect over MCP (preferred for agents) Streamable HTTP, stateless, at https://deployx.verionx.org/api/mcp claude mcp add --transport http deployx https://deployx.verionx.org/api/mcp --header "Authorization: Bearer dxp_..." Generic config: { "mcpServers": { "deployx": { "type": "http", "url": "https://deployx.verionx.org/api/mcp", "headers": { "Authorization": "Bearer dxp_..." } } } } Tools: - whoami: The account this token belongs to and the workspaces it can reach. - list_projects: Projects in a workspace with their latest and current production deployment. - get_project: Full settings for one project. - inspect_repository: Read a repository and report the framework, runtime and build settings DeployX would use. Creates nothing. - create_project: Import a GitHub repository as a project and, unless deploy is false, start its first production deployment. - update_project_settings: Change build settings, the production branch, automatic deploys or monitoring. Applies from the next deployment. - deploy: Deploy the latest commit of a branch. The production branch goes to production unless target says otherwise. - deploy_files: Deploy an app from files, no GitHub needed. Send every file of the app; the framework is detected from package.json (static HTML works with no build). Omit project to create a new one named by name; pass project to ship a new version of an existing one. Up to 4 MB in total. - deploy_template: Create a new project from a built-in starter and deploy it, no repository needed. Templates: static (HTML · CSS), react-artifact (React 18 · shadcn/ui), vite-react (Vite · React 19), nextjs (Next.js 16 · React 19). - deploy_artifact: Publish a Claude artifact as a production site on DeployX Sites, with no build server and no key. kind is detected: a React component (default export; TSX/JSX; imports from react, lucide-react, recharts and other npm packages, plus shadcn/ui as @/components/ui/ with 48 components available), a full HTML page, or an SVG. Tailwind classes work. Pass project to publish a new version of an existing site. - get_status_page: A self-contained HTML status page for a project (live URL, recent deployments, visitor errors). Publish it with your own Artifact tool to keep a shareable, living status page; call again to refresh it. - prepare_free_subdomain: Check a free name on is-a.dev or rweb.site and write the exact record pointing at the project, plus a link that opens the registry on GitHub with it filled in. The user submits the pull request themselves; do not open it for them (is-a.dev closes AI-generated pull requests). open-domains has moved off GitHub and only gets a link. - list_stacks: Every framework and language DeployX ships, and the route each takes: sites (live on DeployX Sites, no key), build (built on Vercel), export (files to run elsewhere, including Android via android-twa), agent (MCP clients). Call this before deploying to pick the right tool. - get_hosting: Where projects can run on this server: DeployX Sites (always on, static, no key) and hosted Vercel builds (when the operator switched them on), with per-workspace limits. - get_runtime_errors: What real visitors hit in the last 24 hours: uncaught errors and failed requests grouped by message with counts, plus request latency. Needs the monitor script in the app (added automatically to uploaded HTML). - list_source_files: Files that went into a deployment, optionally filtered by a glob such as **/*.tsx. - read_source_file: The contents of one file exactly as it was deployed. - list_deployments: Recent deployments of a project, newest first. - get_deployment: Status of one deployment, refreshed from the build provider. On error it includes failure_analysis: the cause, the log line that proves it, and fixes. - get_build_logs: Build output for a deployment. - deployment_action: cancel a running build; promote a ready deployment to production; rollback production to an earlier ready deployment; redeploy the same branch. - list_env: Variable names and targets. Values are not returned. - set_env: Create or replace a variable. It is stored encrypted and applies from the next deployment. - delete_env: Remove a variable by name. - list_domains: Custom domains with verification state and the DNS records still needed. - add_domain: Attach a custom domain. Returns the DNS records to create at the registrar. - check_domain: Re-check DNS and ownership for a domain. - data_list_collections: Collections in the project document store, with document counts. - data_query: Documents in a collection. where matches fields exactly, e.g. {"status":"open"}. - data_insert: Add a JSON document to a collection. Collections are created on first insert. - data_update: Merge fields into a document. A field set to null is removed. - data_delete: Remove one document. - create_schedule: Call a path on the production URL on a cron schedule (five fields, UTC). - list_schedules: Schedules with their next and last run. - get_monitoring: Uptime over 24 hours and 7 days, latency percentiles and recent checks of the production URL. - create_webhook: Send deployment and uptime events to an HTTPS URL, as JSON or as Slack or Discord messages. Returns the signing secret once. - export_project: Generate the files to run this project elsewhere. Formats: sites-ci, github-pages, netlify, docker, compose, kubernetes, github-actions, systemd, fly, render, psadt, android-twa. - list_activity: Who changed what, newest first. ## Install the CLI macOS / Linux: curl -fsSL https://deployx.verionx.org/install.sh | sh Windows: irm https://deployx.verionx.org/install.ps1 | iex Requires Node.js 18+. Then: deployx login --token dxp_... Verify: deployx whoami ## What DeployX deploys Ask list_stacks (or GET /api/v1/stacks?q=) before choosing a tool. Routes: sites = DeployX Sites (Static output, live with no key and no card.); build = Built on Vercel (Server frameworks built in your Vercel account.); export = Run anywhere (DeployX writes the files for another platform.); agent = Agents (Any MCP client deploys with your token.). - HTML and CSS (HTML): sites, export. Served as it is on DeployX Sites; export to GitHub Pages, Netlify or nginx. - Claude artifacts (React, HTML, SVG): sites, agent. Compiled at deploy time with shadcn/ui, lucide and Tailwind, then served on DeployX Sites. - Vite (TypeScript): sites, build, export. Publish dist/ on DeployX Sites, build in CI for Sites, or build on Vercel. - React (TypeScript): sites, build, export. A Vite or Create React App build goes to DeployX Sites; Next.js and Remix build on Vercel. - Vue (TypeScript): sites, export. The Vite build in dist/ goes to DeployX Sites or GitHub Pages. - Svelte (TypeScript): sites, export. The Vite build in dist/ goes to DeployX Sites; SvelteKit builds on Vercel. - Solid (TypeScript): sites, export. The Vite build in dist/ goes to DeployX Sites. - Angular (TypeScript): sites, build, export. Detected from package.json; the dist/ build goes to Sites or builds on Vercel. - Astro (TypeScript): sites, build, export. Detected; static dist/ to DeployX Sites, server output built on Vercel. - Gatsby (TypeScript): sites, build, export. Detected; the public/ build serves from DeployX Sites. - Docusaurus (TypeScript): sites, build, export. Detected; the build/ folder serves from DeployX Sites. - VitePress (Markdown): sites, build, export. Detected; the .vitepress/dist build serves from DeployX Sites. - Parcel (JavaScript): sites, build, export. Detected; the dist/ build serves from DeployX Sites. - Hugo (Go templates): sites, export. Publish the public/ folder Hugo writes; DeployX Sites finds it. - Jekyll (Ruby): sites, export. Publish the _site/ folder; DeployX Sites finds it. - Eleventy (JavaScript): sites, export. Publish the _site/ folder; DeployX Sites finds it. - MkDocs (Python): sites, export. Publish the site/ folder MkDocs writes. - Flutter web (Dart): sites, export. Publish build/web; DeployX serves it cross-origin isolated automatically. Android: export as a Trusted Web Activity. - Rust to WebAssembly (Rust): sites, export. Publish the wasm-pack or Trunk output; .wasm is served with its own type. - C and C++ with Emscripten (C, C++): sites, export. Publish the Emscripten output; threaded builds are served cross-origin isolated. - Godot web export (GDScript): sites. Publish the web export; threaded exports are served cross-origin isolated. - Next.js (TypeScript): build, export. Imported from GitHub, built on Vercel, redeployed on every push; Docker export runs it anywhere. - Nuxt (TypeScript): build, export. Detected and built on Vercel; Docker export runs the Nitro server. - SvelteKit (TypeScript): build, export. Detected and built on Vercel; Docker export runs the Node build. - Remix (TypeScript): build, export. Detected and built on Vercel. - React Router (TypeScript): build, export. Framework mode detected and built on Vercel. - TanStack Start (TypeScript): build, export. Detected and built on Vercel. - Express (JavaScript): build, export. Built on Vercel, or exported to Docker, Fly.io, Render or systemd. - Hono (TypeScript): build, export. Built on Vercel, or exported as a container. - Fastify (TypeScript): build, export. Built on Vercel, or exported as a container. - NestJS (TypeScript): build, export. Built on Vercel, or exported to Docker and Kubernetes. - Koa (JavaScript): export. Detected; exported to Docker, Compose, Fly.io, Render or systemd. - FastAPI (Python): export. Detected; exported to Docker, Compose, Kubernetes, Fly.io, Render or systemd with uvicorn. - Django (Python): export. Detected; exported with gunicorn to Docker, Kubernetes, Fly.io, Render or systemd. - Flask (Python): export. Detected; exported with gunicorn to any container host. - Go (Go): export. go.mod detected; a distroless container, Kubernetes, Fly.io, Render or systemd. - Any Node.js server (JavaScript): export. A start script is enough: exported to a container, Compose, Fly.io, Render or systemd. - Windows desktop apps (MSI, EXE): export. A GitHub release installer packaged with PSAppDeployToolkit for Intune or ConfigMgr. - Android apps from a PWA (Kotlin, via Bubblewrap): export. Any project with a web manifest becomes a Trusted Web Activity you build into an .aab for Google Play. - Claude Code (MCP): agent. One command adds DeployX; the agent deploys, reads errors and rolls back. - Claude Desktop (MCP): agent. Add DeployX as a custom connector. - Cursor (MCP): agent. Add DeployX to ~/.cursor/mcp.json. - VS Code (MCP): agent. Add DeployX to .vscode/mcp.json for Copilot agent mode. - Any MCP client (JSON-RPC): agent. Streamable HTTP, stateless JSON-RPC, a bearer token. ## Typical workflow Ship files you wrote (no repository needed): 1. deploy_files { "name": "my-app", "files": [{ "path": "index.html", "content": "..." }] } (or POST /api/v1/deploy). Up to 4 MB; binary files as base64 with "encoding": "base64". The framework is detected from package.json; plain HTML needs no build. 2. To ship a new version, call deploy_files again with "project": "". 3. Or start from a starter: deploy_template { "template": "static" | "vite-react" | "nextjs" }. Ship a GitHub repository: 1. inspect_repository (or: POST /api/v1/github/inspect { "repo": "owner/name" }) to see the detected framework. 2. create_project { "repo": "owner/name" }: imports and starts the first production deploy. Then, either way: - Poll get_deployment until status is "ready" (live URL in "url") or "error". - On "error", read failure_analysis (cause, evidence line, fixes) before get_build_logs. - Read back what is live with list_source_files and read_source_file. - See what real visitors hit with get_runtime_errors (uploaded pages report automatically). - Production rollback: deployment_action { "action": "rollback" } on an earlier ready production deployment. Where builds run: get_hosting says whether this DeployX hosts projects without keys. When hosting is off, the user connects a Vercel token under Settings → Providers (deploys fail with HTTP 409 until then). Private GitHub repositories need a GitHub token there too. ## REST Same operations under https://deployx.verionx.org/api/v1, with a reference at https://deployx.verionx.org/docs#api. Errors: { "error": { "message": "..." } } with a meaningful HTTP status. ## Deploy anywhere GET /api/v1/projects//export?format= returns files to run the project elsewhere.