Skip to main content
Glama
thescottmerselis

BusinessFlowPro MCP Server

README.md
# BusinessFlowPro MCP Server

An MCP (Model Context Protocol) server that enables Claude Desktop to interact with BusinessFlowPro marketing automation platform via natural language.

## Features

- **Campaign Management**: Create, send, and schedule email campaigns
- **Contact Management**: Add and manage contacts and segments
- **Email Templates**: Create and manage reusable templates
- **Landing Pages**: Build and publish landing pages
- **Lead Forms**: Manage forms and view submissions
- **Analytics**: View email and campaign performance metrics
- **AI Content Generation**: Generate emails, subject lines, and landing pages

## Installation

### Using pip

```bash
cd mcp-server
pip install -e .
```

### Using uv (recommended)

```bash
cd mcp-server
uv pip install -e .
```

## Configuration

### Environment Variables

Create a `.env` file or set environment variables:

```bash
BUSINESSFLOWPRO_API_URL=https://app.businessflowpro.com
BUSINESSFLOWPRO_EMAIL=your_email@company.com
BUSINESSFLOWPRO_PASSWORD=your_password
```

### Claude Desktop Configuration

Add to your Claude Desktop configuration file (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "businessflowpro": {
      "command": "python",
      "args": ["-m", "businessflowpro_mcp"],
      "env": {
        "BUSINESSFLOWPRO_API_URL": "https://app.businessflowpro.com",
        "BUSINESSFLOWPRO_EMAIL": "your_email@company.com",
        "BUSINESSFLOWPRO_PASSWORD": "your_password"
      }
    }
  }
}
```

Or if using uv:

```json
{
  "mcpServers": {
    "businessflowpro": {
      "command": "uv",
      "args": ["run", "python", "-m", "businessflowpro_mcp"],
      "env": {
        "BUSINESSFLOWPRO_API_URL": "https://app.businessflowpro.com",
        "BUSINESSFLOWPRO_EMAIL": "your_email@company.com",
        "BUSINESSFLOWPRO_PASSWORD": "your_password"
      }
    }
  }
}
```

## Available Tools

### Campaign Tools

| Tool | Description |
|------|-------------|
| `list_campaigns` | List all campaigns with optional status filtering |
| `get_campaign` | Get detailed information about a campaign |
| `create_campaign` | Create a new email campaign |
| `send_campaign` | Send a campaign immediately |
| `schedule_campaign` | Schedule a campaign for future delivery |

### Contact Tools

| Tool | Description |
|------|-------------|
| `list_contacts` | List contacts with search and filtering |
| `get_contact` | Get detailed contact information |
| `create_contact` | Create a new contact |
| `list_segments` | List all contact segments |

### Template Tools

| Tool | Description |
|------|-------------|
| `list_templates` | List all email templates |
| `create_template` | Create a new email template |

### Landing Page Tools

| Tool | Description |
|------|-------------|
| `list_landing_pages` | List all landing pages |
| `create_landing_page` | Create a new landing page |
| `publish_landing_page` | Publish a landing page |

### Form Tools

| Tool | Description |
|------|-------------|
| `list_forms` | List all lead capture forms |
| `get_form_submissions` | Get form submissions |

### Analytics Tools

| Tool | Description |
|------|-------------|
| `get_analytics_overview` | Get platform analytics metrics |

### AI Content Tools

| Tool | Description |
|------|-------------|
| `generate_email` | Generate email content using AI |
| `generate_subject_lines` | Generate subject line variations |
| `generate_landing_page` | Generate landing page content |
| `generate_campaign_sequence` | Generate a multi-email drip sequence |

## Example Conversations

### List Draft Campaigns

```
You: Show me my draft campaigns
Claude: [Uses list_campaigns(status="draft")]
→ "You have 3 draft campaigns: Summer Sale, Q3 Newsletter, Product Launch"
```

### Create an Email

```
You: Create an email for our summer sale targeting marketing managers
Claude: [Uses generate_email(prompt="summer sale for marketing managers")]
→ Shows generated email content

You: Create a campaign with that email
Claude: [Uses create_campaign with the generated content]
→ "Campaign created successfully..."
```

### Check Analytics

```
You: What's our email performance this month?
Claude: [Uses get_analytics_overview(date_range="30d")]
→ "Open rate: 32.5%, Click rate: 8.2%, 12 campaigns sent..."
```

## Development

### Running Locally

```bash
cd mcp-server
python -m businessflowpro_mcp
```

### Running Tests

```bash
pip install -e ".[dev]"
pytest
```

## Security Notes

- Credentials are stored in environment variables, not in code
- Tokens are automatically refreshed before expiry
- API calls use HTTPS for secure communication
- Failed authentication attempts are logged but credentials are not exposed

## Troubleshooting

### "Configuration error: BusinessFlowPro credentials not configured"

Ensure you have set the `BUSINESSFLOWPRO_EMAIL` and `BUSINESSFLOWPRO_PASSWORD` environment variables.

### "Authentication failed"

Check that your email and password are correct. Verify you can log in to the BusinessFlowPro web interface.

### "Permission denied"

Your account may not have access to certain features. Contact your BusinessFlowPro administrator.

### "Rate limit exceeded"

Wait a moment before making more requests. The server implements automatic token refresh but does not handle rate limiting retries.

## License

MIT