Skip to main content
Glama

MCP Interactive Service

Integrations
  • Used as the web framework for the MCP service's web interface, enabling HTTP-based interactions between AI tools and users through a browser.

  • The primary language for the MCP service, providing the foundation for all UI types (CLI, Web, PyQt) and tool implementations.

  • Mentioned as an example implementation option in the select_option tool, allowing AI tools to present PyTorch as an implementation choice to users.

Интерактивная служба MCP

Это служба MCP, реализованная с использованием библиотеки FastMCP, предназначенная для взаимодействия с инструментами ИИ, такими как Cursor, Windsurf и т. д. Когда инструментам ИИ требуется пользовательский ввод или выбор параметров при вызове больших языковых моделей, они могут вызвать эту службу MCP.

Основная цель

Основная цель этого плагина — обеспечить высокочастотную связь и подтверждение между инструментами ИИ (такими как Cursor и Windsurf) и пользователями. Он значительно повышает эффективность и результативность взаимодействия ИИ за счет:

  1. Сокращение ненужных затрат ресурсов : позволяя пользователям подтверждать или перенаправлять подход ИИ до того, как он выберет потенциально неверный путь решения, плагин сводит к минимуму ненужные вызовы API и вычислительные ресурсы.
  2. Максимальное использование ресурсов : каждый вызов API к Cursor или Windsurf становится более продуктивным, поскольку ИИ может проверить свое понимание и подход с пользователем, прежде чем продолжить.
  3. Предотвращение фрагментации внимания : Подтверждая подходы на ранних этапах, плагин помогает сохранять фокус на правильном пути решения, не отвлекая внимание на неправильные подходы.
  4. Обеспечение интерактивного принятия решений : пользователи могут активно участвовать в процессе принятия решений, предоставляя немедленную обратную связь и указания ИИ.
  5. Оптимизация сложных задач : для многоэтапных задач плагин обеспечивает соответствие между ожиданиями пользователя и действиями ИИ в каждой критической точке принятия решения.

Функции

  • Выбор варианта : отображение списка вариантов, из которых пользователи могут выбрать, введя числа или предоставив собственные ответы.
  • Информационное дополнение : когда моделям ИИ требуется более полная информация, они могут попросить пользователей напрямую ввести дополнительную информацию.
  • Несколько пользовательских интерфейсов : поддержка интерфейсов CLI, Web и PyQt

Типы пользовательского интерфейса

Этот проект поддерживает три различных типа пользовательского интерфейса, каждый из которых имеет свои особенности:

CLI (интерфейс командной строки)

  • Описание : открывает новое окно командной строки для взаимодействия с пользователем.
  • Преимущества :
    • Минимальные зависимости (дополнительные пакеты не требуются)
    • Может обрабатывать несколько диалоговых окон одновременно
    • Хорошо работает в средах без графических интерфейсов.
    • Легкий и быстрый запуск
  • Недостатки :
    • Базовая визуальная презентация
    • Может быть не столь интуитивно понятным для нетехнических пользователей.
  • Лучше всего подходит для : серверных сред, систем с ограниченными ресурсами или когда требуется несколько одновременных диалогов.

Интерфейс PyQt

  • Описание : Предоставляет современный графический пользовательский интерфейс с использованием PyQt.
  • Преимущества :
    • Чистые, профессионально выглядящие диалоги
    • Знакомый опыт использования настольных приложений
    • Простота использования для всех типов пользователей
  • Недостатки :
    • Одновременно может отображаться только один диалог.
    • Требуются зависимости PyQt (большая установка)
  • Подходит для : использования на рабочем столе, где важна визуальная привлекательность и требуется только один диалог за раз

Веб-интерфейс

  • Описание : Открывает диалоговые окна в веб-браузере.
  • Преимущества :
    • Может обрабатывать несколько диалоговых окон одновременно
    • Доступно из любой точки мира через веб-браузер
    • Современный, настраиваемый интерфейс
  • Недостатки :
    • Требуется установленный веб-браузер.
    • Немного более сложная настройка
  • Лучше всего подходит для : сценариев удаленного доступа, сред, где предпочтителен веб-интерфейс, или когда требуется несколько одновременных диалогов.

Руководство по использованию

1. Начало работы (два варианта)

Вариант A: использование предварительно скомпилированного исполняемого файла (рекомендуется для Windows)
  1. Загрузите последнюю версию предварительно скомпилированного исполняемого файла со страницы релизов GitHub .
  2. Установка не требуется — просто скачайте и запустите исполняемый файл.
  3. Вы можете проверить работоспособность с помощью следующих команд:
