Unipile MCP Server

本项目 'mcp-unipile' 是一个 Model Context Protocol (MCP) 服务器的实现,它充当 LLM 应用和 Unipile 消息平台之间的桥梁。通过此服务器,LLM 可以使用标准化的 MCP 协议访问和操作来自多个消息平台的消息数据,例如获取聊天记录、邮件等。

主要功能点:

  • 资源管理: 通过 'unipile://accounts' 资源提供已连接的 Unipile 账号列表。
  • 工具集成: 提供工具如 'unipile_get_accounts', 'unipile_get_recent_messages', 'unipile_get_emails',允许 LLM 获取账号、消息和邮件数据。
  • 多平台支持: 支持包括 WhatsApp, LinkedIn, 邮件, Telegram, Instagram, Messenger 等多种消息平台 (取决于 Unipile 平台的连接)。
  • 标准化接口: 遵循 MCP 协议,提供与 LLM 客户端进行交互的标准 JSON-RPC 接口。
  • 易于部署: 通过 Docker 镜像发布,方便快捷地部署和运行。

安装步骤:

  1. 前提条件:

    • 确保您拥有 Unipile 平台的订阅和 API 密钥。您需要从 Unipile 仪表板获取 DSN 和 API 密钥。
    • 安装 Docker 环境。
  2. 拉取 Docker 镜像 (或本地构建):

    • 从 Docker Hub 拉取 (推荐):

      docker pull buryhuang/mcp-unipile:latest
    • 本地构建: 克隆仓库到本地:

      git clone https://github.com/baryhuang/mcp-unipile.git
      cd mcp-unipile
      docker build -t mcp-unipile .
  3. 运行 Docker 容器:

    运行容器时,需要设置 Unipile DSN 和 API 密钥作为环境变量:

    docker run \
      -e UNIPILE_DSN=your_unipile_dsn \
      -e UNIPILE_API_KEY=your_unipile_api_key \
      buryhuang/mcp-unipile:latest

    请将 'your_unipile_dsn' 和 'your_unipile_api_key' 替换为您实际的 Unipile DSN 和 API 密钥。

服务器配置 (用于 MCP 客户端,例如 Claude Desktop):

MCP 客户端需要配置连接到 'mcp-unipile' 服务器的命令。以下是 Claude Desktop 的配置示例,您可以将其添加到 Claude Desktop 的 MCP 服务器配置中。

{
  "mcpServers": {
    "unipile": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "UNIPILE_DSN=your_unipile_dsn",  // 替换为您的 Unipile DSN
        "-e",
        "UNIPILE_API_KEY=your_unipile_api_key", // 替换为您的 Unipile API 密钥
        "buryhuang/mcp-unipile:latest"
      ]
    }
  }
}

注意: 请务必将 'your_unipile_dsn' 和 'your_unipile_api_key' 替换为您的实际 Unipile 凭据。这些凭据不应该硬编码在配置文件中,而是通过环境变量安全地传递。

基本使用方法:

  1. 启动 'mcp-unipile' 服务器 (通过 Docker 运行)。
  2. 在支持 MCP 协议的 LLM 客户端 (如 Claude Desktop) 中配置 'mcp-unipile' 服务器连接信息 (如上述 JSON 配置)。
  3. LLM 客户端将能够通过 MCP 协议与 'mcp-unipile' 服务器通信,并使用服务器提供的资源和工具来访问 Unipile 平台的消息数据。
  4. 例如,在 Claude 中,您可以指示 Claude 使用 'unipile_get_recent_messages' 工具来获取特定账号的最近消息,或者使用 'unipile_get_emails' 获取邮件。

示例 Prompt:

  • "列出我所有 Unipile 账号" (对应 'unipile_get_accounts' 工具)
  • "获取账号 ID 为 'your_account_id' 的最近消息" (对应 'unipile_get_recent_messages' 工具,需要替换 'your_account_id' 为实际账号 ID)
  • "获取账号 ID 为 'your_account_id' 的最新邮件" (对应 'unipile_get_emails' 工具,需要替换 'your_account_id' 为实际账号 ID)

请根据实际需求和工具描述,构建更具体的 Prompt 指令,让 LLM 调用相应的工具来获取所需的消息数据。

信息

分类

通信与社交