Build it in your agent. Ship it on MonstarX.

Connect Claude Code, Codex, Cursor or any MCP client. Push the app you built with one sentence — MonstarX runs it, publishes it to your domain, and your whole team keeps building it by chat.

https://uat.monstarx.app/mcp

Works with

Claude Code · Codex · Cursor · Grok · Gemini CLI · VS Code · Windsurf · Claude · ChatGPT · Lovable · Bolt · v0 · Replit · Figma · Zed · Cline · Kiro · and any MCP client

Read as Markdown Create a free account

01Why push your app to MonstarX

Coding agents are brilliant at writing an app and leave the rest to you: somewhere to run it, a link to show people, a domain, a database that survives, someone to test it, and a way for the people who are not developers to keep changing it. MonstarX is that rest. Connect your agent once and every app it builds is one sentence away from being live — and from being something your whole team can keep building.

Live in one sentence

“Push this to MonstarX” gives you a running preview and a link to share in about a minute. No hosting account, no CI, no DNS.

Publish on your domain

One call puts it on its own address with HTTPS, and on your custom domain. Every push is a version you can publish or roll back.

Anyone can keep building

Founders, designers and PMs change the app by chatting with MonstarX or clicking on the page in Edit mode — no terminal, no pull request.

A real backend when you want one

MonstarX apps come with a database, sign-ups, email, file storage, payments and AI. Ask for them; nothing to set up.

Tested like a customer would

MonstarX clicks through the app in a real browser after big changes, fixes what fails and shows you the recording.

Both ways, never overwritten

Pull what MonstarX changed back into your agent, push your work up again. A revision check stops either side overwriting the other.

Zero tokens for the files

Whole projects move as one archive through your shell, never through the model, so a 300-file app costs the same few tokens as a small one.

Works with every tool

Claude Code, Codex, Cursor, Grok, Gemini, VS Code, Windsurf, ChatGPT, the Claude app — and Lovable, Bolt, v0, Replit and Figma can send their work too.

02How it works

  1. Connect once. Add https://uat.monstarx.app/mcp to your agent and sign in with your MonstarX account in the browser (or use an API key).
  2. Say it. “Push this app to MonstarX.” The agent asks MonstarX for a one-time upload link and sends the folder with tar and curl — node_modules, build output and .env files stay on your machine.
  3. MonstarX takes it from there. It checks what the app is (the same check as Projects → Import), runs it with its own packages, and answers with the project link, what it found and which keys the app still needs.
  4. Keep going, anywhere. Chat with MonstarX in the workspace, or keep working in your agent and push again. Publish when you are ready.

No shell where you work (a chat app, Lovable, Bolt, v0, Figma)? The same connection imports the app from its GitHub repository, writes small changes directly, or has MonstarX build something new from a description and pictures.

03Quick start

The server lives at https://uat.monstarx.app/mcp. Add it to your agent (each one is below), sign in once in the browser, then ask:

Push this app to MonstarX and give me the link.

Or let the agent set itself up — paste this into it:

Connect yourself to MonstarX's MCP server: read https://uat.monstarx.app/docs/mcp.md and follow the setup for the agent you are. Then push this app to MonstarX and give me the project link.

04Instructions for AI agents

