Workflow MCP Server
# 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](https://github.com/astral-sh/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
```bash
# 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
```bash
# 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:
```bash
uv run workflow-mcp --sse --port 8888
```
### Running tests
```bash
uv run pytest
```
### Workflow Definition
Create YAML files in the `frameworks` directory with the following structure:
```yaml
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
MITTDQS
Scored across 8 tools
Tools are largely distinct, focusing on framework creation, session management, and step execution. The only potential confusion is between complete_step and execute_current_step, but their descriptions clarify different actions: completing vs executing steps.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_framework, list_sessions, complete_step). The pattern is uniform and predictable.
With 8 tools, the server covers core workflow operations without being excessive. The number is appropriate for a workflow management server's typical needs.
The tool set covers basic lifecycle (create framework, start, execute steps, manage sessions), but lacks tools for editing workflow definitions, listing steps, or pausing/aborting sessions, which are notable gaps.