Interactive MCP
The Interactive MCP Server facilitates real-time communication between LLMs and users on their local machine through:
Request User Input: Ask questions with optional predefined choices to clarify requirements
Send Notifications: Deliver OS notifications when tasks complete
Intensive Chat Sessions: Manage persistent command-line conversations for multi-turn interactions
Cross-Platform Support: Works on Windows, macOS, and Linux
Client Compatibility: Integrates with Claude Desktop, VS Code, and other MCP clients
The server runs locally alongside MCP clients and encourages proactive clarification to reduce assumptions in AI-user interactions.
Provides cross-platform support for Linux environments, allowing LLMs to interact directly with users on their local Linux machines.
Supports running on macOS with specific recommendations for Terminal.app settings to ensure a smooth experience with the interactive MCP server.
Implements the Model Context Protocol (MCP) server in Node.js, allowing seamless integration with the local operating system for displaying notifications and command-line prompts.
Built with TypeScript for type safety and improved developer experience, enabling robust implementation of MCP tools for interactive AI-user communication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Interactive MCP ask the user if they want to save the current file before closing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
interactive-mcp
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
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.
Related MCP server: Interactive Feedback MCP
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.jsonfor version compatibility.pnpm: Used for package management. Install via
npm install -g pnpmafter installing Node.js.
Installation (Developers)
Clone the repository:
git clone https://github.com/ttommyth/interactive-mcp.git cd interactive-mcpInstall dependencies:
pnpm install
Running the Application (Developers)
pnpm startCommand-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 |
|
| Sets the default timeout (in seconds) for user input prompts. Defaults to 30 seconds. |
|
| Disables specific tools or groups (comma-separated list). Prevents the server from advertising or registering them. Options: |
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 buildLint:
pnpm lintFormat:
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.Contributing
Contributions are welcome! Please follow standard development practices. (Further details can be added later).
License
MIT (See LICENSE file for details - if applicable, or specify license directly).
Available Tools
5 toolsask_intensive_chatA
Inputs: question (required), sessionId (required), predefinedOptions.
message_complete_notificationA
Inputs: message (required), projectName (required).
request_user_inputA
Inputs: message (required), projectName (required), predefinedOptions.
start_intensive_chatA
Inputs: sessionTitle (required).
stop_intensive_chatA
Inputs: sessionId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: start, ask, and stop intensive chat sessions; request general user input; and notify completion. No overlap, as ask_intensive_chat is contextual within an active session, while request_user_input is standalone. The descriptions further clarify their distinct use cases.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., start_intensive_chat, request_user_input). The naming is predictable and logically groups related actions (start/ask/stop for intensive chat). No mixing of conventions.
With 5 tools, the server is well-scoped for its purpose of managing interactive user input and notifications. Each tool is necessary and there is no bloat. This count is ideal for such a focused domain.
The tool set covers the full lifecycle of an intensive chat session (start, ask questions, stop), plus a general user input tool and a completion notification. There are no obvious gaps for the stated purpose of gathering user input and signaling completion.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
MCP server for AI dialogue using various LLM models via AceDataCloud
Impri MCP server — human-in-the-loop approval inbox for AI agents
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseBqualityDmaintenanceA secure terminal execution server that enables controlled command execution with security features and resource limits via the Model Context Protocol (MCP).130 npm11MIT
- AlicenseAqualityDmaintenanceA MCP server that enables human-in-the-loop workflow in AI-assisted development tools by allowing users to run commands, view their output, and provide textual feedback directly to the AI assistant.11,703MIT
- AlicenseAqualityDmaintenanceA Node.js/TypeScript MCP server that facilitates interactive communication between LLMs and users, allowing AI assistants to request user input, display notifications, and manage command-line chat sessions.563 npm1MIT
- AlicenseNot gradedqualityDmaintenanceA cross-platform MCP server that provides native popup windows for AI agents to gather user feedback, input, and safety confirmations. It enables agents to present interactive questionnaires and secure confirmation prompts for sensitive operations like file deletion or code execution.13MIT



