mcpField
V
Vonage API Bindings MCP Server

Vonage API Bindings MCP Server

Local
github.com/Vonage-CommunityDeveloper Tools3Updated 1w ago

About Vonage API Bindings MCP Server

Vonage API Bindings MCP Server exposes Vonage account, number, reporting, and messaging APIs to developers through MCP tools. It also supports outbound voice messages and charts based on retrieved data.

Key features

  1. 01Manage account applications and numbers
  2. 02Search for available phone numbers
  3. 03Retrieve activity records and reports
  4. 04Send SMS, WhatsApp, and RCS messages
  5. 05Send outbound voice messages
  6. 06Create charts from retrieved data

Use cases

  1. 01Check account balance and owned numbers
  2. 02Find numbers matching country and criteria
  3. 03Send messages through Vonage channels
  4. 04Review outbound activity reports

MCP support

Provides Vonage API operations as tools for MCP clients, including account and number management, reporting, messaging, voice, and chart creation. The documented setup uses the stdio transport.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"vonage-mcp-server-api-bindings": {
"command": "npx",
"args": [
"-y",
"@vonage/vonage-mcp-server-api-bindings"
],
"env": {
"VONAGE_APPLICATION_ID": "<VONAGE_APPLICATION_ID>",
"VONAGE_PRIVATE_KEY64": "<VONAGE_PRIVATE_KEY64>",
"VONAGE_API_KEY": "<VONAGE_API_KEY>",
"VONAGE_API_SECRET": "<VONAGE_API_SECRET>",
"VONAGE_VIRTUAL_NUMBER": "<VONAGE_VIRTUAL_NUMBER>",
"VONAGE_WHATSAPP_NUMBER": "<VONAGE_WHATSAPP_NUMBER>",
"RCS_SENDER_ID": "<RCS_SENDER_ID>"
}
}
}
}
Run commandnpx -y @vonage/vonage-mcp-server-api-bindings
Environment variables to set
VONAGE_APPLICATION_ID
VONAGE_PRIVATE_KEY64Secret
VONAGE_API_KEYSecret
VONAGE_API_SECRETSecret
VONAGE_VIRTUAL_NUMBER
VONAGE_WHATSAPP_NUMBER
RCS_SENDER_ID

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@vonage/vonage-mcp-server-api-bindings

Tools

15

Saved tool list · updated 3w ago

This tool takes no parameters.

Details

From the project README

Vonage API MCP server

Available Tools

This MCP server provides access to various Vonage API functionalities through the following tools:

CategoryTool NameDescription
Account ManagementbalanceGet your Vonage account balance
list-applicationsList all applications attached to your API key with their configurations and capabilities
create-applicationCreate a new Vonage application with a specified name
list-purchased-numbersList telephone numbers associated with your account and their metadata
Number Managementsearch-available-numbersSearch for available phone numbers to purchase from Vonage in a specific country
link-number-to-vonage-applicationLink an owned number to a specific Vonage Application
Reportsget-records-reportRetrieve activity records from the Vonage Reports API (date-based or ID-based queries)
Messaging & CommunicationSMSSend SMS messages using Vonage
whatsapp-send-textSend text messages via WhatsApp
whatsapp-send-text-with-sms-failoverSend a WhatsApp text message with automatic SMS failover
rcs-send-textSend text messages via RCS
rcs-send-text-with-sms-failoverSend an RCS text message with automatic SMS failover
outbound-voice-messageSend outbound voice messages with Vonage
Data Visualizationmake-chartCreate charts based on data retrieved
Usage Examples
Check Account Balance
Can you check my Vonage account balance?
List Your Phone Numbers
Can you list out the numbers that I own for Vonage?
Search for Available Numbers to Purchase
Can you search for available Vonage numbers to purchase in the US?

Or search with specific criteria:

Can you search for available Vonage numbers in the US with SMS and VOICE features?
Can you search for available numbers in GB starting with pattern "44207*"?
List Applications
Can you list out the applications on my account?
Create a New Application
Can you create a new Vonage application called "My Chat App"?

Or let the system suggest a name:

Can you create a new Vonage application?
Get a Records Report

Query by date range:

Can you get a report of all outbound SMS sent over the last week?

Query by specific ID:

Can you get the report for Voice Call ID 1234-abcd-5678-efgh?
Send an SMS
Can you send an SMS to +1234567890 with the message "Hello from Vonage!"?
Send a WhatsApp Message
Can you send a WhatsApp message to +1234567890 with the message "Hello from Vonage over WhatsApp!"?
Send a WhatsApp Message with SMS Failover
Can you send a WhatsApp message with SMS failover to +1234567890 saying "Hello from Vonage with failover!"?
Send an RCS Message
Can you send an RCS message to +1234567890 with the message "Hello from Vonage via RCS!"?
Send an RCS Message with SMS Failover
Can you send an RCS message with SMS failover to +1234567890 saying "Hello from Vonage RCS with fallback!"?
Generate a Chart
Please create a chart showing all the outbound SMS sent over the last week.

Set up the MCP server

The details of the MCP server should look like this.

"vonage-mcp-server-api-bindings": {
    "type": "stdio",
    "command": "npx",
    "args": [
        "-y",
        "@vonage/vonage-mcp-server-api-bindings"
    ],
    "env": {
        "VONAGE_APPLICATION_ID": "<YOUR_VONAGE_APPLICATION_ID>",
        "VONAGE_PRIVATE_KEY64": "<YOUR_VONAGE_PRIVATE_KEY64>",
        "VONAGE_API_KEY": "<YOUR_VONAGE_API_KEY>",
        "VONAGE_API_SECRET": "<YOUR_VONAGE_API_SECRET>",
        "VONAGE_VIRTUAL_NUMBER": "<YOUR_VONAGE_VIRTUAL_NUMBER>",
        "VONAGE_WHATSAPP_NUMBER": "<YOUR_VONAGE_WHATSAPP_NUMBER>",
        "RCS_SENDER_ID": "<YOUR_RCS_SENDER_ID>"
    }
}
Encoding your private key

