The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Viber MCP listing page.
viber-mcp
Model Context Protocol server for the Viber Bot API
The first MCP server for Viber. Connect any MCP-compatible client -- Claude Desktop, Claude Code, Cursor, Windsurf, and others -- to the Viber Bot REST API and control your Viber bot through natural language.
Viber has over 1 billion registered users, particularly strong in Ukraine, Eastern Europe, Greece, and Southeast Asia. This server gives AI assistants full access to the bot API: send messages, media, files, broadcast to groups, manage webhooks, and query user data.
Try it instantly -- no install required:
Or install globally:
Add to your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonWindows note: Replace
"command": "npx"with"command": "cmd"and"args"with["/c", "npx", "-y", "@serhii.zghama/viber-mcp"].
Restart Claude Desktop. The Viber tools will appear in the tools menu.
Open Settings > MCP Servers, click + Add, and paste:
Add to .vscode/mcp.json in your workspace:
13 tools covering the full Viber Bot API surface:
| Tool | Description | Key parameters |
|---|---|---|
send_message | Send a text message | receiver, text (up to 7000 chars) |
send_picture | Send an image with optional caption | receiver, media (URL), text (caption) |
send_video | Send a video | receiver, media (URL), size (bytes) |
send_file | Send a file attachment | receiver, media (URL), size, file_name |
send_url | Send a clickable link | receiver, media (URL, max 2000 chars) |
send_location | Send GPS coordinates | receiver, latitude, longitude |
send_contact | Send a contact card | receiver, name, phone_number |
broadcast_message | Broadcast to up to 300 users | receivers (array), text |
| Tool | Description | Key parameters |
|---|---|---|
get_account_info | Get bot profile and subscriber count | none |
get_user_details | Fetch user profile (rate-limited: 2/12h per user) | id |
get_online | Check online status of up to 100 users | ids (array) |
| Tool | Description | Key parameters |
|---|---|---|
set_webhook | Register a webhook URL | url, event_types (optional) |
remove_webhook | Disable the current webhook | none |
All tools validate inputs with Zod schemas before calling the Viber API. On errors, tools return human-readable messages with isError: true so the AI can decide how to proceed.
Full schema details and examples in docs/API_REFERENCE.md.
Environment variables, read once at startup:
| Variable | Required | Default | Description |
|---|---|---|---|
VIBER_AUTH_TOKEN | yes | -- | Bot auth token from the Viber Admin Panel |
VIBER_SENDER_NAME | no | Bot | Default sender display name (max 28 chars) |
VIBER_SENDER_AVATAR | no | -- | Default sender avatar URL |
VIBER_BASE_URL | no | https://chatapi.viber.com/pa | API base URL override |
VIBER_REQUEST_TIMEOUT_MS | no | 15000 | Per-request timeout in milliseconds |
VIBER_AUTH_TOKEN in your MCP client configNote: Since February 2024, new Viber bot accounts may require commercial onboarding through Viber partners. Existing bot tokens continue to work.
| Command | Description |
|---|---|
pnpm build | Build with tsup (ESM, Node 20+) |
pnpm dev | Build with file watching |
pnpm typecheck | Run TypeScript strict checks |
pnpm test | Run vitest (43 tests) |
console.log -- stdout is the MCP protocol channel; only console.error for diagnosticsfetch -- no axios/node-fetch; minimal runtime dependencies{ isError: true } so the AI can handle them gracefullyFuture work -- contributions welcome:
send_rich_media tool with carousel layoutsend_sticker tool