mcpField
I
interactive-mcp

interactive-mcp

ローカル
github.com/ttommythAI・エージェント35159 週間前に更新

interactive-mcp について

interactive-mcp は、ローカルで動作する MCP サーバーで、LLM がOS の通知やコマンドラインのプロンプトを通じてユーザーに直接確認できるようにします。AI 支援のコーディング中に人が手順を承認したい利用者向けです。プロジェクトは初期段階と記載されています。

主な機能

  1. 01選択肢付きの質問と回答の取得
  2. 02シンプルな OS 通知の送信
  3. 03永続的なコマンドラインチャットセッションの開始、質問、終了
  4. 04ユーザー入力プロンプトのタイムアウト設定
  5. 05コマンドラインオプションによるツールの無効化

活用シーン

  1. 01コード生成や修正の過程でユーザーのフィードバックを集める
  2. 02ペアプログラミングで操作の確認や要件の明確化を行う
  3. 03LLM の実行中にユーザーの入力や確認を待つ

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"interactive": {
"command": "npx",
"args": [
"-y",
"interactive-mcp"
]
}
}
}
起動コマンドnpx -y interactive-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npminteractive-mcp

ツール

5

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
projectNamestringはいリクエストを行うコンテキスト/プロジェクトを識別します(プロンプトのフォーマットに使用)
messagestringはいユーザーへの具体的な質問です(プロンプトに表示)
predefinedOptionsarrayいいえユーザーが選択する事前定義の選択肢です(任意)

詳細

interactive-mcp

npm version npm downloads smithery badge GitHub license code style: prettier Platforms GitHub last commit

Install MCP Server

Screenshot 2025-05-13 213745

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 でインストールしてください。
インストール(開発者向け)
  1. リポジトリをクローンします。

    git clone https://github.com/ttommyth/interactive-mcp.git
    cd interactive-mcp
    
  2. 依存関係をインストールします。

    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 ファイルを参照してください。該当する場合は、ライセンスを直接指定してください)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。