D

DanielZhao1990

@DanielZhao1990/interaction-mcp
0 Stars 358 次浏览 DanielZhao1990 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP 交互服务

这是一个使用 FastMCP 库实现的 MCP 服务,旨在与像 Cursor、Windsurf 等 AI 工具进行交互。当 AI 工具在调用大型语言模型时需要用户输入或选择选项时,可以调用此 MCP 服务。

alt text
alt text
alt text

核心目的

该插件的核心目的是实现 AI 工具(如 Cursor 和 Windsurf)与用户之间的高频通信和确认。它通过以下方式显著提高了 AI 交互的效率和效果:

  1. 减少资源浪费:通过允许用户在 AI 提交到可能错误的解决方案路径之前确认或重定向 AI 的方法,该插件最小化了浪费的 API 调用和计算资源。

  2. 最大化资源利用率:每次对 Cursor 或 Windsurf 的 API 调用都变得更加高效,因为 AI 可以在继续之前验证其理解和方法是否正确。

  3. 防止注意力分散:通过早期确认方法,该插件有助于保持对正确解决方案路径的关注,而不是将注意力转移到错误的方法上。

  4. 支持交互式决策:用户可以积极参与决策过程,为 AI 提供即时反馈和指导。

  5. 简化复杂任务:对于多步骤任务,该插件确保在每个关键决策点上用户期望与 AI 执行之间的一致性。

功能

  • 选项选择:显示一个选项列表供用户通过输入数字或提供自定义答案来选择
  • 信息补充:当 AI 模型需要更完整的信息时,它们可以请求用户直接输入补充信息
  • 多种用户界面:支持 CLI、Web 和 PyQt 界面

用户界面类型

该项目支持三种不同的用户界面类型,每种都有自己的特点:

CLI(命令行界面)

  • 描述:打开一个新的命令提示符窗口供用户交互
  • 优点
    • 最小依赖(不需要额外的包)
    • 可以同时处理多个对话窗口
    • 在没有图形界面的环境中工作良好
    • 轻量级且启动速度快
  • 缺点
    • 基本的视觉呈现
    • 对非技术用户来说可能不够直观
  • 最适合:服务器环境、资源有限的系统或需要同时进行多个对话的情况

PyQt 界面

  • 描述:使用 PyQt 提供现代图形用户界面
  • 优点
    • 清晰、专业的对话框
    • 熟悉的桌面应用程序体验
    • 对所有类型的用户都易于使用
  • 缺点
    • 一次只能显示一个对话框
    • 需要 PyQt 依赖项(安装较大)
  • 最适合:重视视觉吸引力的桌面使用场景,或者只需要一个对话框的情况

Web 界面

  • 描述:在网页浏览器中打开对话框
  • 优点
    • 可以同时处理多个对话窗口
    • 可以通过网页浏览器从任何地方访问
    • 现代、可定制的界面
  • 缺点
    • 需要安装网页浏览器
    • 设置稍微复杂一些
  • 最适合:远程访问场景、偏好使用网页界面的环境,或者需要同时进行多个对话的情况

使用指南

1. 入门(两种选项)

选项 A:使用预编译的可执行文件(推荐用于 Windows)

  1. GitHub Releases 页面下载最新的预编译可执行文件。
  2. 无需安装 - 直接下载并运行可执行文件即可。
  3. 您可以使用以下命令测试功能:

bash

使用 PyQt 界面测试选项选择

.distmcp-interactive.exe test select_option --ui pyqt

使用 PyQt 界面测试信息补充

.distmcp-interactive.exe test request_additional_info --ui pyqt

您还可以指定文件路径来测试 request_additional_info 工具

.distmcp-interactive.exe test request_additional_info --ui pyqt D:PathToYourFile.md4. 跳至下面的步骤3进行配置。

选项B:从源代码安装

该项目根据不同UI类型分离依赖项:

  • requirements-base.txt:基础依赖项,所有UI类型共享
  • requirements-pyqt.txt:PyQt5 UI依赖项
  • requirements-web.txt:Web UI (Flask) 依赖项

您可以选择使用传统的pip或更快的uv包管理器来安装依赖项。

使用pip(传统方法)

根据您要使用的UI类型选择适当的依赖文件:

bash
cd requirements

CLI UI(最小依赖)

pip install -r requirements-base.txt

PyQt5 UI

pip install -r requirements-pyqt.txt

Web UI

pip install -r requirements-web.txt

注意:每个特定的UI依赖文件已经包含了对基础依赖的引用(通过 -r requirements-base.txt),因此您只需要安装一个文件。

使用uv(推荐,更快)

如果您已经安装了uv,可以使用以下命令创建虚拟环境并安装依赖项:

bash

创建虚拟环境

uv venv

激活虚拟环境

