Skip to main content
Glama

Phone MCP Plugin

by hao-cyber
Apache 2.0
44
  • Apple
  • Linux

📱 电话 MCP 插件

下载

🌟 强大的 MCP 插件,可让您通过 ADB 命令轻松控制您的 Android 手机。

例子

  • 浏览器根据当日天气,自动选择播放网易云音乐,无需确认播放\_mucic\_x2
  • 从通讯录里给郝打电话。如果他没接,就发短信让他来101会议室。 呼叫短信

中文詳細

⚡ 快速入门

📥 安装

# Run directly with uvx (recommended, part of uv, no separate installation needed) uvx phone-mcp # Or install with uv uv pip install phone-mcp # Or install with pip pip install phone-mcp

🔧 配置

AI助手配置

在您的 AI 助手配置中进行配置(Cursor、Trae、Claude 等):

{ "mcpServers": { "phone-mcp": { "command": "uvx", "args": [ "phone-mcp" ] } } }

或者,如果您使用 pip 安装:

{ "mcpServers": { "phone-mcp": { "command": "/usr/local/bin/python", "args": [ "-m", "phone_mcp" ] } } }

重要提示:上述配置中的路径/usr/local/bin/python是 Python 解释器的路径。您需要根据系统上 Python 的实际安装位置进行修改。以下是如何在不同操作系统上查找 Python 路径:

Linux/macOS :在终端中运行以下命令:

which python3

或者

which python

Windows :在命令提示符(CMD)中运行:

where python

或者在 PowerShell 中:

(Get-Command python).Path

确保将配置中的/usr/local/bin/python替换为完整路径,例如在 Windows 上它可能是C:\Python39\python.exe

注意:对于 Cursor,请将此配置放在~/.cursor/mcp.json

用法:

  • 在 Claude 对话中直接使用命令,例如:
    Please call contact hao

⚠️ 使用前,请确保:

  • ADB 已正确安装和配置
  • 您的 Android 设备上已启用 USB 调试
  • 设备通过 USB 连接到计算机

🎯 主要特点

  • 📞通话功能:拨打电话、结束通话、接听来电
  • 💬消息传递:发送和接收短信,获取原始消息
  • 👥联系人:访问手机联系人,通过自动化 UI 交互创建新联系人
  • 📸媒体:截图、屏幕录制、媒体控制
  • 📱应用程序:启动应用程序、启动具有意图的特定活动、列出已安装的应用程序、终止应用程序
  • 🔧系统:窗口信息、应用程序快捷方式
  • 🗺️地图:通过电话号码搜索兴趣点
  • 🖱️ UI 交互:点击、滑动、输入文本、按键
  • 🔍 UI 检查:通过文本、ID、类或描述查找元素
  • 🤖 UI 自动化:等待元素,滚动查找元素
  • 🧠屏幕分析:结构化的屏幕信息和统一的交互
  • 🌐 Web 浏览器:在设备的默认浏览器中打开 URL
  • 🔄 UI 监控:监控 UI 变化并等待特定元素出现或消失

🛠️ 要求

  • Python 3.7+
  • 已启用 USB 调试的 Android 设备
  • ADB 工具

📋 基本命令

设备和连接

# Check device connection phone-cli check # Get screen size phone-cli screen-interact find method=clickable

沟通

# Make a call phone-cli call 1234567890 # End current call phone-cli hangup # Send SMS phone-cli send-sms 1234567890 "Hello" # Get received messages (with pagination) phone-cli messages --limit 10 # Get sent messages (with pagination) phone-cli sent-messages --limit 10 # Get contacts (with pagination) phone-cli contacts --limit 20 # Create a new contact with UI automation phone-cli create-contact "John Doe" "1234567890"

媒体和应用程序

# Take screenshot phone-cli screenshot # Record screen phone-cli record --duration 30 # Launch app (may not work on all devices) phone-cli app camera # Alternative app launch method using open_app (if app command doesn't work) phone-cli open_app camera # Close app phone-cli close-app com.android.camera # List installed apps (basic info, faster) phone-cli list-apps # List apps with pagination phone-cli list-apps --page 1 --page-size 10 # List apps with detailed info (slower) phone-cli list-apps --detailed # Launch specific activity (reliable method for all devices) phone-cli launch com.android.settings/.Settings # Launch app by package name (may not work on all devices) phone-cli app com.android.contacts # Alternative launch by package name (if app command doesn't work) phone-cli open_app com.android.contacts # Launch app by package and activity (most reliable method) phone-cli launch com.android.dialer/com.android.dialer.DialtactsActivity # Open URL in default browser phone-cli open-url google.com

屏幕分析与交互

