CloudCrane

어시스턴트에게 앱을 요청하면 휴대폰에 설치됩니다. 오프라인에서도 사용할 수 있으며, 저장한 내용은 휴대폰에 보관됩니다.

호스팅형 MCP 서버

npx add-mcp 'https://cloudcrane.ai/api/apps/mcp'

Claude Code, Codex, Cursor 등에 설치됩니다

문서

CloudCrane MCP

CloudCrane MCP connector – tool definition quality and endpoint health on Glama

Ask your assistant for an app, and it lands on your phone's home screen.

Your assistant writes a small app (a habit tracker, a spending log, a workout timer) and publishes it with CloudCrane. Open the link on your phone, add it to your home screen: its own icon, full screen, offline.

  • Your data stays on your phone. An app reaches only the sites it lists, and you see them first.
  • Every app has a blueprint. What it does, keeps and promises, in plain words.
  • Checked, and with testing on, proven. No password or card fields, no undeclared camera or location; tests run in a real browser before a version is kept.
  • Every version is kept. Change it by asking; go back to any version.
  • Build your own from anyone's. Public apps are on Explore.

Connect

One remote MCP server, Streamable HTTP (stateless, no SSE stream), with OAuth sign-in and dynamic client registration. Nothing to install.

https://cloudcrane.ai/api/apps/mcp

(https://cloudcrane.ai/api/build/mcp, the older address, is the same server.)

Add the URL with no key. The client opens a CloudCrane page where you sign in (Google or an emailed code) and pick your workspace. Once you connect, the assistant can see, make, change, roll back and delete your apps. You can sign an assistant out at any time in the dashboard.

Sign-in has been tested with Claude, ChatGPT, Cursor and Cline. The settings for Claude Code and Antigravity below follow their own docs and haven't been tried end to end yet. Exact settings for each are in llms-install.md, which an agent can follow to set it up.

Claude: Settings → Connectors → Add custom connector with the URL above.

ChatGPT: add a custom MCP server with the URL above and choose OAuth.

Claude Code:

claude mcp add --transport http cloudcrane https://cloudcrane.ai/api/apps/mcp

Then type /mcp in Claude Code and pick cloudcrane to sign in.

Cursor (~/.cursor/mcp.json):

{ "mcpServers": { "cloudcrane": { "url": "https://cloudcrane.ai/api/apps/mcp" } } }

Cline (cline_mcp_settings.json):

{ "mcpServers": { "cloudcrane": { "transport": { "type": "streamableHttp", "url": "https://cloudcrane.ai/api/apps/mcp" } } } }

Claude plugin: this repo is also a plugin. It adds nothing but the connection to the server above: no hooks, scripts or local code. What you ask for, and the apps your assistant writes, go to CloudCrane so it can check and host them; what you save in an app stays on your phone.

Antigravity (Google's coding app, and agy in a terminal), in ~/.gemini/config/mcp_config.json:

{ "mcpServers": { "cloudcrane": { "serverUrl": "https://cloudcrane.ai/api/apps/mcp" } } }

Start a new session so it connects. Antigravity signs in through dynamic client registration, so no client ID is needed; in the app, tap Authenticate next to it under Customizations → Installed → MCP Servers. See Antigravity's MCP guide.

Gemini CLI (an extension, from this repo; Antigravity's agy has replaced Gemini CLI):

gemini extensions install https://github.com/cloudcrane-dev/cloudcrane-mcp

Then run /mcp auth cloudcrane in Gemini CLI to sign in.

Tools

ToolWhat it does
list_appsYour apps, with their install links
get_appAn app's code
find_in_appThe lines of an app's code that match, to change part of a big app
look_at_appA screenshot of any version as a phone opens it, with what its code threw
try_appRuns a few taps and checks in a real browser, against a version or unpublished code; nothing stored
diff_versionsWhat changed between two versions: the blueprint by section, and the code
get_problemsWhat an app's code threw on phones, in the last 30 days
get_specAn app's blueprint and tests
list_versionsEvery version, and which one is current
list_remixes, get_remixApps you chose to build your own of on Explore
search_explore, remix_appFinds public apps on Explore, and starts yours from one
get_statsVisits, upvotes, saves, rating and remixes for your apps
get_connectionsWhich of your apps take things from others, and which hand them over
get_spec_guideHow to write an app spec: the format, the catalog, worked examples
get_design_guide, get_port_guideHow to make it feel like a phone app; how to bring an existing Android, iPhone or web app
check_publishA dry run of a publish: every problem, nothing stored
publish_appA new app, with its blueprint; returns its install link
update_appA new version: the whole file, or just the edits
rename_appA new name; the address stays
rollback_appServes an earlier version again
delete_appDeletes an app and every version
publish_spec, update_specAn app from a Blackbox spec: no code, built the same every time

When it connects, the server tells the assistant how to write an app that works here. Tools that change apps are marked so, and clients like Claude ask before each call.

It also offers prompts, which Claude shows in its / menu: build-app, fix-problems, port-app, remix and connect-apps.

Try

  1. "Make me a habit tracker for water, reading and the gym, and put it on my phone."
  2. "Add a 'walk 20 minutes' habit to my Habits app."
  3. "My packing list app: go back to the version from before the last change."
  4. "Is there already a recipe app on Explore I could start from?"
  5. "Let my recipe app send its ingredients to my shopping list."

Things that look like a broken server

  • 406: MCP requires Accept: application/json, text/event-stream on every POST, even though this server never sends a stream.
  • 405 on GET: the server is stateless and offers no SSE stream, so only POST is allowed. A client that silently falls back to SSE connects but lists no tools.
  • 403: a request from a browser (any request with an Origin header) is refused. Call it from a server or a desktop client.

Links

This repository holds documentation and the registry entry (server.json), not the server's source.