WpfPilot MCP について
WpfPilot MCP は、Windows WPF アプリを対象とするローカル MCP サーバーで、コーディングエージェントによる UI の確認、操作、問題診断に使えます。画面座標ではなく意味的な UI Automation セレクターを使い、ワークフローの記録と xUnit、FlaUI テストの生成にも対応します。
主な機能
- 01WPF プロセスへの接続または起動
- 02意味的な UI ツリースナップショット
- 03UI 状態と要素の照会
- 04UI 操作の実行と検証
- 05ワークフロー記録とテスト生成
- 06任意の ViewModel・バインディング診断
活用シーン
- 01WPF アプリの UI ツリーを確認
- 02セレクターでコントロールを操作
- 03無効なボタンやバインディングエラーを診断
- 04記録したワークフローから xUnit テストを生成
MCP 対応
ローカル stdio MCP サーバーとして、WPF UI の照会、操作、待機、アサーション、診断ツールをクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
WpfPilot MCP
WpfPilot MCP は、Windows WPF アプリケーション向けのローカル Model Context Protocol サーバーです。AI コーディングエージェントが UI Automation ツリーを調べたり、セマンティックセレクターを使ってクリックや入力を行ったり、WPF 固有の問題を診断したり、ワークフローを記録したり、xUnit + FlaUI テストを生成したりできます。
特長
- WPF プロセスに接続するか、起動します。
- セマンティックな UI スナップショットを取得します(画面座標ではなく、セレクターを使用)。
- テキスト、値、状態、境界、パターン、子要素、祖先、兄弟要素、選択状態を照会します。
- クリック、値の設定、選択、切り替え、展開、折りたたみ、スクロール、ドラッグ&ドロップなどの操作を実行します。
- 構造化エラーを伴う UI 状態の待機とアサーションを行います。
- スクリーンショットを取得します。
- ワークフローを記録し、テストコードを生成します。
- オプションのプロセス内プローブで、ViewModel、バインディング、コマンド、検証、ディスパッチャーを診断します。
必要条件
- Windows 10/11。
- 自動化する WPF アプリケーション。
npxを使用する場合は Node.js 18 以降(推奨)。リリースバイナリまたは npm ランチャーの利用に .NET SDK は不要です。
はじめに
MCP クライアントの設定(グローバルまたはプロジェクト単位)に以下を追加します。
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
または、直接実行します(stdio。MCP クライアントからの接続を待機します)。
npx -y @skuzadev/wpfpilot-mcp
npm ランチャーは初回起動時に最新の Windows リリースバイナリをダウンロードし、その後 stdio をバイナリに中継します。
その他のインストール方法(永続的な wpfpilot-mcp コマンド、リリース zip、アンインストール)については、WpfPilot のインストールを参照してください。
よく使われるクライアント
特に記載がない限り、上記の標準設定を使用してください。その他のクライアントについては、docs/all-clients.mdを参照してください。
Cursor
グローバル設定:~/.cursor/mcp.json(リポジトリ固有の設定で上書きする必要がない限り、プロジェクトに .cursor/mcp.json を追加しないでください)
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
または、Cursor Settings → MCP → Add new MCP Server の順に選択し、コマンドに npx、引数に -y @skuzadev/wpfpilot-mcp を指定します。
cursor-agent mcp list
cursor-agent mcp list-tools wpfpilot-mcp
Codex
codex mcp add wpfpilot-mcp -- npx -y @skuzadev/wpfpilot-mcp
codex mcp list
または、~/.codex/config.toml に設定します。
[mcp_servers.wpfpilot-mcp]
command = "npx"
args = ["-y", "@skuzadev/wpfpilot-mcp"]
enabled = true
startup_timeout_sec = 30
tool_timeout_sec = 60
Claude Code
claude mcp add --transport stdio wpfpilot-mcp -- npx -y @skuzadev/wpfpilot-mcp
claude mcp list
プロジェクトの .mcp.json:
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
Claude Desktop
Windows の設定ファイル:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
保存後、Claude Desktop を再起動してください。
VS Code
.vscode/mcp.json を作成します。
{
"servers": {
"wpfpilot-mcp": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@skuzadev/wpfpilot-mcp"]
}
}
}
または、code --add-mcp '{"name":"wpfpilot-mcp","command":"npx","args":["-y","@skuzadev/wpfpilot-mcp"]}' を実行します。
最初のプロンプト
MCP クライアントに接続したら、次のように尋ねます。
List the WpfPilot tools and attach to my running WPF application.
その後に役立つプロンプト:
Show the main window UI tree.
Click the Save button using a selector, not coordinates.
Wait until the status text says Saved.
Why is the Submit button disabled?
Record this workflow and generate an xUnit test.
ツール
| ツール | 用途 |
|---|---|
wpf_capabilities | サポートされている動詞、照会の種類、待機条件を一覧表示します。 |
wpf_query | UI の状態を読み取ります。 |
wpf_act | UI 操作を実行します。 |
wpf_wait | UI の状態を待ちます。 |
wpf_assert | UI の状態を検証します。 |
ツールの全一覧:docs/tools-reference.md。
オプションの WPF プローブ
プローブは WPF プロセス内で動作し、UI Automation から直接確認できない診断情報(バインディング、ViewModel、コマンド、検証)を公開します。
Use wpf_probe_connect, then inspect my ViewModel and binding errors.
セットアップについては、docs/probe-setup.mdを参照してください。
安全性
WpfPilot は、ローカルでの開発およびテスト自動化を目的としています。
- ユーザーアカウントとして動作し、そのアカウントから表示できる UI を操作できます。
- MCP を通じて、一般的なシェル、レジストリ、任意のファイルシステム操作のツールを公開することはありません。
- UI を変更する操作は、ユーザーのローカルアプリデータフォルダーに監査記録として残ります。
- プローブを使用するには、対象の WPF アプリへの明示的なインストールが必要です。
- エージェントで MCP サーバーを有効にする前に、ローカルコードが信頼できるものであることを確認してください。
トラブルシューティング
wpfpilot-mcp が認識されない
インストーラーの実行後にターミナルを再起動するか、MCP クライアントの設定で wpfpilot-mcp.exe のフルパスを使用してください。all-clients.md を参照してください。
サーバーは起動するが、ツールが表示されない
MCP クライアントを再起動し、MCP ログを確認してください。また、通常のターミナルから npx -y @skuzadev/wpfpilot-mcp が実行できることも確認してください。
アプリに接続できない
WPF アプリが同じユーザーセッションで、互換性のある権限レベルで実行されていることを確認してください。アプリが管理者として実行されている場合、MCP クライアントも昇格して実行する必要がある場合があります。
プローブに接続できない
対象アプリで ProbeHost.Start() が呼び出されていることを確認し、wpf_probe_status と wpf_probe_connect を使用してください。必要に応じて、wpfpilot-mcp-probe-{ProcessId} を明示的に指定してください。
ドキュメント
貢献
CONTRIBUTING.md を参照してください。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。