聊天机器人协议服务器

一个基于Model Context Protocol (MCP)的服务器,用于连接大型语言模型(LLMs)与SendPulse Chatbots API,提供标准化的交互工具。

  • by dshemendiuk
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dshemendiuk/mcp-sendpulse

使用说明

SendPulse聊天机器人的MCP服务器

该项目是 模型上下文协议(MCP) 服务器设计用于与 SendPulse聊天机器人API它允许大型语言模型(LLM)通过一组标准化的工具与SendPulse API交互,如OpenAI中的模型。

此服务器使用TypeScript构建,并使用Express框架在Node.js上运行。

特性

服务器向LLM公开了全局和通用的、特定于通道的工具的组合。

全球工具

这些工具提供通用的、全账户的信息。

  • get_account_info:返回有关当前SendPulse帐户的信息,包括定价计划、消息计数、机器人程序、联系人等。
  • get_bots_list:返回所有连接的聊天机器人的列表,其中包含每个聊天机器人的详细信息。
  • get_dialogs:返回所有频道的对话框列表,支持分页和排序。

通用工具

这些工具在特定通道上执行操作。他们需要一个 channel 要指定的参数。

  • send_message:向联系人发送短信。
    • channel:要使用的频道。支持的值: whatsapp, telegram, instagram, messenger, livechat, viber.
    • contact_id:收件人的ID。
    • text:消息内容。

认证

服务器支持两种灵活的方法来验证发送到SendPulse API的请求,这两种方法是在每次会话的基础上处理的。

方法1:API ID&Secret(推荐)

客户端可以通过发送两个自定义HTTP头来提供SendPulse API凭据:

  • x-sp-id:您的SendPulse API ID。
  • x-sp-secret:您的SendPulse API机密。

收到这些标头后,MCP服务器将自动执行OAuth 2.0 client_credentials 流从SendPulse获取临时访问令牌。这些令牌缓存在内存中,以提高来自同一用户(同一API ID)的后续请求的性能。

方法2:直接OAuth令牌

客户端可以直接提供预先存在的有效SendPulse OAuth 2.0令牌。这通过两种方式得到支持:

  1. 经由 Authorization 标题(标准):
    • Authorization: Bearer <your_oauth_token>
  2. 通过MCP initialize 请求正文(传统/兼容性):
    • 作为MCP JSON配置的一部分。

入门指南

先决条件

  • Node.js (建议使用v18或更高版本)
  • npm (通常随Node.js一起提供)

安装

  1. 克隆存储库(如果适用)。
  2. 安装项目依赖项:
    npm install
    

构建

要构建项目,请运行以下命令。

npm run build

运行服务器

项目构建完成后,您可以启动服务器:

npm start

您应该在控制台中看到一条确认消息: SendPulse MCP HTTP Server running on http://localhost:3000/mcp

使用ngrok暴露TEST服务器

为了使您的本地服务器可以访问OpenAI沙箱等服务,您需要将其暴露在互联网上。您可以使用 吸烟 为了这个目的。打开A 新终端窗口 并运行:

ngrok http 3000

Ngrok将为您提供一个公共 https:// URL(例如。, https://random-string.ngrok-free.app).使用此URL(https://random-string.ngrok-free.app/mcp)在LLM客户端中配置MCP工具时。

注: 要绕过ngrok浏览器警告页面,您可能需要配置LLM客户端,以便在每次请求时发送额外的标头,例如: ngrok-skip-browser-warning: "true".