Sinch Mcp Server

Sinch Mcp Server

🚀 Sinch MCP 服务器 — 开发者预览版

本仓库包含 Sinch MCP 服务器的源代码,该服务器提供了一组与 Sinch API 进行交互的工具。本 README 主要聚焦于将 MCP 服务器与 Claude Desktop 客户端配合使用,但它也可以与任何其他 MCP 客户端一起使用。

✨ 主要特性

工具概述

以下是 MCP 服务器中可用的工具列表(所有电话号码必须采用 E.164 格式,例如,法国的电话号码为 +33612345678)。

对话工具

工具 描述 标签
send-text-message 向支持的渠道上的收件人发送纯文本消息。
示例提示:“通过短信向电话号码 +33612345678 发送快速更新。”
conversation, notification
send-media-message 通过媒体消息发送图像、视频或文档。
示例提示:“通过 WhatsApp 向电话号码 +33612345678 发送产品宣传册 PDF。”
conversation, notification
send-template-message 使用预定义的模板(例如,WhatsApp 或全渠道模板)发送消息。
示例提示:“通过 Messenger 向该用户发送西班牙语的预约提醒模板。”
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)来启动短信验证。
示例提示:“为号码 +33612345678 启动电话验证。”
verification
report-sms-verification 提交一次性密码(OTP)以完成短信验证。
示例提示:“使用此代码验证电话号码:1234。”
verification

语音工具

工具 描述 标签
tts-callout 发起语音通话并使用文本转语音(TTS)朗读消息。
示例提示:“拨打电话号码 +33612345678 并说:‘您的预约是明天上午 10 点。’”
voice, notification
conference-call 向一个或多个参与者发起语音通话并将他们连接到共享会议。
示例提示:“拨打约翰(+33612345678)和丽莎(+34987654321)的电话并将他们连接到会议室。”
voice
manage-conference-participant 静音、取消静音、保持或恢复会议通话中的单个参与者。
示例提示:“静音会议中 ID 为 xyz789 的呼叫者。”
voice
close-conference 使用会议 ID 断开所有参与者的连接来结束会议通话。
示例提示:“结束当前 ID 为 abc123 的会议通话。”
voice

配置工具

工具 描述 标签
sinch-mcp-configuration 列出 Sinch MCP 服务器中所有可用的工具及其状态。如果某个工具被禁用,它将显示禁用原因。
示例提示:“Sinch MCP 服务器中有哪些可用的工具?”

🚀 快速开始

前提条件

API 凭证

要使用 MCP 工具所使用的 API,您需要以下凭证:

  • 对话 API 凭证:
    • (必需)CONVERSATION_PROJECT_ID:从 Sinch Build 控制台 中选择您要使用的项目(位于顶部工具栏左侧)
    • (必需)CONVERSATION_KEY_ID:在 Sinch Build 控制台的 访问密钥部分 中选择或创建一个新的访问密钥。
    • (必需)CONVERSATION_KEY_SECRET:这是您在前面步骤中选择或创建的 访问密钥 关联的密钥。请注意,访问密钥密钥 在创建 访问密钥 时仅显示一次。如果您丢失了它,您需要创建一个新的 访问密钥
    • CONVERSATION_APP_ID:这是您要使用的对话应用程序的 ID。您可以在 Sinch Build 控制台的 对话 API / 应用程序部分 中找到它。如果您未设置它,则需要在提示中指定。
    • CONVERSATION_REGION:这是您的对话应用程序和模板所在的区域。可以是 useubr。如果您未设置它,默认值为 us
    • 使用短信渠道时,您还可以将 DEFAULT_SMS_ORIGINATOR 环境变量设置为将用作短信消息发件人的电话号码。根据您所在的国家/地区,此设置可能是必需的。
    • 如果您想使用位置功能,还可以将 GEOCODING_API_KEY 环境变量设置为您的 Google 地理编码 API 密钥。这是将地址转换为纬度/经度对所必需的。
    • NGROK_AUTH_TOKEN:如果您想使用 get-message-events 工具,您必须能够接收与消息相关的事件。如果设置了此变量,MCP 服务器将使用 ngrok 打开一个到您本地机器的隧道。如果您未设置此变量,MCP 服务器将无法接收与消息相关的事件。
  • 验证 API 凭证:导航到 Sinch Build 控制台的 验证 / 应用程序部分 并创建一个新应用程序或选择一个现有应用程序。您需要以下凭证:
    • (必需)VERIFICATION_APPLICATION_KEY
    • (必需)VERIFICATION_APPLICATION_SECRET
  • 语音 API 凭证:导航到 Sinch Build 控制台的 语音 / 应用程序部分 并创建一个新应用程序或选择一个现有应用程序。您需要以下凭证:
    • (必需)VOICE_APPLICATION_KEY
    • (必需)VOICE_APPLICATION_SECRET
    • 您还可以将 CALLING_LINE_IDENTIFICATION 环境变量设置为用户接听电话时将显示的电话号码。
  • Mailgun API 凭证:导航到 Mailgun 控制台的 Mailgun / 域名部分 并创建一个新域名或选择一个现有域名。您需要以下凭证:
    • (必需)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 服务器

