关于 interactive-mcp
interactive-mcp 是一个在本地运行的 MCP 服务,允许 LLM 通过操作系统通知和命令行提示与用户直接交互。它面向希望在编码过程中由人确认关键步骤的用户,项目目前处于早期阶段。
主要功能
- 01向用户提问并返回回答,可附带预设选项
- 02发送简单的系统通知
- 03启动、提问和关闭持久命令行对话
- 04可配置的提示超时时间
- 05可通过参数禁用指定工具
适用场景
- 01在代码生成或修改过程中收集用户反馈
- 02在结对编程中确认操作或澄清需求
- 03在 LLM 运行期间等待用户输入或确认
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| projectName | string | 是 | 标识发起请求的上下文/项目(用于格式化提示) |
| message | string | 是 | 向用户提出的具体问题(显示在提示中) |
| predefinedOptions | array | 否 | 供用户选择的预设选项(可选) |
详细介绍
interactive-mcp
这是一个使用 Node.js/TypeScript 实现的 MCP 服务,可促进大模型与用户之间的交互式通信。**注意:**此服务旨在与 MCP 客户端(例如 Claude Desktop、VS Code)一起在本地运行,因为它需要直接访问用户的操作系统,以显示通知和命令行提示。
(注意:此项目仍处于早期阶段。)
**想快速了解概况?**请查看介绍性博客文章:别再让 AI 助手靠猜了——认识 interactive-mcp
工具
此服务通过模型上下文协议(MCP)提供以下工具:
request_user_input:向用户提问并返回其回答。可显示预设选项。message_complete_notification:发送简单的操作系统通知。start_intensive_chat:启动持久的命令行聊天会话。ask_intensive_chat:在活跃的深度聊天会话中提问。stop_intensive_chat:关闭活跃的深度聊天会话。
演示
以下是交互功能的演示:
| 普通问题 | 完成通知 |
|---|---|
![]() | ![]() |
| 开始深度聊天 | 结束深度聊天 |
|---|---|
![]() | ![]() |
使用场景
此服务适用于大模型需要在用户的本地计算机上与其直接交互的场景,例如:
- 交互式设置或配置流程。
- 在生成或修改代码时收集反馈。
- 在结对编程中澄清指示或确认操作。
- 大模型运行期间任何需要用户输入或确认的工作流。
客户端配置
本节说明如何配置 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 时,可考虑设置以下配置,以获得更流畅的体验:
- (Shell 标签页): 在 “When the shell exits”(终端 > 设置 > 配置文件 > [Your Profile] > Shell) 下,选择 “Close if the shell exited cleanly” 或 “Close the window”。这样有助于管理 MCP 服务启动和停止时的窗口。
开发环境设置
本节主要面向希望修改或为服务做贡献的开发者。如果你只想通过 MCP 客户端_使用_该服务,请参阅上方的“客户端配置”一节。
先决条件
- Node.js: 查看
package.json以确认版本兼容性。 - pnpm: 用于包管理。安装 Node.js 后,通过
npm install -g pnpm安装。
安装(开发者)
-
克隆代码仓库:
git clone https://github.com/ttommyth/interactive-mcp.git cd interactive-mcp -
安装依赖:
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 服务交互时(例如,作为大模型客户端),请遵循以下原则,以确保表达清晰并减少意外更改:
- 优先交互: 经常使用提供的 MCP 工具(
request_user_input、start_intensive_chat等)与用户互动。 - 寻求澄清: 如果需求、指示或上下文不清楚,务必先提出澄清问题再继续。不要自行假设。
- 确认操作: 执行重大操作(例如修改文件、运行复杂命令或做出架构决策)之前,请先与用户确认计划。
- 提供选项: 尽可能通过 MCP 工具向用户提供预设选项,以便快速做出决定。
你可以像这样向大模型客户端提供这些指示:
# 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 文件,如适用;也可直接注明许可证。)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。



