MCP Connector

Enable Interactive LLM Communication for Developers

A local MCP server for interactive LLM-user communication - question prompts, OS notifications, and persistent intensive chat sessions.

Works with claude desktopcursorvs code

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated 8 months ago
Version 1.10.1
Models
universal

Add to Favorites

Why it matters

Integrate Large Language Models directly into your development environment for real-time feedback and clarification during coding tasks. Enhance collaboration and streamline code generation with interactive prompts and persistent chat sessions.

Outcomes

What it gets done

01

Facilitate user input and feedback during code generation.

02

Provide system notifications for task completion.

03

Enable persistent chat sessions for complex instruction clarification.

04

Allow for interactive confirmation of actions during pair programming.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-interactive-mcp | bash

Capabilities

Tools your agent gets

request_user_input

Asks the user a question and returns their response with optional predefined options.

message_complete_notification

Sends a simple system notification to the user.

start_intensive_chat

Starts a persistent command chat session for complex interactions.

ask_intensive_chat

Asks a question within an active intensive chat session.

stop_intensive_chat

Ends an active intensive chat session.

Overview

interactive-mcp server

A local MCP server giving an LLM tools to ask the user a question with options, send an OS completion notification, or run a persistent command-line chat session. Use for interactive setup flows, gathering feedback during code generation, or confirming actions - any workflow needing real user input mid-operation rather than assumptions.

What it does

Runs locally alongside an MCP client to let an LLM interact directly with the user on their own machine, rather than guessing when instructions are ambiguous. Five tools cover the interaction surface: request_user_input asks the user a question, optionally with predefined options, and returns their answer; message_complete_notification sends a simple OS notification when a task finishes; and start_intensive_chat, ask_intensive_chat, and stop_intensive_chat open, use, and close a persistent command-line chat session for back-and-forth that would otherwise need repeated one-off prompts. Because the server needs direct OS access to display notifications and command-line prompts, it must run locally alongside the client itself, whether Claude Desktop, Cursor, or VS Code, not remotely. User prompts default to a 30-second timeout, configurable via a command-line flag added directly to the client's config.

When to use - and when NOT to

Use it for interactive setup or configuration flows, gathering feedback during code generation, clarifying instructions or confirming actions during pair programming, or any workflow where the LLM needs the user's input or confirmation mid-operation rather than proceeding on assumptions. Configuration is a minimal JSON entry pointing at the npx-installed package:

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

with optional flags for a custom timeout (-t) or disabling specific tool groups (--disable-tools, accepting request_user_input, message_complete_notification, or intensive_chat). A specific version can be pinned by appending the version to the package name in args. On macOS, the project recommends configuring Terminal.app to close its window when the shell exits cleanly, to avoid stray windows accumulating as the MCP server starts and stops.

Capabilities

A single question-and-answer prompt with optional predefined options, a completion notification, and a persistent multi-turn command-line chat session (start, ask within it, stop) for extended back-and-forth beyond a single question.

How to install

Add the minimal npx -y interactive-mcp configuration to Claude Desktop, Cursor, or VS Code's MCP settings; for development, clone the repository, install with pnpm install, and run with pnpm start, using pnpm build, pnpm lint, and pnpm format for the usual development commands.

Who it's for

Anyone building or using an LLM workflow that needs the model to actually ask the user something and wait for a real answer - setup flows, code review feedback, pair-programming confirmations - instead of silently assuming and risking an unwanted change. The project itself recommends the calling LLM follow explicit interaction principles: use the interactive tools frequently, always ask clarifying questions rather than assume, confirm significant actions like file edits or architectural decisions before doing them, and offer predefined options whenever practical to speed up the user's decision. The project is MIT-licensed.

Source README

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

A MCP Server implemented in Node.js/TypeScript, facilitating interactive communication between LLMs and users. Note: This server is designed to run locally alongside the MCP client (e.g., Claude Desktop, VS Code), as it needs direct access to the user's operating system to display notifications and command-line prompts.

(Note: This project is in its early stages.)