# Test option selection with PyQt interface .\dist\mcp-interactive.exe test select_option --ui pyqt # Test information supplement with PyQt interface .\dist\mcp-interactive.exe test request_additional_info --ui pyqt # You can also specify a file path for testing the request_additional_info tool .\dist\mcp-interactive.exe test request_additional_info --ui pyqt D:\Path\To\Your\File.md
  1. Для настройки перейдите к шагу 3 ниже.
Вариант Б: Установка из исходного кода

В этом проекте зависимости разделяются на основе различных типов пользовательского интерфейса:

  • requirements-base.txt : Базовые зависимости, общие для всех типов пользовательского интерфейса
  • requirements-pyqt.txt : зависимости пользовательского интерфейса PyQt5
  • requirements-web.txt : Зависимости веб-интерфейса (Flask)

Для установки зависимостей вы можете использовать либо традиционный pip, либо более быстрый менеджер пакетов uv.

Использование pip (традиционный метод)

Выберите соответствующий файл зависимостей в зависимости от типа пользовательского интерфейса, который вы хотите использовать:

cd requirements # CLI UI (minimal dependencies) pip install -r requirements-base.txt # PyQt5 UI pip install -r requirements-pyqt.txt # Web UI pip install -r requirements-web.txt

Примечание: каждый конкретный файл зависимостей пользовательского интерфейса уже включает ссылку на базовые зависимости (через -r requirements-base.txt ), поэтому вам нужно установить только один файл.

Использование УФ (рекомендуется, быстрее)

Если у вас уже установлен uv , вы можете использовать следующие команды для создания виртуальной среды и установки зависимостей:

# Create a virtual environment uv venv # Activate the virtual environment # Windows .venv\Scripts\activate # macOS / Linux source .venv/bin/activate # Install dependencies based on UI type cd requirements # CLI UI (minimal dependencies) 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 проекта для установки всех зависимостей напрямую:

# Install base dependencies uv pip install -e . # Install specific UI type dependencies uv pip install -e ".[pyqt]" # PyQt5 UI uv pip install -e ".[web]" # Web UI uv pip install -e ".[all]" # All UI types

2. Запустите программу

Запуск различных методов реагирования пользовательского интерфейса:

# Command line interface (default) python main.py run --ui=cli # Web interface python main.py run --ui=web # PyQt interface python main.py run --ui=pyqt

Другие варианты запуска сервиса:

# Start the service with default settings (address: 127.0.0.1, port: 7888) python main.py run # Specify host and port python main.py run --host 0.0.0.0 --port 8888 # Specify log level python main.py run --log-level warning

3. Настройте Cursor, Windsurf или Claude

Использование протокола stdio (рекомендуется)

Протокол stdio — наиболее стабильный и рекомендуемый метод подключения, обеспечивающий прямую связь со скриптами Python через стандартный ввод/вывод, имеющий следующие преимущества:

  • Более высокая стабильность и надежность
  • Можно открывать несколько диалоговых окон одновременно
  • Простота и понятность, нет необходимости решать проблемы с сетевым подключением
  • Более тесная интеграция с системой, более быстрое реагирование

Примеры конфигурации:

Использование с Python (исходный код)
{ "ai-interaction": { "command": "python", "args": ["path/to/main.py", "run", "--transport", "stdio", "--ui", "cli"], "env": {} } }
Использование с исполняемым файлом
{ "ai-interaction": { "command": "D:/Path/To/Your/mcp-interactive.exe", "args": ["run", "--transport", "stdio", "--ui", "pyqt"], "env": {} } }
Использование протокола SSE (альтернатива)

Если вам необходимо подключиться к удаленному серверу по сети, вы можете использовать протокол SSE:

Локальный стартап:

python main.py run --transport sse

Конфигурация курсора:

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

Конфигурация виндсерфинга:

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

4. Настройте правила взаимодействия ИИ

Чтобы максимизировать эффективность взаимодействия ИИ в Cursor и Windsurf, настройте следующие правила, которым ИИ будет следовать при использовании MCP:

  1. Когда ИИ неясно, что именно нужно сделать или ему нужна дополнительная информация, он должен вызвать MCP ai-interaction, чтобы запросить разъяснения у пользователя.
  2. Когда у ИИ есть несколько возможных подходов к решению, он должен вызвать MCP ai-interaction, чтобы позволить пользователю выбрать предпочтительный подход.
  3. После завершения задачи ИИ должен вызвать MCP ai-interaction, чтобы подтвердить, есть ли другие задачи, которые необходимо выполнить.
  4. ИИ должен разбивать задачи на несколько этапов и перед началом нового этапа вызывать MCP ai-interaction, чтобы спросить пользователя, нужно ли включить какие-либо дополнительные мысли или соображения.
  5. ИИ должен активно использовать MCP для подтверждения критически важных решений, а не строить предположения.

