OMICall MCP Server
Provides access to over 80 tools for managing OMICall and OMICRM APIs, including call center operations, ticket management, and multi-channel communication across platforms like Zalo and Facebook. It enables automated calling, agent management, and AI-powered text-to-speech capabilities through natural language.
README
<p align="center"> <img src="assets/omicall-mcp.png" alt="OMICall MCP" width="600" /> </p>
<p align="center"> <a href="https://www.npmjs.com/package/omicall-mcp"><img src="https://img.shields.io/npm/v/omicall-mcp.svg" alt="npm version" /></a> <a href="https://www.npmjs.com/package/omicall-mcp"><img src="https://img.shields.io/npm/dm/omicall-mcp.svg" alt="npm downloads" /></a> <a href="https://github.com/VIHATTeam/OMICALL-MCP/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/omicall-mcp.svg" alt="license" /></a> <a href="https://smithery.ai/server/omicall-mcp"><img src="https://smithery.ai/badge/omicall-mcp" alt="smithery" /></a> </p>
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
<details> <summary><strong>Claude Code</strong></summary>
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"
}
}
}
}
</details>
<details> <summary><strong>Claude Desktop</strong></summary>
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"
}
}
}
}
</details>
<details> <summary><strong>Cursor</strong></summary>
Settings > MCP Servers > Add:
{
"omicall": {
"command": "npx",
"args": ["omicall-mcp"],
"env": {
"OMICALL_USERNAME": "admin@company.com",
"OMICALL_PASSWORD": "your-password",
"OMICALL_DOMAIN": "your-company"
}
}
}
</details>
<details> <summary><strong>Windsurf</strong></summary>
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"
}
}
}
}
</details>
<details> <summary><strong>VS Code (Copilot / Cline)</strong></summary>
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"
}
}
}
}
</details>
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 <sup>switchboard</sup>
| 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 <sup>ticket</sup>
| 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 <sup>integrated</sup>
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 <sup>switchboard</sup>
| Tool | Description |
|---|---|
autocall_by_phone |
Auto call with TTS/recording/IVR |
autocall_by_extension |
Auto call internal extension |
AI <sup>ai</sup>
| 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
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器