If you are an AI agent asked to connect to MonstarX or to send it an app, do this:

  1. Work out which client you run in and use its setup from Set up your agent: Claude Code claude mcp add --transport http --scope user monstarx https://uat.monstarx.app/mcp; Codex codex mcp add monstarx --url https://uat.monstarx.app/mcp then codex mcp login monstarx; Grok Build grok mcp add --transport http monstarx https://uat.monstarx.app/mcp; Gemini CLI gemini mcp add --transport http monstarx https://uat.monstarx.app/mcp; Cursor, Windsurf and VS Code through their MCP config file. If the user gave you an API key (it starts with bck_), use the API-key variant instead of the browser sign-in.
  2. The browser sign-in needs the user once: tell them a browser window will ask them to sign in to MonstarX and press Allow (in Claude Code they run /mcp → monstarx → Authenticate). New servers usually load in a new session: say so if the tools do not appear.
  3. Check the connection with get_account.
  4. To push the current app: call prepare_upload (with project_id to update an existing project), then run the returned command with your shell tool from the app's root folder, the one with package.json. The command's output is JSON: report summary and projectUrl to the user and keep revision.
  5. Without a shell: import_from_github when the app is on GitHub, push_files for a few small files, create_project to have MonstarX build something new.
  6. On later pushes pass expected_revision. If the push is refused because the project changed in MonstarX, run download_project into a scratch folder, merge the changes, and push with the new revision. Never pass force unless the user asks.
  7. Never upload .env files or print secret values. Use set_secrets only with values the user gave you or asked you to copy from their local .env.
  8. Publish (publish_project) and paid work (send_message, create_project, rebuilds) only when the user asks for them.

05Set up your agent

Coding agents
Chat apps
App builders & design

The CLI, the desktop app’s Code tab and the IDE extensions share one setup.

bash
claude mcp add --transport http --scope user monstarx https://uat.monstarx.app/mcp

Then run /mcp in Claude Code, pick monstarx and choose Authenticate (or run claude mcp login monstarx). Your browser opens MonstarX: sign in and press Allow.

  • Push this app to MonstarX and give me the link.
  • Push my changes to MonstarX.
  • Pull the latest version from MonstarX and merge it with my changes.
  • Ask MonstarX to add Stripe checkout, then pull its changes.
  • Publish it on MonstarX.

--scope user makes MonstarX available in every folder; leave it out to add it to the current project only.

06From other builders and design tools

MonstarX takes work from wherever it was made. Pick the road that fits the tool:

Where the work isHow it gets to MonstarXTool
A folder on your machine (Claude Code, Codex, Cursor, Grok Build, Gemini…)The agent packs the folder and uploads it through a one-time linkprepare_upload
A GitHub repository (Lovable, Bolt, v0, Replit and Figma Make all sync there)MonstarX reads the repository itself; nothing passes through the modelimport_from_github
A zip (Bolt, v0, Replit, Figma Make downloads)Projects → Import → Upload a .zip, or ask an agent to push the unzipped folderImport dialog / prepare_upload
An idea, a spec or a design (a chat, Figma, a screenshot)MonstarX builds a new app from the description and picturescreate_project
A few edits from a chatWritten straight into the project as a new versionpush_files

Figma: the Figma agent and Figma Make can call MonstarX directly as a custom connector; coding agents can read a frame with Figma’s own MCP server and hand it to MonstarX with create_project (image_urls for the frame’s pictures, when they are public links) or build it and push it.

07Workflows

Push a new app. prepare_upload without project_id returns a link and a command. From the app’s root folder the command runs:

bash
COPYFILE_DISABLE=1 tar -czf - --exclude='node_modules' --exclude='.git' --exclude='.env' … . \
  | curl -sS --fail-with-body -X PUT -H 'Content-Type: application/gzip' --data-binary @- 'https://uat.monstarx.app/api/mcp/upload/bct_…'

The answer is JSON with the project’s address, what was found (framework, packages, keys the app reads), what was left out, and the revision. Windows gets the same as a PowerShell command using tar.exe and curl.exe.

Push a new version. prepare_upload with project_id and expected_revision. The project’s files are replaced by the upload as one new version (in Versions as “Pushed from Claude Code”, with a note in the chat so the owner and MonstarX’s builder know). The preview picks the changes up; new packages or pictures restart it.

Bring MonstarX’s changes home. download_project returns a link and curl … | tar -xzf -. A MonstarX app arrives as a standalone codebase (npm install && npm run dev); an imported app arrives as it is. Keep its revision for the next push.

Keep building in MonstarX. send_message with mode build (change the app), chat (questions, no changes) or plan (questions first), with pictures in image_urls if they help. Then get_messages with after_message_id and wait_seconds follows the reply until it is done.

Publish. publish_project builds and deploys the current version. Vite apps and MonstarX apps publish on MonstarX; Next.js, Remix, Astro, Nuxt and SvelteKit apps run in the preview but are published by the host they already have.

