ttommyth/interactive-mcp

ttommyth/interactive-mcp

от ttommyth
MCP-сервер для интерактивного взаимодействия LLM с пользователем: запрашивает ввод, отправляет уведомления и ведет интенсивный чат. Полезен при доработках кода, уточнениях и подтверждении действий ...

interactive-mcp

npm version npm downloads smithery badge GitHub license code style: prettier Platforms GitHub last commit

Install MCP Server

Screenshot 2025-05-13 213745

A MCP Server implemented in Node.js/TypeScript, facilitating interactive communication between LLMs and users. Note: This server is designed to run locally alongside the MCP client (e.g., Claude Desktop, VS Code), as it needs direct access to the user's operating system to display notifications and command-line prompts.

(Note: This project is in its early stages.)

Want a quick overview? Check out the introductory blog post: Stop Your AI Assistant From Guessing — Introducing interactive-mcp

Demo Video

Tools

This server exposes the following tools via the Model Context Protocol (MCP):

  • request_user_input: Asks the user a question and returns their answer. Can display predefined options.
  • message_complete_notification: Sends a simple OS notification.
  • start_intensive_chat: Initiates a persistent command-line chat session.
  • ask_intensive_chat: Asks a question within an active intensive chat session.
  • stop_intensive_chat: Closes an active intensive chat session.

Demo

Here are demonstrations of the interactive features:

Часто задаваемые вопросы

Инструменты были проиндексированы:
ask_intensive_chat

<описание> Задаёт новый вопрос в активной интенсивной чат-сессии, ранее запущенной с помощью 'start_intensive_chat'. </описание> <важныеПримечания> - (!важно!) Требует действующий идентификатор сессии от 'start_intensive_chat'. - (!важно!) Поддерживает готовые варианты ответов для быстрого выбора. - (!важно!) Возвращает ответ пользователя или сообщает, если пользователь не ответил. - (!важно!) Используйте этот инструмент несколько раз в одном ответном сообщении после 'start_intensive_chat', пока не будут заданы все вопросы. </важныеПримечания> <когдаИспользоватьИнструмент> - Когда нужно продолжить серию вопросов в интенсивной чат-сессии. - Когда нужен очередной фрагмент информации в многошаговом процессе, запущенном через 'start_intensive_chat'. - Когда нужно предложить пользователю варианты ответа в рамках сессии. - Когда нужно последовательно собирать информацию от пользователя в рамках сессии. </когдаИспользоватьИнструмент> <возможности> - Добавляет новый вопрос в существующую чат-сессию - Поддерживает готовые варианты ответов для быстрого выбора - Возвращает ответ пользователя - Ведёт историю чата в консоли </возможности> <рекомендации> - Задавайте по одному чёткому вопросу за раз - Предлагайте готовые варианты ответов, когда это уместно - Не задавайте слишком сложных вопросов - Формулируйте вопросы так, чтобы они были сосредоточены на одном фрагменте информации </рекомендации> <параметры> - sessionId: идентификатор интенсивной чат-сессии (из start_intensive_chat) - question: текст вопроса для отображения пользователю - predefinedOptions: массив готовых вариантов ответа на выбор пользователя (необязательно) </параметры> <примеры> - Простой вопрос: { "sessionId": "abcd1234", "question": "Как называется ваш проект?" } - С готовыми вариантами ответа: { "sessionId": "abcd1234", "question": "Хотите использовать TypeScript?", "predefinedOptions": ["Да", "Нет"] } </примеры>

Параметры
  • predefinedOptionsstring[]

    Предопределённые варианты для выбора пользователем (необязательно)

  • questionstringобязательный

    Вопрос для пользователя

  • sessionIdstringобязательный

    ID интенсивной чат-сессии

message_complete_notification

<description> Уведомляет, когда ответ завершён. Используйте этот инструмент один раз в конце каждого без исключения сообщения, чтобы сообщить пользователю о завершении. </description> <importantNotes> - (!важно!) ОБЯЗАТЕЛЬНО: используйте этот инструмент ТОЛЬКО ровно один раз на сообщение, чтобы сообщить о завершении. Не забывайте этот шаг. </importantNotes> <whenToUseThisTool> - Когда вы завершили ответ на запрос пользователя - Когда вы завершили задачу или последовательность вызовов инструментов - Когда многошаговый процесс завершён - Когда вы хотите дать сводку выполненных действий прямо перед завершением ответа </whenToUseThisTool> <features> - Кроссплатформенные уведомления ОС (Windows, macOS, Linux) - Многоразовый инструмент, оповещающий о завершении сообщения - Должен вызываться ровно один раз за каждый ответ LLM </features> <bestPractices> - Делайте сообщения краткими - Последовательно используйте projectName, чтобы группировать уведомления по контексту </bestPractices> <parameters> - projectName: определяет контекст/проект, отправляющий уведомление (отображается в заголовке уведомления) - message: конкретный текст уведомления (отображается в теле) </parameters> <examples> - { "projectName": "MyApp", "message": "Реализация функции завершена. Все тесты проходят." } - { "projectName": "MyLib", "message": "Анализ завершён: найдено и исправлено 3 проблемы." } </examples>

