by ttommyth
Facilitates interactive communication between LLMs and users on the local machine, offering tools for user prompts, OS notifications, and persistent command‑line chat sessions.
Interactive MCP provides a local, cross‑platform server that lets large language models engage the user directly through native OS dialogs, command‑line chats, and notification pop‑ups. It acts as a bridge between an LLM client (e.g., Claude Desktop, Cursor, VS Code) and the user's operating system.
npx
command. Example for Claude Desktop or Cursor:{
"mcpServers": {
"interactive": {
"command": "npx",
"args": ["-y", "interactive-mcp"]
}
}
}
args
array, e.g., "-t", "45", "--disable-tools", "message_complete_notification"
.Q: Does Interactive MCP run on all operating systems? A: Yes, it supports Windows, macOS, and Linux.
Q: Do I need to install the package globally?
A: No, invoking it with npx -y interactive-mcp
runs it without a global install.
Q: How can I change the default 30‑second timeout?
A: Add -t <seconds>
(or --timeout <seconds>
) to the args
array in your client config.
Q: Can I disable the notification tool?
A: Yes, include --disable-tools message_complete_notification
(or the short form -d
) in the args.
Q: Is source code available for modification?
A: The project is open‑source on GitHub; clone it and run pnpm install
to develop locally.
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
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.Here are demonstrations of the interactive features:
Normal Question | Completion Notification |
---|---|
![]() |
![]() |
Intensive Chat Start | Intensive Chat End |
---|---|
![]() |
![]() |
This server is ideal for scenarios where an LLM needs to interact directly with the user on their local machine, such as:
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.
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"]
}
}
}
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"]
}
}
}
}
For a smoother experience on macOS using the default Terminal.app
, consider this profile setting:
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.
package.json
for version compatibility.npm install -g pnpm
after installing Node.js.Clone the repository:
git clone https://github.com/ttommyth/interactive-mcp.git
cd interactive-mcp
Install dependencies:
pnpm install
pnpm start
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
]
pnpm build
pnpm lint
pnpm format
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:
request_user_input
, start_intensive_chat
, etc.) frequently to engage with the user.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.
Contributions are welcome! Please follow standard development practices. (Further details can be added later).
MIT (See LICENSE
file for details - if applicable, or specify license directly).
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "interactive": { "command": "npx", "args": [ "-y", "interactive-mcp" ], "env": {} } } }
Discover more MCP servers with similar functionality and use cases
by zed-industries
Provides real-time collaborative editing powered by Rust, enabling developers to edit code instantly across machines with a responsive, GPU-accelerated UI.
by cline
Provides autonomous coding assistance directly in the IDE, enabling file creation, editing, terminal command execution, browser interactions, and tool extension with user approval at each step.
by continuedev
Provides continuous AI assistance across IDEs, terminals, and CI pipelines, offering agents, chat, inline editing, and autocomplete to accelerate software development.
by github
Enables AI agents, assistants, and chatbots to interact with GitHub via natural‑language commands, providing read‑write access to repositories, issues, pull requests, workflows, security data and team activity.
by block
Automates engineering tasks by installing, executing, editing, and testing code using any large language model, providing end‑to‑end project building, debugging, workflow orchestration, and external API interaction.
by RooCodeInc
An autonomous coding agent that lives inside VS Code, capable of generating, refactoring, debugging code, managing files, running terminal commands, controlling a browser, and adapting its behavior through custom modes and instructions.
by lastmile-ai
A lightweight, composable framework for building AI agents using Model Context Protocol and simple workflow patterns.
by firebase
Provides a command‑line interface to manage, test, and deploy Firebase projects, covering hosting, databases, authentication, cloud functions, extensions, and CI/CD workflows.
by gptme
Empowers large language models to act as personal AI assistants directly inside the terminal, providing capabilities such as code execution, file manipulation, web browsing, vision, and interactive tool usage.