Skip to main content
Glama
tuanknguyen

Workflow MCP Server

by tuanknguyen
README.md
# 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

MIT

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

With 8 tools, the server covers core workflow operations without being excessive. The number is appropriate for a workflow management server's typical needs.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues