CloudCrane

Ask your assistant for an app and it lands on your phone: offline, with what you save kept on the phone.

Hosted MCP Server

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

Installs into Claude Code, Codex, Cursor and more

Documentation

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. 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.

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.

Gemini CLI (an extension, from this repo):

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
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
get_spec_guideHow to write an app spec: the format, the catalog, worked examples
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.

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."

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.