gzh-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WECHAT_APPID | Yes | 公众号 AppID | |
| WECHAT_SECRET | Yes | AppSecret,仅经环境变量注入,不落任何文件 | |
| GZH_MCP_ALLOW_PUBLISH | No | 设为 '1' 或 'true' 注册 publish_draft 工具;其余值一律视为关闭。严格匹配,'0'/'false'/'TRUE'/空串均不生效。 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_credentialsA | 验证公众号凭据和 IP 白名单;成功不代表拥有发布权限。 |
| upload_content_imageA | 上传本机 JPG/PNG 正文图片并返回微信图片 URL。 |
| upload_cover_imageA | 上传本机图片为永久封面素材并返回 media_id。 |
| create_draftA | 前置校验后创建一个或多个图文草稿,并自动回读验证。 |
| get_draftB | 读取草稿的完整 news_item 数组。 |
| update_draftB | 按从 0 开始的文章位置更新草稿。 |
| list_draftsB | 分页列出草稿,并通过 draft/count 附带草稿总数。 |
| get_publish_statusA | 按 publish_id 查询异步发布状态。 |
| list_publishedA | 分页列出成功发布的文章,用于无状态对账。 |
| delete_draftA | 删除草稿;必须显式确认。 |
| get_published_articleA | 按 article_id 获取单篇已发表文章。 |
| delete_published_articleA | 删除已发表文章或其中一篇;必须显式确认。 |
| upload_video_materialA | 上传本机 MP4 为永久视频素材。 |
| upload_voice_materialA | 上传本机音频为永久语音素材。 |
| get_materialA | 获取永久素材;二进制响应写入本机 save_path 且不覆盖。 |
| delete_materialA | 删除永久素材;必须显式确认。 |
| list_materialsA | 分页列出指定类型的永久素材。 |
| count_materialsA | 获取各类型永久素材数量。 |
| upload_temp_mediaB | 上传图片、语音、视频或缩略图临时素材。 |
| download_temp_mediaA | 获取临时素材;二进制响应写入本机 save_path 且不覆盖。 |
| get_statistics_reportA | 按 report 获取公众号统计数据,并前置校验日期跨度。 |
| list_usersA | 分页获取关注者 OpenID。 |
| get_user_infoA | 获取单个用户基本信息。 |
| batch_get_user_infoA | 批量获取用户基本信息。 |
| update_user_remarkC | 更新用户备注名。 |
| create_tagB | 创建用户标签。 |
| list_tagsA | 列出公众号全部用户标签。 |
| update_tagC | 更新用户标签名。 |
| delete_tagA | 删除用户标签;必须显式确认。 |
| get_user_ids_by_tagA | 分页获取指定标签下的关注者 OpenID。 |
| tag_usersB | 批量为用户添加标签。 |
| untag_usersC | 批量取消用户标签。 |
| list_blacklistA | 分页获取公众号黑名单。 |
| blacklist_usersC | 批量拉黑用户。 |
| unblacklist_usersC | 批量取消拉黑用户。 |
| create_menuC | 创建默认自定义菜单。 |
| get_current_menuA | 获取当前自定义菜单。 |
| delete_menuA | 删除默认自定义菜单;必须显式确认。 |
| create_conditional_menuC | 创建个性化菜单。 |
| delete_conditional_menuA | 删除个性化菜单;必须显式确认。 |
| try_match_conditional_menuB | 测试指定用户会匹配到的个性化菜单。 |
| list_commentsB | 分页读取已发表文章评论。 |
| mark_comment_electC | 将评论标记为精选。 |
| unmark_comment_electC | 取消评论精选。 |
| get_mass_statusB | 查询群发消息发送状态。 |
| delete_mass_messageA | 删除群发消息;必须显式确认。 |
| send_custom_messageB | 发送客服消息;必须显式确认。 |
| send_template_messageC | 发送模板消息;必须显式确认。 |
| send_subscribe_messageC | 发送订阅通知;必须显式确认。 |
| create_qrcodeC | 创建临时或永久参数二维码。 |
| get_jsapi_ticketB | 获取 JS-SDK 的 jsapi_ticket。 |
| get_autoreply_configA | 获取公众号当前自动回复配置。 |
| get_server_ipsA | 获取微信服务器回调 IP 列表。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 53 tools
Most tools are clearly separated by resource type (drafts, published articles, materials, users, tags, menus, comments, messages), so an agent can usually distinguish them by the object noun. A few boundary overlaps exist—upload_temp_media versus upload_video_material/upload_voice_material, and get_publish_status versus get_mass_status—but the descriptions provide enough clarification.
The set consistently uses snake_case verb_noun naming, such as create_draft, delete_material, list_tags, and get_user_info. Minor deviations include batch_get_user_info, try_match_conditional_menu, and inconsistent use of material versus media for similar upload concepts, but these do not seriously undermine the overall pattern.
53 tools is far beyond a well-scoped MCP surface and falls into the extreme count category. While the WeChat Official Account domain is broad, exposing this many individual operations makes tool selection heavy and risks overwhelming agents.
The set covers many API areas but has critical lifecycle gaps: there is no tool to submit or publish a draft, no send-mass-message tool, and no reply/delete-comment operation. These omissions create dead ends, such as creating a draft without the ability to publish it or querying mass-message status without the ability to send a mass message.