s

slftest

freya123/interactive-mcp
0 Stars 307 次浏览 沙漠里的猫 更新于 2026-08-23

一个使用Node.js/TypeScript实现的MCP服务器,促进了LLMs和用户之间的交互式通信。该服务器设计为与MCP客户端(例如Claude Desktop、VS Code)一起本地运行,因为它需要直接访问用户的操作系统以显示通知和命令行提示。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

服务介绍

interactive-mcp

npm version npm downloads smithery badge GitHub license Platforms GitHub last commit

Install MCP Server

Screenshot 2025-05-13 213745

这是一个用 Node.js/TypeScript 实现的 MCP 服务器,旨在促进 LLM(大型语言模型)与用户之间的交互式通信。注意: 此服务器设计为与 MCP 客户端(例如 Claude Desktop、VS Code)一起在本地运行,因为它需要直接访问用户的操作系统以显示通知和命令行提示。

(注意:此项目处于早期阶段。)

想要快速了解? 查看介绍博客文章:停止你的 AI 助手猜测 —— 介绍 interactive-mcp

演示视频

工具

该服务器通过 Model Context Protocol (MCP) 提供以下工具:

  • request_user_input:向用户提问并返回其答案。可以显示预定义选项。
  • message_complete_notification:发送一个简单的操作系统通知。
  • start_intensive_chat:启动一个持久的命令行聊天会话。
  • ask_intensive_chat:在一个活跃的密集聊天会话中提出问题。
  • stop_intensive_chat:关闭一个活跃的密集聊天会话。

演示

以下是交互功能的演示:

普通问题 完成通知
普通问题演示 完成通知演示
密集聊天开始 密集聊天结束
开始密集聊天演示 结束密集聊天演示

使用场景

该服务器适用于需要 LLM 直接在用户本地机器上与用户交互的场景,例如:

  • 交互式设置或配置过程。
  • 在代码生成或修改过程中收集反馈。
  • 在结对编程中澄清指令或确认操作。
  • 任何在 LLM 运行期间需要用户输入或确认的工作流程。

客户端配置本节解释了如何配置MCP客户端以使用interactive-mcp服务器。

默认情况下,用户提示将在30秒后超时。您可以通过在配置客户端时直接向args数组中添加命令行标志来自定义服务器选项,如超时或禁用工具。

请确保您有可用的npx命令。

与Claude Desktop / Cursor一起使用

将以下最小配置添加到您的claude_desktop_config.json(Claude Desktop)或mcp.json(Cursor)文件中:

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

指定版本

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

自定义超时时间示例(30秒):

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

与VS Code一起使用

将以下最小配置添加到您的用户设置(JSON格式)文件或.vscode/mcp.json中:

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

macOS建议

为了在macOS上使用默认的Terminal.app获得更流畅的体验,请考虑此配置文件设置:

  • (Shell标签): 在**"当shell退出时"终端 > 设置 > 配置文件 > [您的配置文件] > Shell)下选择"如果shell正常退出则关闭""关闭窗口"**。这有助于管理当MCP服务器启动和停止时的窗口。

开发环境设置

本节主要面向希望修改或贡献于服务器的开发者。如果您只是想通过MCP客户端_使用_该服务器,请参阅上面的“客户端配置”部分。

前提条件

  • Node.js: 检查package.json以获取版本兼容性。
  • pnpm: 用于包管理。安装Node.js之后,通过npm install -g pnpm进行安装。

安装(开发者)

  1. 克隆仓库:

    bash
    git clone https://github.com/ttommyth/interactive-mcp.git
    cd interactive-mcp

  2. 安装依赖项:

    bash
    pnpm install

运行应用程序(开发者)

bash
pnpm start

命令行选项

interactive-mcp服务器接受以下命令行选项。这些通常应该通过直接将它们添加到args数组中的方式,在您的MCP客户端的JSON设置中进行配置(参见“客户端配置”示例)。

选项 别名 描述
--timeout -t 设置用户输入提示的默认超时时间(以秒为单位)。默认为30秒。
--disable-tools -d 禁用特定工具或组(逗号分隔列表)。阻止服务器宣传或注册它们。选项:request_user_input, message_complete_notification, intensive_chat

示例: 在客户端配置的args数组中设置多个选项:

jsonc
// 示例结合客户端配置中的选项:
"args": [
"-y", "interactive-mcp",
"-t", "30", // 将超时设置为30秒
"--disable-tools", "message_complete_notification,intensive_chat" // 禁用通知和密集聊天
]

开发命令

  • 构建: pnpm build
  • 检查: pnpm lint
  • 格式化: pnpm format

交互指导原则在与该MCP服务器交互时(例如,作为LLM客户端),请遵循以下原则以确保清晰度并减少意外更改:

  • 优先进行交互: 经常使用提供的MCP工具(如request_user_inputstart_intensive_chat等)与用户互动。
  • 寻求澄清: 如果需求、指示或上下文不清楚,请务必在继续之前询问澄清问题。不要做出假设。
  • 确认操作: 在执行重要操作(如修改文件、运行复杂命令或做出架构决策)之前,与用户确认计划。
  • 提供选项: 尽可能通过MCP工具向用户提供预定义的选项,以便快速做出决定。

您可以这样向LLM客户端提供这些指导:

交互

  • 请使用交互式的MCP工具
  • 如果可能的话,请为交互式MCP提供选项

减少意外更改

  • 不要做假设。
  • 在执行前多提问,直到您认为需求足够明确为止。

贡献

欢迎贡献!请遵循标准开发实践。(更多细节可后续添加)。

许可证

MIT(详见LICENSE文件 - 如适用,或直接指定许可证)。

相关 MCP 服务