Skip to main content
Glama

Sinch MCP Server

by sinch

Sinch MCP Server — Developer Preview

This repository contains the source code for the Sinch MCP server, which provides a set of tools to interact with the Sinch APIs. This README focuses on using the MCP server with the Claude Desktop client, but it can also be used with any other MCP client.

Tools Overview

Here is the list of tools available in the MCP server (all the phone numbers must be provided in E.164 format, e.g., +33612345678 for France).

Conversation Tools

ToolDescriptionTags
send-text-messageSend a plain text message to a recipient on a supported channel. Example prompt: "Send a quick update to the phone number +33612345678 on SMS."conversation, notification
send-media-messageSend an image, video, or document via a media message. Example prompt: "Send the product brochure PDF to the phone number +33612345678 on WhatsApp."conversation, notification
send-template-messageSend a message using a predefined template (e.g., WhatsApp or omni-template). Example prompt: "Send the appointment reminder template in Spanish to this user on Messenger."conversation, notification
send-choice-messageSend a message that includes interactive choices (buttons or quick replies). Example prompt: "Send a RCS survey about preferred ice cream flavor to +33662162504 with the following choices: Vanilla, Strawberry, Hazelnut".conversation, notification
send-location-messageSend a location pin or coordinates to a user. Example prompt: "Send a pin to the Guggenheim Museum location in Bilbao to the phone number +33612345678."conversation, notification
get-message-eventsRetrieve events related to a given message (text, media, choice, ...), such as delivery status or read receipts.⚠️ Only the events received during the time the MCP server is online can be retrieved. Example prompt: "What is the delivery status of the message 01JXYH8RB8MZCAFR117KQAQMQ0 ?"conversation, notification
list-all-appsList all configured Conversation apps in the Sinch account. Example prompt: "What messaging apps do I have set up in my account?"conversation, notification
list-messaging-templatesList all omni-channel and channel-specific message templates. Example prompt: "Show me all message templates in my account."conversation, notification

Email tools (Mailgun)

ToolDescriptionTags
send-emailSend an email using a predefined HTML template or raw HTML/text content. Example prompt: "Send a welcome email to john@example.com using our onboarding template."email, notification
list-email-templatesList all email templates available for a specific domain. Example prompt: "What email templates do I have available?"email, notification
retrieve-email-infoRetrieve metadata, content and delivery status for a specific email message. Example prompt: "Can you get the delivery status of the email with ID ?"email, notification
list-email-eventsRetrieve and group recent email delivery events, such as bounces, opens, or clicks. Example prompt: "Show me all recent email activity for my account."email
analytics-metricsRetrieve email analytics metrics, such as open rates or click-through rates. Example prompt: "What are the open rates during the last week?"email

Verification Tools

ToolDescriptionTags
number-lookupLookup a phone number for its status and capabilities. Example prompt: "Lookup for the following phone number capabilities: +33501020304."verification
start-sms-verificationInitiate an SMS verification by sending an OTP to a user's phone number. Example prompt: "Start phone verification for the number +33612345678."verification
report-sms-verificationSubmit a one-time password (OTP) to complete SMS verification. Example prompt: "Verify the phone number with this code: 1234."verification

Voice Tools

ToolDescriptionTags
tts-calloutPlace a voice call and read aloud a message using Text-to-Speech. Example prompt: "Call the phone number +33612345678 and say: 'Your appointment is tomorrow at 10 AM.'"voice, notification
conference-callStart a voice call to one or more participants and connect them to a shared conference. Example prompt: "Call John (+33612345678) and Lisa (+34987654321) and connect them to a conference room."voice
manage-conference-participantMute, unmute, hold, or resume an individual participant in a conference call. Example prompt: "Mute the caller with ID xyz789 in the conference."voice
close-conferenceEnd a conference call by disconnecting all the participants using the ID of the conference. Example prompt: "End the current conference call with ID abc123."voice

Configuration Tools

ToolDescriptionTags
sinch-mcp-configurationList all available tools in the Sinch MCP server and their status. If a tool is disabled, it will display the reason why. Example prompt: "Which tools are available in the Sinch MCP server?"

Getting Started

Prerequisites

API credentials

