1W

1052666/wechat-mcp-server

Developer tools
37 stars 4 forks Quality 63 Trend 27NOASSERTION

已全面支持NT架构,微信MCP,打造您的专属提醒助手

Overview

是一个开放标准协议,用于连接AI助手与各种数据源和工具。它就像是AI应用的USB-C接口,提供了标准化的方式来连接AI模型与外部系统。 - ✅ - 完全支持微信4.0以上的NT框架版本和传统微信版本 - ✅ - 支持Windows 10/11系统 - ✅ - 兼容Claude、ChatGPT等支持MCP协议的AI助手 - ✅ - 完全符合 MCP 标准规范 - ✅ - 基于标准的 JSON-RPC 2.0 协议 - ✅ - 支持发送微信文本消息 - ✅ - 支持定时发送消息功能 - ✅ - 完全支持微信4.0以上的NT框架版本和传统微信版本 - ✅ - 自动检测微信版本并适配相应的操作方式 - ✅ - 自适应不同窗口大小和布局的输入框位置 - ✅ - 使用剪贴板输入,完全避免输入法状态影响 - ✅ - 支持Enter、Ctrl+Enter、Alt+S等多种发送快捷键 - ✅ - 异步处理,不阻塞AI助手 - ✅ - 完整的错误处理和日志记录 - ✅ - 目前支持发送英文、数字、表情符号等,暂不支持中文消息发送(可能导致乱码) ⚠️ 在使用前,请确保: - ✅ 微信客户端已安装并正在运行 - ✅ 已成功登录微信账号 - ✅ 微信窗口可见(不要最小化) : 请将 C:/path/to/WeChat-MCP-Server 替换为您实际的项目路径 💬 - "帮我给张三发个微信消息说'会议推迟到下午3点'" - "10分钟后提醒我开会,发到工作群" - "给文件传输助手发送今天的工作总结" 试想一下,您可以使用Cloud Code等自动化工具完成各种任务,并通过微信自动发送报备消息: 1. - 当CI/CD流程完成时,自动向开发团队群发送部署状态 - 包含构建结果、测试覆盖率和部署环境信息

README

WeChat MCP Server


📋 目录


🤖 什么是 MCP?

Model Context Protocol (MCP) 是一个开放标准协议,用于连接AI助手与各种数据源和工具。它就像是AI应用的USB-C接口,提供了标准化的方式来连接AI模型与外部系统。

💻 兼容性

  • ✅ 微信版本 - 完全支持微信4.0以上的NT框架版本和传统微信版本
  • ✅ 操作系统 - 支持Windows 10/11系统
  • ✅ AI助手 - 兼容Claude、ChatGPT等支持MCP协议的AI助手

✨ 功能特点

  • ✅ MCP标准兼容 - 完全符合 MCP 标准规范
  • ✅ JSON-RPC 2.0 - 基于标准的 JSON-RPC 2.0 协议
  • ✅ 微信消息发送 - 支持发送微信文本消息
  • ✅ 定时发送 - 支持定时发送消息功能
  • ✅ 全面版本支持 - 完全支持微信4.0以上的NT框架版本和传统微信版本
  • ✅ 智能版本检测 - 自动检测微信版本并适配相应的操作方式
  • ✅ 智能输入框定位 - 自适应不同窗口大小和布局的输入框位置
  • ✅ 剪贴板输入技术 - 使用剪贴板输入,完全避免输入法状态影响
  • ✅ 多种发送方式 - 支持Enter、Ctrl+Enter、Alt+S等多种发送快捷键
  • ✅ 异步处理 - 异步处理,不阻塞AI助手
  • ✅ 完整日志 - 完整的错误处理和日志记录
  • ✅ 部分文本支持 - 目前支持发送英文、数字、表情符号等,暂不支持中文消息发送(可能导致乱码)

📁 项目结构

WeChat-MCP-Server/
├── 📂 src/
│   ├── 📄 __init__.py
│   ├── 📄 mcp_server.py          # MCP服务器主要实现
│   └── 📄 wechat_controller.py   # 微信自动化控制器
├── 📂 examples/
│   └── 📄 mcp_client_example.py  # 客户端使用示例
├── 📂 docs/
│   └── 📄 QUICK_START.md         # 快速开始指南
├── 📂 支持我们/
│   ├── 🖼️ 1.jpg                  # 支付宝收款码
│   └── 🖼️ 2.jpg                  # 微信赞赏码
├── 📄 mcp_config.json           # MCP配置文件
├── 📄 requirements.txt          # 依赖包列表
├── 📄 LICENSE                   # 许可证文件
└── 📄 README.md                # 项目说明文档