# Analyze current screen with structured information phone-cli analyze-screen # Unified interaction interface phone-cli screen-interact <action> [parameters] # Tap at coordinates phone-cli screen-interact tap x=500 y=800 # Tap element by text phone-cli screen-interact tap element_text="Login" # Tap element by content description phone-cli screen-interact tap element_content_desc="Calendar" # Swipe gesture (scroll down) phone-cli screen-interact swipe x1=500 y1=1000 x2=500 y2=200 duration=300 # Press key phone-cli screen-interact key keycode=back # Input text phone-cli screen-interact text content="Hello World" # Find elements phone-cli screen-interact find method=text value="Login" partial=true # Wait for element phone-cli screen-interact wait method=text value="Success" timeout=10 # Scroll to find element phone-cli screen-interact scroll method=text value="Settings" direction=down max_swipes=5 # Monitor UI for changes phone-cli monitor-ui --interval 0.5 --duration 30 # Monitor UI until specific text appears phone-cli monitor-ui --watch-for text_appears --text "Welcome" # Monitor UI until specific element ID appears phone-cli monitor-ui --watch-for id_appears --id "login_button" # Monitor UI until specific element class appears phone-cli monitor-ui --watch-for class_appears --class-name "android.widget.Button" # Monitor UI changes with output as raw JSON phone-cli monitor-ui --raw

位置和地图

# Search nearby POIs with phone numbers phone-cli get-poi 116.480053,39.987005 --keywords restaurant --radius 1000

📚 高级用法

应用程序和活动启动

该插件提供了多种启动应用程序和活动的方式:

  1. 按应用名称(两种方法):
    # Method 1: Using app command (may not work on all devices) phone-cli app camera # Method 2: Using open_app command (alternative if app command fails) phone-cli open_app camera
  2. 按包名称(两种方法):
    # Method 1: Using app command (may not work on all devices) phone-cli app com.android.contacts # Method 2: Using open_app command (alternative if app command fails) phone-cli open_app com.android.contacts
  3. 按包装和活动(最可靠的方法):
    # This method works on all devices phone-cli launch com.android.dialer/com.android.dialer.DialtactsActivity

注意:如果您在使用appopen_app命令时遇到问题,请始终使用带有完整组件名称(package/activity)的launch命令,以实现最可靠的操作。

使用 UI 自动化创建联系人

该插件提供了通过UI交互创建联系人的方法:

# Create a new contact with UI automation phone-cli create-contact "John Doe" "1234567890"

此命令将:

  1. 打开联系人应用
  2. 导航至联系人创建界面
  3. 填写姓名和电话号码字段
  4. 自动保存联系人

基于屏幕的自动化

统一的屏幕交互界面,让智能座席能够轻松:

  1. 分析屏幕:获取 UI 元素和文本的结构化分析
  2. 做出决策:基于检测到的 UI 模式和可用的操作
  3. 执行交互:通过一致的参数系统

UI监控和自动化

该插件提供了强大的UI监控功能,可以检测界面变化:

  1. 基本 UI 监控
    # Monitor any UI changes with custom interval (seconds) phone-cli monitor-ui --interval 0.5 --duration 30
  2. 等待特定元素出现
    # Wait for text to appear (useful for automated testing) phone-cli monitor-ui --watch-for text_appears --text "Login successful" # Wait for specific ID to appear phone-cli monitor-ui --watch-for id_appears --id "confirmation_dialog"
  3. 监视元素消失
    # Wait for text to disappear phone-cli monitor-ui --watch-for text_disappears --text "Loading..."
  4. 获取详细的 UI 更改报告
    # Get raw JSON data with all UI change information phone-cli monitor-ui --raw

提示:UI 监控对于自动化脚本特别有用,可以等待加载屏幕完成或确认操作已在 UI 中生效。

📚 详细文档

如需完整的文档和配置详细信息,请访问我们的GitHub 存储库

🧰 工具文档

屏幕接口API

该插件提供了强大的屏幕界面以及全面的 API,用于与设备交互。以下是主要功能及其参数:

与屏幕交互
async def interact_with_screen(action: str, params: Dict[str, Any] = None) -> str: """Execute screen interaction actions"""
  • 参数:
    • action :操作类型(“点击”、“滑动”、“按键”、“文本”、“查找”、“等待”、“滚动”)
    • params :包含特定于每个动作类型的参数的字典
  • **返回:**操作结果的JSON字符串

例子:

# Tap by coordinates result = await interact_with_screen("tap", {"x": 100, "y": 200}) # Tap by element text result = await interact_with_screen("tap", {"element_text": "Login"}) # Swipe down result = await interact_with_screen("swipe", {"x1": 500, "y1": 300, "x2": 500, "y2": 1200, "duration": 300}) # Input text result = await interact_with_screen("text", {"content": "Hello world"}) # Press back key result = await interact_with_screen("key", {"keycode": "back"}) # Find element by text result = await interact_with_screen("find", {"method": "text", "value": "Settings", "partial": True}) # Wait for element to appear result = await interact_with_screen("wait", {"method": "text", "value": "Success", "timeout": 10, "interval": 0.5}) # Scroll to find element result = await interact_with_screen("scroll", {"method": "text", "value": "Privacy Policy", "direction": "down", "max_swipes": 8})
分析屏幕
async def analyze_screen(include_screenshot: bool = False, max_elements: int = 50) -> str: """Analyze the current screen and provide structured information about UI elements"""
  • 参数:
    • include_screenshot :是否在结果中包含 base64 编码的屏幕截图
    • max_elements :要处理的最大 UI 元素数量
  • **返回:**带有详细屏幕分析的 JSON 字符串
