MCP server for the Viber Bot REST API. Send text, pictures, videos, files, locations, and contacts; broadcast to up to 300 recipients; manage webhooks and inspect account/user state β 13 tools, fully typed, available on npm as @serhii.zghama/viber-mcp.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Viber MCP.
send_messageSend a text message
send_pictureSend an image with optional caption
send_videoSend a video
send_fileSend a file attachment
send_urlSend a clickable link
send_locationSend GPS coordinates
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 toolMIT Β© Serhii Zghama
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/serhiizghama-viber-mcp)<a href="https://allmcps.com/mcp/serhiizghama-viber-mcp"><img src="https://allmcps.com/api/badge/serhiizghama-viber-mcp?style=directory" alt="Viber MCP on AllMCPs" /></a>