Skip to main content

MCP Server for DroidRun

Project description

DroidRun MCP Server

A Model Context Protocol (MCP) server for DroidRun, enabling LLMs (like Claude and Gemini) to control Android devices directly.

Features

  • Natural Language Control: "Open Settings and turn on Wi-Fi".
  • Visual Understanding: Analyzes screenshots to navigate the UI.
  • Trajectory Management: Automatically saves session history and screenshots.
  • Safe Execution: Runs locally on your machine.

Prerequisites

  • Python 3.10+
  • ADB installed and running (adb devices should show your device).
  • DroidRun core library (installed in the same environment).

Installation (Development)

Since this package is currently in development, you will run it from the source code.

  1. Clone the repository:

    git clone https://github.com/droidrun/droidrun-mcp.git
    cd droidrun-mcp
    
  2. Install dependencies: Using uv (recommended) or pip:

    # Install with uv (including google/anthropic support)
    uv pip install -e ".[google,anthropic]"
    
    # OR using pip
    pip install -e ".[google,anthropic]"
    

    Note: Ensure droidrun is also installed or accessible in your environment.

Usage

1. Run the Server

You can run the server directly using fastmcp:

fastmcp run droidrun-mcp/server.py

2. Configure Your Client

Add the server to your MCP client configuration (e.g., claude_desktop_config.json or Gemini CLI config).

Important: You must provide your API keys and (optionally) configuration paths via environment variables.

{
  "mcpServers": {
    "droidrun": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/absolute/path/to/droidrun-mcp/droidrun-mcp/server.py"
      ],
      "env": {
        "GOOGLE_API_KEY": "your-key-here",
        "OPENAI_API_KEY": "your-key-here",
        "DROIDRUN_TRAJECTORY_PATH": "~/.droidrun-mcp/trajectories"
      }
    }
  }
}

Environment Variables

Variable Description Default
DROIDRUN_TRAJECTORY_PATH Where to save logs/screenshots. ~/.droidrun-mcp/trajectories
DROIDRUN_CONFIG_PATH Path to a custom config.yaml. config.yaml (in package)
GOOGLE_API_KEY Required for Gemini models. -
OPENAI_API_KEY Required for OpenAI models. -

Available Tools

  • execute_task(instruction): Executes a natural language command on the device.
    • instruction: "Open YouTube and search for cats"
    • apk_path: (Optional) Only for testing specific APKs.
  • get_trajectory(session_id): Retrieves the event log for a session.
  • get_screenshots(session_id): Gets screenshots from a session.
  • get_single_screenshot(session_id, step): Gets a specific screenshot.

Development

To verify the server without a client, you can run the test script:

python3 droidrun-mcp/test_client.py

Future Plans

  • PyPI Publishing: We plan to publish this package to PyPI soon. Once published, you will be able to run it directly with uvx:

    uvx droidrun-mcp
    

    Configuration will look like this:

    {
      "mcpServers": {
        "droidrun": {
          "command": "uvx",
          "args": ["droidrun-mcp"],
          "env": {
            "GOOGLE_API_KEY": "your-key-here",
            "OPENAI_API_KEY": "your-key-here",
            "DROIDRUN_TRAJECTORY_PATH": "~/.droidrun-mcp/trajectories",
            "DROIDRUN_CONFIG_PATH": "/path/to/your/config.yaml"
          }
        }
      }
    }
    
  • Docker Support: A Docker container will be provided for easier deployment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

droidrun_mcp-0.1.1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

droidrun_mcp-0.1.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file droidrun_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: droidrun_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for droidrun_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 60a17043472d1f35b03cf16d4c6b4fdea7361457493f2444bb7affb472ba760b
MD5 0178703e461b8903ff25e98c7d2bbde1
BLAKE2b-256 4eca48f731b672821f5f381073cb10653a7f21e0d660be1e726d49a2f28e90e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for droidrun_mcp-0.1.1.tar.gz:

Publisher: publish.yml on droidrun/droidrun-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file droidrun_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: droidrun_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for droidrun_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 927320376f6d8cad3d4f8a92fd65af7f28ef9f363b22aa0456012816ef2c323b
MD5 38afdc31cd6bd94ca052e3fab522b2d4
BLAKE2b-256 9d9f5ac4c7f814e1b9ec5971ae8528c0bd135115f370e137191a3e419e0b9928

See more details on using hashes here.

Provenance

The following attestation bundles were made for droidrun_mcp-0.1.1-py3-none-any.whl:

Publisher: publish.yml on droidrun/droidrun-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page