创建联系人
async def create_contact(name: str, phone: str) -> str: """Create a new contact with the given name and phone number"""
  • 参数:
    • name :联系人的全名
    • phone :联系人的电话号码
  • **返回:**操作结果的 JSON 字符串
  • **位置:**该函数位于“contacts.py”模块中,并实现 UI 自动化来创建联系人
启动应用活动
async def launch_app_activity(package_name: str, activity_name: Optional[str] = None) -> str: """Launch an app using package name and optionally an activity name"""
  • 参数:
    • package_name :要启动的应用程序的包名称
    • activity_name :要启动的特定活动(可选)
  • **返回:**操作结果的 JSON 字符串
  • **位置:**该函数位于“apps.py”模块中
启动意图
async def launch_intent(intent_action: str, intent_type: Optional[str] = None, extras: Optional[Dict[str, str]] = None) -> str: """Launch an activity using Android intent system"""
  • 参数:
    • intent_action :要执行的操作
    • intent_type :意图的 MIME 类型(可选)
    • extras :通过 Intent 传递的额外数据(可选)
  • **返回:**操作结果的 JSON 字符串
  • **位置:**该函数位于“apps.py”模块中

📄 许可证

Apache 许可证,版本 2.0

联系人创建工具

该工具提供了一种使用 ADB 在 Android 设备上创建联系人的简单方法。

先决条件

  • Python 3.x
  • ADB(Android Debug Bridge)安装和配置
  • Android 设备已连接并授权 ADB

用法

基本用法

只需运行脚本:

python create_contact.py

这将创建一个具有默认值的联系人:

  • 账户名:“您的账户名”
  • 帐户类型:“com.google”

高级用法

您可以使用 JSON 字符串提供自定义帐户名称和类型:

python create_contact.py '{"account_name": "your_account", "account_type": "com.google"}'

输出

该脚本输出一个 JSON 对象,内容如下:

  • success :布尔值,指示操作是否成功
  • message :命令的任何输出或错误消息

成功输出示例:

{"success": true, "message": ""}

错误处理

  • 如果 ADB 不可用或设备未连接,脚本将返回错误
  • 无效的 JSON 输入将导致错误消息
  • 任何 ADB 命令错误都将被捕获并返回到消息字段中

笔记

  • 确保您的 Android 设备已连接并授权使用 ADB
  • 运行该命令时,设备屏幕应处于解锁状态
  • 某些设备可能需要额外的权限才能修改联系人

应用程序和快捷方式

# Get app shortcuts (with pagination) phone-cli shortcuts --package "com.example.app"
-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

MCP 插件,使 AI 助手能够控制 Android 手机,允许通过自然语言命令执行拨打电话、发送消息、截屏和访问联系人等功能。

  1. 例子
    1. ⚡ 快速入门
      1. 📥 安装
      2. 🔧 配置
    2. 🎯 主要特点
      1. 🛠️ 要求
        1. 📋 基本命令
          1. 设备和连接
          2. 沟通
          3. 媒体和应用程序
          4. 屏幕分析与交互
          5. 位置和地图
        2. 📚 高级用法
          1. 应用程序和活动启动
          2. 使用 UI 自动化创建联系人
          3. 基于屏幕的自动化
          4. UI监控和自动化
        3. 📚 详细文档
          1. 🧰 工具文档
            1. 屏幕接口API
          2. 📄 许可证
            1. 联系人创建工具
              1. 先决条件
              2. 用法
              3. 错误处理
              4. 笔记

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol (MCP) integration that allows AI assistants to control Home Assistant devices by searching for entities and controlling devices through natural language commands.
              Last updated -
              10
              Python
              MIT License
              • Linux
              • Apple
            • A
              security
              A
              license
              A
              quality
              A Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.
              Last updated -
              29
              143
              Python
              Apache 2.0
              • Linux
              • Apple
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables AI assistants to interact with Android devices through ADB, allowing for automated device management, app installation, file transfers, and screenshot capture.
              Last updated -
              11
              2
              JavaScript
              ISC License
              • Linux
              • Apple
            • -
              security
              A
              license
              -
              quality
              PhonePi MCP enables seamless integration between desktop AI tools and your smartphone, providing 23+ direct actions including SMS messaging, phone calls, contact management, snippet creation and search, clipboard sharing, notifications, battery status checks, and remote device controls.
              Last updated -
              8
              JavaScript
              MIT License

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/hao-cyber/phone-mcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server