iflow-mcp_adam-paterson-mcp-crew-ai 0.1.0
MCP Crew AI Server - Run CrewAI agents through Model Context Protocol
Requires Python: >=3.11

<div align="center">
  <img src="https://github.com/crewAIInc/crewAI/blob/main/docs/crewai_logo.png" alt="CrewAI Logo" />
</div>

# 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)

```bash
pip install mcp-crew-ai
```

### Option 2: Install from GitHub

```bash
pip install git+https://github.com/adam-paterson/mcp-crew-ai.git
```

### Option 3: Clone and Install

```bash
git clone https://github.com/adam-paterson/mcp-crew-ai.git
cd mcp-crew-ai
pip install -e .
```

### 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`:**

```yaml
zookeeper:
  role: Zookeeper
  goal: Manage zoo operations
  backstory: >
    You are a seasoned zookeeper with a passion for wildlife conservation...
```

**Example `tasks.yml`:**

```yaml
write_stories:
  description: >
    Write an engaging zoo update capturing the day's highlights.
  expected_output: 5 engaging stories
  agent: zookeeper
  output_file: zoo_report.md
```

## Usage

Once installed, you can run the MCP CrewAI server using either of these methods:

### Standard Python Command

```bash
mcp-crew-ai --agents path/to/agents.yml --tasks path/to/tasks.yml
```

### Using UV Execution (uvx)

For a more streamlined experience, you can use the UV execution command:

```bash
uvx mcp-crew-ai --agents path/to/agents.yml --tasks path/to/tasks.yml
```

Or run just the server directly:

```bash
uvx mcp-crew-ai-server
```

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:

```bash
mcp-crew-ai --agents examples/agents.yml --tasks examples/tasks.yml --topic "Machine Learning" --variables '{"year": 2025, "focus": "deep learning"}'
```

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.

Happy workflow orchestration!