Want a quick overview? Check out the introductory blog post: Stop Your AI Assistant From Guessing - Introducing interactive-mcp

Demo Video

Tools

This server exposes the following tools via the Model Context Protocol (MCP):

  • request_user_input: Asks the user a question and returns their answer. Can display predefined options.
  • message_complete_notification: Sends a simple OS notification.
  • start_intensive_chat: Initiates a persistent command-line chat session.
  • ask_intensive_chat: Asks a question within an active intensive chat session.
  • stop_intensive_chat: Closes an active intensive chat session.

Demo

Here are demonstrations of the interactive features:

Normal Question Completion Notification
Intensive Chat Start Intensive Chat End

Usage Scenarios

This server is ideal for scenarios where an LLM needs to interact directly with the user on their local machine, such as:

  • Interactive setup or configuration processes.
  • Gathering feedback during code generation or modification.
  • Clarifying instructions or confirming actions in pair programming.
  • Any workflow requiring user input or confirmation during LLM operation.

Client Configuration

This section explains how to configure MCP clients to use the interactive-mcp server.

By default, user prompts will time out after 30 seconds. You can customize server options like timeout or disabled tools by adding command-line flags directly to the args array when configuring your client.

Please make sure you have the npx command available.

Usage with Claude Desktop / Cursor

Add the following minimal configuration to your claude_desktop_config.json (Claude Desktop) or mcp.json (Cursor):

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

With specific version

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

Example with Custom Timeout (30s):

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

Usage with VS Code

Add the following minimal configuration to your User Settings (JSON) file or .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "interactive-mcp": {
        "command": "npx",
        "args": ["-y", "interactive-mcp"]
      }
    }
  }
}
macOS Recommendations

For a smoother experience on macOS using the default Terminal.app, consider this profile setting:

  • (Shell Tab): Under "When the shell exits" (Terminal > Settings > Profiles > [Your Profile] > Shell), select "Close if the shell exited cleanly" or "Close the window". This helps manage windows when the MCP server starts and stops.

Development Setup

This section is primarily for developers looking to modify or contribute to the server. If you just want to use the server with an MCP client, see the "Client Configuration" section above.

Prerequisites

  • Node.js: Check package.json for version compatibility.
  • pnpm: Used for package management. Install via npm install -g pnpm after installing Node.js.

Installation (Developers)

  1. Clone the repository:

    git clone https://github.com/ttommyth/interactive-mcp.git
    cd interactive-mcp
    
  2. Install dependencies:

    pnpm install
    

Running the Application (Developers)

pnpm start
Command-Line Options

The interactive-mcp server accepts the following command-line options. These should typically be configured in your MCP client's JSON settings by adding them directly to the args array (see "Client Configuration" examples).

Option Alias Description
--timeout -t Sets the default timeout (in seconds) for user input prompts. Defaults to 30 seconds.
--disable-tools -d Disables specific tools or groups (comma-separated list). Prevents the server from advertising or registering them. Options: request_user_input, message_complete_notification, intensive_chat.

Example: Setting multiple options in the client config args array:

// 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
]

Development Commands

  • Build: pnpm build
  • Lint: pnpm lint
  • Format: pnpm format

Guiding Principles for Interaction

When interacting with this MCP server (e.g., as an LLM client), please adhere to the following principles to ensure clarity and reduce unexpected changes:

  • Prioritize Interaction: Utilize the provided MCP tools (request_user_input, start_intensive_chat, etc.) frequently to engage with the user.
  • Seek Clarification: If requirements, instructions, or context are unclear, always ask clarifying questions before proceeding. Do not make assumptions.
  • Confirm Actions: Before performing significant actions (like modifying files, running complex commands, or making architectural decisions), confirm the plan with the user.
  • Provide Options: Whenever possible, present the user with predefined options through the MCP tools to facilitate quick decisions.

You can provide these instructions to an LLM client like this:

# 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.

FAQ

Common questions

Discussion

Questions & comments ยท 0

Sign In Sign in to leave a comment.