MCPインタラクティブサービス
これは、Cursor、Windsurf などの AI ツールとの対話用に設計された、FastMCP ライブラリを使用して実装された MCP サービスです。AI ツールは、大規模な言語モデルを呼び出す際にユーザー入力やオプション選択が必要な場合、この MCP サービスを呼び出すことができます。



コア目的
このプラグインの主な目的は、AIツール(CursorやWindsurfなど)とユーザー間の高頻度の通信と確認を可能にすることです。以下の機能により、AIインタラクションの効率と効果を大幅に向上させます。
無駄なリソースの削減: AI が潜在的に誤った解決パスにコミットする前に、ユーザーが AI のアプローチを確認またはリダイレクトできるようにすることで、プラグインは無駄な API 呼び出しと計算リソースを最小限に抑えます。
リソース使用率の最大化: AI が処理を進める前にユーザーとともに理解とアプローチを確認できるため、Cursor または Windsurf へのすべての API 呼び出しの生産性が向上します。
注意の断片化を防ぐ: プラグインは、アプローチを早期に確認することで、間違ったアプローチに注意が逸らされるのではなく、正しい解決パスに焦点を維持するのに役立ちます。
インタラクティブな意思決定の実現: ユーザーは意思決定プロセスに積極的に参加して、AI に即時のフィードバックとガイダンスを提供できます。
複雑なタスクの合理化: 複数のステップから成るタスクの場合、プラグインは、各重要な意思決定ポイントでユーザーの期待と AI 実行の整合性を確保します。
Related MCP server: Apifox MCP Server
特徴
オプション選択: ユーザーが数字を入力するか、カスタムの回答を提供することで選択できるオプションのリストを表示します。
情報補足: AIモデルがより完全な情報を必要とする場合、ユーザーに補足情報を直接入力するよう要求できます。
複数のユーザーインターフェース: CLI、Web、PyQtインターフェースのサポート
UIタイプ
このプロジェクトは、それぞれ独自の特性を持つ 3 種類の異なるユーザー インターフェイスをサポートしています。
CLI (コマンドラインインターフェース)
説明: ユーザー操作用の新しいコマンドプロンプトウィンドウを開きます
利点:
依存関係が最小限(追加パッケージは不要)
複数のダイアログウィンドウを同時に処理できます
グラフィカルインターフェースのない環境でも問題なく動作します
軽量で起動が速い
デメリット:
基本的な視覚的プレゼンテーション
技術に詳しくないユーザーにとっては直感的ではないかもしれない
最適な用途: サーバー環境、リソースが限られたシステム、または複数の同時ダイアログが必要な場合
PyQtインターフェース
説明: PyQtを使用した最新のグラフィカルユーザーインターフェースを提供します
利点:
すっきりとしたプロフェッショナルなダイアログ
使い慣れたデスクトップアプリケーションエクスペリエンス
あらゆるタイプのユーザーが簡単に使用できます
デメリット:
一度に表示できるダイアログは 1 つだけです
PyQt の依存関係が必要 (大規模なインストール)
最適な用途: 視覚的な魅力が重要で、一度に必要なダイアログが 1 つだけのデスクトップでの使用
ウェブインターフェース
説明: Webブラウザでダイアログを開きます
利点:
複数のダイアログウィンドウを同時に処理できます
ウェブブラウザ経由でどこからでもアクセス可能
モダンでカスタマイズ可能なインターフェース
デメリット:
ウェブブラウザのインストールが必要です
少し複雑な設定
最適な用途: リモート アクセス シナリオ、Web インターフェースが優先される環境、または複数の同時ダイアログが必要な場合
使用ガイド
1. はじめに(2つのオプション)
オプション A: コンパイル済み実行ファイルを使用する (Windows に推奨)
GitHub リリースページから最新のコンパイル済み実行可能ファイルをダウンロードします。
インストールは不要です。実行ファイルをダウンロードして実行するだけです。
次のコマンドを使用して機能をテストできます。
# Test option selection with PyQt interface
.\dist\mcp-interactive.exe test select_option --ui pyqt
# Test information supplement with PyQt interface
.\dist\mcp-interactive.exe test request_additional_info --ui pyqt
# You can also specify a file path for testing the request_additional_info tool
.\dist\mcp-interactive.exe test request_additional_info --ui pyqt D:\Path\To\Your\File.md設定については、以下の手順 3 に進んでください。
オプションB: ソースコードからインストール
このプロジェクトは、さまざまな UI タイプに基づいて依存関係を分離します。
requirements-base.txt: すべての UI タイプで共有される基本依存関係requirements-pyqt.txt: PyQt5 UI の依存関係requirements-web.txt: Web UI (Flask) の依存関係
依存関係をインストールするには、従来の pip またはより高速な uv パッケージ マネージャーのいずれかを使用できます。
pip を使用する(従来の方法)
使用する UI タイプに基づいて適切な依存ファイルを選択します。
cd requirements
# CLI UI (minimal dependencies)
pip install -r requirements-base.txt
# PyQt5 UI
pip install -r requirements-pyqt.txt
# Web UI
pip install -r requirements-web.txt注: 各特定の UI 依存ファイルには、基本依存ファイルへの参照 ( -r requirements-base.txt経由) が既に含まれているため、インストールする必要があるのは 1 つのファイルだけです。
uv を使用する(推奨、高速)
すでにuvがインストールされている場合は、次のコマンドを使用して仮想環境を作成し、依存関係をインストールできます。
# Create a virtual environment
uv venv
# Activate the virtual environment
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
# Install dependencies based on UI type
cd requirements
# CLI UI (minimal dependencies)
uv pip install -r requirements-base.txt
# PyQt5 UI
uv pip install -r requirements-pyqt.txt
# Web UI
uv pip install -r requirements-web.txtプロジェクトの pyproject.toml ファイルを使用して、すべての依存関係を直接インストールすることもできます。
# Install base dependencies
uv pip install -e .
# Install specific UI type dependencies
uv pip install -e ".[pyqt]" # PyQt5 UI
uv pip install -e ".[web]" # Web UI
uv pip install -e ".[all]" # All UI types2. プログラムを起動する
さまざまな UI 応答方法を開始します。
# Command line interface (default)
python main.py run --ui=cli
# Web interface
python main.py run --ui=web
# PyQt interface
python main.py run --ui=pyqtその他のサービス起動オプション:
# Start the service with default settings (address: 127.0.0.1, port: 7888)
python main.py run
# Specify host and port
python main.py run --host 0.0.0.0 --port 8888
# Specify log level
python main.py run --log-level warning3. カーソル、ウィンドサーフィン、クロードを設定する
stdio プロトコルの使用 (推奨)
stdio プロトコルは最も安定しており、推奨される接続方法であり、標準入出力を介して Python スクリプトと直接通信し、次の利点があります。
より高い安定性と信頼性
複数のダイアログボックスを同時に開くことができます
シンプルで直接的、ネットワーク接続の問題に対処する必要はありません
システムとの緊密な統合、より速い応答
設定例:
Python での使用 (ソースコード)
{
"ai-interaction": {
"command": "python",
"args": ["path/to/main.py", "run", "--transport", "stdio", "--ui", "cli"],
"env": {}
}
}実行ファイルの使用
{
"ai-interaction": {
"command": "D:/Path/To/Your/mcp-interactive.exe",
"args": ["run", "--transport", "stdio", "--ui", "pyqt"],
"env": {}
}
}SSEプロトコルの使用(代替)
ネットワーク経由でリモート サーバーに接続する必要がある場合は、SSE プロトコルを使用できます。
ローカルスタートアップ:
python main.py run --transport sseカーソルの設定:
{
"ai-interaction": {
"type": "sse",
"url": "http://127.0.0.1:8000/sse",
"env": {}
}
}ウィンドサーフィンの構成:
{
"ai-interaction": {
"serverUrl": "http://127.0.0.1:7888/sse",
"disabled": false
}
}4. AIインタラクションルールを設定する
カーソルとウィンドサーフィンでの AI 相互作用の有効性を最大限に高めるには、MCP を使用するときに AI が従う次のルールを構成します。
AI がタスクについて不明な点がある場合、または追加情報が必要な場合は、MCP ai-interaction を呼び出してユーザーに説明を求める必要があります。
AI が解決策に対して複数のアプローチをとることができる場合、ユーザーが優先するアプローチを選択できるように、MCP ai-interaction を呼び出す必要があります。
タスクを完了した後、AI は MCP ai-interaction を呼び出して、実行する必要がある他のタスクがあるかどうかを確認する必要があります。
AI はタスクを複数のステージに分割し、新しいステージを開始する前に MCP ai-interaction を呼び出して、追加の考えや考慮事項を組み込む必要があるかどうかをユーザーに確認する必要があります。
AI は、仮定を行うのではなく、MCP を積極的に使用して重要な決定を確認する必要があります。
これらのルールにより、各 API 呼び出しの価値を最大化しながら、高品質でインタラクティブな AI アシスタンスが保証されます。
その他の機能
利用可能なツールを表示
python main.py list-toolsテストツール
# Test option selection tool
python main.py test select_option --ui=cli
# Test information supplement tool
python main.py test request_additional_info --ui=cliインタラクティブテストクライアント
このプロジェクトには、さまざまな UI タイプとメソッドを使用して MCP サービスをテストできる対話型テスト クライアントが含まれています。
# Run the interactive test client
python mcp_client_en.py --host localhost --port 7888 --ui cliオプション:
--host: サーバーホスト (デフォルト: localhost)--port: サーバーポート (デフォルト: 7888)--ui: 使用する UI タイプ (cli、pyqt、web)
クライアントが提供するもの:
MCPサービスとの接続テスト
テストするUIタイプの選択
select_optionとrequest_additional_infoメソッドの両方をテストする
各メソッドに複数のパラメータプリセット
リクエストとレスポンスの完全な視覚化
これは特に次の場合に役立ちます:
UIインタラクションの問題のデバッグ
さまざまなUIタイプの動作をテストする
ユーザーへのサービスのデモンストレーション
サーバー機能の検証
STDIO テストクライアント
特に stdio トランスポート プロトコルをテストするために、コマンド ライン ツールを提供しています。
# Test stdio connection with default settings
python mcp_client_stdio.py
# Specify UI type
python mcp_client_stdio.py --ui=pyqt
# Test specific tools
python mcp_client_stdio.py --test=select_option詳細については、 STDIO テスト ガイドを参照してください。
UIテスト
# Test PyQt interface
python test_ui.py --ui=pyqt
# Test Web interface
python test_ui.py --ui=web
# Test CLI interface
python test_ui.py --ui=cliツールの説明
オプション選択 (select_option)
このツールは、ユーザーに一連のオプションを提示し、数字を入力するかカスタムの回答を提供することで選択できるようにするために使用されます。
パラメータ:
options: オプションのリスト。文字列または辞書のリストになります。prompt: ユーザーに表示されるプロンプトメッセージ
戻り値: 選択結果を含む辞書。形式は次の通りです:
{
"selected_index": 0, // Index of the user's selection, -1 if custom answer
"selected_option": {}, // Content of the user's selected option
"custom_input": "", // User's custom input, if any
"is_custom": false // Whether it's a custom answer
}情報補足(request_additional_info)
このツールは、ユーザーから補足情報を要求するために使用されます。
パラメータ:
prompt: 情報を要求するためのプロンプトcurrent_info: ユーザーに参考として表示される最新情報
戻り値: ユーザーが入力した補足情報(文字列)
AIツールとの統合
この MCP サービスを AI ツールと統合するには、次の手順に従います。
実行可能ファイルまたは Python ソース コードを使用して MCP サービスを開始します。
実行ファイルの使用:
mcp-interactive.exe runPythonソースの使用:
python main.py run
AIツールでMCPエンドポイントを設定し、必要に応じてstdioまたはSSEプロトコルを選択します。
AIモデルがユーザー入力やオプション選択を必要とするときに適切なMCPツールを呼び出す
クロード・インテグレーション
Anthropic の公式製品またはサードパーティ アプリで Claude と統合するには:
AI ツール設定で stdio 接続を構成します。
{ "mcp-interaction": { "command": "D:/Path/To/Your/mcp-interactive.exe", "args": ["run", "--transport", "stdio", "--ui", "pyqt"], "env": {} } }次のような手順で、必要に応じて Claude がインタラクション サービスを使用するように設定します。
「ユーザー入力や確認が必要な場合は、MCPインタラクションサービスを使用してください」
複数選択オプションの場合は、select_optionツールを呼び出します。
追加のユーザー情報を収集するには、request_additional_info ツールを呼び出します。
クロードは、MCP サービスを通じて直接オプションを提示し、追加情報をリクエストできるようになります。
例
オプション選択の例
from fastmcp import Client
async with Client("http://127.0.0.1:8000/sse") as client:
options = [
"Option 1: Implement with TensorFlow",
"Option 2: Implement with PyTorch",
{"title": "Option 3: Implement with JAX", "description": "Better for research purposes"}
]
result = await client.call_tool(
"select_option",
{"options": options, "prompt": "Please select a framework implementation"}
)
selected_option = result.json
print(f"User selected: {selected_option}")情報補足例
from fastmcp import Client
async with Client("http://127.0.0.1:8000/sse") as client:
additional_info = await client.call_tool(
"request_additional_info",
{
"prompt": "Please provide specific project requirements",
"current_info": "This is a data analysis project"
}
)
print(f"User provided information: {additional_info.text}")開発ノート
複数のUIタイプを開発またはテストする必要がない限り、UI依存関係を1つだけインストールすることをお勧めします。
新しい依存関係を追加する必要がある場合は、適切な依存関係ファイルに追加してください。
現在の開発状況
実装のステータスは次のとおりです。
Windows : CLI および PyQt UI バージョンは完全に機能します。Web UI にはまだ対処が必要な問題がいくつかあります。
Linux/Mac : これらのプラットフォームはまだ十分にテストされていません。動作環境によって異なる場合があります。
当社は、すべてのプラットフォームと UI タイプ間の互換性の向上に積極的に取り組んでいます。
建築と流通
実行ファイルの作成
このプロジェクトには、Windows 用のスタンドアロン実行可能ファイルを作成するためのスクリプトが含まれています。
# Build the Windows executable
build_executable.batこれにより、Python をインストールしなくても実行できるmcp-interactive.exeがdistディレクトリに作成されます。
クロスプラットフォーム構築
さまざまなプラットフォーム用の実行可能ファイルを構築するには:
ウィンドウズ
# Using the batch script
build_executable.bat
# Or manual PyInstaller command
pyinstaller mcp-interactive.specmacOS
# Ensure PyInstaller is installed
pip install pyinstaller
# Build using the spec file
pyinstaller mcp-interactive.specリナックス
# Ensure PyInstaller is installed
pip install pyinstaller
# Build using the spec file
pyinstaller mcp-interactive.spec注意: ターゲット プラットフォームでビルドする必要があります (Windows などから macOS 実行ファイルをビルドすることはできません)
GitHub経由で配布する
ビルドした実行可能ファイルをダウンロードできるようにするには:
プロジェクトのGitHubリリースを作成する
ビルドされた実行ファイルをリリースアセットとしてアップロードする
各プラットフォームで使用する実行ファイルに関する明確なドキュメントを提供する
手順の例:
GitHubリポジトリに移動する
右側のサイドバーの「リリース」をクリックします
「新しいリリースを作成」をクリックします
バージョンタグを設定する(例:v1.0.0)
リリースのタイトルと説明を追加します
さまざまなプラットフォーム用の実行ファイルをドラッグアンドドロップまたはアップロードします
「リリースを公開」をクリック
ユーザーは、GitHub リリース ページから自分のオペレーティング システムに適したバージョンをダウンロードできます。
ライセンス
このプロジェクトは MIT ライセンスの下でリリースされています。