Параметры
  • messagestringобязательный

    Тело уведомления

  • projectNamestringобязательный

    Заголовок уведомления

request_user_input

<description> Отправляет вопрос пользователю через всплывающее командное приглашение. Крайне важен для уточнения требований, подтверждения планов или устранения неоднозначности. Вызывайте этот инструмент всякий раз, когда есть хоть какая-то неуверенность или нужны уточнения или подтверждения, даже для тривиальных или глупых вопросов. Не стесняйтесь спрашивать что угодно! Активные вопросы лучше, чем предположения. </description> <importantNotes> - (!важно!) Используйте этот инструмент ЧАСТО для любого вопроса, требующего ввода или подтверждения пользователя. - (!важно!) Продолжайте генерировать текущие сообщения после ответа пользователя. - (!важно!) Предлагайте готовые варианты для быстрого выбора, если это уместно. - (!важно!) Крайне важен для проверки предположений перед серьёзными действиями (например, правкой кода, запуском команд). </importantNotes> <whenToUseThisTool> - Когда нужно уточнить требования или предпочтения пользователя - Когда возможны несколько подходов к реализации и требуется мнение пользователя - Перед изменениями, которые могут иметь серьёзные последствия (правка кода, операции с файлами, сложные команды) - Когда нужно подтвердить предположения перед продолжением - Когда нужна дополнительная информация, которой нет в текущем контексте - Когда нужно проверить возможные решения до реализации - Когда инструкции неоднозначны и требуют уточнения - Когда нужна обратная связь по сгенерированному коду или решениям - Когда нужно разрешение на изменение критически важных файлов или функциональности - Всякий раз, когда вы хоть немного сомневаетесь в намерениях пользователя или в правильном следующем шаге. </whenToUseThisTool> <features> - Отображает всплывающее командное приглашение для ввода пользователя - Возвращает ответ пользователя или уведомление о тайм-ауте (по умолчанию тайм-аут 60 секунд)) - Сохраняет контекст между взаимодействиями с пользователем - Корректно обрабатывает пустые ответы - Правильно форматирует запрос с учётом контекста проекта </features> <bestPractices> - Формулируйте вопросы кратко и конкретно - Давайте понятные варианты ответа, когда это уместно - Не задавайте вопрос, если… </bestPractices>

Параметры
  • messagestringобязательный

    Конкретный вопрос для пользователя (появляется в подсказке)

  • predefinedOptionsstring[]

    Предопределённые варианты для выбора пользователем (необязательно)

  • projectNamestringобязательный

    Определяет контекст/проект, отправляющий запрос (используется при форматировании промпта)

start_intensive_chat

<description> Запускает интенсивную чат-сессию для быстрого сбора нескольких ответов от пользователя. Настоятельно рекомендуется для сценариев, требующих последовательности связанных вводов или подтверждений. Очень полезно, когда нужно собрать несколько ответов от пользователя за короткое время. Особенно полезно для мозгового штурма идей или обсуждения сложных тем с пользователем. </description> <importantNotes> - (!важно!) Открывает постоянное окно консоли, которое остаётся открытым для нескольких вопросов. - (!важно!) Возвращает идентификатор сессии, который обязательно нужно использовать для последующих вопросов через 'ask_intensive_chat'. - (!важно!) Обязательно закрывается с помощью 'stop_intensive_chat', когда все вводы собраны. - (!важно!) После запуска сессии сразу продолжайте задавать все необходимые вопросы через 'ask_intensive_chat' в том же ответном сообщении. Не завершайте ответ, пока чат не закрыт через 'stop_intensive_chat'. Это создаёт для пользователя непрерывный поток диалога. </importantNotes> <whenToUseThisTool> - Когда нужно собрать серию быстрых ответов от пользователя (больше 2-3 вопросов) - Когда настраиваете проект с множеством параметров конфигурации - Когда ведёте пользователя по многошаговому процессу, требующему ввода на каждом этапе - Когда собираете последовательные предпочтения пользователя - Когда хотите эффективно удерживать контекст между несколькими связанными вопросами - Когда вместе с пользователем проводите мозговой штурм идей </whenToUseThisTool> <features> - Открывает постоянное окно консоли для непрерывного взаимодействия - Позволяет начать с первого вопроса - Настраиваемый тайм-аут для каждого вопроса (задаётся через -t/--timeout, по умолчанию 60 секунд) - Возвращает идентификатор сессии для последующих взаимодействий - Держит полную историю чата на виду у пользователя - Сохраняет состояние между вопросами </features> <bestPractices> - Используйте описательное название сессии, связанное с задачей - По возможности начинайте с чёткого первого вопроса - Не задавайте вопрос, если у вас есть другой… </bestPractices>