Secrets. Imported apps often read keys (VITE_SUPABASE_URL, STRIPE_SECRET_KEY…). The push result lists the ones the code cannot do without; set_secrets stores them encrypted and restarts the preview.

08Tools

ToolWhat it doesArguments
get_accountThe account this connection acts for, its plan and what is left of its usage allowance.
list_projectsYour projects, most recently changed first, with ids and links.query, limit
get_projectOne project at a glance: kind, files revision, what MonstarX is doing, preview, publish status, missing secrets.project_id
prepare_uploadA single-use upload link and the shell command that pushes the current folder, as a new project or a new version.project_id, name, folder, expected_revision, force, rebuild
import_from_githubBring in an app from a GitHub repository; MonstarX reads it itself (how Lovable, Bolt, v0 and Figma Make send whole apps).repository, branch, folder, rebuild
push_filesWrite a few text files directly (small edits, or clients without a shell).project_id, name, files, delete, expected_revision, message
create_projectHave MonstarX build a new app from a description and pictures (a spec, a mockup, a Figma frame).prompt, name, mode, image_urls
read_filesList a project's files, or read some of them.project_id, paths
download_projectA single-use download link and the command that unpacks the project here.project_id
send_messageAsk the project's MonstarX builder to build, answer or plan, as if you typed in the workspace, with pictures if you like.project_id, message, mode, image_urls
get_messagesRead the project's chat, optionally waiting for MonstarX to finish replying.project_id, after_message_id, wait_seconds, limit
stopStop what MonstarX is running in a project.project_id
publish_projectPut the current version live on its MonstarX address and custom domain.project_id
set_secretsStore the environment variables the app reads, encrypted, in Backend → Secrets.project_id, secrets
get_logsThe preview's state and its dev server's output; can start a stopped preview.project_id, start, lines

Every tool acts on projects you own. Tools that only read are marked read-only, so clients can run them without asking; publishing is marked as reaching the open web, so clients ask first.

09More clients

