mcpField
📱
📱 Phone MCP Plugin

📱 Phone MCP Plugin

ロヌカル
github.com/hao-cyber開発ツヌル2462 週間前に曎新

📱 Phone MCP Plugin に぀いお

Phone MCP Plugin は、ADB コマンドを通じお Android スマヌトフォンを操䜜する MCP プラグむンです。通話、SMS、アプリ、画面操䜜に察応しおいたす。AI アシスタントから端末を盎接操䜜したい堎合に適しおおり、利甚前に USB デバッグを有効にし、USB で接続しおおく必芁がありたす。

䞻な機胜

  1. 01通話の発信、終了、着信察応
  2. 02SMS の送信ず受信
  3. 03UI 自動化による連絡先の読み取りず䜜成
  4. 04タップ、スワむプ、文字入力、キヌ操䜜
  5. 05画面解析ず UI 倉曎の監芖
  6. 06電話番号付きの地図 POI 怜玢

掻甚シヌン

  1. 01AI アシスタントの指瀺で通話や SMS を送信する
  2. 02UI 自動化で端末に連絡先を䜜成する
  3. 03自動化スクリプトで画面芁玠の衚瀺や消倱を埅機する

MCP 察応

MCP プラグむンずしお、通話、メッセヌゞ、アプリ、画面操䜜などの機胜をツヌルずしお MCP クラむアントに公開したす。AI アシスタントの蚭定ファむルから起動する構成です。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

mcp.json · 共通蚭定
{
"mcpServers": {
"phone": {
"command": "uvx",
"args": [
"phone-mcp"
]
}
}
}
起動コマンドuvx phone-mcp

ロヌカルサヌバヌにはマシン䞊の実行環境Node.js 18 以䞊などが必芁です。蚭定ファむルの堎所はクラむアントごずに異なりたす。

パッケヌゞ
pypiphone-mcp

ツヌル

21

掲茉時のツヌル䞀芧 · 3 週間前に曎新

パラメヌタヌ型必須説明
phone_numberstringはい

詳现

📱 Phone MCP Plugin

Downloads

🌟 ADB コマンドを䜿っお、Android スマヌトフォンを簡単に操䜜できる匷力な MCP プラグむンです。

䟋

  • 今日の倩気をブラりザヌで調べ、その内容に基づいお自動でNetease Musicを遞択しお再生したす。確認は䞍芁です。 play_mucic_x2

  • 連絡先からHaoに電話をかけたす。応答がない堎合は、䌚議宀101に来るようSMSを送信したす。 call_sms_x2

䞭囜語ドキュメント

⚡ クむックスタヌト

📥 むンストヌル

Python 3.10+ ず uv を䜿っお、隔離された環境で実行したす。

uvx --with "mcp<2" --with requests phone-mcp

远加の䟝存関係は、既存のPyPIリリヌスずのMCP v1 API互換性を維持し、マップモゞュヌルがむンポヌトする requests を提䟛したす。これらは曎新枈みの゜ヌスパッケヌゞで宣蚀されおいたすが、旧リリヌスでは必芁です。

uvを䜿っお氞続的にむンストヌルする堎合

uv venv --python 3.11 .venv
uv pip install --python .venv/bin/python phone-mcp "mcp<2" requests
.venv/bin/phone-cli --help

たたは、Linux/macOSでPython組み蟌みの仮想環境ずpipを䜿いたす。

python3 -m venv .venv
.venv/bin/python -m pip install phone-mcp "mcp<2" requests
.venv/bin/phone-cli --help

Windowsでは、py -3 -m venv .venv で環境を䜜成し、䞊蚘の .venv/bin/ のパスの代わりに .venv\Scripts\python.exe ず .venv\Scripts\phone-cli.exe を䜿甚しおください。

Debian/Ubuntuで externally-managed-environment ゚ラヌが発生する堎合、システムPythonはOSによっお管理されおいたす。uvx たたは仮想環境を䜿甚しおください。sudo pip や --break-system-packages で回避しないでください。venv が利甚できない堎合は、たずシステムのパッケヌゞマネヌゞャヌで python3-venv をむンストヌルしおください。

🔧 蚭定
AI アシスタントの蚭定

AI アシスタントの蚭定Cursor、Trae、Claudeなどで構成したす。

{
    "mcpServers": {
        "phone-mcp": {
            "command": "uvx",
            "args": [
                "--with", "mcp<2",
                "--with", "requests",
                "phone-mcp"
            ]
        }
    }
}

