微信公众号文章管理服务

ArticleMcp 是一个基于 Go 语言开发的微信公众号文章管理服务,提供草稿箱管理和文章发布功能,并通过 MCP 协议提供工具接口。

  • by yikaikkk
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 yikaikkk/gongzhonghao_mcp

使用说明

ArticleMcp - 微信公众号文章管理服务

ArticleMcp 是一个基于 Go 语言开发的微信公众号文章管理服务,提供了草稿箱管理和文章发布功能,并通过 Model Context Protocol (MCP) 提供了工具接口。

功能未完全测试,只搭好了框架,后续优化。

功能特性

  1. 草稿管理

    • 发送文章到草稿箱
    • 获取草稿箱列表
    • 删除草稿
  2. 文章发布

    • 发布最新草稿
    • 根据标题发布特定草稿
    • 获取已发布文章列表
  3. MCP 工具接口

    • 通过 MCP 协议提供工具接口,可以与支持 MCP 的 AI 助手集成

项目结构

ArticleMcp/
├── cmd/
│   └── server/
│       └── main.go          # 服务器主程序
├── pkg/
│   └── wechat/
│       ├── service.go       # 微信公众号核心服务
│       ├── service_test.go  # 微信公众号服务测试用例
│       ├── server.go        # 应用服务器
│       ├── mcp_handlers.go  # MCP 工具处理函数
│       └── mcp_server.go    # MCP 服务器初始化
├── wechat_example_main.go   # 微信公众号功能使用示例
├── TEST_CASES.md            # 详细测试用例说明
├── MCP_TOOLS.md             # MCP 工具详细说明
├── README.md                # 项目说明文档
├── go.mod                   # Go 模块定义
└── go.sum                   # Go 模块校验和

安装和配置

  1. 确保已安装 Go 1.23.6 或更高版本
  2. 克隆项目到本地
  3. 运行 go mod tidy 下载依赖

配置说明

在使用服务之前,需要配置微信公众号的以下信息:

  • AppID: 微信公众号的 AppID
  • AppSecret: 微信公众号的 AppSecret
  • Token: 微信公众号的 Token

使用方法

1. 直接使用微信公众号服务

go run wechat_example_main.go

2. 启动 MCP 服务器

go run cmd/server/main.go

服务器将在 http://localhost:8080 上运行,并提供以下端点:

标准端点

  • /health: 健康检查端点
  • /mcp: MCP 工具端点

调试端点

  • POST /debug/publish_message: 发布文章到草稿箱
  • GET /debug/draft_list: 获取草稿列表
  • POST /debug/publish_latest_draft: 发布最新草稿
  • POST /debug/publish_draft_by_title: 根据标题发布草稿
  • POST /debug/delete_draft: 删除草稿
  • GET /debug/published_articles: 获取已发布文章列表

3. MCP 工具使用

详细说明请查看 MCP_TOOLS.md 文件。

测试

运行单元测试

cd pkg/wechat
go test -v

测试用例详情

详细测试用例请查看 TEST_CASES.md 文件,其中包括:

  • 函数调用测试用例
  • HTTP 调试路由测试用例
  • MCP 工具测试用例
  • 错误处理测试用例
  • 性能测试用例

API 参考

微信公众号服务方法

  • PublishMessage: 发送草稿到草稿箱
  • PublishDraft: 发布指定草稿
  • PublishLatestDraft: 发布最新草稿
  • PublishDraftByTitle: 根据标题发布草稿
  • GetDraftList: 获取草稿列表
  • DeleteDraft: 删除草稿
  • GetPublishedArticles: 获取已发布文章列表

调试端点说明

POST /debug/publish_message

发布文章到草稿箱。

请求体示例:

{
  "title": "文章标题",
  "content": "文章内容",
  "author": "作者名",
  "digest": "文章摘要",
  "image_info": {
    "image_list": {
      "image_media_id": "图片media_id"
    }
  }
}

GET /debug/draft_list

获取草稿箱中的所有草稿,无需请求体。

POST /debug/publish_latest_draft

发布最新的草稿,无需请求体。

POST /debug/publish_draft_by_title

根据标题发布指定草稿。

请求体示例:

{
  "title": "要发布的文章标题"
}

POST /debug/delete_draft

删除指定的草稿。

请求体示例:

{
  "media_id": "要删除的草稿media_id"
}

GET /debug/published_articles

获取已发布的文章列表,无需请求体。

注意事项

  1. 请确保微信公众号已获得相应的接口权限
  2. 注意微信API调用频率限制
  3. 妥善保管 AppID 和 AppSecret 等敏感信息
  4. 该项目仅供学习和参考,实际使用时请遵守微信公众平台的相关规定