Skip to main content
Glama
mikeysrecipes

interactive-mcp

インタラクティブMCPメイン

インタラクティブMCP

npmバージョン npmダウンロード 鍛冶屋のバッジ GitHubライセンス コードスタイル: よりきれいに プラットフォーム GitHubの最後のコミット

Node.js/TypeScriptで実装されたMCPサーバー。LLMとユーザー間のインタラクティブな通信を容易にします。**注:**このサーバーは、通知やコマンドラインプロンプトを表示するためにユーザーのオペレーティングシステムに直接アクセスする必要があるため、MCPクライアント(Claude Desktop、VS Codeなど)と並行してローカルで実行されるように設計されています。

(注: このプロジェクトはまだ初期段階です。)

**概要を知りたいですか?**紹介ブログ記事をご覧ください: AIアシスタントの推測を阻止する - interactive-mcpのご紹介

デモビデオ

インタラクティブデモビデオ

ツール

このサーバーは、モデル コンテキスト プロトコル (MCP) を介して次のツールを公開します。

  • request_user_input : ユーザーに質問し、回答を返します。定義済みのオプションを表示できます。

  • message_complete_notification : 簡単な OS 通知を送信します。

  • start_intensive_chat : 永続的なコマンドライン チャット セッションを開始します。

  • ask_intensive_chat : アクティブな集中チャットセッション内で質問します。

  • stop_intensive_chat : アクティブな集中チャットセッションを閉じます。

Related MCP server: MCP Server TypeScript Template

デモ

インタラクティブ機能のデモを次に示します。

通常の質問

完了通知

通常の質問デモ

完了通知デモ

集中チャット開始

集中チャット終了

集中チャットデモを開始する

集中チャットデモの終了

使用シナリオ

このサーバーは、次のような LLM がローカル マシン上のユーザーと直接対話する必要があるシナリオに最適です。

  • 対話型のセットアップまたは構成プロセス。

  • コード生成または変更中にフィードバックを収集します。

  • ペアプログラミングにおける指示の明確化やアクションの確認。

  • LLM 操作中にユーザー入力または確認を必要とするワークフロー。

クライアント構成

このセクションではinteractive-mcpサーバーを使用するように MCP クライアントを構成する方法について説明します。

デフォルトでは、ユーザープロンプトは30秒後にタイムアウトします。クライアントの設定時に、コマンドラインフラグをargs配列に直接追加することで、タイムアウトや無効化ツールなどのサーバーオプションをカスタマイズできます。

npxコマンドが使用可能であることを確認してください。

Claude Desktop / Cursor での使用

次の最小限の構成をclaude_desktop_config.json (Claude Desktop) またはmcp.json (Cursor) に追加します。

{
  "mcpServers": {
    "interactive": {
      "command": "npx",
      "args": ["-y", "interactive-mcp"]
    }
  }
}

