Skip to main content
Glama

WeChat Publisher MCP

by BobGod
MIT License
8
  • Apple
  • Linux
ARCHITECTURE.md8.41 kB
# WeChat Publisher MCP Architecture ## 系统架构概览 WeChat Publisher MCP是一个基于Model Context Protocol (MCP)标准的微信公众号自动发布服务,采用分层架构设计,提供高度可扩展和易于集成的微信内容发布能力。 ## 架构图 ``` ┌─────────────────────────────────────────────┐ │ AI Client │ │ (Claude Desktop / Cursor) │ └─────────────┬───────────────────────────────┘ │ MCP Protocol │ (JSON-RPC over stdio) ┌─────────────▼───────────────────────────────┐ │ MCP Server Layer │ │ (server.js - 协议处理) │ └─────────────┬───────────────────────────────┘ │ ┌─────────────▼───────────────────────────────┐ │ Tools Layer │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ wechat-publisher│ │ wechat-status │ │ │ │ (发布工具) │ │ (状态查询) │ │ │ └─────────────────┘ └─────────────────┘ │ └─────────────┬───────────────┬───────────────┘ │ │ ┌─────────────▼───────────────▼───────────────┐ │ Services Layer │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ WeChatAPI │ │MarkdownConverter│ │ │ │ (微信API封装) │ │ (格式转换器) │ │ │ └─────────────────┘ └─────────────────┘ │ └─────────────┬───────────────┬───────────────┘ │ │ ┌─────────────▼───────────────▼───────────────┐ │ Utils Layer │ │ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │ │Validator│ │ Logger │ │ Others │ │ │ └─────────┘ └─────────┘ └─────────────┘ │ └─────────────────────────────────────────────┘ ``` ## 核心组件详细设计 ### 1. MCP Server Layer (服务器层) **文件**: `src/server.js` **职责**: - 实现MCP协议通信 - 工具注册和路由 - 请求参数验证 - 错误处理和响应格式化 **关键特性**: - 完全符合MCP 1.0协议规范 - 支持工具发现和调用 - 统一的错误处理机制 - 详细的调试日志记录 ### 2. Tools Layer (工具层) #### 2.1 wechat-publisher.js (发布工具) **功能**: - 文章发布到微信公众号 - 支持预览模式和正式发布 - 封面图片自动上传 - Markdown内容格式转换 **输入参数**: - `user_request`: 自然语言发布请求 - `title`: 文章标题 - `content`: Markdown格式内容 - `author`: 作者信息 - `cover_image_path`: 封面图片路径 - `is_preview`: 是否为预览模式 **输出**: - 发布成功: 文章URL、发布ID - 预览模式: 预览链接 - 错误处理: 详细错误信息和解决建议 #### 2.2 wechat-status.js (状态查询工具) **功能**: - 查询文章发布状态 - 获取阅读数据统计 - 监控发布进度 **输入参数**: - `article_id`: 文章ID或发布ID - `query_type`: 查询类型(status/stats) **输出**: - 发布状态信息 - 统计数据(阅读量、点赞数等) - 历史发布记录 ### 3. Services Layer (服务层) #### 3.1 WeChatAPI.js (微信API服务) **核心功能**: ```javascript class WeChatAPI { // Access Token管理 async getAccessToken() // 素材上传 async uploadMedia(imagePath, type = 'image') // 文章发布 async publishArticle(articleData) // 预览发送 async sendPreview(articleData, openid) // 状态查询 async getArticleStatus(publishId) } ``` **技术特点**: - Token自动刷新和缓存 - 错误重试机制 - 接口限频保护 - 完整的错误码映射 #### 3.2 MarkdownConverter.js (格式转换服务) **转换能力**: - Markdown → 微信富文本HTML - 移动端样式优化 - 代码块语法高亮 - 表格响应式处理 - 图片自适应缩放 **样式特点**: - 符合微信公众号显示规范 - 现代化的视觉设计 - 良好的移动端体验 - 代码块专业显示效果 ### 4. Utils Layer (工具层) #### 4.1 Validator.js (参数验证) - 输入参数格式验证 - 业务规则检查 - 自然语言解析 - 安全性验证 #### 4.2 Logger.js (日志系统) - 多级别日志记录 - 敏感信息脱敏 - 性能监控 - 错误追踪 ## 数据流设计 ### 发布流程数据流 ``` 1. AI Client发送发布请求 ↓ 2. MCP Server接收并验证请求 ↓ 3. wechat-publisher工具处理请求 ↓ 4. Validator验证参数 ↓ 5. MarkdownConverter转换内容格式 ↓ 6. WeChatAPI上传封面图片 ↓ 7. WeChatAPI创建草稿 ↓ 8. WeChatAPI发布文章 ↓ 9. 返回发布结果给AI Client ``` ### 状态查询数据流 ``` 1. AI Client发送状态查询请求 ↓ 2. MCP Server路由到wechat-status工具 ↓ 3. WeChatAPI查询微信接口 ↓ 4. 格式化状态信息 ↓ 5. 返回查询结果 ``` ## 安全性设计 ### 1. 配置安全 - AppID/AppSecret存储在本地配置文件 - 敏感信息不在日志中显示 - 支持环境变量配置 ### 2. 接口安全 - 请求参数严格验证 - 防止SQL注入和XSS攻击 - 接口访问频率限制 ### 3. 数据安全 - 文章内容本地处理 - 不存储用户敏感信息 - 临时文件自动清理 ## 性能优化 ### 1. 缓存策略 - Access Token内存缓存 - 图片上传结果缓存 - 接口响应缓存 ### 2. 并发处理 - 异步操作优化 - 请求队列管理 - 错误重试机制 ### 3. 资源管理 - 内存使用优化 - 文件句柄管理 - 网络连接复用 ## 扩展性设计 ### 1. 插件化架构 - 工具热插拔支持 - 自定义转换器 - 第三方服务集成 ### 2. 多平台支持 - 抽象平台接口 - 统一的内容格式 - 可配置的发布流程 ### 3. API版本管理 - 向下兼容保证 - 版本特性检测 - 平滑升级机制 ## 监控和诊断 ### 1. 健康检查 - 服务状态监控 - 微信API连通性检查 - 依赖服务状态 ### 2. 性能指标 - 请求响应时间 - 成功率统计 - 错误分布分析 ### 3. 日志分析 - 结构化日志格式 - 关键操作追踪 - 异常情况告警 ## 部署架构 ### 1. 单机部署 ``` AI工具 ←→ MCP服务 ←→ 微信API ``` ### 2. 分布式部署 ``` 多个AI工具 ←→ 负载均衡 ←→ 多个MCP服务实例 ←→ 微信API ``` ### 3. 容器化部署 - Docker镜像打包 - Kubernetes orchestration - 自动扩缩容支持 ## 开发和测试 ### 1. 开发环境 - 本地MCP服务器 - 微信测试号配置 - 模拟数据生成 ### 2. 测试策略 - 单元测试覆盖 - 集成测试验证 - 端到端测试 ### 3. CI/CD流程 - 自动化构建 - 测试自动运行 - 版本自动发布 ## 未来发展方向 ### 1. 功能增强 - 多媒体内容支持 - 定时发布功能 - 批量操作能力 ### 2. 平台扩展 - 支持更多内容平台 - 统一内容管理 - 跨平台同步发布 ### 3. 智能化提升 - AI内容优化建议 - 自动SEO优化 - 用户行为分析

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BobGod/wechat-publisher-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server