Параметры
  • sessionTitlestringобязательный

    Заголовок для интенсивной чат-сессии

stop_intensive_chat

<description> Завершает и закрывает активный сеанс интенсивного чата. Обязательно должен быть вызван после того, как все вопросы были заданы с помощью 'ask_intensive_chat'. </description> <importantNotes> - (!важно!) Закрывает окно консоли для интенсивного чата. - (!важно!) Освобождает системные ресурсы. - (!важно!) Всегда должен вызываться финальным шагом после завершения сеанса интенсивного чата, обычно в конце ответного сообщения, где был вызван 'start_intensive_chat'. </importantNotes> <whenToUseThisTool> - Когда вы завершили сбор всей необходимой информации через 'ask_intensive_chat'. - Когда многошаговый процесс, требующий интенсивного чата, завершён. - Когда вы готовы перейти к обработке собранной информации. - Когда пользователь просит завершить сеанс (если применимо). - Как финальное действие, относящееся к потоку интенсивного чата, в рамках одного ответного сообщения. </whenToUseThisTool> <features> - Корректно закрывает окно консоли - Освобождает системные ресурсы - Помечает сеанс как завершённый </features> <bestPractices> - Всегда останавливайте сеансы, когда закончили, чтобы освободить ресурсы - Перед остановкой приведите сводку собранной информации </bestPractices> <parameters> - sessionId: идентификатор сеанса интенсивного чата, который нужно остановить </parameters> <examples> - { "sessionId": "abcd1234" } </examples>

Параметры
  • sessionIdstringобязательный

    Идентификатор интенсивной чат-сессии, которую нужно остановить.

1.10.1основная
1.11.0-next.1
1.10.1-next.1
1.10.0
1.9.0
1.9.0-next.2
1.9.0-next.1
1.8.0
1.7.0
1.6.0
1.5.0
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0

Выберите клиент, чтобы установить ttommyth/interactive-mcp:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"ttommyth-interactive-mcp-z9klsosjqx\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"interactive-mcp\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add ttommyth-interactive-mcp-z9klsosjqx -- npx -y interactive-mcp

Либо через JSON-конфиг:

claude mcp add-json ttommyth-interactive-mcp-z9klsosjqx "{\"command\":\"npx\",\"args\":[\"-y\",\"interactive-mcp\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add ttommyth-interactive-mcp-z9klsosjqx -- npx -y interactive-mcp

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.ttommyth-interactive-mcp-z9klsosjqx]
command = "npx"
args = ["-y", "interactive-mcp"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите ttommyth/interactive-mcp, а в поле команды запуска — строку ниже:
npx -y interactive-mcp

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например ttommyth-interactive-mcp-z9klsosjqx.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: ttommyth-interactive-mcp-z9klsosjqx
    command: npx
    args:
      - "-y"
      - "interactive-mcp"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "ttommyth-interactive-mcp-z9klsosjqx": {
      "command": "npx",
      "args": [
        "-y",
        "interactive-mcp"
      ]
    }
  }
}

Похожие MCP-сервера

preflight-dev/preflight

preflight-dev/preflight

от preflight-dev

MCP сервер preflight для Claude Code экономит токены, анализируя промпты на нечёткость до выполнения. Сервер предлагает уточнения, ведёт историю с семантическим поиском и формирует scorecard. 24 инструмента помогают избежать лишних затрат на исправления.

TypeScript⭐ 13
lpigeon/ros-mcp-server

lpigeon/ros-mcp-server

от lpigeon

Управляет роботами на ROS без изменения их кода: читает топики, вызывает сервисы и действия, меняет параметры.

Python⭐ 1501
WiseVision/mcp_server_ros_2

WiseVision/mcp_server_ros_2

от wise-vision

MCP сервер для ROS 2: читает и публикует топики, вызывает сервисы, управляет действиями. Включает промпты для анализа данных и мониторинга роботов. Ускоряет разработку и отладку с помощью AI.

Python⭐ 93
gotohuman/gotohuman-mcp-server

gotohuman/gotohuman-mcp-server

от gotohuman

MCP сервер gotoHuman добавляет человеческий контроль в AI-агенты. Запрашивайте одобрение задач, управляйте workflow с customizable UI. Интегрируется в Cursor, Claude, Windsurf для безопасных автоматизаций.

TypeScript⭐ 52
ReAPI-com/mcp-openapi

ReAPI-com/mcp-openapi

официальный

от reapi-com

MCP сервер для загрузки OpenAPI спецификаций и их интеграции с LLM в IDE. Он помогает разработчикам находить операции, схемы и получать контекст для генерации кода и работы с API.

TypeScript⭐ 90
cyberchitta/llm-context.py

cyberchitta/llm-context.py

от cyberchitta

LLM Context - MCP-сервер для умного управления контекстом при работе с ИИ. Использует правила для автоматического подбора и передачи нужных файлов проекта, экономя токены. Полезен разработчикам и A...

Python⭐ 307
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин