Skip to main content
Glama

MPForge

Git 驱动、Agent 友好的微信公众号内容工程工作台

Markdown → 审校 → 图片处理 → 微信预览 → 人工批准 → Mock 或公众号草稿箱

English · 安全设计 · 上游关系 · 来源清单

Based on WeMD by the WeMD Team. MPForge 固定基于 WeMD 提交 964525d80ef63477c3a4b0327fe2a43415ee2bad,保留上游 MIT 版权声明。项目不隶属于腾讯或微信,也未获得其背书。v0.1.0 不支持自动正式发布或群发;真实草稿能力需要用户自己的合法账号配置,且尚未经过真实账号验证。默认 Demo 只使用 Mock。

MPForge 不是只保存一段文本的普通 Markdown 编辑器。它把文章、图片来源与授权、确定性审校结果、预览证据、人工批准、不可变操作计划和脱敏回执放在同一个可版本化工程中,便于人和 Agent 一起工作,也便于事后审计。

MPForge Dashboard

MPForge Mock Demo

在线 Mock Demo · Release 状态

Windows 安装包与便携包已通过本地运行测试,但尚未公开发布。Electron 内的 FFmpeg 动态库采用 LGPL-2.1-or-later;其对应源码附件的发布授权与合规交付尚待完成,因此 v0.1.0 Release 保持阻断。源码与纯 Web Demo 不分发该动态库。

30 秒体验

前置要求:Node.js 22.12+、pnpm 9。项目产生的依赖、下载和缓存均按项目策略保存在检出目录内。

pnpm install --frozen-lockfile
pnpm demo

Demo 会向浏览器存储放入一篇原创示例,始终显示 DEMO / MOCK 标识,并使用浏览器内存中的 Mock WeChat。它不读取真实账号环境变量,也不显示真实草稿执行入口。

在线 Demo 固定使用浏览器内 Mock;Windows 候选包为未签名构建,Windows 可能显示安全提醒。正式提供下载时,Release 页面将同时提供 SHA256SUMS、SBOM 和第三方许可材料。不要把本地构建成功视为已经发布。

Related MCP server: WeChat Official Account MCP Server

v0.1.0 能做什么

  • 继承自 WeMD 的 Markdown 编辑、微信样式转换、浅色/深色手机预览和本地优先存储。

  • 四套 MPForge 主题:minimalacademic-bluewarm-editorialtech-dark-accent

  • 确定性的 Content-as-Code Schema、Linter、渲染器和图片 Manifest。

  • 图片来源、哈希、优化、去重与 rights_status 授权检查。

  • 只能由人完成的批准闸门;Agent 与 AI 不能批准文章。

  • Mock/Real 不可变操作计划、幂等保护、脱敏回执、未知远端状态与只读对账。

  • 本地 Mock WeChat、项目内 CLI、stdio MCP Server 和项目 Skills。

  • Electron 桌面构建与纯浏览器 Demo Mode。

许可证不明确的上游 apps/server 已明确从公开源码、工作区、锁文件、Docker、制品和清洁公开历史中排除。外部图片上传端点是可选配置;未配置时安全失败,不会回退到未知“官方服务”。

Content-as-Code

content/<slug>/
├── article.md
├── assets/manifest.json
├── build/
├── history/
└── receipts/

通常状态流为 idea → draft → reviewing → reviewed → approved → sent_to_draft。只有显式人工动作可以产生批准。Mock 流程能够演示图片上传、草稿创建、UNKNOWN_REMOTE_STATE、只读对账和防止重复创建,全程不访问微信。

开发、Doctor、CLI 与 MCP

pnpm install --frozen-lockfile
pnpm build
pnpm mpforge doctor
pnpm dev

Doctor 检查 Node、pnpm、项目目录、写权限、可选浏览器能力、Mock 能力、配置状态、安全环境状态和真实微信默认关闭状态,但绝不打印秘密值。

只开发浏览器界面可运行 pnpm dev:web;桌面开发运行 pnpm dev:desktop。首次启动桌面时会按锁定版本准备 Electron,下载缓存和临时文件保存在当前检出目录的 .cache/electrontmp;仅安装依赖或启动 Web 不会下载桌面运行时。

项目内 CLI 示例:

pnpm mpforge init
pnpm mpforge new my-article
pnpm mpforge lint my-article
pnpm mpforge render my-article
pnpm mpforge preview my-article
pnpm mpforge draft prepare my-article --mock

启动本地 stdio MCP Server:

pnpm --filter @mpforge/mcp build
node apps/mcp/dist/index.js

MCP 故意不提供人工批准工具,也不提供真实账号草稿的直接执行工具。安全配置参考 Round 3 草稿适配器文档。不要把秘密写进源码、提示词、日志或 Issue。

Linter、图片流水线与批准闸门

Linter 在不依赖大模型的情况下检查结构、微信兼容性和发布前条件。图片流水线记录来源、哈希、尺寸、格式和授权状态;授权不明确的图片不能进入可发布状态。批准记录绑定当前源码、渲染结果、图片清单和预览证据,内容变化后旧批准会失效。

Mock 与 Real

  • Copy:只生成可复制 HTML,没有账号副作用。

  • Mock Draft:在本地模拟上传、草稿、失败、超时、响应丢失和对账。

  • Real Draft:受严格闸门保护的适配器边界;本版本只验证契约,没有真实账号测试证据。

三种模式都不执行正式发布或群发。正式发布仍由用户在公众号后台完成。

安全设计与验证

CI 和 Demo 固定使用:

MPFORGE_NETWORK_MODE=mock-only
MPFORGE_REAL_WECHAT_DISABLED=true
MPFORGE_DEMO_MODE=true

本地验证命令:

pnpm test
pnpm typecheck
pnpm qa
pnpm build
pnpm test:e2e
node scripts/audit-public-boundary.mjs

工作流文件存在不等于远程运行已经通过,发布状态只依据实际证据。若 Windows 构建未签名,系统可能显示提醒;MPForge 不会伪造签名状态。

Skills、上游关系与许可证

.agents/skills/ 中的项目级 Skills 帮助 Agent 执行写作、审校、图片、审核和草稿流程,同时不绕过人工闸门。架构与信任边界见 ARCHITECTURE.mdSECURITY.md公开发布边界

完整 Fork 记录见 UPSTREAM.md。版权、依赖和分发决策见 NOTICE.mdTHIRD_PARTY_NOTICES.mdLICENSE_POLICY.md来源登记。根许可证继续使用 MIT,并保留 WeMD 版权说明;第三方组件继续适用各自许可证。

路线图与贡献

v0.1.0 之后的最高优先级是:实现 Agent 原生公众号内容流水线、选题库、内容日历和多账号工作区,并用 MPForge 制作首批公开内容。

贡献前请阅读 CONTRIBUTING.mdSECURITY.mdCODE_OF_CONDUCT.md。不得提交私人文章、凭据、Cookie、真实回执或无公开授权的素材。

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI tools to automatically publish articles to WeChat Official Accounts, supporting Markdown-to-HTML conversion, image handling, and both preview and official publishing modes.
    2
    57
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    A local MCP server that enables managing WeChat Official Account content through the logged-in web session, including reading published articles and analytics, uploading images, and creating drafts after explicit confirmation.
    9
    1
    -