MCP Appium Gestures について
MCP Appium Gestures は、Appium のモバイルジェスチャーに関するドキュメントをリソースとして提供し、対応するコードを生成する MCP サーバーです。モバイル自動化のテスト担当者を想定しており、JavaScript と Java に対応しています。
主な機能
- 01gesture:// によるジェスチャーのドキュメントリソース
- 02タップ、スワイプ、スクロールのコード生成
- 03JavaScript(WebdriverIO)と Java の出力
- 04stdio と SSE の転送方式
活用シーン
- 01テストスクリプト用の Appium ジェスチャーコードの生成
- 02モバイルジェスチャーの仕様確認
- 03AI クライアント内でのモバイルテストコードの作成
MCP 対応
MCP サーバーとして、ジェスチャーのドキュメントをリソースに、コード生成機能をツールとして公開します。クライアントは gesture:// リソースを読み取り、generate-*-code ツールを呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Appium Gestures
Appium のモバイルジェスチャー向けのリソースとツールを提供する MCP (Model Context Protocol) サーバーです。
機能
-
一般的な Appium モバイルジェスチャーのドキュメントリソース:
- タップ
- スワイプ
- スクロール
- ピンチ/ズーム
- 長押し
- ドラッグアンドドロップ
- ダブルタップ
-
これらのジェスチャーをさまざまな言語でコード生成するためのツール:
- JavaScript (WebdriverIO v9+ およびそれ以前)
- Java (Appium Java Client)
インストール
# Clone the repository
git clone https://github.com/yourusername/mcp-appium-gestures.git
cd mcp-appium-gestures
# Install dependencies
npm install
使用方法
stdio トランスポートで起動する (ローカルでの使用)
# Start the server with stdio transport
npm start
# or
npm run start:stdio
SSE トランスポートで起動する (リモートでの使用)
# Start the server with SSE transport on default port (8080)
npm run start:sse
# Start the server with SSE transport on a custom port
npm run start:sse:port 3000
開発とテスト
# Test with mcp-cli
npm run dev
# Inspect with MCP Inspector
npm run inspect
Claude での使用
この MCP サーバーを Claude で使用するには、MCP 設定ファイルに追加する必要があります。このファイルの場所はプラットフォームによって異なります:
- Cursor の場合:
/Users/[username]/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Claude Desktop の場合:
/Users/[username]/Library/Application Support/Claude/claude_desktop_config.json - Cline またはその他の MCP クライアントの場合: 設定ファイルの場所についてはお使いのクライアントのドキュメントを確認してください
設定ファイルの mcpServers オブジェクトに次の設定を追加します:
{
"mcpServers": {
"appium-gestures": {
"command": "npx",
"disabled": false,
"args": ["mcp-appium-gestures"],
"autoApprove": [],
"timeout": 300,
"transportType": "stdio"
}
}
}
設定が完了すると、Claude で MCP サーバーのツールとリソースを直接使用できます:
<use_mcp_tool>
<server_name>appium-gestures</server_name>
<tool_name>generate-tap-code</tool_name>
<arguments>
{
"language": "javascript",
"useElement": true,
"elementId": "login-button"
}
</arguments>
</use_mcp_tool>
または、リソースにアクセスします:
<access_mcp_resource>
<server_name>appium-gestures</server_name>
<uri>gesture://tap</uri>
</access_mcp_resource>
リソース
このサーバーは、以下のジェスチャーのドキュメントリソースを提供します:
gesture://tap- タップジェスチャーのドキュメントgesture://swipe- スワイプジェスチャーのドキュメントgesture://scroll- スクロールジェスチャーのドキュメントgesture://pinch-zoom- ピンチおよびズームジェスチャーのドキュメントgesture://long-press- 長押しジェスチャーのドキュメントgesture://drag-drop- ドラッグアンドドロップジェスチャーのドキュメントgesture://double-tap- ダブルタップジェスチャーのドキュメント
テンプレート gesture://{name} を使って、名前で特定のジェスチャーにアクセスすることもできます。
ツール
このサーバーは、Appium ジェスチャーのコードを生成するための以下のツールを提供します:
generate-tap-code
タップジェスチャーのコードを生成します。
パラメータ:
language: 'javascript' または 'java'useElement: boolean - 要素をタップするか、座標をタップするかelementId: string (useElement が true の場合は必須) - タップする要素の IDx: number (useElement が false の場合は必須) - タップする x 座標y: number (useElement が false の場合は必須) - タップする y 座標
generate-swipe-code
スワイプジェスチャーのコードを生成します。
パラメータ:
language: 'javascript' または 'java'startX: number - 開始 x 座標startY: number - 開始 y 座標endX: number - 終了 x 座標endY: number - 終了 y 座標duration: number (オプション、デフォルト: 500) - スワイプの時間 (ミリ秒)
generate-scroll-code
スクロールジェスチャーのコードを生成します。
パラメータ:
language: 'javascript' または 'java'direction: 'up'、'down'、'left'、または 'right'useElement: boolean (オプション、デフォルト: false) - 要素までスクロールするかどうかelementId: string (オプション) - スクロール先の要素の IDdistance: number (オプション、デフォルト: 300) - スクロールする距離
generate-long-press-code
長押しジェスチャーのコードを生成します。
パラメータ:
language: 'javascript' または 'java'useElement: boolean - 要素を長押しするか、座標を長押しするかelementId: string (useElement が true の場合は必須) - 長押しする要素の IDx: number (useElement が false の場合は必須) - 長押しする x 座標y: number (useElement が false の場合は必須) - 長押しする y 座標duration: number (オプション、デフォルト: 2000) - 長押しの時間 (ミリ秒)
generate-double-tap-code
ダブルタップジェスチャー用のコードを生成します。
パラメータ:
language: 'javascript' または 'java'useElement: boolean - 要素をダブルタップするか、座標をダブルタップするかelementId: string (useElement が true の場合に必須) - ダブルタップする要素の IDx: number (useElement が false の場合に必須) - ダブルタップする x 座標y: number (useElement が false の場合に必須) - ダブルタップする y 座標pauseDuration: number (任意、デフォルト: 200) - タップ間の一時停止時間 (ミリ秒)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