Windows

.venvScriptsactivate

macOS / Linux

source .venv/bin/activate

根据UI类型安装依赖项

cd requirements

CLI UI(最小依赖)

uv pip install -r requirements-base.txt

PyQt5 UI

uv pip install -r requirements-pyqt.txt

Web UI

uv pip install -r requirements-web.txt

您也可以使用项目的 pyproject.toml 文件直接安装所有依赖项:

bash

安装基础依赖项

uv pip install -e .

安装特定UI类型的依赖项

uv pip install -e ".[pyqt]" # PyQt5 UI
uv pip install -e ".[web]" # Web UI
uv pip install -e ".[all]" # 所有UI类型

2. 启动程序

启动不同的UI响应方式:

bash

命令行界面(默认)

python main.py run --ui=cli

Web界面

python main.py run --ui=web

PyQt界面

python main.py run --ui=pyqt

其他服务启动选项:

bash

使用默认设置启动服务(地址:127.0.0.1,端口:7888)

python main.py run

指定主机和端口

python main.py run --host 0.0.0.0 --port 8888

指定日志级别

python main.py run --log-level warning

3. 配置Cursor、Windsurf或Claude

使用stdio协议(推荐)

stdio协议是最稳定且推荐的连接方法,通过标准输入/输出直接与Python脚本通信,具有以下优点:

  • 更高的稳定性和可靠性
  • 可以同时打开多个对话框
  • 简单直接,无需处理网络连接问题
  • 与系统更紧密集成,响应更快

配置示例:

使用Python(源代码)

json
{
"ai-interaction": {
"command": "python",
"args": ["path/to/main.py", "run", "--transport", "stdio", "--ui", "cli"],
"env": {}
}
}

使用可执行文件

json
{
"ai-interaction": {
"command": "D:/Path/To/Your/mcp-interactive.exe",
"args": ["run", "--transport", "stdio", "--ui", "pyqt"],
"env": {}
}
}

使用SSE协议(备选方案)

如果需要通过网络连接到远程服务器,可以使用SSE协议:

本地启动:
bash
python main.py run --transport sse

Cursor配置:
json
{
"ai-interaction": {
"type": "sse",
"url": "http://127.0.0.1:8000/sse",
"env": {}
}
}

Windsurf配置:
json
{
"ai-interaction": {
"serverUrl": "http://127.0.0.1:7888/sse",
"disabled": false
}
}

4. 配置AI交互规则

为了最大化Cursor和Windsurf中AI交互的效果,请为MCP使用时配置以下规则:1. 当AI对任务不清楚或需要额外信息时,应调用MCP ai-interaction来请求用户澄清。

  1. 当AI有多种可能的解决方案时,应调用MCP ai-interaction让用户选择首选方案。

  2. 完成任务后,AI应调用MCP ai-interaction确认是否有其他需要执行的任务。

  3. AI应将任务分解为多个阶段,并在开始新阶段之前调用MCP ai-interaction询问用户是否需要加入任何额外的想法或考虑因素。

  4. AI应主动使用MCP确认关键决策,而不是做出假设。

这些规则确保了高质量、互动式的AI辅助服务,同时最大化每次API调用的价值。

其他功能

查看可用工具

bash
python main.py list-tools

测试工具

bash

测试选项选择工具

python main.py test select_option --ui=cli

测试信息补充工具

python main.py test request_additional_info --ui=cli

交互式测试客户端

项目包括一个交互式测试客户端,允许您使用不同的UI类型和方法测试MCP服务:

bash

运行交互式测试客户端

python mcp_client_en.py --host localhost --port 7888 --ui cli

选项:

  • --host: 服务器主机(默认:localhost)
  • --port: 服务器端口(默认:7888)
  • --ui: 要使用的UI类型(cli, pyqt, web)

客户端提供:

  • 与MCP服务的连接测试
  • 选择要测试的UI类型
  • 测试select_option和request_additional_info两种方法
  • 每种方法的多个参数预设
  • 请求和响应的完全可视化

这对于以下方面特别有用:

  • 调试UI交互问题
  • 测试不同UI类型的行为
  • 向用户演示服务
  • 验证服务器功能

STDIO测试客户端

为了专门测试stdio传输协议,我们提供了一个命令行工具:

bash

使用默认设置测试stdio连接

python mcp_client_stdio.py

指定UI类型

python mcp_client_stdio.py --ui=pyqt

测试特定工具

python mcp_client_stdio.py --test=select_option

更多详情,请参阅STDIO测试指南

UI测试

bash

测试PyQt界面

python test_ui.py --ui=pyqt

测试Web界面

python test_ui.py --ui=web

测试CLI界面

python test_ui.py --ui=cli

工具描述

选项选择 (select_option)