To use the APIs used by the MCP tools, you will need the following credentials:

  • Conversation API credentials:
    • (Required) CONVERSATION_PROJECT_ID: Select the project you want to use from your Sinch Build dashboard (Located at the left of the top toolbar) Project ID selection
    • (Required) CONVERSATION_KEY_ID: Select or create a new access key in the Access keys section of the Sinch Build dashboard.
    • (Required) CONVERSATION_KEY_SECRET: This is the secret associated with the Access Key you selected or created in the previous step. Be careful, the Access Key Secret is only shown once when you create the Access Key. If you lose it, you will need to create a new Access Key.
    • CONVERSATION_APP_ID: This is the ID of the conversation app you want to use. You can find it in the Conversation API / Apps section of the Sinch Build dashboard. If you don't set it, you will have to specify it in the prompt.
    • CONVERSATION_REGION: This is the region where your conversation app and templates are located. It can be us, eu, or br. If you don't set it, it defaults to us.
    • When using the SMS channel, you can also set the DEFAULT_SMS_ORIGINATOR environment variable to the phone number that will be used as the sender for SMS messages. Depending on your country, this setting may be required.
    • You can also set the GEOCODING_API_KEY environment variable to your Google Geocoding API key if you want to use the location feature. This is needed to convert an address to a latitude/longitude pair.
    • NGROK_AUTH_TOKEN: If you want to use the tool get-message-events, you have to be able to receive events related to a message. If this variable is set, the MCP server will open a tunnel to your local machine using ngrok. If you don't set this variable, the MCP server will not be able to receive events related to a message.
  • Verification API credentials: navigate to the Verification / Apps section of the Sinch Build dashboard and create a new app or select an existing one. You will need the following credentials:
    • (Required) VERIFICATION_APPLICATION_KEY
    • (Required) VERIFICATION_APPLICATION_SECRET
  • Voice API credentials: navigate to the Voice / Apps section of the Sinch Build dashboard and create a new app or select an existing one. You will need the following credentials:
    • (Required) VOICE_APPLICATION_KEY
    • (Required) VOICE_APPLICATION_SECRET
    • You can also set the CALLING_LINE_IDENTIFICATION environment variable to the phone number that will be displayed to the user when they receive a call.
  • Mailgun API credentials: navigate to the Mailgun / Domains section of the Mailgun dashboard and create a new domain or select an existing one. You will need the following credentials:
    • (Required) MAILGUN_API_KEY
    • MAILGUN_DOMAIN
    • MAILGUN_SENDER_ADDRESS

MCP Server Configuration

The Sinch MCP server is available as an NPM package to the executed. Here is how to set it up in the Claude Desktop configuration file (claude_desktop_config.json). Remember to fill in the environment variables with your own credentials:

{ "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": "" } } } }

Running the MCP Server locally

Option 1: Start the MCP server with stdio using Claude Desktop

To run the MCP server locally with Claude Desktop, you will need to clone the repository and build the MCP server. This option is useful for local development and testing.

Step 1: Clone the repository

git clone https://github.com/sinch/sinch-mcp-server.git

Step 2: Build the MCP server

cd sinch-mcp-server npm install npm run build

Step 3: Setup Claude Desktop configuration

Here is an example of how to configure the MCP server in the Claude Desktop configuration file (claude_desktop_config.json):

{ "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": "" } } } }

Step 4: (Optional) Filter the tools available in the MCP server

Too many tools mean bigger context, mean higher tokens usage and more confusion for the LLM to select the right tool to use. You can filter the tools that are available in the MCP server by using the tags options. For example, if you want to only use the conversation tools, you can add the following options to the args array:

"args": [ "/your/path/to/sinch-mcp-server/dist/index.js", "--tags", "conversation" ],

You can combine multiple tags by separating them with commas. For example, if you want to use both conversation and verification tools, you can use the following command:

"args": [ "/your/path/to/sinch-mcp-server/dist/index.js", "--tags", "conversation,verification" ],

If you want to use all the tools, you can omit the --tags option, or use the tag all:

"args": [ "/your/path/to/sinch-mcp-server/dist/index.js", "--tags", "all" ],

Option 2: Start the MCP server remotely and connect to it using SSE

With this option, you can run the MCP server on a remote machine and connect to it using Server-Sent Events (SSE). This is useful if you want to run the MCP server on a cloud server or a dedicated machine. By default, Claude Desktop will connect to the MCP server using STDIO; we will use the supergateway library to connect to the MCP server using SSE.

Step 1: Build the MCP server

cd sinch-mcp-server npm install npm run build

Step 2: Set up the MCP server configuration

Copy the file .template.env and rename it .env. Then replace the placeholders with your own credentials and delete any key you don't need. The .env file should look like this ():