VONAGE_PRIVATE_KEY64 must be your application's private key file, base64 encoded on a single line. Run one of these commands locally, replacing private.key with the path to your key file, and paste the output into your config:

macOS:

base64 -i private.key

Linux:

base64 -w 0 private.key

Windows PowerShell:

[Convert]::ToBase64String([IO.File]::ReadAllBytes((Resolve-Path .\private.key)))

Security

STDIO transport

This server runs locally and talks to your MCP client (VS Code, Cursor, Claude Desktop, etc.) over STDIO. Tool calls and their responses travel between the two processes as plaintext JSON-RPC. There is no transport-layer encryption or authentication on this channel, which is how local MCP servers are designed to work.

That is safe on a single-user machine you trust, which is the intended way to run this server. Keep in mind that:

  • Any process with enough privilege on the same machine can read or tamper with the STDIO stream. If the machine is compromised, the server cannot protect the data passing through it.
  • In shared, multi-user, or containerised environments, other users or workloads may be able to observe the process. Only run the server where you trust everything else running alongside it.
Storing credentials

The setup above puts your Vonage credentials, including VONAGE_PRIVATE_KEY64, into your MCP client's config file (for example claude_desktop_config.json or .cursor/mcp.json) as plaintext. Any process running as your user can read that file, and it is easy to leak by accident.

  • Treat VONAGE_PRIVATE_KEY64 like a private SSH key. Anyone who has it can act as your Vonage application.
  • If the config file lives inside a project, such as .cursor/mcp.json or .vscode/mcp.json, add it to that project's .gitignore so it is never committed.
  • Cloud sync services (iCloud, Dropbox, OneDrive, Google Drive) can silently upload config directories. Exclude those directories from sync, or keep credential-bearing config files outside synced folders.
  • For stronger protection, keep the secrets out of the config file entirely. The options are below.
Keeping secrets out of the config file

The server only reads credentials from its environment, so the goal is to have your MCP client supply VONAGE_PRIVATE_KEY64 and VONAGE_API_SECRET at launch without writing them into a file. This protects the credentials at rest. Once the server is running, they are still in its environment.

macOS (Keychain)

Store the secrets in your login Keychain. The private key is too long to paste at a terminal prompt, so the first command reads it straight from the key file. The second command ends with -w, which makes security prompt for the API secret so it doesn't end up in your shell history:

security add-generic-password -a "$USER" -s vonage-mcp-private-key64 -w "$(base64 -i private.key)"
security add-generic-password -a "$USER" -s vonage-mcp-api-secret -w

Then launch the server through a shell that reads them from Keychain, and keep only the non-secret values in env:

"vonage-mcp-server-api-bindings": {
    "type": "stdio",
    "command": "/bin/sh",
    "args": [
        "-c",
        "VONAGE_PRIVATE_KEY64=$(security find-generic-password -s vonage-mcp-private-key64 -w) || exit 1; VONAGE_API_SECRET=$(security find-generic-password -s vonage-mcp-api-secret -w) || exit 1; export VONAGE_PRIVATE_KEY64 VONAGE_API_SECRET; exec npx -y @vonage/vonage-mcp-server-api-bindings"
    ],
    "env": {
        "VONAGE_APPLICATION_ID": "<YOUR_VONAGE_APPLICATION_ID>",
        "VONAGE_API_KEY": "<YOUR_VONAGE_API_KEY>",
        "VONAGE_VIRTUAL_NUMBER": "<YOUR_VONAGE_VIRTUAL_NUMBER>",
        "VONAGE_WHATSAPP_NUMBER": "<YOUR_VONAGE_WHATSAPP_NUMBER>",
        "RCS_SENDER_ID": "<YOUR_RCS_SENDER_ID>"
    }
}

The first time the server starts, macOS may ask whether security can access the items. Choose Always Allow so later launches don't prompt.

VS Code (input variables)

VS Code can prompt for a secret the first time the server starts and store it securely, using input variables in .vscode/mcp.json or your user-profile mcp.json:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "vonage-private-key64",
      "description": "Vonage private key (base64)",
      "password": true
    },
    {
      "type": "promptString",
      "id": "vonage-api-secret",
      "description": "Vonage API secret",
      "password": true
    }
  ],
  "servers": {
    "vonage-mcp-server-api-bindings": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@vonage/vonage-mcp-server-api-bindings"],
      "env": {
        "VONAGE_APPLICATION_ID": "<YOUR_VONAGE_APPLICATION_ID>",
        "VONAGE_API_KEY": "<YOUR_VONAGE_API_KEY>",
        "VONAGE_PRIVATE_KEY64": "${input:vonage-private-key64}",
        "VONAGE_API_SECRET": "${input:vonage-api-secret}"
      }
    }
  }
}

Add the remaining non-secret variables from the setup example to env as needed. VS Code doesn't forward servers that use input variables to Copilot harness sessions. See the VS Code MCP configuration reference for details.

Linux and Windows

Neither has a secret store with a command-line client that is installed and working by default. If you already use one, such as secret-tool with GNOME Keyring or PowerShell SecretManagement, you can apply the same pattern as the macOS example: launch the server through a shell that reads the secrets and exports them before starting it. Otherwise, follow the file-handling guidance above.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.