workflow-mcp-server

workflow-mcp-server

0

Workflow MCP Server is a Python-based server that facilitates guided processes through structured workflows. It allows flexibility in workflow execution while ensuring adherence to predefined steps. It supports running via standard I/O or SSE.

Workflow MCP Server

A Python MCP server that guides agents through structured workflows. This server ensures agents follow predefined steps while maintaining flexibility in execution.

Development Approach

Package Management with UV

This project exclusively uses uv for all package management operations. Always use uv commands for:

  • Virtual environment creation: uv venv
  • Package installation: uv pip install
  • Running Python scripts: uv run python script.py
  • Running tests: uv run pytest
  • Running the application: uv run workflow-mcp

UV provides faster, more reliable package management than traditional tools. If you don't have uv installed, follow instructions at https://github.com/astral-sh/uv

Installation

Setting up the environment

# Create a virtual environment
uv venv

# Activate the virtual environment
source .venv/bin/activate  # Linux/macOS
# OR
.venv\Scripts\activate     # Windows

# Install the package
uv pip install -e .

# For development with testing tools
uv pip install -e ".[dev]"

Usage

Running the server

# Using the entry point script
uv run workflow-mcp

# Or directly with module
uv run python -m workflow_mcp_server

With SSE instead of stdio:

uv run workflow-mcp --sse --port 8888

Running tests

uv run pytest

Workflow Definition

Create YAML files in the frameworks directory with the following structure:

name: "Simple Workflow"
description: "A linear workflow with basic steps"
version: "1.0"
steps:
  - id: "step1"
    type: "instruction"
    content: "This is what you need to do first"
    next: "step2"
    
  - id: "step2"
    type: "tool_call"
    tool: "tool_name"
    parameters:
      param1: "value1"
    next: "step3"
    
  - id: "step3"
    type: "end"
    content: "Workflow complete"

Available Tools

  • list_workflows(): Lists available workflow frameworks
  • start_workflow(workflow_id): Start a new workflow session
  • complete_step(session_id, result): Mark current step as complete and get the next step

License

MIT