Эти правила обеспечивают высококачественную интерактивную помощь ИИ, одновременно максимизируя ценность каждого вызова API.

Другие функции

Просмотреть доступные инструменты
python main.py list-tools
Тестовые инструменты
# Test option selection tool python main.py test select_option --ui=cli # Test information supplement tool python main.py test request_additional_info --ui=cli
Интерактивный тестовый клиент

Проект включает в себя интерактивный тестовый клиент, который позволяет тестировать службу MCP с различными типами и методами пользовательского интерфейса:

# Run the interactive test client python mcp_client_en.py --host localhost --port 7888 --ui cli

Параметры:

  • --host : Хост сервера (по умолчанию: localhost)
  • --port : Порт сервера (по умолчанию: 7888)
  • --ui : тип используемого пользовательского интерфейса (cli, pyqt, web)

Клиент предоставляет:

  • Тестирование соединения с сервисом MCP
  • Выбор типа пользовательского интерфейса для тестирования
  • Тестирование методов select_option и request_additional_info
  • Множество предустановок параметров для каждого метода
  • Полная визуализация запросов и ответов

Это особенно полезно для:

  • Устранение проблем взаимодействия с пользовательским интерфейсом
  • Тестирование поведения различных типов пользовательского интерфейса
  • Демонстрация сервиса пользователям
  • Проверка работоспособности сервера
Тестовый клиент STDIO

Специально для тестирования транспортного протокола stdio мы предоставляем инструмент командной строки:

# Test stdio connection with default settings python mcp_client_stdio.py # Specify UI type python mcp_client_stdio.py --ui=pyqt # Test specific tools python mcp_client_stdio.py --test=select_option

Более подробную информацию см. в Руководстве по тестированию STDIO .

Тестирование пользовательского интерфейса
# Test PyQt interface python test_ui.py --ui=pyqt # Test Web interface python test_ui.py --ui=web # Test CLI interface python test_ui.py --ui=cli

Описание инструмента

Выбор варианта (select_option)

Этот инструмент используется для предоставления пользователям набора вариантов и предоставления им возможности выбора путем ввода чисел или предоставления индивидуальных ответов.

Параметры:

  • options : список параметров, может быть списком строк или словарей
  • prompt : Сообщение-подсказка, отображаемое пользователю

Возврат: Словарь, содержащий результат выбора, в формате:

{ "selected_index": 0, // Index of the user's selection, -1 if custom answer "selected_option": {}, // Content of the user's selected option "custom_input": "", // User's custom input, if any "is_custom": false // Whether it's a custom answer }

Информационное дополнение (request_additional_info)

Этот инструмент используется для запроса дополнительной информации у пользователей.

Параметры:

  • prompt : Запрос на запрос информации
  • current_info : Текущая информация, отображаемая пользователям в качестве справочной информации.

Возврат: Дополнительная информация, введенная пользователем (строка)

Интеграция с инструментами ИИ

Чтобы интегрировать эту службу MCP с инструментами ИИ, выполните следующие действия:

  1. Запустите службу MCP, используя исполняемый файл или исходный код Python:
    • Используя исполняемый файл: mcp-interactive.exe run
    • Используя исходный код Python: python main.py run
  2. Настройте конечную точку MCP в инструменте AI, выбрав протокол stdio или SSE по мере необходимости.
  3. Вызовите соответствующий инструмент MCP, когда модели ИИ требуется ввод данных пользователем или выбор параметров.

Клод Интеграция

Для интеграции с Claude в официальные продукты Anthropic или сторонние приложения:

  1. Настройте stdio-подключение в настройках инструмента ИИ:
    { "mcp-interaction": { "command": "D:/Path/To/Your/mcp-interactive.exe", "args": ["run", "--transport", "stdio", "--ui", "pyqt"], "env": {} } }
  2. Настройте Клода для использования службы взаимодействия при необходимости, используя такие инструкции:
    • «Когда вам нужен пользовательский ввод или подтверждение, используйте службу взаимодействия MCP»
    • «Для вариантов с несколькими вариантами выбора вызовите инструмент select_option»
    • «Для сбора дополнительной информации о пользователе вызовите инструмент request_additional_info»
  3. Теперь Клод сможет предлагать варианты и запрашивать дополнительную информацию непосредственно через службу MCP.

Примеры

Пример выбора варианта

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}")

Пример информационного дополнения

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}")

Заметки о разработке

  • Если вам не нужно разрабатывать или тестировать несколько типов пользовательского интерфейса, рекомендуется устанавливать только одну зависимость пользовательского интерфейса.
  • Если вам необходимо добавить новые зависимости, добавьте их в соответствующий файл зависимостей.

