Skip to main content
Glama
README.md
# Enhanced AutoGen MCP Server

[![smithery badge](https://smithery.ai/badge/@DynamicEndpoints/autogen_mcp)](https://smithery.ai/server/@DynamicEndpoints/autogen_mcp)

A comprehensive MCP server that provides deep integration with Microsoft's AutoGen framework v0.9+, featuring the latest capabilities including prompts, resources, advanced workflows, and enhanced agent types. This server enables sophisticated multi-agent conversations through a standardized Model Context Protocol interface.

## šŸš€ Latest Features (v0.2.0)

### ✨ **Enhanced MCP Support**
- **Prompts**: Pre-built templates for common workflows (code review, research, creative writing)
- **Resources**: Real-time access to agent status, chat history, and configurations
- **Dynamic Content**: Template-based prompts with arguments and embedded resources
- **Latest MCP SDK**: Version 1.12.3 with full feature support

### šŸ¤– **Advanced Agent Types**
- **Assistant Agents**: Enhanced with latest LLM capabilities
- **Conversable Agents**: Flexible conversation patterns
- **Teachable Agents**: Learning and memory persistence
- **Retrievable Agents**: Knowledge base integration
- **Multimodal Agents**: Image and document processing (when available)

### šŸ”„ **Sophisticated Workflows**
- **Code Generation**: Architect → Developer → Reviewer → Executor pipeline
- **Research Analysis**: Researcher → Analyst → Critic → Synthesizer workflow
- **Creative Writing**: Multi-stage creative collaboration
- **Problem Solving**: Structured approach to complex problems
- **Code Review**: Security → Performance → Style review teams
- **Custom Workflows**: Build your own agent collaboration patterns

### šŸŽÆ **Enhanced Chat Capabilities**
- **Smart Speaker Selection**: Auto, manual, random, round-robin modes
- **Nested Conversations**: Hierarchical agent interactions
- **Swarm Intelligence**: Coordinated multi-agent problem solving
- **Memory Management**: Persistent agent knowledge and preferences
- **Quality Checks**: Built-in validation and improvement loops

## šŸ› ļø Available Tools

### Core Agent Management
- `create_agent` - Create agents with advanced configurations
- `create_workflow` - Build complete multi-agent workflows
- `get_agent_status` - Detailed agent metrics and health monitoring

### Conversation Execution
- `execute_chat` - Enhanced two-agent conversations
- `execute_group_chat` - Multi-agent group discussions
- `execute_nested_chat` - Hierarchical conversation structures
- `execute_swarm` - Swarm-based collaborative problem solving

### Workflow Orchestration
- `execute_workflow` - Run predefined workflow templates
- `manage_agent_memory` - Handle agent learning and persistence
- `configure_teachability` - Enable/configure agent learning capabilities

## šŸ“ Available Prompts

### `autogen-workflow`
Create sophisticated multi-agent workflows with customizable parameters:
- **Arguments**: `task_description`, `agent_count`, `workflow_type`
- **Use case**: Rapid workflow prototyping and deployment

### `code-review`
Set up collaborative code review with specialized agents:
- **Arguments**: `code`, `language`, `focus_areas`
- **Use case**: Comprehensive code quality assessment

### `research-analysis`
Deploy research teams for in-depth topic analysis:
- **Arguments**: `topic`, `depth`
- **Use case**: Academic research, market analysis, technical investigation

## šŸ“Š Available Resources

### `autogen://agents/list`
Live list of active agents with status and capabilities

### `autogen://workflows/templates`
Available workflow templates and configurations

### `autogen://chat/history`
Recent conversation history and interaction logs

### `autogen://config/current`
Current server configuration and settings

## Installation

### Installing via Smithery

To install AutoGen Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@DynamicEndpoints/autogen_mcp):

```bash
npx -y @smithery/cli install @DynamicEndpoints/autogen_mcp --client claude
```

### Manual Installation

1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/autogen-mcp.git
cd autogen-mcp
```

2. **Install Node.js dependencies:**
```bash
npm install
```

3. **Install Python dependencies:**
```bash
pip install -r requirements.txt --user
```

4. **Build the TypeScript project:**
```bash
npm run build
```

5. **Set up configuration:**
```bash
cp .env.example .env
cp config.json.example config.json
# Edit .env and config.json with your settings
```

## Configuration

### Environment Variables

Create a `.env` file from the template:

```bash
# Required
OPENAI_API_KEY=your-openai-api-key-here

# Optional - Path to configuration file
AUTOGEN_MCP_CONFIG=config.json

# Enhanced Features
ENABLE_PROMPTS=true
ENABLE_RESOURCES=true
ENABLE_WORKFLOWS=true
ENABLE_TEACHABILITY=true

# Performance Settings
MAX_CHAT_TURNS=10
DEFAULT_OUTPUT_FORMAT=json
```

### Configuration File

Update `config.json` with your preferences:

```json
{
  "llm_config": {
    "config_list": [
      {
        "model": "gpt-4o",
        "api_key": "your-openai-api-key"
      }
    ],
    "temperature": 0.7
  },
  "enhanced_features": {
    "prompts": { "enabled": true },
    "resources": { "enabled": true },
    "workflows": { "enabled": true }
  }
}
```

## Usage Examples

### Using with Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "autogen": {
      "command": "node",
      "args": ["path/to/autogen-mcp/build/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-key-here"
      }
    }
  }
}
```

### Command Line Testing

Test the server functionality:

```bash
# Run comprehensive tests
python test_server.py

# Test CLI interface
python cli_example.py create_agent "researcher" "assistant" "You are a research specialist"
python cli_example.py execute_workflow "code_generation" '{"task":"Hello world","language":"python"}'
```

### Using Prompts

The server provides several built-in prompts:

1. **autogen-workflow** - Create multi-agent workflows
2. **code-review** - Set up collaborative code review
3. **research-analysis** - Deploy research teams

### Accessing Resources

Available resources provide real-time data:

- `autogen://agents/list` - Current active agents
- `autogen://workflows/templates` - Available workflow templates  
- `autogen://chat/history` - Recent conversation history
- `autogen://config/current` - Server configuration

## Workflow Examples

### Code Generation Workflow

```json
{
  "workflow_name": "code_generation",
  "input_data": {
    "task": "Create a REST API endpoint",
    "language": "python",
    "requirements": ["FastAPI", "Pydantic", "Error handling"]
  },
  "quality_checks": true
}
```

### Research Workflow

```json
{
  "workflow_name": "research", 
  "input_data": {
    "topic": "AI Ethics in 2025",
    "depth": "comprehensive"
  },
  "output_format": "markdown"
}
```

## Advanced Features

### Agent Types

- **Assistant Agents**: LLM-powered conversational agents
- **User Proxy Agents**: Code execution and human interaction
- **Conversable Agents**: Flexible conversation patterns
- **Teachable Agents**: Learning and memory persistence (when available)
- **Retrievable Agents**: Knowledge base integration (when available)

### Chat Modes

- **Two-Agent Chat**: Direct conversation between agents
- **Group Chat**: Multi-agent discussions with smart speaker selection
- **Nested Chat**: Hierarchical conversation structures  
- **Swarm Intelligence**: Coordinated problem solving (experimental)

### Memory Management

- Persistent agent memory across sessions
- Conversation history tracking
- Learning from interactions (teachable agents)
- Memory cleanup and optimization

## Troubleshooting

### Common Issues

1. **API Key Errors**: Ensure your OpenAI API key is valid and has sufficient credits
2. **Import Errors**: Install all dependencies with `pip install -r requirements.txt --user`
3. **Build Failures**: Check Node.js version (>= 18) and run `npm install`
4. **Chat Failures**: Verify agent creation succeeded before attempting conversations

### Debug Mode

Enable detailed logging:

```bash
export LOG_LEVEL=DEBUG
python test_server.py
```

### Performance Tips

- Use `gpt-4o-mini` for faster, cost-effective operations
- Enable caching for repeated operations
- Set appropriate timeout values for long-running workflows
- Use quality checks only when needed (increases execution time)

## Development

### Running Tests

```bash
# Full test suite
python test_server.py

# Individual workflow tests  
python -c "
import asyncio
from src.autogen_mcp.workflows import WorkflowManager
wm = WorkflowManager()
print(asyncio.run(wm.execute_workflow('code_generation', {'task': 'test'})))
"
```

### Building

```bash
npm run build
npm run lint
```

### Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests for new functionality
5. Submit a pull request

## Version History

### v0.2.0 (Latest)
- ✨ Enhanced MCP support with prompts and resources
- šŸ¤– Advanced agent types (teachable, retrievable)
- šŸ”„ Sophisticated workflows with quality checks
- šŸŽÆ Smart speaker selection and nested conversations
- šŸ“Š Real-time resource monitoring
- 🧠 Memory management and persistence

### v0.1.0
- Basic AutoGen integration
- Simple agent creation and chat execution
- MCP tool interface

## Support

For issues and questions:
- Check the troubleshooting section above
- Review the test examples in `test_server.py`
- Open an issue on GitHub with detailed reproduction steps

## License

MIT License - see LICENSE file for details.

# OpenAI API Key (optional, can also be set in config.json)
OPENAI_API_KEY=your-openai-api-key
```

### Server Configuration

1. Copy `config.json.example` to `config.json`:
```bash
cp config.json.example config.json
```

2. Configure the server settings:
```json
{
  "llm_config": {
    "config_list": [
      {
        "model": "gpt-4",
        "api_key": "your-openai-api-key"
      }
    ],
    "temperature": 0
  },
  "code_execution_config": {
    "work_dir": "workspace",
    "use_docker": false
  }
}
```

## Available Operations

The server supports three main operations:

### 1. Creating Agents

```json
{
  "name": "create_agent",
  "arguments": {
    "name": "tech_lead",
    "type": "assistant",
    "system_message": "You are a technical lead with expertise in software architecture and design patterns."
  }
}
```

### 2. One-on-One Chat

```json
{
  "name": "execute_chat",
  "arguments": {
    "initiator": "agent1",
    "responder": "agent2",
    "message": "Let's discuss the system architecture."
  }
}
```

### 3. Group Chat

```json
{
  "name": "execute_group_chat",
  "arguments": {
    "agents": ["agent1", "agent2", "agent3"],
    "message": "Let's review the proposed solution."
  }
}
```

## Error Handling

Common error scenarios include:

1. Agent Creation Errors
```json
{
  "error": "Agent already exists"
}
```

2. Execution Errors
```json
{
  "error": "Agent not found"
}
```

3. Configuration Errors
```json
{
  "error": "AUTOGEN_MCP_CONFIG environment variable not set"
}
```

## Architecture

The server follows a modular architecture:

```
src/
ā”œā”€ā”€ autogen_mcp/
│   ā”œā”€ā”€ __init__.py
│   ā”œā”€ā”€ agents.py      # Agent management and configuration
│   ā”œā”€ā”€ config.py      # Configuration handling and validation
│   ā”œā”€ā”€ server.py      # MCP server implementation
│   └── workflows.py   # Conversation workflow management
```

## License

MIT License - See LICENSE file for details

TDQS

B3.1/5.0

Scored across 4 tools

Disambiguation4/5

The tools have mostly distinct purposes, but there is some potential for confusion between 'create_streaming_workflow' and 'execute_workflow' as they both involve workflows, though one is for creation and the other for execution. The other tools ('create_agent' and 'start_streaming_chat') are clearly separate in function.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_agent, create_streaming_workflow, execute_workflow, start_streaming_chat). The naming is predictable and readable throughout the set.

Tool Count3/5

With only 4 tools, the set feels thin for an AutoGen MCP server, which might be expected to handle more complex agent and workflow operations. However, it covers basic creation and execution tasks, so it's borderline but not severely lacking.

Completeness3/5

The tools cover creation and execution of agents and workflows, but there are notable gaps such as updating or deleting agents/workflows, managing existing sessions, or handling non-streaming operations. This could lead to agent failures in more complex scenarios.