一个用 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 需要直接与用户在本地机器上进行交互的场景,例如:
本节解释如何配置 MCP 客户端以使用 interactive-mcp 服务器。
默认情况下,用户提示将在 30 秒后超时。您可以通过在配置客户端时直接向 args 数组添加命令行标志来自定义服务器选项,如超时或禁用工具。
请确保您有 npx 命令可用。
在您的 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"]
}
}
}
在您的用户设置(JSON)文件或 .vscode/mcp.json 中添加以下最小配置:
{
"mcp": {
"servers": {
"interactive-mcp": {
"command": "npx",
"args": ["-y", "interactive-mcp"]
}
}
}
}
为了在 macOS 上使用默认的 Terminal.app 获得更顺畅的体验,请考虑以下配置:
本节主要针对希望修改或贡献于服务器的开发者。如果您只是想使用 MCP 客户端中的服务器,请参阅上面的“客户端配置”部分。
package.json 中的版本兼容性。npm install -g pnpm 安装。克隆仓库:
git clone https://github.com/ttommyth/interactive-mcp.git
cd interactive-mcp
安装依赖项:
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 buildpnpm lintpnpm format当与这个 MCP 服务器交互(例如作为 LLM 客户端)时,请遵循以下原则以确保清晰并减少意外更改:
request_user_input, start_intensive_chat 等)与用户互动。您可以像这样向 LLM 客户端提供这些说明:
# 交互
- 请使用交互式 MCP 工具
- 如果可能,请向交互式 MCP 提供选项
# 减少意外更改
- 不要做假设。
- 在执行前多问问题,直到您认为需求足够明确。
欢迎贡献!请遵循标准的开发实践。(稍后可以添加更多细节)。
MIT(查看 LICENSE 文件获取详情 - 如适用,或直接指定许可证)。