使用说明

项目简介

WeCom Bot MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于为大型语言模型(LLM)客户端提供企业微信(WeCom,原微信企业版)机器人的上下文服务能力。该服务器实现了 MCP 协议,使得 LLM 能够通过标准化的接口,便捷地调用企业微信机器人发送消息、文件,并获取历史消息记录,从而扩展 LLM 在企业协同和信息触达方面的应用场景。

主要功能点

  • 消息发送: 支持发送多种类型的消息到企业微信群或个人,包括:
    • 文本消息 (Text)
    • Markdown 消息 (Markdown)
    • 图片消息 (Image): 支持本地图片文件路径和网络图片 URL。
    • 文件消息 (File): 支持上传和发送本地文件。
  • @ 用户: 在消息中支持 @ 企业微信群成员,可以通过用户 ID 或手机号码进行 @ 提及。
  • 消息历史记录: 提供资源接口,允许客户端查询和访问最近的消息历史记录,方便 LLM 理解对话上下文。
  • 灵活配置: 支持通过环境变量配置企业微信机器人 Webhook URL、日志级别和日志文件路径等。
  • 易于集成: 遵循 MCP 协议,可以与任何支持 MCP 协议的 LLM 客户端轻松集成,例如 Windsurf、Cline 等。

安装步骤

  1. 环境准备: 确保你的系统中已安装 Python 3.10 或更高版本。你可以通过命令 'python --version' 或 'python3 --version' 检查 Python 版本。
  2. 安装 Python 包: 使用 pip 包管理器安装 'wecom-bot-mcp-server' Python 包。在终端中执行以下命令:
    pip install wecom-bot-mcp-server

服务器配置

为了让 MCP 客户端(如 Windsurf, Cline)能够连接并使用 WeCom Bot MCP Server,你需要在 MCP 客户端的配置文件中添加或更新服务器配置。以下是一个典型的 JSON 格式配置示例,你需要根据你的 MCP 客户端的具体配置方式进行设置。

{
  "mcpServers": {
    "wecom": {  //  服务器名称,在 MCP 客户端中用于标识和连接此服务器,可以自定义。
      "command": "uvx",  //  服务器启动命令。这里假设你已安装 uvx (uv executable launcher),也可以直接使用 'wecom-bot-mcp-server',前提是该命令已添加到系统 PATH 环境变量中。
      "args": [
        "wecom-bot-mcp-server" //  启动参数,通常情况下无需额外参数。
      ],
      "env": {
        "WECOM_WEBHOOK_URL": "your-webhook-url"  //  **必须配置**:你的企业微信群机器人 Webhook URL。请替换为你在企业微信群机器人设置中获取的真实 Webhook URL。
      }
    }
  }
}

配置说明:

  • '"wecom"': 服务器名称,你可以自定义,MCP 客户端会使用这个名称来引用和连接到 WeCom Bot MCP Server。
  • '"command": "uvx"' 和 '"args": ["wecom-bot-mcp-server"]': 指定了服务器的启动命令。'uvx wecom-bot-mcp-server' 会执行 'wecom_bot_mcp_server' 包的入口点,启动 MCP 服务器。如果 'wecom-bot-mcp-server' 命令已在你的系统 PATH 中,你可以简化配置为 '"command": "wecom-bot-mcp-server"', '"args": []'。
  • '"env": {"WECOM_WEBHOOK_URL": "your-webhook-url"}': 配置环境变量。'WECOM_WEBHOOK_URL' 是 必须配置 的环境变量,用于指定企业微信机器人 Webhook URL。请务必将 '"your-webhook-url"' 替换为你实际的企业微信机器人 Webhook URL

获取企业微信机器人 Webhook URL:

  1. 在企业微信中创建一个群机器人。
  2. 在群机器人设置中,找到 "Webhook" 或 "API 接口" 相关选项。
  3. 复制生成的 Webhook URL。

基本使用方法

  1. 启动服务器: 在安装了 'wecom-bot-mcp-server' 的环境中,打开终端,执行以下命令启动 MCP 服务器:

    wecom-bot-mcp-server

    服务器成功启动后,你将在终端看到日志输出,指示服务器正在运行。

  2. 在 MCP 客户端中使用: 配置完成后,你的 MCP 客户端(如 Windsurf, Cline)应该能够检测到并连接到 WeCom Bot MCP Server。你可以通过 MCP 客户端提供的界面或 API,调用服务器提供的工具 (Tools) 和资源 (Resources)。

    例如,在支持 MCP 协议的 LLM 应用或开发环境中,你可以使用类似以下的 API 调用来发送消息或获取消息历史 (以下代码仅为示例,具体 API 调用方式取决于你使用的 MCP 客户端):

    # 示例代码 (假设你使用的 MCP 客户端提供了类似 mcp_client 的库)
    import asyncio
    from mcp_client import MCPClient  # 假设的 MCP 客户端库
    
    async def main():
        async with MCPClient() as client:
            wecom_server = client.get_mcp_server("wecom") # "wecom" 是你在配置文件中设置的服务器名称
            if wecom_server:
                # 发送文本消息
                message_result = await wecom_server.tools.send_message(content="你好,世界!", msg_type="text")
                print(f"消息发送结果: {message_result}")
    
                # 发送 Markdown 消息
                markdown_result = await wecom_server.tools.send_message(content="# 标题\n*斜体字*", msg_type="markdown")
                print(f"Markdown 消息发送结果: {markdown_result}")
    
                # 发送图片 (假设 image_path 是图片文件路径或 URL)
                image_result = await wecom_server.tools.send_wecom_image(image_path="/path/to/image.png")
                print(f"图片发送结果: {image_result}")
    
                # 获取消息历史记录
                history_resource = await wecom_server.resources.get_message_history_resource()
                print(f"消息历史记录:\n{history_resource}")
            else:
                print("WeCom MCP 服务器未连接或配置错误")
    
    if __name__ == "__main__":
        asyncio.run(main())

    请参考你所使用的 MCP 客户端的文档,了解如何配置和调用 MCP 服务器提供的工具和资源。

信息

分类

通信与社交