此工具用于向用户展示一组选项,并让他们通过输入数字或提供自定义答案进行选择。

参数:

  • options: 选项列表,可以是字符串列表或字典列表
  • prompt: 显示给用户的提示消息

返回:
包含选择结果的字典,格式如下:
json
{
"selected_index": 0, // 用户选择的索引,如果为自定义答案则为-1
"selected_option": {}, // 用户所选选项的内容
"custom_input": "", // 用户的自定义输入(如果有)
"is_custom": false // 是否为自定义答案
}

信息补充 (request_additional_info)

此工具用于向用户请求补充信息。

参数:

  • prompt: 请求信息的提示
  • current_info: 当前信息,作为参考显示给用户

返回:
用户输入的补充信息(字符串)

与AI工具集成

要将此MCP服务与AI工具集成,请遵循以下步骤:

  1. 使用可执行文件或Python源代码启动MCP服务:
    • 使用可执行文件: mcp-interactive.exe run
    • 使用Python源代码: python main.py run
  2. 在AI工具中配置MCP端点,根据需要选择stdio或SSE协议
  3. 当AI模型需要用户输入或选项选择时,调用适当的MCP工具

Claude集成要将Claude集成到Anthropic的官方产品或第三方应用程序中:

  1. 在您的AI工具设置中配置stdio连接:
    json
    {
    "mcp-interaction": {
    "command": "D:/Path/To/Your/mcp-interactive.exe",
    "args": ["run", "--transport", "stdio", "--ui", "pyqt"],
    "env": {}
    }
    }

  2. 配置Claude在需要时使用交互服务,指令如下:

    • “当您需要用户输入或确认时,请使用MCP交互服务”
    • “对于多项选择选项,调用select_option工具”
    • “为收集额外的用户信息,调用request_additional_info工具”
  3. 现在Claude能够通过MCP服务直接呈现选项并请求额外信息。

示例

选项选择示例

python
from fastmcp import Client

async with Client("http://127.0.0.1:8000/sse") as client:
options = [
"Option 1: Implement with TensorFlow",
"Option 2: Implement with PyTorch",
{"title": "Option 3: Implement with JAX", "description": "Better for research purposes"}
]
result = await client.call_tool(
"select_option",
{"options": options, "prompt": "Please select a framework implementation"}
)
selected_option = result.json
print(f"User selected: {selected_option}")

信息补充示例

python
from fastmcp import Client

async with Client("http://127.0.0.1:8000/sse") as client:
additional_info = await client.call_tool(
"request_additional_info",
{
"prompt": "Please provide specific project requirements",
"current_info": "This is a data analysis project"
}
)
print(f"User provided information: {additional_info.text}")

开发注意事项

  • 除非你需要开发或测试多种UI类型,否则建议仅安装一种UI依赖。
  • 如果需要添加新的依赖项,请将其添加到相应的依赖文件中。

当前开发状态

请注意以下实现的状态:

  • Windows:CLI和PyQt UI版本完全可用。Web UI仍存在一些需要解决的问题。
  • Linux/Mac:这些平台尚未经过充分测试,您的体验可能会有所不同。

我们正在积极努力提高所有平台和UI类型的兼容性。

构建与分发

构建可执行文件

此项目包含一个脚本,用于构建适用于Windows的独立可执行文件:

bash

构建Windows可执行文件

build_executable.bat

这将在dist目录下创建一个名为mcp-interactive.exe的文件,您可以无需安装Python即可运行它。

跨平台构建

要为不同平台构建可执行文件:

Windows

bash

使用批处理脚本

build_executable.bat

或手动使用PyInstaller命令

pyinstaller mcp-interactive.spec

macOS

bash

确保已安装PyInstaller

pip install pyinstaller

使用spec文件构建

pyinstaller mcp-interactive.spec

Linux

bash

确保已安装PyInstaller

pip install pyinstaller

使用spec文件构建

pyinstaller mcp-interactive.spec

注意:必须在目标平台上进行构建(例如,不能从Windows上构建macOS可执行文件等)。

通过GitHub分发

要使您构建的可执行文件可供下载:

  1. 为您的项目创建一个GitHub发布
  2. 将构建的可执行文件作为发布资产上传
  3. 提供清晰的文档说明每个平台应使用哪个可执行文件

示例步骤:

  1. 导航到您的GitHub仓库
  2. 点击右侧边栏中的“Releases”
  3. 点击“Create a new release”(创建新发布)
  4. 设置版本标签(例如v1.0.0)
  5. 添加发布的标题和描述
  6. 拖放或上传针对不同平台的可执行文件
  7. 点击“Publish release”(发布)用户随后可以从GitHub的发布页面下载适用于他们操作系统的相应版本。

许可证

本项目在MIT许可证下发布。

相关 MCP 服务