workflow-mcp-server
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 frameworksstart_workflow(workflow_id)
: Start a new workflow sessioncomplete_step(session_id, result)
: Mark current step as complete and get the next step
License
MIT