MCP server by VIHATTeam
OMICall MCP Server
MCP server for OMICall / OMICRM APIs.
80+ tools across 9 groups: Auth, Call Center, Ticket, Multi-Channel (Zalo, Facebook, Telegram, LiveTalk), Agent, Notifications, Webhook, Auto Call, and AI.
Quick Start
npx omicall-mcp
Setup per Platform
Claude Code
Global (all projects):
# 1. Add MCP server
claude mcp add OMICall-mcp --scope user \
-e OMICALL_USERNAME=admin@company.com \
-e OMICALL_PASSWORD=your-password \
-e OMICALL_DOMAIN=your-company \
-- npx omicall-mcp
# 2. Auto-approve all tools (no permission prompts)
claude permissions allow "mcp__OMICall-mcp__*"
Persist permissions — add to ~/.claude/settings.json:
{
"permissions": {
"allow": [
"mcp__OMICall-mcp__*"
]
}
}
Per-project — add to .mcp.json:
{
"mcpServers": {
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
}
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
}
Cursor
Settings > MCP Servers > Add:
{
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
}
VS Code (Copilot / Cline)
Add to .vscode/mcp.json:
{
"servers": {
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
}
Tools (80+)
Auth
| Tool | Description |
|------|-------------|
| login_omicall_mcp | Authenticate (auto pre_auth → tenant select → login) |
| select_tenant | Select tenant if multiple |
| logout | Logout and clear tokens |
| get_balance | Account balance |
| get_service_package | Enabled modules & usage limits |
Call Center switchboard
| Tool | Description |
|------|-------------|
| search_calls | Search call history with filters |
| get_call_detail | Call details by transaction ID |
| update_call | Add tags/notes |
| evaluate_call / list_eval_criteria | Call evaluation |
| click_to_call | Initiate outbound call |
| list_extensions / get_extension / update_extension / update_extension_status | PBX extensions |
| list_hotlines / get_hotline / update_hotline | Hotline management |
| list_groups / create_group / update_group / delete_group | Ring groups |
| add_group_members / remove_group_members | Group members |
| list_ivr / create_ivr / update_ivr / delete_ivr | IVR menus |
| list_scripts / create_script / update_script / delete_script | Call scripts |
| list_audio / generate_tts_audio / delete_audio | Audio files |
Ticket ticket
| Tool | Description |
|------|-------------|
| search_tickets | Search with date range, keyword |
| get_ticket / create_ticket / update_ticket / delete_ticket | CRUD |
| update_ticket_status | Status change |
| create_ticket_note / update_ticket_note / delete_ticket_note | Notes |
| list_ticket_interactions | Interaction history |
| create_ticket_evaluation / get_ticket_eval_criteria | Evaluation |
| get_ticket_categories / ticket_statistics / transfer_tickets | Categories, stats, transfer |
Multi-Channel integrated
6 channels: Zalo OA / Zalo Personal / Facebook Chat / Facebook Post / Telegram / LiveTalk
| Tool | Description |
|------|-------------|
| search_conversations | Search across all channels (date/keyword/agent filters) |
| get_conversation / get_all_channels | Conversation detail, channel list |
| search_channel_messages | Messages per channel (auto channel-specific endpoint) |
| send_zalo_message | Send via Zalo OA |
| send_zalo_personal_message | Send in Zalo personal chat |
| send_facebook_message | Send via Facebook Messenger |
| send_facebook_comment | Reply to Facebook post/comment |
| send_telegram_message | Send via Telegram bot |
| send_livetalk_message | Send in LiveTalk widget |
| mark_conversation_read / transfer_conversation | Actions |
Agent & Notifications
| Tool | Description |
|------|-------------|
| list_agents / get_agent / invite_agent / get_agent_pbx_info | Employee management |
| list_notifications / count_unread_notifications | Notifications |
| mark_notification_read / mark_all_notifications_read | Mark read |
Webhook
| Tool | Description |
|------|-------------|
| list_webhooks / register_webhook / destroy_webhook | Webhook CRUD (HTTPS enforced) |
Auto Call switchboard
| Tool | Description |
|------|-------------|
| autocall_by_phone | Auto call with TTS/recording/IVR |
| autocall_by_extension | Auto call internal extension |
AI ai
| Tool | Description |
|------|-------------|
| text_to_speech | TTS with 4 Vietnamese voices |
| register_stt_webhook | Register STT webhook |
Service Package Gate
Each tool auto-checks if the required module is enabled for your account:
| Tool Group | Required Module | Channel Sub-gate |
|------------|----------------|-----------------|
| auth, agent, webhook, notifications | None | — |
| callcenter, autocall | switchboard | — |
| ticket | ticket | — |
| multichannel | integrated | Per channel: zalo, facebook, telegram, livetalk, etc. |
| ai | ai | — |
Disabled module returns: "Module X is not enabled in your service package."
Contributing
For development setup and contribution guidelines, please contact VIHATTeam.
License
MIT