项目简介

该项目主要是一个用于与WhatsApp Cloud API交互的Go语言客户端库。在其'extras/mcp/message'子目录中,包含了一个基于Model Context Protocol (MCP) 的服务器实现。这个MCP服务器旨在以标准化的方式,为大型语言模型(LLM)客户端提供发送WhatsApp文本消息的功能,通过定义明确的工具和Prompt模板来实现LLM与WhatsApp平台的集成。

主要功能点

  • 发送WhatsApp文本消息: LLM可以通过调用名为'whatsapp-send-text'的MCP工具,向指定的WhatsApp联系人发送文本消息,支持设置URL预览和回复特定消息。
  • Prompt模板支持: 提供名为'whatsapp-send-text'的Prompt模板,LLM可以根据此模板生成定制化的WhatsApp消息发送指令。
  • 标准化通信: 服务器通过HTTP协议暴露MCP的JSON-RPC接口,实现与MCP客户端的安全、可扩展通信。
  • 可配置性: 支持配置HTTP服务器参数(如监听地址、超时等)和日志级别,并可通过中间件进行扩展。

安装步骤

  1. 克隆仓库: 首先,您需要将该GitHub仓库克隆到您的本地机器:

    git clone https://github.com/piusalfred/whatsapp.git
    cd whatsapp
  2. 获取Go依赖: 进入项目根目录后,获取Go模块依赖:

    go mod tidy
  3. WhatsApp Cloud API配置: 该MCP服务器需要连接到WhatsApp Cloud API。您需要创建一个'.env'文件(例如在项目根目录或'_examples'目录下),并配置以下必要的WhatsApp API凭证。这些凭证是MCP服务器内部调用WhatsApp API时所需的。

    WHATSAPP_CLOUD_API_BASE_URL="https://graph.facebook.com"
    WHATSAPP_CLOUD_API_API_VERSION="v20.0"  # 根据您的API版本调整
    WHATSAPP_CLOUD_API_ACCESS_TOKEN="YOUR_WHATSAPP_ACCESS_TOKEN"
    WHATSAPP_CLOUD_API_PHONE_NUMBER_ID="YOUR_PHONE_NUMBER_ID"
    WHATSAPP_CLOUD_API_BUSINESS_ACCOUNT_ID="YOUR_BUSINESS_ACCOUNT_ID"
    WHATSAPP_CLOUD_API_APP_SECRET="YOUR_APP_SECRET" # 如果启用了安全请求
    WHATSAPP_CLOUD_API_APP_ID="YOUR_APP_ID" # 如果需要
    WHATSAPP_CLOUD_API_SECURE_REQUESTS="true" # 或 "false"

    请将'YOUR_...'替换为您的实际凭证。

  4. 运行MCP服务器示例: 要启动MCP服务器,请在项目根目录运行示例程序:

    go run ./_examples/mcp/main.go

    服务器将默认监听'http://localhost:9099'。

服务器配置

您的MCP客户端需要配置连接到这个MCP服务器的信息。以下是一个示例JSON配置,用于指导MCP客户端如何连接并启动WhatsApp MCP服务。请将'working_directory'替换为您的实际项目路径。

{
  "server_name": "whatsapp-mcp",
  "description": "通过MCP协议连接WhatsApp消息服务,支持LLM发送文本消息。",
  "transport": {
    "protocol": "http",
    "endpoint": "http://localhost:9099",
    "healthCheckPath": "/mcp/v1/meta"
  },
  "startup_command": {
    "command": "go",
    "args": [
      "run",
      "./_examples/mcp/main.go"
    ],
    "working_directory": "/path/to/your/cloned/whatsapp/repo",
    "environment_variables": {
      "WHATSAPP_CLOUD_API_BASE_URL": "您的WhatsApp Cloud API基础URL(例如:https://graph.facebook.com)",
      "WHATSAPP_CLOUD_API_API_VERSION": "您的WhatsApp API版本(例如:v20.0)",
      "WHATSAPP_CLOUD_API_ACCESS_TOKEN": "用于WhatsApp API调用的访问令牌",
      "WHATSAPP_CLOUD_API_PHONE_NUMBER_ID": "您的WhatsApp电话号码ID",
      "WHATSAPP_CLOUD_API_BUSINESS_ACCOUNT_ID": "您的WhatsApp商业账号ID",
      "WHATSAPP_CLOUD_API_APP_SECRET": "您的WhatsApp应用密钥(如果启用了安全请求)",
      "WHATSAPP_CLOUD_API_APP_ID": "您的WhatsApp应用ID(如果需要)",
      "WHATSAPP_CLOUD_API_SECURE_REQUESTS": "是否启用安全请求('true' 或 'false')"
    }
  },
  "capabilities": {
    "tools": [
      {
        "name": "whatsapp-send-text",
        "description": "向WhatsApp联系人发送文本消息。输入包括文本内容、收件人号码、是否预览URL和回复消息ID。输出包含消息的产品信息、输入、WhatsApp ID、消息状态和消息ID。",
        "input_schema_example": {
          "text": "你好,这是一个测试消息。",
          "recipient": "+1234567890",
          "preview_url": true,
          "reply_to": "消息ID(可选)"
        },
        "output_schema_example": {
          "product": "whatsapp",
          "input": "1234567890",
          "whatsapp_id": "abjbv12uyt627r56r2",
          "message_status": "DELIVERED",
          "message_id": "message.response.id"
        }
      }
    ],
    "prompts": [
      {
        "name": "whatsapp-send-text",
        "description": "用于生成WhatsApp文本消息的Prompt模板。LLM可以定制消息内容、收件人等。例如:'请发送一条包含“Hello World”的文本消息给 +1234567890。'"
      }
    ]
  }
}

基本使用方法

一旦MCP服务器成功启动并通过您的MCP客户端连接,您的LLM或AI代理就可以开始利用其提供的功能:

  1. 调用Tool发送消息: LLM可以通过'whatsapp-send-text'工具,传递必要的JSON参数来发送消息。例如,一个LLM可能会生成以下调用:

    {
      "method": "tool_code_call",
      "params": {
        "tool_name": "whatsapp-send-text",
        "input": {
          "text": "您好,您的订单已发货!",
          "recipient": "+1234567890",
          "preview_url": false
        }
      },
      "id": "call_123"
    }

    服务器会处理此请求,通过WhatsApp Cloud API发送消息,并返回相应的JSON-RPC响应。

  2. 使用Prompt模板进行交互: LLM可以请求'whatsapp-send-text' Prompt模板,获取指导信息以生成更自然、更符合用户意图的消息内容。LLM可以根据模板的描述和示例,构建其发送消息的逻辑。

关键词

WhatsApp消息, LLM工具, AI通信, 文本消息发送, 云API集成

信息

分类

AI与计算