选项 1:使用 Claude Desktop 通过标准输入输出启动 MCP 服务器

要使用 Claude Desktop 在本地运行 MCP 服务器,您需要克隆仓库并构建 MCP 服务器。此选项适用于本地开发和测试。

  1. 步骤 1:克隆仓库
git clone https://github.com/sinch/sinch-mcp-server.git
  1. 步骤 2:构建 MCP 服务器
cd sinch-mcp-server
npm install
npm run build
  1. 步骤 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": ""
}
}
}
}
  1. 步骤 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 服务器并使用 Server-Sent Events (SSE) 连接到它

使用此选项,您可以在远程机器上运行 MCP 服务器并使用 Server-Sent Events (SSE) 连接到它。如果您想在云服务器或专用机器上运行 MCP 服务器,这很有用。 默认情况下,Claude Desktop 将使用标准输入输出连接到 MCP 服务器;我们将使用 supergateway 库 通过 SSE 连接到 MCP 服务器。

  1. 步骤 1:构建 MCP 服务器
cd sinch-mcp-server
npm install
npm run build
  1. 步骤 2:设置 MCP 服务器配置 复制 .template.env 文件并将其重命名为 .env。然后用您自己的凭证替换占位符,并删除任何您不需要的键。.env 文件应如下所示:
# 对话工具相关环境变量
CONVERSATION_PROJECT_ID=
CONVERSATION_KEY_ID=
CONVERSATION_KEY_SECRET=
## 可选但推荐:保存您的渠道集成配置的应用程序 ID。如果未设置,则必须在提示中包含
CONVERSATION_APP_ID=
## 可选,默认为 "us"。其他可能的值为 "eu" 和 "br"
CONVERSATION_REGION=
## 仅在您想发送短信时需要:它是将用作短信消息发件人的号码
DEFAULT_SMS_ORIGINATOR=
## 仅在您想发送位置消息时需要:它将地址转换为纬度/经度对
GEOCODING_API_KEY=
## 在 https://dashboard.ngrok.com/get-started/your-authtoken 获取的令牌,以启用 "get-message-events" 工具
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=
  1. 步骤 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)"
  1. 步骤 4:在 Claude Desktop 中配置 MCP 服务器 然后,您可以在 Claude 配置文件中按如下方式配置 MCP 服务器:
{
"mcpServers": {
"sinch": {
"command": "npx",
"args": [
"-y", "supergateway", "--sse", "http://localhost:8000/sse"
]
}
}
}

(如果 MCP 服务器不是在本地运行,请将 http://localhost:8000/sse 替换为您的 MCP 服务器的 URL)

🔧 技术细节

贡献:定义新工具

工具在 src/index.ts 文件中注册。

  • 对话工具:发送各种类型的消息、列出对话应用程序和模板
  • 验证工具:查找号码、执行验证流程
  • 语音工具:进行文本转语音通话、创建会议通话、管理参与者
  • 电子邮件工具:发送电子邮件、检索电子邮件信息

工具定义在 src/tools/ 下,并在各自领域文件夹的 index.ts 文件中注册。

  • 对话工具:src/tools/conversation/index.ts
  • 验证工具:src/tools/verification/index.ts
  • 语音工具:src/tools/voice/index.ts
  • 电子邮件工具:src/tools/email/index.ts
  • 0 关注
  • 0 收藏,31 浏览
  • system 提出于 2025-10-03 17:30

相似服务问题

相关AI产品