🚀 Sinch MCP Server — 開発者プレビュー
このリポジトリには、Sinch MCPサーバーのソースコードが含まれています。このサーバーは、Sinch APIとやり取りするための一連のツールを提供します。このREADMEでは、Claude DesktopクライアントでMCPサーバーを使用する方法に焦点を当てていますが、他のMCPクライアントでも使用できます。

🚀 クイックスタート
前提条件
API資格情報
MCPツールで使用するAPIを利用するには、以下の資格情報が必要です。
- 会話API資格情報:
- (必須)
CONVERSATION_PROJECT_ID
:Sinch Buildダッシュボードから使用するプロジェクトを選択します(上部ツールバーの左側にあります)。
- (必須)
CONVERSATION_KEY_ID
:Sinch Buildダッシュボードのアクセスキーセクションで新しいアクセスキーを選択または作成します。
- (必須)
CONVERSATION_KEY_SECRET
:これは、前の手順で選択または作成したAccess Key
に関連付けられたシークレットです。注意してください。Access Key Secret
は、Access Key
を作成するときに1回だけ表示されます。失った場合は、新しいAccess Key
を作成する必要があります。
CONVERSATION_APP_ID
:これは、使用する会話アプリのIDです。Sinch BuildダッシュボードのConversation API / Appsセクションで見つけることができます。設定しない場合は、プロンプトで指定する必要があります。
CONVERSATION_REGION
:これは、会話アプリとテンプレートが配置されているリージョンです。us
、eu
、またはbr
にできます。設定しない場合は、デフォルトでus
になります。
- SMSチャネルを使用する場合、
DEFAULT_SMS_ORIGINATOR
環境変数をSMSメッセージの送信者として使用する電話番号に設定することもできます。国によっては、この設定が必要な場合があります。
- 位置情報機能を使用する場合は、
GEOCODING_API_KEY
環境変数をGoogle Geocoding APIキーに設定することもできます。これは、住所を緯度/経度のペアに変換するために必要です。
NGROK_AUTH_TOKEN
:get-message-events
ツールを使用する場合は、メッセージに関連するイベントを受信できる必要があります。この変数が設定されている場合、MCPサーバーはngrokを使用してローカルマシンにトンネルを開きます。この変数を設定しない場合、MCPサーバーはメッセージに関連するイベントを受信できません。
- 検証API資格情報:Sinch BuildダッシュボードのVerification / Appsセクションに移動し、新しいアプリを作成するか、既存のアプリを選択します。以下の資格情報が必要です。
- (必須)
VERIFICATION_APPLICATION_KEY
- (必須)
VERIFICATION_APPLICATION_SECRET
- 音声API資格情報:Sinch BuildダッシュボードのVoice / Appsセクションに移動し、新しいアプリを作成するか、既存のアプリを選択します。以下の資格情報が必要です。
- (必須)
VOICE_APPLICATION_KEY
- (必須)
VOICE_APPLICATION_SECRET
- 着信時にユーザーに表示される電話番号を
CALLING_LINE_IDENTIFICATION
環境変数に設定することもできます。
- Mailgun API資格情報:MailgunダッシュボードのMailgun / Domainsセクションに移動し、新しいドメインを作成するか、既存のドメインを選択します。以下の資格情報が必要です。
- (必須)
MAILGUN_API_KEY
MAILGUN_DOMAIN
MAILGUN_SENDER_ADDRESS
MCPサーバーの設定
Sinch MCPサーバーは、実行するためのNPMパッケージとして利用できます。以下は、Claude Desktopの設定ファイル(claude_desktop_config.json
)での設定方法です。環境変数に自分の資格情報を入力することを忘れないでください。
{
"mcpServers": {
"sinch": {
"command": "npx",
"args": [
"-y",
"@sinch/mcp"
],
"env": {
"CONVERSATION_PROJECT_ID": "",
"CONVERSATION_KEY_ID": "",
"CONVERSATION_KEY_SECRET": "",
"CONVERSATION_APP_ID": "",
"CONVERSATION_REGION": "",
"DEFAULT_SMS_ORIGINATOR": "",
"GEOCODING_API_KEY": "",
"NGROK_AUTH_TOKEN": "",
"VERIFICATION_APPLICATION_KEY": "",
"VERIFICATION_APPLICATION_SECRET": "",
"VOICE_APPLICATION_KEY": "",
"VOICE_APPLICATION_SECRET": "",
"CALLING_LINE_IDENTIFICATION": "",
"MAILGUN_API_KEY": "",
"MAILGUN_DOMAIN": "",
"MAILGUN_SENDER_ADDRESS": ""
}
}
}
}
✨ 主な機能
ツールの概要
MCPサーバーで利用可能なツールのリストを以下に示します(すべての電話番号はE.164形式で提供する必要があります。例:フランスの場合は+33612345678
)。
会話ツール
ツール |
説明 |
タグ |
send-text-message |
サポートされているチャネルで受信者に平文メッセージを送信します。 例のプロンプト: "電話番号 +33612345678にSMSですぐに更新情報を送信してください。" |
conversation, notification |
send-media-message |
メディアメッセージを介して画像、ビデオ、またはドキュメントを送信します。 例のプロンプト: "WhatsAppで商品パンフレットのPDFを電話番号 +33612345678に送信してください。" |
conversation, notification |
send-template-message |
事前定義されたテンプレート(例:WhatsAppまたはオムニテンプレート)を使用してメッセージを送信します。 例のプロンプト: "メッセンジャーでこのユーザーにスペイン語の予約リマインダーテンプレートを送信してください。" |
conversation, notification |
send-choice-message |
インタラクティブな選択肢(ボタンまたはクイックリプライ)を含むメッセージを送信します。 例のプロンプト: "以下の選択肢(バニラ、ストロベリー、ヘーゼルナッツ)で、+33662162504に好みのアイスクリームのフレーバーに関するRCSアンケートを送信してください。" |
conversation, notification |
send-location-message |
ユーザーに場所のピンまたは座標を送信します。 例のプロンプト: "ビルバオのグッゲンハイム美術館の場所のピンを電話番号 +33612345678に送信してください。" |
conversation, notification |
get-message-events |
特定のメッセージ(テキスト、メディア、選択肢など)に関連するイベント(配信ステータスや読了通知など)を取得します。 ⚠️ MCPサーバーがオンラインの間に受信したイベントのみを取得できます。 例のプロンプト: "メッセージ01JXYH8RB8MZCAFR117KQAQMQ0の配信ステータスは何ですか?" |
conversation, notification |
list-all-apps |
Sinchアカウントで構成されているすべての会話アプリをリストします。 例のプロンプト: "私のアカウントで設定されているメッセージングアプリは何ですか?" |
conversation, notification |
list-messaging-templates |
すべてのオムニチャネルおよびチャネル固有のメッセージテンプレートをリストします。 例のプロンプト: "私のアカウントのすべてのメッセージテンプレートを表示してください。" |
conversation, notification |
メールツール(Mailgun)
ツール |
説明 |
タグ |
send-email |
事前定義されたHTMLテンプレートまたは生のHTML/テキストコンテンツを使用してメールを送信します。 例のプロンプト: "オンボーディングテンプレートを使用して、john@example.comに歓迎メールを送信してください。" |
email, notification |
list-email-templates |
特定のドメインで利用可能なすべてのメールテンプレートをリストします。 例のプロンプト: "私が利用できるメールテンプレートは何ですか?" |
email, notification |
retrieve-email-info |
特定のメールメッセージのメタデータ、コンテンツ、および配信ステータスを取得します。 例のプロンプト: "IDがのメールの配信ステータスを取得できますか?" |
email, notification |
list-email-events |
最近のメール配信イベント(バウンス、オープン、クリックなど)を取得してグループ化します。 例のプロンプト: "私のアカウントの最近のすべてのメールアクティビティを表示してください。" |
email |
analytics-metrics |
メールの分析指標(オープン率やクリックスルー率など)を取得します。 例のプロンプト: "先週のオープン率は何ですか?" |
email |
検証ツール
ツール |
説明 |
タグ |
number-lookup |
電話番号のステータスと機能を照会します。 例のプロンプト: "以下の電話番号の機能を照会してください:+33501020304。" |
verification |
start-sms-verification |
ユーザーの電話番号にOTPを送信してSMS検証を開始します。 例のプロンプト: "電話番号 +33612345678の電話検証を開始してください。" |
verification |
report-sms-verification |
ワンタイムパスワード(OTP)を送信してSMS検証を完了します。 例のプロンプト: "このコードで電話番号を検証してください:1234。" |
verification |
音声ツール
ツール |
説明 |
タグ |
tts-callout |
音声通話を行い、テキストを音声に変換してメッセージを読み上げます。 例のプロンプト: "電話番号 +33612345678に電話をかけて、「あなたの予約は明日の午前10時です。」と言ってください。" |
voice, notification |
conference-call |
1人以上の参加者に音声通話を行い、共有会議に接続します。 例のプロンプト: "ジョン(+33612345678)とリサ(+34987654321)に電話をかけて、会議室に接続してください。" |
voice |
manage-conference-participant |
会議通話の個々の参加者をミュート、ミュート解除、保留、または再開します。 例のプロンプト: "会議でIDがxyz789の発信者をミュートしてください。" |
voice |
close-conference |
会議のIDを使用してすべての参加者を切断して会議通話を終了します。 例のプロンプト: "IDがabc123の現在の会議通話を終了してください。" |
voice |
設定ツール
ツール |
説明 |
タグ |
sinch-mcp-configuration |
Sinch MCPサーバーで利用可能なすべてのツールとそのステータスをリストします。ツールが無効になっている場合は、その理由が表示されます。 例のプロンプト: "Sinch MCPサーバーで利用可能なツールはどれですか?" |
|
📦 インストール
オプション1: Claude Desktopを使用してMCPサーバーをstdioで起動する
Claude DesktopでMCPサーバーをローカルで実行するには、リポジトリをクローンしてMCPサーバーをビルドする必要があります。このオプションは、ローカル開発とテストに便利です。
ステップ1: リポジトリをクローンする
git clone https://github.com/sinch/sinch-mcp-server.git
ステップ2: MCPサーバーをビルドする
cd sinch-mcp-server
npm install
npm run build
ステップ3: Claude Desktopの設定を行う
以下は、Claude Desktopの設定ファイル(claude_desktop_config.json
)でMCPサーバーを設定する例です。
{
"mcpServers": {
"sinch": {
"command": "node",
"args": [
"/your/path/to/sinch-mcp-server/dist/index.js"
],
"env": {
"CONVERSATION_PROJECT_ID": "",
"CONVERSATION_KEY_ID": "",
"CONVERSATION_KEY_SECRET": "",
"CONVERSATION_APP_ID": "",
"CONVERSATION_REGION": "",
"DEFAULT_SMS_ORIGINATOR": "",
"GEOCODING_API_KEY": "",
"NGROK_AUTH_TOKEN": "",
"VERIFICATION_APPLICATION_KEY": "",
"VERIFICATION_APPLICATION_SECRET": "",
"VOICE_APPLICATION_KEY": "",
"VOICE_APPLICATION_SECRET": "",
"CALLING_LINE_IDENTIFICATION": "",
"MAILGUN_API_KEY": "",
"MAILGUN_DOMAIN": "",
"MAILGUN_SENDER_ADDRESS": ""
}
}
}
}
ステップ4: (オプション)MCPサーバーで利用可能なツールをフィルタリングする
ツールが多すぎると、コンテキストが大きくなり、トークンの使用量が増え、LLMが適切なツールを選択するのが難しくなります。
tags
オプションを使用して、MCPサーバーで利用可能なツールをフィルタリングできます。たとえば、会話ツールのみを使用する場合は、args
配列に以下のオプションを追加できます。
"args": [
"/your/path/to/sinch-mcp-server/dist/index.js",
"--tags",
"conversation"
],
複数のタグを使用する場合は、カンマで区切ります。たとえば、会話ツールと検証ツールの両方を使用する場合は、以下のコマンドを使用できます。
"args": [
"/your/path/to/sinch-mcp-server/dist/index.js",
"--tags",
"conversation,verification"
],
すべてのツールを使用する場合は、--tags
オプションを省略するか、all
タグを使用できます。
"args": [
"/your/path/to/sinch-mcp-server/dist/index.js",
"--tags",
"all"
],
オプション2: MCPサーバーをリモートで起動し、SSEを使用して接続する
このオプションを使用すると、MCPサーバーをリモートマシンで実行し、Server-Sent Events(SSE)を使用して接続できます。これは、MCPサーバーをクラウドサーバーまたは専用マシンで実行したい場合に便利です。
デフォルトでは、Claude DesktopはSTDIOを使用してMCPサーバーに接続します。ここでは、supergatewayライブラリを使用してSSEを使用してMCPサーバーに接続します。
ステップ1: MCPサーバーをビルドする
cd sinch-mcp-server
npm install
npm run build
ステップ2: MCPサーバーの設定を行う
.template.env
ファイルをコピーして.env
に名前を変更します。次に、プレースホルダーを自分の資格情報に置き換え、不要なキーを削除します。.env
ファイルは次のようになります。
# 会話ツール関連の環境変数
CONVERSATION_PROJECT_ID=
CONVERSATION_KEY_ID=
CONVERSATION_KEY_SECRET=
## オプションだが推奨: チャネル統合構成を保持するアプリID。設定しない場合は、プロンプトに含まれている必要があります
CONVERSATION_APP_ID=
## オプション、デフォルトは "us"。他の可能な値は "eu" と "br"
CONVERSATION_REGION=
## SMSメッセージを送信する場合のみ必要: SMSメッセージの送信者として使用される番号
DEFAULT_SMS_ORIGINATOR=
## 位置情報メッセージを送信する場合のみ必要: 住所を緯度/経度のペアに変換します
GEOCODING_API_KEY=
## "get-message-events" ツールを有効にするために https://dashboard.ngrok.com/get-started/your-authtoken で取得するトークン
NGROK_AUTH_TOKEN=
# 検証ツール関連の環境変数
VERIFICATION_APPLICATION_KEY=
VERIFICATION_APPLICATION_SECRET=
# 音声ツール関連の環境変数(アプリケーションキーとシークレットは検証と同じにすることができます)
VOICE_APPLICATION_KEY=
VOICE_APPLICATION_SECRET=
## 通話を行う場合のみ必要: 着信時にユーザーに表示される番号
CALLING_LINE_IDENTIFICATION=
# Mailgunツール関連の環境変数
MAILGUN_DOMAIN=
MAILGUN_API_KEY=
MAILGUN_SENDER_ADDRESS=
ステップ3: MCPサーバーを起動する
npm run start
デフォルトでは、このコマンドはすべてのツールを利用可能にしてMCPを起動します。MCPサーバーで利用可能なツールをフィルタリングする場合は、--tags
オプションを使用できます。たとえば、会話ツールのみを使用する場合は、以下のようにコマンドを変更できます。
"start": "tsc && (npx -y supergateway --stdio \"node dist/index.js\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)"
"start": "tsc && (npx -y supergateway --stdio \"node dist/index.js --tag conversation\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)"
複数のタグを使用する場合は、カンマで区切ります。たとえば、会話ツールと検証ツールの両方を使用する場合は、以下のコマンドを使用できます。
"start": "tsc && (npx -y supergateway --stdio \"node dist/index.js --tag conversation,verification\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)"
ステップ4: Claude DesktopでMCPサーバーを設定する
次に、Claudeの設定ファイルでMCPサーバーを以下のように設定できます。
{
"mcpServers": {
"sinch": {
"command": "npx",
"args": [
"-y", "supergateway", "--sse", "http://localhost:8000/sse"
]
}
}
}
(ローカルで実行されていない場合は、http://localhost:8000/sse
をMCPサーバーのURLに置き換えてください)
📚 ドキュメント
貢献: 新しいツールの定義
ツールはsrc/index.ts
ファイルで登録されています。
- 会話ツール: さまざまなタイプのメッセージを送信し、会話アプリやテンプレートをリストします。
- 検証ツール: 番号を照会し、検証フローを実行します。
- 音声ツール: TTS通話を行い、会議通話を作成し、参加者を管理します。
- メールツール: メールを送信し、メール情報を取得します。
ツールはsrc/tools/
の下で定義され、それぞれのドメインフォルダのindex.ts
ファイルで登録されています。
- 会話ツール:
src/tools/conversation/index.ts
- 検証ツール:
src/tools/verification/index.ts
- 音声ツール:
src/tools/voice/index.ts
- メールツール:
src/tools/email/index.ts