Skip to main content
Glama
cmcintosh

Cvent MCP Server

by cmcintosh
README.md
# Cvent MCP Server

A Model Context Protocol (MCP) server implementation for the Cvent Event Management Platform REST API.

## Features

- **OAuth2 Authentication** - Client credentials flow support
- **Full REST API Coverage** - All major Cvent endpoints implemented
- **MCP Compliant** - Works with Claude Desktop, OpenClaw, and other MCP clients
- **Python 3.10+** - Modern async/await support

## Installation

```bash
# Install from source
git clone https://github.com/wembassy/cvent-mcp-server.git
cd cvent-mcp-server
pip install -e .

# Or install dependencies directly
pip install -r requirements.txt
```

## Configuration

### Environment Variables

```bash
export CVENT_CLIENT_ID="your_client_id"
export CVENT_CLIENT_SECRET="your_client_secret"
```

### MCP Client Configuration

Add to your MCP client configuration (e.g., `mcporter.json`):

```json
{
  "mcpServers": {
    "cvent": {
      "type": "stdio",
      "command": "python",
      "args": ["/path/to/cvent_mcp_server.py"],
      "env": {
        "CVENT_CLIENT_ID": "your_client_id",
        "CVENT_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}
```

## Available Tools

### Authentication
- `cvent_authenticate` - Initialize connection with OAuth2 credentials

### Events
- `cvent_list_events` - List events with filters (status, date range, search)
- `cvent_get_event` - Get detailed event information
- `cvent_create_event` - Create new event
- `cvent_update_event` - Update existing event
- `cvent_delete_event` - Delete event

### Registrations
- `cvent_list_registrations` - List registrations for an event
- `cvent_get_registration` - Get registration details
- `cvent_create_registration` - Create new registration
- `cvent_update_registration` - Update registration
- `cvent_cancel_registration` - Cancel registration

### Attendees
- `cvent_list_attendees` - List event attendees
- `cvent_get_attendee` - Get attendee details
- `cvent_check_in_attendee` - Check in attendee

### Sessions
- `cvent_list_sessions` - List event sessions
- `cvent_get_session` - Get session details
- `cvent_create_session` - Create new session

### Contacts
- `cvent_list_contacts` - List contacts
- `cvent_get_contact` - Get contact details
- `cvent_create_contact` - Create new contact
- `cvent_update_contact` - Update contact

### Surveys
- `cvent_list_surveys` - List surveys
- `cvent_get_survey` - Get survey details
- `cvent_get_survey_responses` - Get survey responses

### Reports
- `cvent_get_event_report` - Get event registration report
- `cvent_get_registration_report` - Get detailed registration report

### Custom Objects
- `cvent_list_custom_objects` - List custom objects/fields

### Webhooks
- `cvent_list_webhooks` - List webhook subscriptions
- `cvent_create_webhook` - Create webhook subscription

## API Documentation

For detailed Cvent API documentation, visit: https://developers.cvent.com/documentation

## Usage Examples

### List Events
```python
# Via MCP client
result = await client.call_tool("cvent_list_events", {
    "status": "Active",
    "limit": 10
})
```

### Create Registration
```python
result = await client.call_tool("cvent_create_registration", {
    "event_id": "evt-12345",
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
    "company": "Acme Corp"
})
```

### Check In Attendee
```python
result = await client.call_tool("cvent_check_in_attendee", {
    "attendee_id": "att-67890"
})
```

## OAuth2 Authentication

The server uses Cvent's OAuth2 client credentials flow:

1. **Token Endpoint**: `https://api-platform.cvent.com/ea/oauth2/token`
2. **Grant Type**: `client_credentials`
3. **Scopes**: Full API access based on your Cvent account permissions

Tokens are automatically refreshed before expiration.

## Testing

```bash
# Run the server directly
python cvent_mcp_server.py

# Test with mcporter
mcporter call cvent.cvent_list_events limit=5
```

## License

MIT License - See LICENSE file for details

## Support

For issues or feature requests, please open an issue on GitHub or contact the Wembassy development team.

Maintenance

ActivityMaintained
ResponsivenessSyncing