{"id":28562020,"url":"https://github.com/caol64/wenyan-mcp","last_synced_at":"2026-03-05T07:03:40.064Z","repository":{"id":297193095,"uuid":"995077733","full_name":"caol64/wenyan-mcp","owner":"caol64","description":"文颜 MCP Server 可以让 AI 自动将 Markdown 文章排版后发布至微信公众号。","archived":false,"fork":false,"pushed_at":"2026-03-04T05:42:51.000Z","size":417,"stargazers_count":1059,"open_issues_count":32,"forks_count":120,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-04T11:21:21.483Z","etag":null,"topics":["mcp-server","wenyan"],"latest_commit_sha":null,"homepage":"https://wenyan.yuzhi.tech","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caol64.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"caol64","thanks_dev":null,"custom":["https://yuzhi.tech/sponsor","https://paypal.me/caol64"]}},"created_at":"2025-06-02T23:54:09.000Z","updated_at":"2026-03-04T10:08:55.000Z","dependencies_parsed_at":"2025-06-04T15:52:48.365Z","dependency_job_id":"e54fcf52-ea98-4968-a541-42ca106d8378","html_url":"https://github.com/caol64/wenyan-mcp","commit_stats":null,"previous_names":["caol64/wenyan-mcp"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/caol64/wenyan-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caol64%2Fwenyan-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caol64%2Fwenyan-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caol64%2Fwenyan-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caol64%2Fwenyan-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caol64","download_url":"https://codeload.github.com/caol64/wenyan-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caol64%2Fwenyan-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30113124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mcp-server","wenyan"],"created_at":"2025-06-10T12:01:28.969Z","updated_at":"2026-03-05T07:03:40.057Z","avatar_url":"https://github.com/caol64.png","language":"JavaScript","funding_links":["https://buymeacoffee.com/caol64","https://yuzhi.tech/sponsor","https://paypal.me/caol64"],"categories":["Translation","Content Management Mcp Servers","📚 Projects (1974 total)","📦 Other","پیاده‌سازی‌های سرور","JavaScript","MCP 服务器精选列表","Other Tools and Integrations","カテゴリ"],"sub_categories":["SIEM \u0026 SecOps","MCP Servers","🛠️ \u003ca name=\"other-tools-and-integrations\"\u003e\u003c/a\u003eسایر ابزارها و یکپارچه‌سازی‌ها","🛠️ 效率工具与集成 (Office, Project Management, Notes, etc.)","📝 \u003ca name=\"content--media\"\u003e\u003c/a\u003eコンテンツ・メディア"],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg alt=\"logo\" src=\"https://media.githubusercontent.com/media/caol64/wenyan-mcp/main/data/wenyan-mcp.png\" width=\"256\" /\u003e\n\u003c/div\u003e\n\n# 文颜 MCP Server\n\n[![npm](https://img.shields.io/npm/v/@wenyan-md/mcp)](https://www.npmjs.com/package/@wenyan-md/mcp)\n[![License](https://img.shields.io/github/license/caol64/wenyan-mcp)](LICENSE)\n![NPM Downloads](https://img.shields.io/npm/dm/%40wenyan-md%2Fmcp)\n[![Docker Pulls](https://img.shields.io/docker/pulls/caol64/wenyan-mcp)](https://hub.docker.com/r/caol64/wenyan-mcp)\n[![Stars](https://img.shields.io/github/stars/caol64/wenyan-mcp?style=social)](https://github.com/caol64/wenyan-mcp)\n\n## 简介\n\n**[文颜（Wenyan）](https://wenyan.yuzhi.tech)** 是一款多平台 Markdown 排版与发布工具，支持将 Markdown 一键转换并发布至：\n\n-   微信公众号\n-   知乎\n-   今日头条\n-   以及其它内容平台（持续扩展中）\n\n文颜的目标是：**让写作者专注内容，而不是排版和平台适配**。\n\n## 文颜的不同版本\n\n文颜目前提供多种形态，覆盖不同使用场景：\n\n-   [macOS App Store 版](https://github.com/caol64/wenyan) - MAC 桌面应用\n-   [跨平台桌面版](https://github.com/caol64/wenyan-pc) - Windows/Linux\n-   [CLI 版本](https://github.com/caol64/wenyan-cli) - 命令行 / CI 自动化发布\n-   👉 [MCP 版本](https://github.com/caol64/wenyan-mcp) - 本项目\n\n## 文颜 MCP Server 是什么？\n\n简单来说，它打通了“AI 写作”与“公众号发文”的通道。\n\n基于 MCP 协议，Claude Desktop 等 AI 客户端现在可以直接调用文颜（Wenyan）的排版引擎。写完文章后，不需要再去第三方编辑器里来回复制粘贴，直接让 AI 帮你排版并塞进微信草稿箱。\n\n**核心特性：**\n\n- **绕过排版工具**：AI 生成的 Markdown 直接转成微信富文本并上传，省去中间步骤。\n- **对话式排版**：直接打字跟 AI 说“换个橙色风格主题”，样式自动生效。\n- **不出窗口完成闭环**：在同一个聊天框里，顺滑搞定“想选题 -\u003e 写文章 -\u003e 调排版 -\u003e 存草稿”的所有操作。\n\n**实战演示**：\n*   [让 AI 帮你管理公众号的排版和发布](https://babyno.top/posts/2025/06/let-ai-help-you-manage-your-gzh-layout-and-publishing/)\n*   [Moraya MCP 使用案例：微信公众号全托管](https://github.com/zouwei/moraya/wiki/Moraya-MCP-%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B%EF%BC%9A%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7%E5%85%A8%E6%89%98%E7%AE%A1)\n\n## 功能特性\n\n- 一键发布 Markdown 到微信公众号草稿箱\n- 自动上传本地图片与封面\n- 支持远程 Server 发布（绕过 IP 白名单限制）\n- 内置多套精美排版主题\n- 支持自定义主题\n- 提供标准 MCP Tool 接口\n- 支持 AI 自动调用：\n  - 渲染 Markdown\n  - 主题管理\n  - 发布草稿\n\n## 快速开始\n\n**安装**\n\n```bash\nnpm install -g @wenyan-md/mcp\n```\n\n**Claude Desktop 配置 (claude_desktop_config.json)：**：\n\n```json\n{\n  \"mcpServers\": {\n    \"wenyan-mcp\": {\n      \"command\": \"wenyan-mcp\",\n      \"env\": {\n        \"WECHAT_APP_ID\": \"your_app_id\",\n        \"WECHAT_APP_SECRET\": \"your_app_secret\"\n      }\n    }\n  }\n}\n```\n\n## 基本用法\n\n### 列出主题\n\n对AI说\n\n\u003e 目前你可以使用哪些公众号主题？\n\nAI回复：\n\n```\n目前我支持的公众号主题包括以下这些，每个主题都有独特的风格和配色，适用于不同的内容调性：\n\n1. **Default（默认）**  \n   简洁经典的排版，适合长文阅读，通用性强。\n\n2. **OrangeHeart（橙心）**  \n   暖橙色调，优雅而富有活力，适合情感、生活类内容。\n...\n```\n\n### 注册主题\n\n对AI说\n\n\u003e 帮我把这个css(https://wenyan.yuzhi.tech/manhua.css)注册为一个新的公众号主题，名称为：xiuluochang\n\nAI回复：\n\n```\n好的，已成功将 CSS 样式表注册为新的公众号主题，主题名称为：**xiuluochang**。\n\n您现在可以在公众号后台选择该主题进行应用，样式将按照 `https://wenyan.yuzhi.tech/manhua.css` 的定义进行渲染。\n\n如有需要进一步自定义或更换主题，随时告诉我！\n```\n\n### 删除主题\n\n对AI说\n\n\u003e 把名为“xiuluochang”的公众号主题删除\n\nAI回复：\n\n```\n公众号主题 “xiuluochang” 已成功删除。\n```\n\n### 发布文章\n\n对AI说\n\n\u003e 使用phycat主题将这篇文章发布到微信公众号：`./tests/publish.md`\n\nAI回复：\n\n```\n文章已成功发布至微信公众号草稿箱！🎉\n\n- **主题**：phycat  \n- **媒体ID**：xxx\n\n您可登录微信公众号后台，在「草稿箱」中查看并编辑文章，确认无误后即可一键发布。如需进一步排版优化、添加封面或设置摘要，我也可以协助您完成！\n\n是否需要我帮您生成一篇发布文案或封面建议？ 😊\n```\n\n## 概念\n\n### 环境变量配置\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e 请确保 MCP 启动时已配置如下环境变量，否则上传接口将调用失败。\n\n-   `WECHAT_APP_ID`\n-   `WECHAT_APP_SECRET`\n\n### 微信公众号 IP 白名单\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e 请确保运行文颜的机器 IP 已加入微信公众号后台的 IP 白名单，否则上传接口将调用失败。\n\n配置说明文档：[https://yuzhi.tech/docs/wenyan/upload](https://yuzhi.tech/docs/wenyan/upload)\n\n### 文章格式\n\n为了正确上传文章，每篇 Markdown 顶部需要包含一段 `frontmatter`：\n\n```md\n---\ntitle: 在本地跑一个大语言模型(2) - 给模型提供外部知识库\ncover: /Users/xxx/image.jpg\nauthor: xxx\nsource_url: http://\n---\n```\n\n字段说明：\n\n-   `title` 文章标题（必填）\n-   `cover` 文章封面\n    -   本地路径或网络图片\n    -   如果正文中已有图片，可省略\n-   `author` 文章作者\n-   `source_url` 原文地址\n\n**[示例文章](tests/publish.md)**\n\n### 文内图片和文章封面\n\n把文章发布到公众号之前，文颜会按照微信要求自动处理文章内的所有图片，将其上传到公众号素材库。目前文颜对于以下图片都能很好的支持：\n\n- 本地硬盘绝对路径（如：`/Users/xxx/image.jpg`）\n- 网络路径（如：`https://example.com/image.jpg`）\n- 当前文章的相对路径（如：`./assets/image.png`）\n\n## Server 模式\n\n相较于纯本地运行的**本地模式（Stdio Mode）**，`wenyan-mcp`还提供了 **远程客户端模式（Client–Server Mode）**。两种模式运行效果完全一致，你可以根据运行环境和网络条件选择最合适的方式。\n\n在本地模式下，MCP 直接调用微信公众号 API 完成图片上传和草稿发布。\n\n```mermaid\nflowchart LR\n    MCP[Wenyan MCP] --\u003e Wechat[公众号 API]\n```\n\n在远程客户端模式下，MCP 作为客户端，将发布请求发送到部署在云服务器上的 Wenyan Server，由 Server 完成微信公众号 API 调用。\n\n```mermaid\nflowchart LR\n    MCP[Wenyan MCP] --\u003e Server[Wenyan Server] --\u003e Wechat[公众号 API]\n```\n\n**适用于：**\n\n* 无本地固定 IP，需频繁添加IP 白名单的用户\n* 需团队协作的用户\n* 支持 CI/CD 自动发布\n* 支持 AI Agent 自动发布\n\n**[Server 模式部署](https://github.com/caol64/wenyan-cli/blob/main/docs/server.md)**\n\n**Claude Desktop 配置：**：\n\n```json\n{\n  \"mcpServers\": {\n    \"wenyan-mcp\": {\n      \"command\": \"wenyan-mcp\",\n      \"args\": [\"--server\", \"https://api.example.com\", \"--api-key\", \"your-api-key\"]\n      \"env\": {\n        \"WECHAT_APP_ID\": \"your_app_id\",\n        \"WECHAT_APP_SECRET\": \"your_app_secret\"\n      }\n    }\n  }\n}\n```\n\n## Docker 部署\n\n适合不希望安装 Node.js 环境的用户。\n\n```bash\ndocker pull caol64/wenyan-mcp:latest\n```\n\n* **Claude Desktop 配置：**：\n\n```json\n{\n  \"mcpServers\": {\n    \"wenyan-mcp\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"--rm\",\n        \"-i\",\n        \"-v\", \"/your/host/file/path:/mnt/host-downloads\",\n        \"-e\", \"WECHAT_APP_ID=your_app_id\",\n        \"-e\", \"WECHAT_APP_SECRET=your_app_secret\",\n        \"-e\", \"HOST_FILE_PATH=/your/host/file/path\",\n        \"caol64/wenyan-mcp\"\n      ]\n    }\n  }\n}\n```\n\n\u003e **Docker 配置特别说明：**\n\u003e\n\u003e *   **挂载目录 (`-v`)**：必须将宿主机的文件/图片目录挂载到容器内的 `/mnt/host-downloads`。\n\u003e *   **环境变量 (`HOST_FILE_PATH`)**：必须与宿主机挂载的文件/图片目录路径保持一致。\n\u003e *   **原理**：你的 Markdown 文件/文章内所引用的本地图片应放置在该目录中，Docker 会自动将其映射，使容器能够读取并上传。\n\n## 如何调试\n\n推荐使用官方 Inspector 进行调试：\n\n```bash\nnpx @modelcontextprotocol/inspector \u003ccommand\u003e\n```\n\n启动成功出现类似提示：\n\n```bash\n🔗 Open inspector with token pre-filled:\n   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=761c05058aa4f84ad02280e62d7a7e52ec0430d00c4c7a61492cca59f9eac299\n   (Auto-open is disabled when authentication is enabled)\n```\n\n访问以上链接即可打开调试页面。\n\n![debug](data/1.jpg)\n\n1. 正确填写启动命令\n2. 添加环境变量\n3. 点击 Connect\n4. 选择 Tools -\u003e List Tools\n5. 选择要调试的接口\n6. 填入参数并点击 Run Tool\n7. 查看完整参数\n\n## 赞助\n\n如果你觉得文颜对你有帮助，可以给我家猫咪买点罐头 ❤️\n\n[https://yuzhi.tech/sponsor](https://yuzhi.tech/sponsor)\n\n## License\n\nApache License Version 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaol64%2Fwenyan-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaol64%2Fwenyan-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaol64%2Fwenyan-mcp/lists"}