FlowStepMCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/rodrigoramosrs/FlowStepMCP
cd FlowStepMCP

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

2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add flow-step -- node "<FULL_PATH_TO_FLOWSTEPMCP>/dist/index.js"

Replace <FULL_PATH_TO_FLOWSTEPMCP>/dist/index.js with the actual folder you prepared in step 1.

README.md

MCP server for seamless interaction between LLMs and end-users

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

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

Configuration

claude_desktop_config.json
{"mcpServers": {"flowstep": {"command": "dotnet", "args": ["run", "--project", "/path/to/FlowStep.MCP.Library.csproj"]}}}

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.

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.

Turn this server into reusable context

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

Need the old visual installer? Open Conare IDE.
Open Conare