slftest
一个使用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
这是一个用 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进行安装。
安装(开发者)
-
克隆仓库:
bash
git clone https://github.com/ttommyth/interactive-mcp.git
cd interactive-mcp -
安装依赖项:
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_input、start_intensive_chat等)与用户互动。 - 寻求澄清: 如果需求、指示或上下文不清楚,请务必在继续之前询问澄清问题。不要做出假设。
- 确认操作: 在执行重要操作(如修改文件、运行复杂命令或做出架构决策)之前,与用户确认计划。
- 提供选项: 尽可能通过MCP工具向用户提供预定义的选项,以便快速做出决定。
您可以这样向LLM客户端提供这些指导:
交互
- 请使用交互式的MCP工具
- 如果可能的话,请为交互式MCP提供选项
减少意外更改
- 不要做假设。
- 在执行前多提问,直到您认为需求足够明确为止。
贡献
欢迎贡献!请遵循标准开发实践。(更多细节可后续添加)。
许可证
MIT(详见LICENSE文件 - 如适用,或直接指定许可证)。



