App Dropper

MCP for App Dropper

Ship your build without leaving your AI editor.

Connect App Dropper to Claude Code, Cursor or Copilot. Your coding agent can upload APK and IPA builds and return the tester install link in the same conversation.

Upload the latest Android build to App Dropper.

appdropper · upload_build

Uploaded Acme 2.4.1 (318).

Install: https://appdropper.io/acme?build=Xb81qV0cR2mT

Testers on Acme have been notified.

Your build is already on your machine

The agent that just built it can send it to App Dropper too. No browser tab, no dragging files, no copying the link out of a dashboard. The server runs locally next to your build output, uploads with the same code as the appdropper CLI, and gives the agent the version, build number and install URL to hand back to you.

Set it up in two commands

  1. 1. Sign in once

    Opens your browser to approve this machine. The MCP server reuses this login.

    bash
    npx appdropper login
  2. 2. Add it to your editor

    Claude Code:

    bash
    claude mcp add appdropper -s user -- npx -y @appdropper/mcp

    Cursor, in ~/.cursor/mcp.json:

    json
    {
      "mcpServers": {
        "appdropper": { "command": "npx", "args": ["-y", "@appdropper/mcp"] }
      }
    }

    VS Code with Copilot uses a different format (servers, not mcpServers). Configs for VS Code, Copilot CLI and other clients.

  3. 3. Ask

    “Upload build/app/outputs/flutter-apk/app-release.apk to App Dropper and give me the install link.”

Requires Node.js 20 or newer.

Six tools, one of which uploads

upload_build

Uploads a local .apk or .ipa, waits for processing, and returns the version, build number and install link. Testers are notified.

find_builds

Finds .apk and .ipa files in the project, newest first. Read-only.

list_builds

Recent builds of an app, with their install links.

get_build

One build's details, release notes and install link.

list_apps

The apps your credential can upload to.

whoami

Checks the sign-in. Useful when setup isn't working.

Inputs, results and every error code are in the MCP reference.

Signing in

appdropper login covers all your apps, including new ones. The first upload of a new app creates it, the same as dropping it on the dashboard. You can limit a login to selected apps on the approval page.

Prefer an explicit token? Create one under Settings → API tokens, give it only the apps it needs, and pass it as APPDROPPER_TOKEN from your environment. Don’t commit it to an mcp.json.

Uploads go through your account and count against your plan like any other upload. If a build is over your plan’s size limit, the agent tells you so and gives you the upgrade link.

What to ask, by stack

Flutter

“Build the Android release APK and upload it to App Dropper.”

The agent runs flutter build apk --release as it normally would, then uploads build/app/outputs/flutter-apk/app-release.apk.

React Native

“Upload the release APK to App Dropper with release notes from the last commit.”

It reads the commit message with git log and passes it as release_notes. Testers see it on the install page and in their email.

Native Android

“Send the latest release build to App Dropper.”

If it doesn’t know the output path, it calls find_builds and picks the newest release APK, e.g. app/build/outputs/apk/release/app-release.apk.

iOS

“Upload the IPA I just exported.”

It finds the newest .ipa and uploads it. The IPA still has to be signed ad hoc or enterprise for your testers’ devices. App Dropper doesn’t re-sign.

Afterwards, “What’s the link?” gets an answer straight away, and “What were the last three builds I sent?” calls list_builds.