vonage-mcp-server
Provides tools for sending SMS messages, bulk SMS from CSV, making voice calls, retrieving call status, and generating JWT tokens via the Vonage API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vonage-mcp-serversend an SMS to +81345438093 with message 'Test'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vonage MCP Server
VonageのSMS送信、CSV一括送信、音声通話機能を提供するMCP (Model Context Protocol) Server実装です。
インストール方法
方法1: MCPB Bundle(推奨 - ワンクリックインストール)
Claude Desktopで簡単にインストールできます:
MCPBファイルのダウンロード
vonage-mcp-server.mcpb をダウンロード
Claude Desktopで開く
.mcpbファイルをダブルクリック、またはClaude Desktopにドラッグ&ドロップ
環境変数の設定
Claude Desktopのインストールダイアログで以下を入力:
VONAGE_APPLICATION_ID: Vonage Application IDVONAGE_PRIVATE_KEY_PATH: 秘密鍵ファイルのパス(例:/Users/your-name/vonage/private.key)VONAGE_VOICE_FROM: 音声通話用の電話番号(E.164形式、例:81345438093)
インストール完了
Claude Desktopを再起動すると、Vonage MCPサーバーが利用可能になります
方法2: 手動セットアップ
Related MCP server: seven-mcp
セットアップ
依存関係のインストール
npm installVonage設定
Vonageアカウントの作成
Vonage Developer Portal でアカウントを作成
アプリケーションを作成し、Application IDを取得
秘密鍵の準備
Vonage Developer Portalで秘密鍵(private.key)をダウンロード
プロジェクトルートに
private.keyとして保存
環境変数の設定
cp .env.example .env.envファイルを編集して以下を設定:VONAGE_APPLICATION_ID=your_application_id_here VONAGE_PRIVATE_KEY_PATH=./private.key VONAGE_VOICE_FROM=14155550100 # Voice通話用のFROM番号
開発用依存関係のインストール
npm install --save-dev @types/node typescript ts-node開発
開発サーバーの起動
npm run dev:startTypeScriptのコンパイル
npm run buildコンパイルされたコードの実行
# 環境変数ファイル(.env)を使用して実行(推奨・Node.js v22以降)
npm start
# 環境変数ファイルを使用せずに実行(従来方式)
npm run start:legacyファイル監視モード(コンパイル)
npm run devビルドファイルのクリーンアップ
npm run cleanテストの実行
npm testテストの監視モード
npm run test:watchカバレッジ付きテスト
npm run test:coverageClaude Desktopでの利用
このMCPサーバーをClaude Desktopで利用するための設定方法を説明します。
方法1: MCPB Bundle(推奨 - ワンクリックインストール)
.mcpbファイルを使用すると、Claude Desktopに簡単にインストールできます。
インストール手順
MCPBファイルの作成
npm run build:mcpbこれにより
vonage-mcp-server.mcpbファイルが作成されます。Claude Desktopで開く
作成された
.mcpbファイルをダブルクリックまたは Claude Desktop にドラッグ&ドロップ
環境変数の設定 Claude Desktop のインストールダイアログで以下を入力:
Vonage Application ID: Vonage Application ID
Private Key Path: 秘密鍵ファイルの絶対パス(例:
/Users/your-name/vonage/private.key)Voice Call From Number: 音声通話用の電話番号(E.164形式、例:
81345438093)
インストール完了 Claude Desktop を再起動すると、Vonage MCP サーバーが利用可能になります。
MCPBファイルの配布
作成した .mcpb ファイルは他のユーザーと共有できます:
GitHub Releases で配布
直接ファイルを共有
方法2: 手動セットアップ
1. サーバーのビルドと起動
# プロジェクトをビルド
npm run build
# サーバーを起動(Node.js v22以降、推奨)
npm start
# または従来方式で起動(環境変数ファイルを使用しない場合)
npm run start:legacy2. Claude Desktopの設定
Claude Desktopの設定ファイル claude_desktop_config.json に以下の設定を追加します:
{
"mcpServers": {
"vonage-mcp-server": {
"command": "node",
"args": ["--env-file=.env", "dist/index.js"],
"cwd": "/Users/your-username/path/to/vonage-mcp-server"
}
}
}または環境変数を直接指定する方法もあります:
{
"mcpServers": {
"vonage-mcp-server": {
"command": "node",
"args": ["/Users/your-username/path/to/vonage-mcp-server/dist/index.js"],
"env": {
"VONAGE_APPLICATION_ID": "your-application-id",
"VONAGE_PRIVATE_KEY_PATH": "/Users/your-username/path/to/vonage-mcp-server/private.key"
}
}
}
}設定ファイルの場所
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
設定手順
上記のパスにある
claude_desktop_config.jsonを開くmcpServersセクションに上記の設定を追加ファイルを保存
Claude Desktopを再起動
3. 利用可能な機能
設定完了後、Claude Desktopで以下の機能が利用できます:
ツール
send_sms: 単発SMS送信ツール
入力:
to(必須): 送信先の電話番号message(必須): 送信するメッセージfrom(オプション): 送信元(省略時は'VonageMCP')
機能:
日本の電話番号(0から始まる)は自動的にE.164形式に変換
送信結果とメッセージIDを返却
bulk_sms_from_csv: CSV一括SMS送信ツール
入力:
csv_content(必須): CSVファイルの内容(phone,from,messageのヘッダー付き)
機能:
CSVファイルを解析して複数宛先に一括SMS送信
無効な行は自動的にスキップ
送信結果の詳細レポートを返却
API制限回避のため100ms間隔で順次送信
make_voice_call: 音声通話ツール
入力:
to(必須): 発信先電話番号(0ABJ形式)message(必須): 読み上げるメッセージvoice(オプション): 音声タイプ(デフォルト: 女性)
機能:
指定番号に発信してメッセージを音声で読み上げ
日本語音声対応(女性・男性)
NCCO(Nexmo Call Control Object)を使用
通話時間の自動見積もり
get_call_status: 通話ステータス取得ツール
入力:
callId(必須): 取得する通話のCall ID(UUID形式)
機能:
Vonage Voice APIから通話のステータス情報を取得
status(通話ステータス)、start_time(開始時刻)、price(料金)、rate(レート)、duration(通話時間)を返却
環境変数から自動的にApplication IDとPrivate Keyを読み込み
generate_jwt: JWT生成ツール
入力:
expiresIn(オプション): トークンの有効期限(秒単位、デフォルト: 86400 = 24時間)subject(オプション): トークンのサブジェクト(デフォルト: VonageMCP)
機能:
Vonage Voice API用のJWT認証トークンを生成
環境変数から自動的にApplication IDとPrivate Keyを読み込み
デフォルトのACL設定を含む(Voice API用の標準パス)
有効期限とサブジェクトをカスタマイズ可能
4. 使用例
Claude Desktopで以下のような質問ができます:
単発SMS送信
「090XXXXYYYYに「これはVonage MCPサーバーを使って送信しています。」とSMSを送ってください」
→ send_smsツールを使用してSMS送信CSV一括SMS送信
「以下のCSVデータで一括SMS送信をしてください」
phone,from,message
090-1234-5678,VonageMCP,テストメッセージです
080-9876-5432,SalesTeam,お打ち合わせの件でご連絡しました
→ bulk_sms_from_csvツールを使用して一括送信音声通話
「090XXXXYYYYに女性の声で『会議は明日の10時からです』と電話をかけて」
→ make_voice_callツールを使用して発信・音声読み上げ
「080XXXXYYYYに男性の声で『システム障害が発生しました。至急対応をお願いします』と電話で伝えて」
→ make_voice_callツールを使用して緊急連絡通話ステータス取得
「Call ID ca6b7710-3423-4c8d-b630-7b981ec4b2c2 の通話ステータスを取得してください」
→ get_call_statusツールを使用して通話情報を取得
「先ほどの通話の料金と時間を教えてください」
→ get_call_statusツールで通話詳細を確認JWT生成
「Vonage Voice API用のJWTトークンを生成してください」
→ generate_jwtツールを使用してデフォルト設定(24時間有効)でJWT生成
「有効期限1時間のJWTトークンを生成してください」
→ generate_jwtツールを使用してexpiresIn=3600でJWT生成
「サブジェクトを'AdminUser'にしてJWTトークンを生成してください」
→ generate_jwtツールを使用してカスタムサブジェクトでJWT生成CSV一括送信機能
CSVファイル形式
CSV一括送信機能では以下の形式のCSVファイルを使用します:
phone,from,message
090-1234-5678,VonageMCP,テストメッセージです
080-9876-5432,SalesTeam,お打ち合わせの件でご連絡しました
070-1111-2222,Support,システムメンテナンスのお知らせフィールド仕様
phone: 送信先電話番号
日本の0ABJ形式(090-1234-5678)が推奨
自動的にE.164形式(+819012345678)に変換
from: 送信者名
3〜11文字の英数字のみ(A-Z, a-z, 0-9)
数字のみ、数字始まり、日本語は使用不可
例:
VonageMCP,SalesTeam,Support
message: 送信メッセージ
70文字以内推奨(超過時は警告表示)
日本語使用可能
バリデーション機能
無効な行は自動的にスキップされ、処理継続
詳細なエラーレポートを返却
送信成功/失敗の件数と詳細を表示
サンプルCSVファイル
プロジェクトには以下のサンプルCSVファイルが含まれています:
csv/sample_contacts.csv- 基本テスト用csv/meeting_reminder.csv- 会議リマインダー用csv/emergency_notification.csv- 緊急連絡用csv/sales_follow_up.csv- 営業フォロー用csv/invalid_data_example.csv- バリデーションテスト用
Voice通話機能
機能概要
Voice APIを使用して自動音声通話を発信し、指定されたメッセージを日本語で読み上げます。
主な特徴
自動発信: 指定番号への自動発信
日本語音声: 女性・男性音声による自然な読み上げ
NCCO制御: Nexmo Call Control Objectによる通話フロー制御
通話時間見積: メッセージ長から自動的に通話時間を算出
音声オプション
音声タイプ | 性別 | 言語 | 特徴 |
女性 | 女性 | 日本語 | 自然で聞き取りやすい(デフォルト) |
男性 | 男性 | 日本語 | 落ち着いた男性音声 |
使用例
// 会議リマインダー
make_voice_call({
to: "090-1234-5678",
message: "明日の会議は10時から会議室Aで行います。資料をご準備ください。",
voice: "女性"
})
// 緊急連絡
make_voice_call({
to: "080-9876-5432",
message: "システム障害が発生しました。至急対応をお願いします。",
voice: "男性"
})通話ステータス取得機能
機能概要
Vonage Voice APIを使用して、過去の通話のステータス情報を取得します。通話の詳細(ステータス、料金、レート、通話時間)を確認できます。
主な特徴
詳細情報取得: 通話のステータス、料金、レート、通話時間を一度に取得
自動設定読み込み: 環境変数から自動的にApplication IDとPrivate Keyを取得
エラーハンドリング: 存在しないCall IDに対する適切なエラーメッセージ
パラメータ
パラメータ | 型 | 説明 |
callId | string | 取得する通話のCall ID(UUID形式) |
返却される情報
status: 通話のステータス(completed, answered, busy, failed など)
start_time: 通話開始時刻(ISO 8601形式)
price: 通話料金(数値形式)
rate: 通話レート(1分あたりの料金)
duration: 通話時間(秒単位)
使用例
// Call IDを指定して通話ステータスを取得
get_call_status({
callId: "ca6b7710-3423-4c8d-b630-7b981ec4b2c2"
})
// 結果例:
// ステータス: completed
// 開始時刻: 2025-12-10T03:53:19.000Z
// 料金: 0.06287850
// レート: 0.13973000
// 通話時間: 27秒JWT生成機能
機能概要
Vonage Voice API用のJWT認証トークンを生成します。環境変数から自動的にApplication IDとPrivate Keyを読み込み、セキュアなトークンを生成します。
主な特徴
自動設定読み込み: 環境変数から自動的にApplication IDとPrivate Keyを取得
カスタマイズ可能: 有効期限とサブジェクトを柔軟に設定
デフォルトACL: Voice API用の標準的なACL設定を自動適用
有効期限管理: トークンの有効期限を自動計算・表示
パラメータ
パラメータ | 型 | デフォルト | 説明 |
expiresIn | number | 86400 | トークンの有効期限(秒単位、86400 = 24時間) |
subject | string | VonageMCP | トークンのサブジェクト(識別用) |
使用例
// デフォルト設定(24時間有効)
generate_jwt()
// 1時間有効のトークン
generate_jwt({
expiresIn: 3600
})
// カスタムサブジェクト
generate_jwt({
subject: "AdminUser",
expiresIn: 7200 // 2時間
})ACL設定
生成されるJWTには以下のデフォルトACL(Access Control List)が含まれます:
/*/users/**- ユーザー管理/*/conversations/**- 会話管理/*/sessions/**- セッション管理/*/devices/**- デバイス管理/*/image/**- 画像管理/*/media/**- メディア管理/*/applications/**- アプリケーション管理/*/push/**- プッシュ通知/*/knocking/**- ノッキング機能/*/legs/**- 通話レッグ管理
5. トラブルシューティング
サーバーが起動しない場合
npm run buildが正常に完了しているか確認npm startでエラーが出ないか確認Node.jsバージョンが20.6.0以降であることを確認(
node -v)
Claudeデスクトップでのエラー
JSON解析エラー「Unexpected token 'd', "[dotenv@17."... is not valid JSON」が表示される場合:
claude_desktop_config.jsonのargsに--env-file=.envが含まれていることを確認サーバーコードがdotenvを使用していないことを確認(最新のコードではdotenvは使用していません)
MCPサーバーを再起動
Claude Desktopで認識されない場合
claude_desktop_config.jsonの設定が正しいか確認作業ディレクトリ(cwd)のパスが正しいか確認
Claude Desktopを再起動
機能が利用できない場合
サーバーのログを確認(Claude Desktopの設定画面で確認可能)
サーバーを再起動
Voice通話機能のトラブルシューティング
Voice通話が発信されない場合:
VONAGE_VOICE_FROM環境変数が正しく設定されているか確認VonageアプリケーションでVoice機能が有効になっているか確認
FROM番号がVonageアカウントに登録されているか確認
通話は繋がるが音声が再生されない場合:
NCCOパラメータの音声設定を確認
音声オプション(女性/男性)が正しく指定されているか確認
プロジェクト構造
vonage-mcp-server/
├── src/ # TypeScriptソースコード
│ ├── index.ts # エントリーポイント・MCPツール定義
│ ├── vonage.ts # Vonage SMS送信機能
│ ├── csvUtils.ts # CSV解析・バリデーション機能
│ ├── voiceCall.ts # Voice通話機能・NCCO生成
│ ├── jwtUtils.ts # JWT生成機能
│ └── callStatus.ts # 通話ステータス取得機能
├── csv/ # サンプルCSVファイル
│ ├── sample_contacts.csv # 基本テスト用
│ ├── meeting_reminder.csv # 会議リマインダー用
│ ├── emergency_notification.csv # 緊急連絡用
│ ├── sales_follow_up.csv # 営業フォロー用
│ └── invalid_data_example.csv # バリデーションテスト用
├── tests/ # テストファイル
│ ├── index.test.ts # メイン機能のテスト
│ ├── utils.test.ts # ユーティリティのテスト
│ ├── jwtUtils.test.ts # JWT生成のテスト
│ ├── callStatus.test.ts # 通話ステータス取得のテスト
│ └── integration.test.ts # 統合テスト
### HTTPラッパー (Dify / 外部アプリ用)
HTTPラッパーを使用してサーバーを実行することで、外部アプリケーション(Difyなど)からHTTP POSTリクエスト経由でMCPツールを呼び出すことができます。
```bash
npm run start:httpこれにより、ポート3000(デフォルト)でHTTPサーバーが起動します。
認証
すべてのリクエスト(/healthを除く)には、X-API-KEY ヘッダが必要です。
値には、環境変数 VONAGE_APPLICATION_ID の値を指定してください。
curl -X POST http://localhost:3000/mcp-invoke \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_application_id" \
-d '{"tool": "tool_name", "params": { ... }}'APIエンドポイント
GET /mcp-tools
利用可能なツールの一覧を返します。
Response:
{
"tools": [
{
"name": "tool_name",
"description": "Tool description",
"inputSchema": { ... }
}
]
}POST /mcp-invoke
Body:
{
"tool": "tool_name",
"params": {
"param1": "value1"
}
}Response: MCPツールからのJSON形式の結果。
├── dist/ # コンパイルされたJavaScript ├── package.json # プロジェクト設定 ├── tsconfig.json # TypeScript設定 ├── jest.config.js # Jest設定 ├── .env.example # 環境変数設定例 ├── private.key # Vonage秘密鍵(要設定) └── README.md # このファイル
## 依存関係
### 主要パッケージ
- `@vonage/server-sdk` - Vonage SMS機能
- `@vonage/voice` - Voice通話機能専用SDK
- `@vonage/jwt` - JWT認証トークン生成
- `csv-parse` - CSVファイル解析
- `@modelcontextprotocol/sdk` - MCP Server実装
- `zod` - スキーマ検証
## ライセンス
ISCThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mobilebiz/vonage-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server