Lightweight Python server for dynamically loading CrewAI multi-agent workflows from YAML configurations, enabling flexib...
Created byApr 23, 2025
MCP Crew AI Server
MCP Crew AI Server is a lightweight Python-based server designed to run, manage and create CrewAI workflows. This project leverages the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) to communicate with Large Language Models (LLMs) and tools such as Claude Desktop or Cursor IDE, allowing you to orchestrate multi-agent workflows with ease.
Features
**Automatic Configuration:** Automatically loads agent and task configurations from two YAML files (`agents.yml` and `tasks.yml`), so you don't need to write custom code for basic setups.
**Command Line Flexibility:** Pass custom paths to your configuration files via command line arguments (`--agents` and `--tasks`).
**Seamless Workflow Execution:** Easily run pre-configured workflows through the MCP `run_workflow` tool.
**Local Development:** Run the server locally in STDIO mode, making it ideal for development and testing.
Installation
There are several ways to install the MCP Crew AI server:
Option 1: Install from PyPI (Recommended)
Option 2: Install from GitHub
Option 3: Clone and Install
Requirements
Python 3.11+
MCP SDK
CrewAI
PyYAML
Configuration
**agents.yml:** Define your agents with roles, goals, and backstories.
**tasks.yml:** Define tasks with descriptions, expected outputs, and assign them to agents.
**Example `agents.yml`:**
**Example `tasks.yml`:**
Usage
Once installed, you can run the MCP CrewAI server using either of these methods:
Standard Python Command
Using UV Execution (uvx)
For a more streamlined experience, you can use the UV execution command:
Or run just the server directly:
This will start the server using default configuration from environment variables.
Command Line Options
`--agents`: Path to the agents YAML file (required)
`--tasks`: Path to the tasks YAML file (required)
`--topic`: The main topic for the crew to work on (default: "Artificial Intelligence")
`--process`: Process type to use (choices: "sequential" or "hierarchical", default: "sequential")
`--verbose`: Enable verbose output
`--variables`: JSON string or path to JSON file with additional variables to replace in YAML files
`--version`: Show version information and exit
Advanced Usage
You can also provide additional variables to be used in your YAML templates:
These variables will replace placeholders in your YAML files. For example, `{topic}` will be replaced with "Machine Learning" and `{year}` with "2025".
Contributing
Contributions are welcome! Please open issues or submit pull requests with improvements, bug fixes, or new features.
Licence
This project is licensed under the MIT Licence. See the LICENSE file for details.