🚀 安装和配置

1️⃣ 安装依赖

# 克隆项目
git clone https://github.com/1052666/WeChat-MCP-Server.git
cd WeChat-MCP-Server

# 安装依赖
pip install -r requirements.txt

2️⃣ 确保微信已启动并登录

⚠️ 重要提醒

在使用前,请确保:

  • ✅ 微信客户端已安装并正在运行
  • ✅ 已成功登录微信账号
  • ✅ 微信窗口可见(不要最小化)

3️⃣ 配置AI助手

将此MCP服务器添加到您的AI助手配置中。以 Claude Desktop 为例:

{
  "mcpServers": {
    "wechat": {
      "command": "python",
      "args": ["C:/path/to/WeChat-MCP-Server/src/mcp_server.py"],
      "env": {}
    }
  }
}

注意: 请将 C:/path/to/WeChat-MCP-Server 替换为您实际的项目路径

🛠️ 可用工具

📤 send_wechat_message

发送文本消息到指定的微信联系人或群组。

参数:

参数名 类型 必填 描述
contact_name string ✅ 联系人或群组名称
message string ✅ 要发送的文本消息

示例:

{
  "name": "send_wechat_message",
  "arguments": {
    "contact_name": "文件传输助手",
    "message": "Hello from AI assistant!"
  }
}

⏰ schedule_wechat_message

安排在指定延迟后发送消息。

参数:

参数名 类型 必填 描述
contact_name string ✅ 联系人或群组名称
message string ✅ 要发送的文本消息
delay_seconds number ✅ 延迟发送的秒数

示例:

{
  "name": "schedule_wechat_message",
  "arguments": {
    "contact_name": "文件传输助手",
    "message": "This is a scheduled message!",
    "delay_seconds": 30
  }
}

💡 使用方法

🤖 在AI助手中使用

配置完成后,您可以直接在AI助手中使用自然语言请求:

💬 示例对话

  • “帮我给张三发个微信消息说’会议推迟到下午3点’”
  • “10分钟后提醒我开会,发到工作群”
  • “给文件传输助手发送今天的工作总结”

🧪 直接测试

运行示例客户端进行测试:

🔄 自动化任务与消息报备

🚀 使用Cloud Code自动化工作流

试想一下,您可以使用Cloud Code等自动化工具完成各种任务,并通过微信自动发送报备消息:

📊 自动化场景示例

  1. 代码部署通知

    • 当CI/CD流程完成时,自动向开发团队群发送部署状态
    • 包含构建结果、测试覆盖率和部署环境信息
  2. 监控报警集成

    • 将服务器监控报警直接推送到运维群
    • 系统负载、异常状态实时通知到责任人
  3. 数据处理完成通知

    • 大型数据处理任务完成后自动通知数据分析师
    • 包含处理时间、数据量和结果摘要
  4. 定时报表推送

    • 每日/每周自动生成业务报表并发送给管理层
    • 销售数据、用户增长等关键指标自动汇总

💻 实现示例

# 示例:GitHub Actions完成后发送微信通知
import requests

def send_deployment_notification(status, details):
    # 调用WeChat MCP Server API
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "send_wechat_message",
            "arguments": {
                "contact_name": "技术团队群",
                "message": f"🚀 部署状态: {status}\n📋 详情: {details}"
            }
        }
    }
    
    response = requests.post("http://localhost:8080/mcp", json=payload)
    return response.json()

# 在CI/CD流程中调用
if __name__ == "__main__":
    send_deployment_notification("成功", "版本v2.1.0已部署到生产环境")
cd examples
python mcp_client_example.py

🔧 MCP协议实现

本服务器实现了以下MCP标准方法:

方法 描述
initialize 初始化服务器连接
tools/list 列出可用工具
tools/call 调用指定工具

📡 JSON-RPC 消息格式

🏗️ 技术架构

🖥️ MCP服务器 (mcp_server.py)

  • 实现JSON-RPC 2.0协议
  • 处理MCP标准方法调用
  • 管理工具注册和执行
  • 提供完整的错误处理

