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.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing