用途
interactive-mcp 是一个用 Node.js/TypeScript 实现的 MCP(Model Context Protocol)服务器,旨在促进 LLM 与用户之间的交互式沟通。该服务器设计为在本地与 MCP 客户端(例如 Claude Desktop、VS Code)一起运行,因为它需要直接访问用户的操作系统来显示通知和命令行提示。项目目前处于早期阶段。
主要能力
该服务器通过 Model Context Protocol(MCP)暴露以下工具:
- request_user_input:向用户提问并返回其答案,可以显示预设选项。
- message_complete_notification:发送简单的操作系统通知。
- start_intensive_chat:启动一个持久的命令行聊天会话。
- ask_intensive_chat:在活跃的 intensive chat 会话中提问。
- stop_intensive_chat:关闭活跃的 intensive chat 会话。
使用方式
客户端配置
默认情况下,用户提示会在 30 秒后超时。可以通过在配置客户端时直接在 args 数组中添加命令行标志来自定义服务器选项,例如超时或禁用工具。请确保 npx 命令可用。
与 Claude Desktop / Cursor 一起使用:将最小配置添加到 claude_desktop_config.json(Claude Desktop)或 mcp.json(Cursor)中。支持指定版本,也支持自定义超时(例如 30 秒)。
与 VS Code 一起使用:将最小配置添加到用户设置(JSON)文件或 .vscode/mcp.json 中。在 macOS 上使用默认 Terminal.app 时,可考虑以下配置文件设置以获得更流畅的体验:在“Shell”标签页中,于“当 shell 退出时”(Terminal > Settings > Profiles > [你的配置文件] > Shell)选择“如果 shell 干净退出则关闭”或“关闭窗口”。这有助于在 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
运行应用程序(开发者):
interactive-mcp 服务器接受以下命令行选项。这些选项通常应在 MCP 客户端的 JSON 设置中配置,直接添加到 args 数组(参见“客户端配置”示例)。
示例:在客户端配置的 args 数组中设置多个选项。
开发命令:
- 构建:pnpm build
- 代码检查:pnpm lint
- 格式化:pnpm format
适用场景
该服务器适用于 LLM 需要直接在用户本地机器上与用户交互的场景,例如:
- 交互式设置或配置流程。
- 在代码生成或修改过程中收集反馈。
- 在结对编程中澄清指令或确认操作。
- 任何需要在 LLM 运行期间获取用户输入或确认的工作流。
交互指导原则
当与此 MCP 服务器交互时(例如作为 LLM 客户端),请遵循以下原则以确保清晰并减少意外更改:
- 优先交互:频繁使用提供的 MCP 工具(request_user_input、start_intensive_chat 等)与用户互动。
- 寻求澄清:如果需求、指令或上下文不清晰,始终在继续之前提出澄清问题。不要做假设。
- 确认操作:在执行重大操作(如修改文件、运行复杂命令或做出架构决策)之前,与用户确认计划。
- 提供选项:尽可能通过 MCP 工具向用户提供预设选项,以便快速决策。
可以像这样向 LLM 客户端提供这些指令。
限制
项目处于早期阶段。默认用户提示超时为 30 秒。其他限制暂未提供。
贡献与许可
欢迎贡献!请遵循标准开发实践。(更多细节可稍后添加。)
MIT(详见 LICENSE 文件——如适用,或直接指定许可证)。