MCP server/communication

FlowStepMCP Server

MCP server for seamless interaction between LLMs and end-users

★ 1rodrigoramosrs/FlowStepMCP ↗by rodrigoramosrsupdated
Manual setup required. The maintainer's config contains paths only you know - edit the placeholders below before adding it to Claude Code.
1

Prepare the server locally

Run this once before adding it to Claude Code.

git clone https://github.com/rodrigoramosrs/FlowStepMCP
cd FlowStepMCP

Then follow the repository README for any remaining dependency or build steps.

2

Register it in Claude Code

claude mcp add flow-step -- dotnet run --project /path/to/FlowStep.MCP.Library.csproj

Replace any placeholder paths in the command with the real path on your machine.

3

Make your agent remember this setup

flow-step's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.

npx conare@latest

Free · one command · indexes the sessions already on disk. Set up in the browser instead →

What it does

  • Supports multiple rendering modes: Console, Avalonia Desktop GUI, and Telegram Bot
  • Provides tools for notifications, confirmations, and multi-selection lists
  • Enables free-form text input collection from users
  • Allows custom input selection from predefined lists
  • Includes progress reporting for long-running operations

Tools 4

notifyDisplay non-blocking or blocking informational messages to the user.
confirmRequest explicit Yes/No or Cancel confirmation from the user.
selectProvide dropdowns or lists for choosing one or multiple options.
textInputCollect free-form text from the user with multi-line support.

Environment Variables

FLOWSTEP_MODESets the rendering mode (cli, gui, or telegram)
FLOWSTEP_TELEGRAM__BOTTOKENTelegram bot token for Telegram mode
FLOWSTEP_TELEGRAM__CHATIDTelegram chat ID for notifications

Try it

Ask the user for confirmation before deleting the generated file.
Show a selection menu to the user to choose which database migration to run.
Send a notification to my Telegram bot once the long-running data analysis is complete.
Prompt the user for a custom input string to use as the project name.
Original README from rodrigoramosrs/FlowStepMCP

FlowStep - MCP Server for User Interactions

🚧 **Under Development**

A complete Model Context Protocol (MCP) server designed to facilitate seamless interaction between Large Language Models (LLMs) and end-users. It provides a robust set of tools for notifications, confirmations, selections, and text inputs, supporting multiple rendering modes including Console, GUI, and Telegram Bot.

🎯 Native Desktop UI

▶️ Watch the demonstration video

FlowStep Demonstration

🎯 Telegram UI

▶️ Watch the demonstration video

FlowStep Demonstration

🎯 Overview

FlowStep acts as an abstraction layer for user interactions. It exposes standard MCP tools that LLMs can invoke to interact with the user based on the application's configuration (Console, GUI, or Telegram).

Key Capabilities:

  • Notifications: Display non-blocking or blocking informational messages.
  • Confirmations: Request explicit Yes/No or Cancel confirmation from the user.
  • Single & Multi-Selection: Provide dropdowns or lists for choosing one or multiple options.
  • Text Input: Collect free-form text from the user with multi-line support.
  • Custom Input: Allow selection from a predefined list or custom text entry.
  • Progress Reporting: Visual feedback for long-running operations.
  • Multiple Render Modes: Console (CLI), Desktop GUI (Avalonia), or Telegram Bot.

📦 Project Structure

The library is organized into logical layers:

FlowStep.MCP.Library/
├── Models/
│   └── InteractionModels.cs           # Data models (InteractionRequest, InteractionResponse, InteractionOption)
├── Contracts/
│   ├── IFlowStepService.cs            # Core service interface
│   └── IInteractionRenderer.cs        # Renderer interface (Contracts for UI implementation)
├── Services/
│   └── FlowStepService.cs             # Business logic and orchestration
├── McpServices/
│   └── FlowStepMcpService.cs          # Implementation of MCP Server Tools
├── Renderers/
│   ├── CliInteractionRenderer.cs      # Console-based implementation
│   ├── TelegramRenderer.cs            # Telegram Bot implementation
│   ├── GuiInteractionBridge.cs        # Bridge for custom GUI implementations
│   └── AvaloniaUI/
│       ├── AvaloniaUIRenderer.cs      # Main Avalonia GUI renderer
│       ├── Themes/
│       │   └── ThemeColors.cs         # Dark mode color definitions
│       ├── Header/
│       │   └── HeaderContentFactory.cs
│       ├── Footer/
│       │   ├── StandardFooterFactory.cs
│       │   └── NotificationFooterFactory.cs
│       ├── Inputs/
│       │   ├── SingleChoiceInputFactory.cs
│       │   ├── MultiChoiceInputFactory.cs
│       │   ├── TextInputFactory.cs
│       │   └── ChoiceWithTextInputFactory.cs
│       ├── Factories/
│       │   ├── ConfirmationButtonsFactory.cs
│       │   ├── SimpleConfirmationContentFactory.cs
│       │   └── ResponseBuilder.cs
│       └── Styles/
│           └── DarkThemeStyles.cs     # XAML-like styling logic
├── Extensions/
│   └── FlowStepServiceExtension.cs    # DI Registration helper
└── FlowStep.MCP.Library.csproj

🖥️ Rendering Modes

FlowStep supports three rendering modes, configurable at startup:

Mode Description Use Case
CLI Console/Terminal interface Headless servers, debugging, automation scripts
GUI Avalonia Desktop application Rich desktop experience with modern dark UI
Telegram Telegram Bot integration Remote interactions, mobile notifications, distributed teams

Mode Selection Priority

Configuration is resolved in the following order (highest to lowest priority):

  1. Command Line Arguments
  2. Environment Variables (prefix: FLOWSTEP_)
  3. appsettings.json
  4. Default (GUI)

⚙️ Configuration

Command Line Arguments

# GUI Mode (default)
dotnet run

# CLI Mode
dotnet run -- --mode cli

# Telegram Mode
dotnet run -- --mode telegram --telegram-token "123456:ABC-DEF" --telegram-chat-id 123456789

# Custom configuration file
dotnet run -- --config /path/to/custom-config.json

Environment Variables

# Windows
set FLOWSTEP_MODE=telegram
set FLOWSTEP_TELEGRAM__BOTTOKEN=123456:ABC-DEF
set FLOWSTEP_TELEGRAM__CHATID=123456789

# Linux/Mac
export FLOWSTEP_MODE=telegram
export FLOWSTEP_TELEGRAM__BOTTOKEN=123456:ABC-DEF
export FLOWSTEP_TELEGRAM__CHATID=123456789

appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Mode": "gui",
  "Telegram": {
    "BotToken": "123456:ABC-DEF",
    "ChatId": "123456789"
  }
}

Environment-Specific Configuration

Create `appsetti

Frequently Asked Questions

What are the key features of FlowStepMCP?

Supports multiple rendering modes: Console, Avalonia Desktop GUI, and Telegram Bot. Provides tools for notifications, confirmations, and multi-selection lists. Enables free-form text input collection from users. Allows custom input selection from predefined lists. Includes progress reporting for long-running operations.

What can I use FlowStepMCP for?

Headless server automation requiring occasional human approval. Desktop-based LLM workflows needing a rich UI for user interaction. Remote task management via Telegram bot notifications and inputs. Interactive CLI scripts that require user selection or confirmation.

How do I install FlowStepMCP?

Install FlowStepMCP by running: dotnet run -- --mode cli

What MCP clients work with FlowStepMCP?

FlowStepMCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep FlowStepMCP docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest