# 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