📱 微信控制器 (wechat_controller.py)

  • 使用pyautogui进行界面自动化
  • 使用win32gui查找和控制微信窗口
  • 🆕 NT框架支持: 完全支持微信4.0及以上版本
  • 🔍 智能版本检测: 自动检测微信版本并适配操作方式
  • 🎯 多窗口类型识别: 支持QT框架和传统窗口类型
  • 支持异步消息发送和调度
  • 提供状态检查功能

🔧 NT框架技术特性

  • 版本检测: 通过进程信息自动检测微信版本
  • 窗口识别: 支持QT框架窗口类名模式匹配
  • 操作适配: 针对NT框架优化的搜索和发送逻辑
  • 兼容性: 向下兼容传统微信版本(<4.0)

🎯 智能输入技术

  • 智能定位: 自适应不同窗口大小的输入框位置检测
  • 剪贴板输入: 使用Windows剪贴板API实现文本输入,完全避免输入法干扰
  • 焦点验证: 通过测试字符输入验证输入框焦点状态
  • 剪贴板保护: 自动备份和恢复用户原始剪贴板内容
  • 多重发送: 支持Enter、Ctrl+Enter、Alt+S等多种发送快捷键备选方案

⚠️ 注意事项

🖥️ 系统要求

  • 操作系统: Windows 系统
  • 微信版本: 微信客户端(支持所有版本,包括4.0及以上NT框架版本)
  • Python版本: Python 3.8+

🔐 权限要求

  • 需要屏幕控制权限(pyautogui)

📝 使用限制

⚠️ 重要提醒

  • 使用期间请勿手动操作微信窗口
  • 确保微信窗口可见且未被遮挡
  • 建议先向"文件传输助手"测试

🛡️ 安全考虑

  • 本工具仅用于自动化个人微信操作
  • 请遵守微信使用条款
  • 不建议用于大量消息发送

🔍 故障排除

📊 日志调试

服务器会输出详细的日志信息,包括:

  • ✅ 请求处理状态
  • ✅ 微信操作结果
  • ✅ 错误信息和堆栈跟踪

🚧 开发和扩展

➕ 添加新工具

  1. 在 mcp_server.py 中的 _register_tools() 方法添加工具定义
  2. 实现对应的执行方法
  3. 在 wechat_controller.py 中添加具体功能
  4. 更新配置文件和文档

🌐 支持其他平台

当前版本仅支持Windows系统。要支持其他平台,需要:

  • 替换win32gui相关代码
  • 适配不同系统的窗口管理
  • 调整键盘快捷键映射

🗺️ 后续开发计划

  • [x] 智能输入框定位 ✅ 已完成
  • [x] 剪贴板输入技术 ✅ 已完成
  • [x] 多种发送方式支持 ✅ 已完成
  • [x] 输入法兼容性问题 ✅ 已完成
  • [ ] 支持macOS和Linux系统
  • [ ] 增加更多微信操作功能(如发送图片、文件等)

💖 支持我们

如果您觉得这个项目对您有帮助,请考虑:

  • ⭐ 给项目点个Star
  • 🔄 分享给您的朋友
  • 💰 考虑捐赠以支持项目维护和发展

💳 捐赠方式

如果您愿意支持项目的持续发展,可以通过以下方式进行捐赠:

您的每一份支持都是我们持续改进和维护项目的动力!❤️


⚠️ 重要免责声明

🚨 严重警告

本项目涉及微信自动化操作,存在重大风险。使用前请充分评估风险并自行承担所有后果。


📄 许可证

本项目采用 MIT License 开源许可证。

🤝 贡献

我们欢迎所有形式的贡献!

🐛 报告问题

  • 使用 Issues 报告bug
  • 提供详细的错误信息和复现步骤

📞 联系我们

如果您有任何问题、建议或合作意向,欢迎通过以下方式联系我们:

我们会尽快回复您的咨询!

💡 功能建议

  • 在 Issues 中提出新功能建议
  • 详细描述功能需求和使用场景

🔧 代码贡献

  1. Fork 本项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📈 项目统计

⭐ Star 增长趋势

📊 项目数据


View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide

Configuration

{ "mcpServers": { "wechat": { "command": "python", "args": ["C:/path/to/WeChat-MCP-Server/src/mcp_server.py"], "env": {} } } }