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[]

    Predefined options for the user to choose from (optional)

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

    Question to ask the user

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

    ID of the intensive chat session

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обязательный

    Notification body

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

    Notification title

request_user_input

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

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

    The specific question for the user (appears in the prompt)

  • predefinedOptionsstring[]

    Predefined options for the user to choose from (optional)

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

    Identifies the context/project making the request (used in prompt formatting)

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обязательный

    Title for the intensive chat session

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обязательный

    ID of the intensive chat session to stop

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

FastAlertNow/mcp-server

FastAlertNow/mcp-server

FastAlert MCP Server подключает AI-агентов к сервису оповещений — помогает просматривать каналы и отправлять уведомления с заголовком, содержанием и действиями. Полезен разработчикам, интегрирующим...

TypeScript3
Cactusinhand/mcp_server_notify

Cactusinhand/mcp_server_notify

MCP-сервер отправляет десктопные уведомления со звуком при завершении задач AI-агента. Кроссплатформенный (Windows, macOS, Linux), легко интегрируется с Claude, Cursor и VS Code. Полезен разработчи...

Python54
conarti/mattermost-mcp

conarti/mattermost-mcp

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

TypeScript3
vaulted-fyi/vaulted-mcp-server

vaulted-fyi/vaulted-mcp-server

MCP-сервер для безопасного обмена секретами из AI-инструментов: шифрует данные локально AES-256-GCM, передаёт только ссылки. Agent-blind ввод (env:, file:, dotenv:) не допускает утечки в контекст L...

TypeScript1
wyattjoh/imessage-mcp

wyattjoh/imessage-mcp

MCP-сервер для чтения iMessage на macOS через LLM. Поиск сообщений по тексту, контакту или дате, просмотр чатов и контактов адресной книги. Полезен разработчикам, создающим ИИ-ассистентов на Mac.

TypeScript29
twilio-labs/mcp

twilio-labs/mcp

MCP сервер для всех публичных Twilio API - SMS, звонки, уведомления. AI-инструменты управляют Twilio напрямую через MCP. Полезен разработчикам для автоматизации общения.

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

Лука Никитин