interactive-mcp について
interactive-mcp は、ローカルで動作する MCP サーバーで、LLM がOS の通知やコマンドラインのプロンプトを通じてユーザーに直接確認できるようにします。AI 支援のコーディング中に人が手順を承認したい利用者向けです。プロジェクトは初期段階と記載されています。
主な機能
- 01選択肢付きの質問と回答の取得
- 02シンプルな OS 通知の送信
- 03永続的なコマンドラインチャットセッションの開始、質問、終了
- 04ユーザー入力プロンプトのタイムアウト設定
- 05コマンドラインオプションによるツールの無効化
活用シーン
- 01コード生成や修正の過程でユーザーのフィードバックを集める
- 02ペアプログラミングで操作の確認や要件の明確化を行う
- 03LLM の実行中にユーザーの入力や確認を待つ
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| projectName | string | はい | リクエストを行うコンテキスト/プロジェクトを識別します(プロンプトのフォーマットに使用) |
| message | string | はい | ユーザーへの具体的な質問です(プロンプトに表示) |
| predefinedOptions | array | いいえ | ユーザーが選択する事前定義の選択肢です(任意) |
詳細
interactive-mcp
LLM とユーザーの間で対話的なコミュニケーションを実現する、Node.js/TypeScript で実装された MCP サーバーです。**注:**このサーバーは、MCP クライアント(Claude Desktop、VS Code など)とともにローカルで実行するよう設計されています。通知やコマンドラインプロンプトを表示するため、ユーザーのオペレーティングシステムに直接アクセスする必要があるためです。
(注:このプロジェクトは初期段階にあります。)
**手早く概要を知りたい方へ。**紹介ブログ記事をご覧ください:AI アシスタントに推測させない — interactive-mcp のご紹介
ツール
このサーバーは、Model Context Protocol(MCP)を介して次のツールを公開します。
request_user_input:ユーザーに質問し、その回答を返します。あらかじめ定義された選択肢を表示できます。message_complete_notification:シンプルな OS 通知を送信します。start_intensive_chat:コマンドラインで継続的なチャットセッションを開始します。ask_intensive_chat:進行中の集中チャットセッションで質問します。stop_intensive_chat:進行中の集中チャットセッションを終了します。
デモ
対話機能のデモをご覧ください。
| 通常の質問 | 完了通知 |
|---|---|
![]() | ![]() |
| 集中チャットの開始 | 集中チャットの終了 |
|---|---|
![]() | ![]() |
使用シナリオ
このサーバーは、LLM がローカルマシン上でユーザーと直接対話する必要がある、次のようなシナリオに最適です。
- 対話形式のセットアップまたは設定プロセス。
- コードの生成や変更中のフィードバック収集。
- ペアプログラミング中の指示の確認や操作の確認。
- LLM の動作中にユーザーの入力や確認が必要となるあらゆるワークフロー。
クライアントの設定
このセクションでは、MCP クライアントで interactive-mcp サーバーを使用するための設定方法を説明します。
デフォルトでは、ユーザープロンプトは30秒後にタイムアウトします。クライアントの設定時に、コマンドラインフラグを args 配列に直接追加することで、タイムアウトや無効にするツールなどのサーバーオプションをカスタマイズできます。
npx コマンドを使用できることを確認してください。
Claude Desktop / Cursor での使用方法
以下の最小限の設定を claude_desktop_config.json(Claude Desktop)または mcp.json(Cursor)に追加してください。
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "interactive-mcp"]
}
}
}
特定のバージョンを指定する場合
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "[email protected]"]
}
}
}
タイムアウトをカスタマイズする例(30秒):
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "interactive-mcp", "-t", "30"]
}
}
}
VS Code での使用方法
以下の最小限の設定をユーザー設定(JSON)ファイルまたは .vscode/mcp.json に追加してください。
{
"mcp": {
"servers": {
"interactive-mcp": {
"command": "npx",
"args": ["-y", "interactive-mcp"]
}
}
}
}
macOS での推奨設定
macOS でデフォルトの Terminal.app を使用する際、より快適に利用するために、次のプロファイル設定を検討してください。
- (シェルタブ): 「シェルの終了時」(Terminal > Settings > Profiles > [Your Profile] > Shell)で、**「シェルが正常に終了した場合は閉じる」または「ウインドウを閉じる」**を選択します。これにより、MCP サーバーの起動時と停止時にウインドウを管理しやすくなります。
開発環境のセットアップ
このセクションは主に、サーバーの変更やコントリビュートを行う開発者向けです。MCP クライアントでサーバーを_使用_するだけの場合は、上記の「クライアントの設定」セクションを参照してください。
前提条件
- Node.js: バージョンの互換性については
package.jsonを確認してください。 - pnpm: パッケージ管理に使用します。Node.js のインストール後、
npm install -g pnpmでインストールしてください。
インストール(開発者向け)
-
リポジトリをクローンします。
git clone https://github.com/ttommyth/interactive-mcp.git cd interactive-mcp -
依存関係をインストールします。
pnpm install
アプリケーションの実行(開発者向け)
pnpm start
コマンドラインオプション
interactive-mcp サーバーでは、以下のコマンドラインオプションを使用できます。通常、クライアント設定の JSON ファイルで args 配列に直接追加して設定します(「クライアントの設定」の例を参照してください)。
| オプション | エイリアス | 説明 |
|---|---|---|
--timeout | -t | ユーザー入力プロンプトのデフォルトのタイムアウト時間(秒)を設定します。デフォルトは30秒です。 |
--disable-tools | -d | 指定したツールまたはグループを無効にします(カンマ区切りのリスト)。サーバーによるこれらのツールの公開または登録を防ぎます。オプション:request_user_input、message_complete_notification、intensive_chat。 |
例: クライアント設定の args 配列で複数のオプションを設定する場合:
// Example combining options in client config's "args":
"args": [
"-y", "interactive-mcp",
"-t", "30", // Set timeout to 30 seconds
"--disable-tools", "message_complete_notification,intensive_chat" // Disable notifications and intensive chat
]
開発コマンド
- ビルド:
pnpm build - Lint:
pnpm lint - フォーマット:
pnpm format
対話の基本方針
この MCP サーバーを利用する際(LLM クライアントとして利用する場合など)は、明確さを保ち、予期しない変更を減らすために、以下の方針に従ってください。
- 対話を優先する: 提供されている MCP ツール(
request_user_input、start_intensive_chatなど)を頻繁に使用して、ユーザーと対話してください。 - 不明点を確認する: 要件、指示、またはコンテキストが不明確な場合は、作業を進める前に必ず確認の質問をしてください。推測で判断しないでください。
- 操作を確認する: ファイルの変更、複雑なコマンドの実行、アーキテクチャ上の決定など、重要な操作を行う前に、計画をユーザーに確認してください。
- 選択肢を提示する: 可能な限り、MCP ツールを通じてあらかじめ用意した選択肢をユーザーに提示し、すばやく判断できるようにしてください。
以下のように、これらの指示を LLM クライアントに渡すことができます。
# Interaction
- Please use the interactive MCP tools
- Please provide options to interactive MCP if possible
# Reduce Unexpected Changes
- Do not make assumption.
- Ask more questions before executing, until you think the requirement is clear enough.
貢献
貢献を歓迎します!標準的な開発手順に従ってください。(詳細は後日追加できます)。
ライセンス
MIT(詳細については LICENSE ファイルを参照してください。該当する場合は、ライセンスを直接指定してください)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



