返回市场
交互式-mcp

交互式-mcp

作者:ttommyth320 星标更新:2025-11-21

项目介绍

interactive-mcp

npm 版本 npm 下载量 smithery 徽章 GitHub 许可证 代码风格:prettier 平台 GitHub 最后一次提交

安装 MCP 服务器

截图 2025-05-13 213745

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

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

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

演示视频

<div align="center"> <a href="https://glama.ai/mcp/servers/@ttommyth/interactive-mcp"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=47784408,3578878158&fm=3081&app=3081&f=PNG?w=760&h=400" alt="interactive-mcp MCP 服务器" /> </a> </div>

工具

该服务器通过模型上下文协议 (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)中添加以下最小配置:

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

特定版本

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

自定义超时(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 标签页):在“当 shell 退出时”(终端 > 设置 > 配置文件 > [您的配置文件] > Shell),选择“如果 shell 清洁退出则关闭”或“关闭窗口”。这有助于管理 MCP 服务器启动和停止时的窗口。

开发环境设置

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

先决条件

  • Node.js: 检查 package.json 中的版本兼容性。
  • pnpm: 用于包管理。在安装 Node.js 后通过 npm install -g pnpm 安装。

安装(开发者)

  1. 克隆仓库:

    git clone https://github.com/ttommyth/interactive-mcp.git
    cd interactive-mcp
    
  2. 安装依赖项:

    pnpm install
    

运行应用程序(开发者)

pnpm start

命令行选项

interactive-mcp 服务器接受以下命令行选项。这些通常应通过直接添加到客户端 JSON 设置中的 args 数组来配置(参见“客户端配置”示例)。

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

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

// 示例结合客户端配置中的选项:
"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_input, start_intensive_chat 等)与用户互动。
  • 寻求澄清: 如果需求、指令或上下文不清楚,始终在继续之前询问澄清问题。不要做假设。
  • 确认行动: 在执行重大行动(如修改文件、运行复杂命令或做出架构决策)之前,与用户确认计划。
  • 提供选项: 尽可能通过 MCP 工具向用户提供预定义选项,以促进快速决策。

您可以像这样向 LLM 客户端提供这些说明:

# 交互

- 请使用交互式 MCP 工具
- 如果可能,请向交互式 MCP 提供选项

# 减少意外更改

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

贡献

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

许可证

MIT(查看 LICENSE 文件获取详情 - 如适用,或直接指定许可证)。