Any client with remote MCP works. Where these keep their servers (use https://uat.monstarx.app/mcp):

ClientWhere to add MonstarX
Zedsettings.json → "context_servers": { "monstarx": { "url": "…/mcp" } }; signs in with OAuth unless you add an Authorization header
JetBrains AI AssistantSettings → Tools → AI Assistant → MCP: { "mcpServers": { "monstarx": { "url": "…/mcp" } } }
Junie (JetBrains)~/.junie/mcp/mcp.json with url (and headers), then Authorize
ClineMCP servers → remote: "type": "streamableHttp", url, headers
Roo Code"type": "streamable-http", url, headers
Kiro~/.kiro/settings/mcp.json with url; OAuth by itself
Ampamp mcp add monstarx …/mcp; OAuth by itself
opencode"mcp": { "monstarx": { "type": "remote", "url": "…/mcp" } }, then opencode mcp auth monstarx
Goose~/.config/goose/config.yaml: type: streamable_http, uri: …/mcp
WarpMCP servers → add by URL, with a headers field for a key
Factory Droiddroid mcp add monstarx …/mcp --type http --header "Authorization: Bearer bck_…"
DevinCustomize → MCPs → HTTP, with the address and an Authorization header
AugmentRemote MCP (HTTP) with the address; OAuth or headers
ContinuemcpServers: - name: monstarx, type: streamable-http, url: …/mcp
Perplexity+ Custom connector → Remote, with OAuth or an API key (Pro, Max, Enterprise)
Mistral Le ChatConnectors → Add Connector → Custom MCP Connector, with a Bearer token
Microsoft Copilot StudioAdd an existing MCP server (Streamable HTTP), with OAuth or an API key header

10What runs on MonstarX

Your codeWhat happensPublishing
MonstarX export coming homeA full MonstarX app again: database, accounts, email, storageOn MonstarX
Vite + React / Vue / Svelte, CRA (every Lovable, Bolt and v0 export)Runs as it is, with its own packagesOn MonstarX, as a static site
Next.js, Remix, React Router, Astro, Nuxt, SvelteKit, TanStack StartRuns as it is in the preview, behind MonstarX’s proxyBy the host it already has
React Native, Expo, Flutter, Django, Rails, Laravel, Go…Cannot run in a browser sandbox; rebuild: true has MonstarX study it and rebuild it as a web appOn MonstarX, after the rebuild
A library, a CLI, a datasetRefused, with the reason

The checks are the same as Projects → Import. An imported app runs on its own framework; to get MonstarX’s database, accounts and one-click backend, ask MonstarX to rebuild it on its stack.

11Limits

  • An upload: 50 MB compressed; 3,000 text files and 12 MB of code; images and other files up to 10 MB each and 800 in all.
  • push_files: 200 files, 400 KB each, 2 MB per call. image_urls: 6 pictures or PDFs, 15 MB each, public https links.
  • Upload and download links work once, for 15 minutes.
  • A push that would delete most of a project (fewer than a quarter of its files) is refused unless force is passed: that is almost always the wrong folder.
  • A push is refused while MonstarX is building in the project; get_project shows when it is done.
  • API keys: 20 per account. Browser sign-ins refresh for 90 days of use.
  • MonstarX’s own work (send_message, create_project, rebuilds) uses your plan’s allowance; pushing, importing, downloading, reading and publishing do not.

12Security and privacy

  • Sign in with OAuth 2.1 (PKCE, rotating refresh tokens) or an API key. MonstarX stores only a hash of each key and token; a key is shown once, when it is made.
  • See and revoke keys and connected agents in Settings → API & MCP. Resetting your password disconnects every agent that signed in with the browser.
  • Only a bearer token signs in to the MCP server — never your browser session — so a web page cannot act through it.
  • The upload command leaves out .env files; if one arrives anyway, MonstarX does not store it and says so. Keep keys in Secrets.
  • Upload and download links are single-use, bound to your account and one project, and expire in 15 minutes.
  • Agents act as you: they can change and publish your projects. Connect only agents you use, and read what they ask before you allow them.

13Troubleshooting

  • The tools do not show up. Most agents load MCP servers when a session starts: start a new one. In Claude Code, /mcp shows whether MonstarX is connected.
  • 401 or “sign in”. The sign-in lapsed or the key was revoked: authenticate again (/mcp in Claude Code, codex mcp login monstarx), or make a new key.
  • The agent says a tool call was cancelled. Headless runs (codex exec, CI) refuse tools that need approval; publishing always asks. Run it interactively, or approve it.
  • curl: command not found / tar fails on Windows. Use command_windows_powershell from prepare_upload’s answer: Windows 10 and 11 ship tar.exe and curl.exe.
  • Codex cannot upload. Its sandbox blocks the network: approve the command, or allow network access.
  • “This upload has 3 files and the project has 214”. The command ran in the wrong folder; run it where package.json is.
  • “The files in MonstarX changed since your copy was taken”. Someone built in MonstarX after your last push or download. Download, merge, push with the new revision.
  • A private repository is not found. Connect GitHub in MonstarX (Settings → Integrations) so it can read it.
  • The app does not start. get_logs shows the preview’s output (install errors, a missing key). Set missing keys with set_secrets.

14For developers: the protocol

The server speaks the Model Context Protocol over Streamable HTTP (protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05), stateless: each POST to https://uat.monstarx.app/mcp carries one JSON-RPC message and gets JSON back. It offers tools only.

bash
curl -s https://uat.monstarx.app/mcp \
  -H 'Authorization: Bearer bck_your_key' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_projects","arguments":{}}}'

OAuth discovery: https://uat.monstarx.app/.well-known/oauth-protected-resource/mcp (RFC 9728) and https://uat.monstarx.app/.well-known/oauth-authorization-server (RFC 8414), dynamic client registration at https://uat.monstarx.app/oauth/register (RFC 7591), and client ID metadata documents. Public clients with PKCE (S256); loopback redirects on any port. Scope: monstarx.