# Conversation tools related environment variables CONVERSATION_PROJECT_ID= CONVERSATION_KEY_ID= CONVERSATION_KEY_SECRET= ## Optional but recommended: the App ID holding your channels integration configuration. If not set it must be present in the prompt CONVERSATION_APP_ID= ## Optional, defaults to "us". Other possible values are "eu" and "br" CONVERSATION_REGION= ## Needed only if you want to send SMS messages: it is the number that will be used as the sender for SMS messages DEFAULT_SMS_ORIGINATOR= ## Needed only if you want to send location messages: it converts an address to a latitude/longitude pair GEOCODING_API_KEY= ## Token to be obtained at https://dashboard.ngrok.com/get-started/your-authtoken to enable the "get-message-events" tool NGROK_AUTH_TOKEN= # Verification tools related environment variables VERIFICATION_APPLICATION_KEY= VERIFICATION_APPLICATION_SECRET= # Voice tools related environment variables (Application key and secret can be the same as for Verification) VOICE_APPLICATION_KEY= VOICE_APPLICATION_SECRET= ## Needed only if you want to make calls: it is the number that will be displayed to the user when they receive a call CALLING_LINE_IDENTIFICATION= # Mailgun tools related environment variables MAILGUN_DOMAIN= MAILGUN_API_KEY= MAILGUN_SENDER_ADDRESS=

Step 3: Start the MCP server

npm run start

By default, this command will start the MCP with all the tools available. If you want to filter the tools that are available in the MCP server, you can use the --tags option. For example, if you want to only use the conversation tools, you can modify the command as follows:

# Original command "start": "tsc && (npx -y supergateway --stdio \"node dist/index.js\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)" # Modified command to only use conversation tools "start": "tsc && (npx -y supergateway --stdio \"node dist/index.js --tag conversation\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)"

You can combine multiple tags by separating them with commas. For example, if you want to use both conversation and verification tools, you can use the following command:

"start": "tsc && (npx -y supergateway --stdio \"node dist/index.js --tag conversation,verification\" --port 8000 --baseUrl http://localhost:8000 --ssePath /sse --messagePath /message)"

Step 4: Configure the MCP server in Claude Desktop

You can then configure the MCP server in the Claude configuration file as follows:

{ "mcpServers": { "sinch": { "command": "npx", "args": [ "-y", "supergateway", "--sse", "http://localhost:8000/sse" ] } } }

(Replace the http://localhost:8000/sse with the URL of your MCP server if it is not running locally)

Contributing: Defining new tools

Tools are registered in the src/index.ts file.

  • Conversation tools: send various types of messages, list conversation apps, templates
  • Verification tools: lookup for a number, perform a verification flow
  • Voice tools: make a TTS call, create a conference call, manage participants
  • Email tools: send emails, retrieve email information

Tools are defined under src/tools/ and are registered in the index.ts file of their respective domain folder.

  • Conversation tools: src/tools/conversation/index.ts
  • Verification tools: src/tools/verification/index.ts
  • Voice tools: src/tools/voice/index.ts
  • Email tools: src/tools/email/index.ts
-
security - not tested
F
license - not found
-
quality - not tested

Provides a set of tools to interact with Sinch APIs for messaging, voice, verification, and email services, enabling users to send messages across different channels, perform phone verifications, make voice calls, and manage email communications.

  1. Tools Overview
    1. Conversation Tools
    2. Email tools (Mailgun)
    3. Verification Tools
    4. Voice Tools
    5. Configuration Tools
  2. Getting Started
    1. Prerequisites
    2. API credentials
    3. MCP Server Configuration
  3. Running the MCP Server locally
    1. Option 1: Start the MCP server with stdio using Claude Desktop
    2. Option 2: Start the MCP server remotely and connect to it using SSE
    3. Contributing: Defining new tools

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    Enables interaction with the Loxo recruitment platform API, facilitating tasks such as candidate and job management, activity logging, and call queue management through AI assistants.
    Last updated -
    12
    JavaScript
  • A
    security
    A
    license
    A
    quality
    Enables interaction with Slack workspaces as a user, supporting channel listing, message posting, threading, reactions, and user management via the Slack API.
    Last updated -
    8
    3
    JavaScript
    MIT License
  • A
    security
    F
    license
    A
    quality
    Enables interaction with the Twitch API, allowing users to retrieve comprehensive information about channels, streams, games, and more, with additional support for searching and accessing chat elements like emotes and badges.
    Last updated -
    14
    9
    1
    TypeScript
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    Enables interaction with Gmail through the Gmail API to read, send, and manage emails. Supports multiple Gmail accounts with real-time monitoring and advanced features for email search and attachment handling.
    Last updated -
    8
    Python
    Apache 2.0
    • Apple
    • Linux

View all related MCP servers

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/sinch/sinch-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server