カスタムタイムアウト(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を使用してよりスムーズなエクスペリエンスを得るには、次のプロファイル設定を検討してください。

  • (シェルタブ): 「シェルの終了時」 (ターミナル > 設定 > プロファイル > [あなたのプロファイル] > シェル)で、 **「シェルが正常に終了した場合は閉じる」または「ウィンドウを閉じる」**を選択します。これにより、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サーバーは以下のコマンドラインオプションを受け入れます。これらのオプションは通常、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

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

Available Tools

5 tools
ask_intensive_chatA
ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesID of the intensive chat session
questionYesQuestion to ask the user
predefinedOptionsNoPredefined options for the user to choose from (optional)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite missing annotations, the description discloses key behaviors: returns user's answer or indicates non-response, maintains chat history, and supports predefined options. However, it lacks details on error cases or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with labeled sections and front-loaded summary. However, some repetition exists (e.g., features overlap with usage notes). Could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains return behavior. For a tool with 3 parameters and simple interaction, it covers essential aspects: session requirement, repeated use, and optional options. Missing potential edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage, but the description adds value with examples and clarifies optional nature of 'predefinedOptions'. This exceeds the baseline 3 by providing practical usage context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it asks a new question in an active intensive chat session previously started, with specific verb and resource. It distinguishes from siblings like 'start_intensive_chat' and 'stop_intensive_chat' by focusing on continuation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'whenToUseThisTool' section explicitly lists scenarios for use, and importantNotes highlight the prerequisite session ID and repeated usage within the same response. This provides clear guidance on when and how to use vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

message_complete_notificationA
ParametersJSON Schema
NameRequiredDescriptionDefault
projectNameYesNotification title
messageYesNotification body

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries behavioral info. It specifies cross-platform OS notifications and best practices like consistent projectName usage. Lacks details on potential side effects, but for a simple notification tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured into sections (description, notes, when to use, features, best practices, parameters, examples). It is detailed but each section adds necessary value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 string parameters and no output schema, the description is fully complete: it explains purpose, usage, parameters, examples, and best practices. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with concise descriptions. The description adds value by explaining parameter use (title vs body) and providing examples, exceeding the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool notifies when a response completes and must be used exactly once per message. It distinguishes itself from sibling chat tools by focusing on signaling completion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'whenToUseThisTool' and 'importantNotes' provide comprehensive guidance: use at end of query, after tool sequences, or multi-step processes. The mandatory once-per-message rule is emphasized.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_user_inputA
ParametersJSON Schema
NameRequiredDescriptionDefault
projectNameYesIdentifies the context/project making the request (used in prompt formatting)
messageYesThe specific question for the user (appears in the prompt)
predefinedOptionsNoPredefined options for the user to choose from (optional)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully discloses behavior: pop-up display, return of user response or timeout after 60 seconds, context maintenance, graceful handling of empty responses, and formatting with project context. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections but is lengthy (many sentences). Some redundancy between importantNotes and bestPractices (e.g., both emphasize frequent use). Could be tightened without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with no output schema, the description is exceptionally complete: covers purpose, usage guidance, features, best practices, and examples. Leaves no gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description's parameters section adds context beyond schema: e.g., projectName is 'used in prompt formatting', predefinedOptions are optional. This adds meaningful value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool sends a question to the user via a pop-up command prompt, with explicit purpose of clarifying requirements, confirming plans, or resolving ambiguity. It distinguishes from sibling tools like ask_intensive_chat by specifying a pop-up prompt rather than a chat message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

A dedicated 'whenToUseThisTool' section provides exhaustive scenarios, and 'bestPractices' explicitly instructs not to use the tool when another tool can answer the question, offering clear alternatives. This provides excellent decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_intensive_chatA
ParametersJSON Schema
NameRequiredDescriptionDefault
sessionTitleYesTitle for the intensive chat session

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behaviors: opens persistent console window, returns session ID, must be closed, configurable timeout, maintains chat history, and warns against unnecessary questions. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with separate sections but contains some redundancy (e.g., 'Highly recommended' and 'Very useful' are similar). It is thorough but could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter list, no output schema, and missing annotations, the description covers all necessary aspects: purpose, usage, important notes, parameters, examples, and best practices. It feels complete for the tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (sessionTitle) with 100% schema coverage. The description adds context that the title appears at the top of the console, which goes beyond the schema's description. A score of 4 is appropriate for the added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it starts an intensive chat session for gathering multiple answers quickly. It uses specific verbs like 'start', 'gather', 'opens', and distinguishes from sibling tools such as ask_intensive_chat and stop_intensive_chat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit when-to-use scenarios (e.g., collecting series of quick answers, multi-step processes) and when-not-to-use (e.g., prefer other tools if they can answer). It also provides important instructions on using ask_intensive_chat and closing with stop_intensive_chat in the same response.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_intensive_chatA
ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesID of the intensive chat session to stop

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given no annotations, the description carries full burden and discloses key behaviors: closes console window, frees system resources, marks session complete. It omits potential side effects like idempotency or error handling, but the core behavioral traits are well covered for a termination action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly structured with clear sections (description, importantNotes, whenToUseThisTool, etc.). Every sentence adds value, and the core purpose is front-loaded. No unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter and no output schema, the description is fully complete. It covers what it does, when to use, how to use (with example), and what to expect. No gaps remain for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'sessionId', with the schema providing a description. The description repeats the same parameter info without adding new semantic meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Stop and close an active intensive chat session' with a specific verb and resource. It clearly distinguishes from siblings like 'start_intensive_chat' and 'ask_intensive_chat' by noting it must be called after all questions have been asked.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use conditions: after completing 'ask_intensive_chat', when the multi-step process is complete, and as the final action. Also includes a strong directive that it 'must be called' and 'should always be called', leaving no ambiguity about its role in the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • First observedask_intensive_chat
    • First observedmessage_complete_notification
    • First observedrequest_user_input
    • First observedstart_intensive_chat
    • First observedstop_intensive_chat

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation4/5

Most tools have distinct purposes: start/stop/ask_intensive_chat form a clear lifecycle for intensive chat sessions, message_complete_notification is for signaling completion, and request_user_input is for general pop-up prompts. However, ask_intensive_chat and request_user_input both ask questions to the user, which could cause some confusion about when to use each, though their contexts differ (session-based vs. standalone).

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structure: start_intensive_chat, ask_intensive_chat, stop_intensive_chat, message_complete_notification, request_user_input. The naming is predictable and readable throughout the set.

Tool Count5/5

With 5 tools, this server is well-scoped for interactive user input scenarios. It covers the core needs: starting, managing, and stopping intensive chat sessions, sending standalone user prompts, and signaling completion. Each tool has a clear role without being overly complex or insufficient.

Completeness5/5

The tool set provides complete coverage for interactive user input workflows. It supports both intensive chat sessions (with start, ask, and stop tools) and standalone user prompts, plus a notification tool for completion signaling. There are no obvious gaps; agents can handle various interactive scenarios effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A demonstration MCP server built in TypeScript that shows how to implement stdio-based communication for integration with MCP clients. Serves as a template for building custom MCP servers with strong typing and maintainability.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Complete Model Context Protocol (MCP) server designed to facilitate seamless interaction between Large Language Models (LLMs) and end-users. It provides a robust set of tools for notifications, confirmations, selections, and text inputs, supporting multiple rendering modes including Console, GUI, and Telegram Bot.
    2
    MIT
  • A
    license
    D
    quality
    D
    maintenance
    A TypeScript MCP server demo supporting local Stdio and remote Streamable HTTP, demonstrating tool invocation for AI agents.
    2
    MIT