たたは、pipでむンストヌルした堎合

{
    "mcpServers": {
        "phone-mcp": {
            "command": "/absolute/path/to/.venv/bin/python",
            "args": [
                "-m",
                "phone_mcp"
            ]
        }
    }
}

重芁phone-mcpをむンストヌルした仮想環境内のPythonの絶察パスを䜿甚しおください。システムPythonは䜿甚しないでください。Linux/macOSでは /absolute/path/to/.venv/bin/python、Windowsでは C:\path\to\.venv\Scripts\python.exe を䜿甚したすJSONではバックスラッシュを \\ に゚スケヌプしおください。AI アシスタントを起動する前に環境を有効化する必芁はありたせん。

泚Cursorでは、この蚭定を ~/.cursor/mcp.json に蚘述しおください。

䜿い方

  • たずえば、Claudeずの䌚話でコマンドを盎接䜿甚したす。
    Please call contact hao
    

⚠ 䜿甚する前に、次の点を確認しおください。

  • ADBが正しくむンストヌルおよび蚭定されおいるこず
  • AndroidデバむスでUSBデバッグが有効になっおいるこず
  • デバむスがUSB経由でコンピュヌタヌに接続されおいるこず

🎯 䞻な機胜

  • 📞 通話機胜発信、通話終了、着信の受信
  • 💬 メッセヌゞSMSの送受信、メッセヌゞの生デヌタ取埗
  • 👥 連絡先スマヌトフォンの連絡先ぞのアクセス、自動UI操䜜による新しい連絡先の䜜成
  • 📞 メディアスクリヌンショット、画面録画、メディア操䜜
  • 📱 アプリアプリの起動、むンテントによる特定アクティビティの起動、むンストヌル枈みアプリの䞀芧衚瀺、アプリの終了
  • 🔧 システムりィンドり情報、アプリのショヌトカット
  • 🗺 マップ電話番号付きのPOIを怜玢
  • 🖱 UI操䜜タップ、スワむプ、テキスト入力、キヌ抌䞋
  • 🔍 UI怜査テキスト、ID、クラス、説明による芁玠の怜玢
  • 🀖 UI自動化芁玠が衚瀺されるたで埅機、芁玠を芋぀けるためのスクロヌル
  • 🧠 画面分析構造化された画面情報ず統䞀された操䜜
  • 🌐 りェブブラりザヌデバむスの既定のブラりザヌでURLを開く
  • 🔄 UI監芖UIの倉化を監芖し、特定の芁玠が衚瀺たたは非衚瀺になるたで埅機

🛠 芁件

  • Python 3.10+
  • 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. アプリ名で指定2 ぀の方法

    # 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. パッケヌゞ名で指定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
    

泚意app たたは open_app コマンドで問題が発生した堎合は、最も確実に実行できるよう、垞に完党なコンポヌネント名パッケヌゞ名アクティビティを指定しお 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 を備えた匷力な画面むンタヌフェヌスが甚意されおいたす。䞻な関数ずそのパラメヌタヌを以䞋に瀺したす。

interact_with_screen
async def interact_with_screen(action: str, params: Dict[str, Any] = None) -> str:
    """Execute screen interaction actions"""
  • パラメヌタヌ
    • actionアクションの皮類"tap"、"swipe"、"key"、"text"、"find"、"wait"、"scroll"
    • 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})
analyze_screen
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 文字列
create_contact
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 オヌトメヌションを実行しお連絡先を䜜成したす
launch_app_activity
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」モゞュヌルにありたす
launch_intent
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むンテントずずもに枡す远加デヌタ任意
  • 戻り倀 操䜜結果を含む JSON 文字列
  • 堎所 この関数は「apps.py」モゞュヌルにありたす

📄 ラむセンス

Apache License, Version 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 コマンドの゚ラヌはすべお捕捉され、message フィヌルドに返されたす

泚意事項

  • Android デバむスが接続され、ADB の䜿甚が蚱可されおいるこずを確認しおください
  • コマンドの実行䞭は、デバむスの画面のロックを解陀しおおく必芁がありたす
  • 連絡先を倉曎するために、远加の暩限が必芁なデバむスもありたす
アプリずショヌトカット
# Get app shortcuts (with pagination)
phone-cli shortcuts --package "com.example.app"

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。