Текущий статус разработки

Обратите внимание на следующий статус реализации:

  • Windows : версии CLI и PyQt UI полностью функциональны. В веб-интерфейсе все еще есть некоторые проблемы, которые необходимо решить.
  • Linux/Mac : эти платформы еще не были тщательно протестированы. Ваш опыт может отличаться.

Мы активно работаем над улучшением совместимости на всех платформах и типах пользовательского интерфейса.

Строительство и дистрибуция

Создание исполняемых файлов

Этот проект включает скрипт для создания автономного исполняемого файла для Windows:

# Build the Windows executable build_executable.bat

Это создаст mcp-interactive.exe в каталоге dist , который можно запустить без установки Python.

Кросс-платформенное строительство

Для сборки исполняемых файлов для разных платформ:

Окна
# Using the batch script build_executable.bat # Or manual PyInstaller command pyinstaller mcp-interactive.spec
macOS
# Ensure PyInstaller is installed pip install pyinstaller # Build using the spec file pyinstaller mcp-interactive.spec
линукс
# Ensure PyInstaller is installed pip install pyinstaller # Build using the spec file pyinstaller mcp-interactive.spec

Примечание: сборку необходимо выполнять на целевой платформе (вы не можете собирать исполняемые файлы macOS из Windows и т. д.)

Распространение через GitHub

Чтобы сделать ваши собранные исполняемые файлы доступными для загрузки:

  1. Создайте релиз GitHub для вашего проекта
  2. Загрузите созданные исполняемые файлы в качестве ресурсов релиза.
  3. Предоставьте четкую документацию о том, какой исполняемый файл использовать для каждой платформы.

Примеры шагов:

  1. Перейдите в ваш репозиторий GitHub.
  2. Нажмите «Релизы» на правой боковой панели.
  3. Нажмите «Создать новый релиз».
  4. Установите тег версии (например, v1.0.0)
  5. Добавьте название и описание вашего релиза
  6. Перетащите или загрузите исполняемые файлы для разных платформ.
  7. Нажмите «Опубликовать релиз».

Затем пользователи могут загрузить соответствующую версию для своей операционной системы со страницы релизов GitHub.

Лицензия

Данный проект выпущен под лицензией MIT.

-
security - not tested
F
license - not found
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Интерфейс, обеспечивающий высокочастотную связь между инструментами ИИ (такими как Cursor и Windsurf) и пользователями, позволяющий выбирать опции и собирать информацию через интерфейсы CLI, Web или PyQt.

  1. Основная цель
    1. Функции
      1. Типы пользовательского интерфейса
        1. CLI (интерфейс командной строки)
        2. Интерфейс PyQt
        3. Веб-интерфейс
      2. Руководство по использованию
        1. Начало работы (два варианта)
        2. Запустите программу
        3. Настройте Cursor, Windsurf или Claude
        4. Настройте правила взаимодействия ИИ
        5. Другие функции
      3. Описание инструмента
        1. Выбор варианта (select\_option)
        2. Информационное дополнение (request\_additional\_info)
      4. Интеграция с инструментами ИИ
        1. Клод Интеграция
      5. Примеры
        1. Пример выбора варианта
        2. Пример информационного дополнения
      6. Заметки о разработке
        1. Текущий статус разработки
          1. Строительство и дистрибуция
            1. Создание исполняемых файлов
            2. Кросс-платформенное строительство
            3. Распространение через GitHub
          2. Лицензия

            Related MCP Servers

            • -
              security
              F
              license
              -
              quality
              This server acts as a Message Communication Protocol (MCP) service for integrating Apifox and Cursor, enabling OpenAPI interface implementation through AI-driven interaction.
              Last updated -
              7
              TypeScript
            • -
              security
              F
              license
              -
              quality
              A Model Context Protocol server that enables AI assistants to explore and interact with Cursor IDE's SQLite databases, providing access to project data, chat history, and composer information.
              Last updated -
              10
              Python
              • Apple
            • -
              security
              F
              license
              -
              quality
              A server that connects AI coding assistants like Cursor and Cline to Apifox API definitions, allowing developers to implement API interfaces through natural language commands.
              Last updated -
              832
              1
              • Apple
              • Linux
            • -
              security
              F
              license
              -
              quality
              This server enables AI assistants (CLINE, Cursor, Windsurf, Claude Desktop) to share a common knowledge base through Retrieval Augmented Generation (RAG), providing consistent information access across multiple tools.
              Last updated -
              1
              TypeScript
              • Apple

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanielZhao1990/interaction-mcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server