Quick Start
Get your API key
Go to your OpenCX Dashboard and navigate to Settings > API Keys > Create API Key. Copy the generated key.
Start using it
Ask your AI assistant something like:
- “List my recent chat sessions”
- “Create a new contact with email [email protected]”
- “Show me customer insights from this week”
- “Search my knowledge base for refund policy”
- “Create a training scenario for password reset questions”
- “Show me the handoff analytics for the last 7 days”
Available Tools
The MCP server exposes the following tools organized by domain:Contacts
| Tool | Description |
|---|---|
list_contacts | List contacts with cursor pagination |
create_contact | Create a new contact (email, phone, name, custom data) |
update_contact | Update contact fields |
delete_contact | Delete a contact by ID |
Chat Sessions
| Tool | Description |
|---|---|
list_sessions | List sessions with basic filters (status, channel, date range) |
filter_sessions | Advanced session search (sentiment, tags, teams, language, custom data) |
get_session | Get session details by ID |
create_session | Create a new chat session for a contact |
update_session | Update session status (resolve, close, reopen) |
send_message | Send a message in a session (as contact or agent) |
get_session_history | Get message history for a session |
search | Full-text search across contacts and chat messages |
Blocklist
| Tool | Description |
|---|---|
list_blocked_contacts | List all blocked contacts |
block_contact | Block a contact by email |
check_contact_blocked | Check if a contact is blocked |
unblock_contact | Remove a contact from the blocklist |
list_blocked_domains | List all blocked email domains |
block_domains | Block one or more email domains |
check_domain_blocked | Check if a domain or email is blocked |
unblock_domain | Remove a domain from the blocklist |
Autopilot
| Tool | Description |
|---|---|
get_autopilot_status | Get autopilot enabled/disabled per channel |
set_autopilot | Enable or disable autopilot for a channel |
AI Training
| Tool | Description |
|---|---|
list_training_scenarios | List all custom training scenarios |
get_training_scenario | Get a single scenario by ID |
create_training_scenario | Create a scenario (supports type, draft, channels, segments) |
update_training_scenario | Update an existing scenario |
delete_training_scenario | Delete a scenario |
toggle_training_draft | Publish or unpublish a scenario |
move_training_to_directory | Move a scenario into a directory |
search_training_knowledge | Semantic search across training and knowledge base |
Media
| Tool | Description |
|---|---|
upload_image | Upload a local image file (PNG, JPEG, GIF, WebP — max 5 MB) and get a URL to embed in training content |
Training Directories
| Tool | Description |
|---|---|
list_training_directories | List all directories |
get_training_directory_tree | Get full directory tree with items |
create_training_directory | Create a new directory |
update_training_directory | Rename a directory |
delete_training_directory | Delete a directory and its contents |
AI Actions
| Tool | Description |
|---|---|
list_actions | List all actions the AI agent can call |
get_action | Get an action with its full OpenAPI payload spec |
create_action | Create a new action with typed parameters and request body |
update_action | Update an existing action |
delete_action | Delete a single action |
list_action_tags | List all unique tags across actions |
Website Crawling
| Tool | Description |
|---|---|
list_datasources | List website datasources |
create_datasource | Create a new website datasource to crawl |
get_datasource | Get datasource details |
start_crawl | Trigger a crawl for a datasource |
get_crawl_status | Get status of a crawl job |
list_crawled_pages | List pages from a crawl |
Customer Insights
| Tool | Description |
|---|---|
list_insights | List customer insights with pagination |
get_insight | Get a specific insight |
resolve_insight | Mark an insight as resolved |
assign_insight | Assign an insight to a team |
list_insight_categories | List insight categories |
Teams
| Tool | Description |
|---|---|
list_teams | List all teams |
get_team | Get team details |
create_team | Create a new team |
update_team | Update a team |
delete_team | Delete a team |
list_team_members | List users in a team |
add_team_member | Add a user to a team |
remove_team_member | Remove a user from a team |
| Tool | Description |
|---|---|
send_email | Send AI-generated emails to contacts |
list_email_domains | List configured email domains |
add_email_domain | Add a custom sending domain |
verify_email_domain | Verify a domain’s DNS records |
AI Phone Agents
| Tool | Description |
|---|---|
list_voices | List available voices (ID, name, accent, gender, preview) |
list_phone_agents | List all phone agents with full details |
get_phone_agent | Get a phone agent’s complete configuration |
create_phone_agent | Create an agent (LiveKit default, voice selection, instructions) |
update_phone_agent | Update agent voice, language, instructions, etc. |
delete_phone_agent | Delete a phone agent and release its number |
make_outbound_call | Call a contact or phone number via an AI agent |
Outbound Sequences
| Tool | Description |
|---|---|
create_sequence | Create an outbound sequence |
get_sequence | Get sequence details |
update_sequence | Update a sequence |
start_sequence | Start a sequence |
cancel_sequence | Cancel a running sequence |
add_contacts_to_sequence | Enroll contacts in a sequence |
Tags
| Tool | Description |
|---|---|
list_tags | List all tags in your organization |
list_tags_in_use | List tags actually applied to sessions |
upsert_tag | Create or update a tag |
delete_tag | Remove a tag |
get_auto_tagging_status | Check if AI auto-tagging is enabled |
set_auto_tagging | Enable or disable AI auto-tagging |
Office Hours
| Tool | Description |
|---|---|
list_office_hours | List all office hours schedules |
get_office_hours | Get a schedule with all its shifts |
create_office_hours | Create a schedule with timezone and shifts |
update_office_hours | Update a schedule (replaces all shifts) |
delete_office_hours | Delete a schedule and its shifts |
Organization
| Tool | Description |
|---|---|
get_organization | Get organization info |
update_organization | Update organization name |
CSAT
| Tool | Description |
|---|---|
list_csat_scores | List customer satisfaction scores |
get_csat_score | Get a specific CSAT score |
get_session_csat | Get CSAT score for a session |
Workflows
| Tool | Description |
|---|---|
list_workflows | List all workflows with trigger type and active status |
get_workflow | Get a specific workflow |
trigger_workflow | Manually trigger a workflow |
list_workflow_runs | List runs with status/cause filters |
get_workflow_run | Get a specific run with duration and status |
SLA Policies
| Tool | Description |
|---|---|
list_sla_policies | List all SLA policies |
get_sla_policy | Get a single SLA policy by ID |
create_sla_policy | Create a new SLA policy with target times |
update_sla_policy | Update an existing SLA policy |
delete_sla_policy | Delete an SLA policy |
Handoff Analytics
| Tool | Description |
|---|---|
get_handoff_analytics | Get AI-to-human handoff analytics (reasons, sentiment, trends) |
| Tool | Description |
|---|---|
send_whatsapp_template | Send a WhatsApp template message |
Configuration
| Environment Variable | Required | Default | Description |
|---|---|---|---|
OPENCX_API_KEY | Yes | — | Your OpenCX API key |
OPENCX_BASE_URL | No | https://api.open.cx | API base URL (for self-hosted instances) |
Requirements
- Node.js 18 or later
- An OpenCX account with an API key