@wenyan-md/mcp 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +86 -119
  2. package/package.json +7 -6
package/README.md CHANGED
@@ -1,100 +1,73 @@
1
- ![logo](data/wenyan-mcp.png)
1
+ <div align="center">
2
+ <img alt = "logo" src="https://media.githubusercontent.com/media/caol64/wenyan-mcp/main/data/wenyan-mcp.png" />
3
+ </div>
2
4
 
3
5
  # 文颜 MCP Server
4
6
 
5
7
  [![npm](https://img.shields.io/npm/v/@wenyan-md/mcp)](https://www.npmjs.com/package/@wenyan-md/mcp)
6
8
  [![License](https://img.shields.io/github/license/caol64/wenyan-mcp)](LICENSE)
7
9
  ![NPM Downloads](https://img.shields.io/npm/dm/%40wenyan-md%2Fmcp)
10
+ [![Docker Pulls](https://img.shields.io/docker/pulls/caol64/wenyan-mcp)](https://hub.docker.com/r/caol64/wenyan-mcp)
8
11
  [![Stars](https://img.shields.io/github/stars/caol64/wenyan-mcp?style=social)](https://github.com/caol64/wenyan-mcp)
9
12
 
10
- 「文颜」是一款多平台排版美化工具,让你将 Markdown 一键发布至微信公众号、知乎、今日头条等主流写作平台。
13
+ ## 简介
11
14
 
12
- **文颜**现已推出多个版本:
15
+ **文颜(Wenyan)** 是一款多平台 Markdown 排版与发布工具,支持将 Markdown 一键转换并发布至:
13
16
 
14
- * [macOS App Store 版](https://github.com/caol64/wenyan) - MAC 桌面应用
15
- * [跨平台版本](https://github.com/caol64/wenyan-pc) - Windows/Linux 跨平台桌面应用
16
- * [CLI 版本](https://github.com/caol64/wenyan-cli) - CI/CD 或脚本自动化发布公众号文章
17
- * [MCP 版本](https://github.com/caol64/wenyan-mcp) - 让 AI 自动发布公众号文章
18
- * [嵌入版本](https://github.com/caol64/wenyan-core) - 将文颜的核心功能嵌入 Node 或者 Web 项目
17
+ - 微信公众号
18
+ - 知乎
19
+ - 今日头条
20
+ - 以及其它内容平台(持续扩展中)
19
21
 
20
- 文颜 MCP Server 是一个基于模型上下文协议(Model Context Protocol, MCP)的服务器组件,支持将 Markdown 格式的文章发布至微信公众号草稿箱,并使用与 [文颜](https://yuzhi.tech/wenyan) 相同的主题系统进行排版。
22
+ 文颜的目标是:**让写作者专注内容,而不是排版和平台适配**。
21
23
 
22
- https://github.com/user-attachments/assets/2c355f76-f313-48a7-9c31-f0f69e5ec207
24
+ 本仓库是 **文颜的 MCP Server 版本**,基于模型上下文协议(Model Context Protocol),旨在让 AI 助手(如 Claude Desktop)具备自动排版和发布公众号文章的能力。
23
25
 
24
- 使用场景:
26
+ ## 文颜的不同版本
25
27
 
26
- - [让AI帮你管理公众号的排版和发布](https://babyno.top/posts/2025/06/let-ai-help-you-manage-your-gzh-layout-and-publishing/)
28
+ 文颜目前提供多种形态,覆盖不同使用场景:
27
29
 
28
- ## 功能
30
+ - [macOS App Store 版](https://github.com/caol64/wenyan) - MAC 桌面应用
31
+ - [跨平台桌面版](https://github.com/caol64/wenyan-pc) - Windows/Linux
32
+ - [CLI 版本](https://github.com/caol64/wenyan-cli) - 命令行工具
33
+ - 👉 [MCP 版本](https://github.com/caol64/wenyan-mcp) - 本项目
34
+ - [核心库](https://github.com/caol64/wenyan-core) - 嵌入 Node / Web 项目
29
35
 
30
- - 列出并选择支持的文章主题
31
- - 使用内置主题对 Markdown 内容排版
32
- - 发布文章到微信公众号草稿箱
33
- - 自动上传本地或网络图片
36
+ ## 功能特性
34
37
 
35
- ## 主题效果
38
+ - 列出并选择支持的文章主题
39
+ - 使用内置主题对 Markdown 内容排版
40
+ - 自动处理并上传图片(本地 / 网络)
41
+ - 一键发布文章到微信公众号草稿箱
42
+ - **与 AI 深度集成**:让 AI 帮你管理公众号的排版和发布
36
43
 
37
- 👉 [内置主题预览](https://yuzhi.tech/docs/wenyan/theme)
38
-
39
- 文颜采用了多个开源的 Typora 主题,在此向各位作者表示感谢:
40
-
41
- - [Orange Heart](https://github.com/evgo2017/typora-theme-orange-heart)
42
- - [Rainbow](https://github.com/thezbm/typora-theme-rainbow)
43
- - [Lapis](https://github.com/YiNNx/typora-theme-lapis)
44
- - [Pie](https://github.com/kevinzhao2233/typora-theme-pie)
45
- - [Maize](https://github.com/BEATREE/typora-maize-theme)
46
- - [Purple](https://github.com/hliu202/typora-purple-theme)
47
- - [物理猫-薄荷](https://github.com/sumruler/typora-theme-phycat)
48
-
49
- ## 使用方式
50
-
51
- ### 方式一:本地安装(推荐)
52
-
53
- ```
54
- npm install -g @wenyan-md/mcp
55
- ```
44
+ ## 主题效果预览
56
45
 
57
- #### 与 MCP Client 集成
58
-
59
- 在你的 MCP 配置文件中加入以下内容:
46
+ 👉 [内置主题预览](https://yuzhi.tech/docs/wenyan/theme)
60
47
 
61
- ```json
62
- {
63
- "mcpServers": {
64
- "wenyan-mcp": {
65
- "name": "公众号助手",
66
- "command": "wenyan-mcp",
67
- "env": {
68
- "WECHAT_APP_ID": "your_app_id",
69
- "WECHAT_APP_SECRET": "your_app_secret"
70
- }
71
- }
72
- }
73
- }
74
- ```
48
+ 文颜内置并适配了多个优秀的 Typora 主题,在此感谢原作者:
75
49
 
76
- > 说明:
77
- >
78
- > * `WECHAT_APP_ID` 微信公众号平台的 App ID
79
- > * `WECHAT_APP_SECRET` 微信平台的 App Secret
50
+ - [Orange Heart](https://github.com/evgo2017/typora-theme-orange-heart)
51
+ - [Rainbow](https://github.com/thezbm/typora-theme-rainbow)
52
+ - [Lapis](https://github.com/YiNNx/typora-theme-lapis)
53
+ - [Pie](https://github.com/kevinzhao2233/typora-theme-pie)
54
+ - [Maize](https://github.com/BEATREE/typora-maize-theme)
55
+ - [Purple](https://github.com/hliu202/typora-purple-theme)
56
+ - [物理猫-薄荷](https://github.com/sumruler/typora-theme-phycat)
80
57
 
81
- ---
58
+ ## 安装与集成
82
59
 
83
- ### 方式二:编译运行
60
+ 文颜 MCP Server 支持多种运行方式,请根据你的环境选择。
84
61
 
85
- #### 编译
62
+ ### 方式一:npm 安装(推荐)
86
63
 
87
- 确保已安装 [Node.js](https://nodejs.org/) 环境:
64
+ 直接安装到本地:
88
65
 
89
66
  ```bash
90
- git clone https://github.com/caol64/wenyan-mcp.git
91
- cd wenyan-mcp
92
-
93
- npm install
94
- npx tsc -b
67
+ npm install -g @wenyan-md/mcp
95
68
  ```
96
69
 
97
- #### MCP Client 集成
70
+ **配置 MCP Client(如 Claude Desktop):**
98
71
 
99
72
  在你的 MCP 配置文件中加入以下内容:
100
73
 
@@ -103,10 +76,7 @@ npx tsc -b
103
76
  "mcpServers": {
104
77
  "wenyan-mcp": {
105
78
  "name": "公众号助手",
106
- "command": "node",
107
- "args": [
108
- "Your/path/to/wenyan-mcp/dist/index.js"
109
- ],
79
+ "command": "wenyan-mcp",
110
80
  "env": {
111
81
  "WECHAT_APP_ID": "your_app_id",
112
82
  "WECHAT_APP_SECRET": "your_app_secret"
@@ -116,32 +86,17 @@ npx tsc -b
116
86
  }
117
87
  ```
118
88
 
119
- > 说明:
120
- >
121
- > * `WECHAT_APP_ID` 微信公众号平台的 App ID
122
- > * `WECHAT_APP_SECRET` 微信平台的 App Secret
123
-
124
- ---
125
-
126
- ### 方式三:使用 Docker 运行(推荐)
89
+ ### 方式二:Docker 运行(推荐)
127
90
 
128
- 适合部署到服务器环境,或与本地 AI 工具链集成。
91
+ 适合部署到服务器环境,或希望环境隔离的用户。
129
92
 
130
- #### 构建镜像
93
+ **拉取镜像:**
131
94
 
132
95
  ```bash
133
- docker build -t wenyan-mcp .
96
+ docker pull caol64/wenyan-mcp
134
97
  ```
135
98
 
136
- 或者指定`npm`镜像源。
137
-
138
- ```bash
139
- docker build --build-arg NPM_REGISTRY=https://mirrors.cloud.tencent.com/npm/ -t wenyan-mcp .
140
- ```
141
-
142
- #### 与 MCP Client 集成
143
-
144
- 在你的 MCP 配置文件中加入以下内容:
99
+ **配置 MCP Client:**
145
100
 
146
101
  ```json
147
102
  {
@@ -153,53 +108,63 @@ docker build --build-arg NPM_REGISTRY=https://mirrors.cloud.tencent.com/npm/ -t
153
108
  "run",
154
109
  "--rm",
155
110
  "-i",
156
- "-v", "/your/host/image/path:/mnt/host-downloads",
111
+ "-v", "/your/host/file/path:/mnt/host-downloads",
157
112
  "-e", "WECHAT_APP_ID=your_app_id",
158
113
  "-e", "WECHAT_APP_SECRET=your_app_secret",
159
- "-e", "HOST_IMAGE_PATH=/your/host/image/path",
160
- "wenyan-mcp"
114
+ "-e", "HOST_FILE_PATH=/your/host/file/path",
115
+ "caol64/wenyan-mcp"
161
116
  ]
162
117
  }
163
118
  }
164
119
  }
165
120
  ```
166
121
 
167
- > 说明:
122
+ > **Docker 配置特别说明:**
168
123
  >
169
- > * `-v` 挂载宿主机目录,使容器内部可以访问本地图片。与环境变量`HOST_IMAGE_PATH`保持一致。你的 `Markdown` 文章内的本地图片应该都放置在该目录中,docker会自动将它们映射到容器内。容器无法读取在该目录以外的图片。
170
- > * `-e` 注入docker容器的环境变量:
171
- > * `WECHAT_APP_ID` 微信公众号平台的 App ID
172
- > * `WECHAT_APP_SECRET` 微信平台的 App Secret
173
- > * `HOST_IMAGE_PATH` 宿主机图片目录
124
+ > * **挂载目录 (`-v`)**:必须将宿主机的文件/图片目录挂载到容器内的 `/mnt/host-downloads`。
125
+ > * **环境变量 (`HOST_FILE_PATH`)**:必须与宿主机挂载的文件/图片目录路径保持一致。
126
+ > * **原理**:你的 Markdown 文件/文章内所引用的本地图片应放置在该目录中,Docker 会自动将其映射,使容器能够读取并上传。
174
127
 
175
- ## 微信公众号 IP 白名单
128
+ ## 环境变量说明
129
+
130
+ 无论使用哪种方式,都需要配置以下环境变量以连接微信公众号平台:
176
131
 
177
- 请务必将服务器 IP 加入公众号平台的 IP 白名单,以确保上传接口调用成功。
178
- 详细配置说明请参考:[https://yuzhi.tech/docs/wenyan/upload](https://yuzhi.tech/docs/wenyan/upload)
132
+ - `WECHAT_APP_ID`:微信公众号平台的 App ID
133
+ - `WECHAT_APP_SECRET`:微信公众号平台的 App Secret
179
134
 
180
- ## 配置说明(Frontmatter
135
+ ## Markdown Frontmatter 说明(必读)
181
136
 
182
- 为了可以正确上传文章,需要在每一篇 Markdown 文章的开头添加一段`frontmatter`,提供`title`、`cover`两个字段:
137
+ 为了正确上传文章,每篇 Markdown 顶部需要包含 frontmatter
183
138
 
184
139
  ```md
185
140
  ---
186
141
  title: 在本地跑一个大语言模型(2) - 给模型提供外部知识库
187
- cover: /Users/lei/Downloads/result_image.jpg
142
+ cover: /Users/xxx/image.jpg
188
143
  ---
189
144
  ```
190
145
 
191
- * `title` 是文章标题,必填。
192
- * `cover` 是文章封面,支持本地路径和网络图片:
146
+ 字段说明:
193
147
 
194
- * 如果正文有至少一张图片,可省略,此时将使用其中一张作为封面;
195
- * 如果正文无图片,则必须提供 cover。
148
+ - `title` 文章标题(必填)
149
+ - `cover` 文章封面
150
+ - 本地路径或网络图片
151
+ - 如果正文有至少一张图片,可省略,此时将使用其中一张作为封面
152
+ - 如果正文无图片,则必须提供 cover
196
153
 
197
154
  ## 关于图片自动上传
198
155
 
199
- * 支持图片路径:
156
+ 支持以下图片来源:
157
+
158
+ - 本地路径(如:`/Users/lei/Downloads/result_image.jpg`)
159
+ - 网络路径(如:`https://example.com/image.jpg`)
200
160
 
201
- * 本地路径(如:`/Users/lei/Downloads/result_image.jpg`)
202
- * 网络路径(如:`https://example.com/image.jpg`)
161
+ ## 微信公众号 IP 白名单
162
+
163
+ > ⚠️ 重要
164
+ >
165
+ > 请确保运行文颜 MCP Server 的机器 IP 已加入微信公众号后台的 IP 白名单,否则上传接口将调用失败。
166
+
167
+ 配置说明文档:[https://yuzhi.tech/docs/wenyan/upload](https://yuzhi.tech/docs/wenyan/upload)
203
168
 
204
169
  ## 示例文章格式
205
170
 
@@ -220,15 +185,15 @@ cover: /Users/lei/Downloads/result_image.jpg
220
185
 
221
186
  ## 如何调试
222
187
 
223
- 使用 Inspector 进行简单调试:
188
+ 推荐使用官方 Inspector 进行调试:
224
189
 
225
- ```
226
- npx @modelcontextprotocol/inspector
190
+ ```bash
191
+ npx @modelcontextprotocol/inspector <command>
227
192
  ```
228
193
 
229
194
  启动成功出现类似提示:
230
195
 
231
- ```
196
+ ```bash
232
197
  🔗 Open inspector with token pre-filled:
233
198
  http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=761c05058aa4f84ad02280e62d7a7e52ec0430d00c4c7a61492cca59f9eac299
234
199
  (Auto-open is disabled when authentication is enabled)
@@ -248,7 +213,9 @@ npx @modelcontextprotocol/inspector
248
213
 
249
214
  ## 赞助
250
215
 
251
- 如果您觉得这个项目不错,可以给我家猫咪买点罐头吃。[喂猫❤️](https://yuzhi.tech/sponsor)
216
+ 如果你觉得文颜对你有帮助,可以给我家猫咪买点罐头 ❤️
217
+
218
+ [https://yuzhi.tech/sponsor](https://yuzhi.tech/sponsor)
252
219
 
253
220
  ## License
254
221
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenyan-md/mcp",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "MCP server for Wenyan, a Markdown formatting tool that allows AI assistants to apply elegant built-in themes and publish articles directly to 微信公众号.",
5
5
  "author": "Lei <caol64@gmail.com> (https://github.com/caol64)",
6
6
  "license": "Apache-2.0",
@@ -31,17 +31,18 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@modelcontextprotocol/sdk": "0.6.0",
34
- "@wenyan-md/core": "^1.0.12"
34
+ "@wenyan-md/core": "^1.0.17"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "^20.11.24",
38
- "typescript": "^5.3.3",
39
- "vitest": "^3.2.3"
37
+ "@types/node": "^24.3.0",
38
+ "dotenv-cli": "^10.0.0",
39
+ "typescript": "^5.9.2",
40
+ "vitest": "^3.2.4"
40
41
  },
41
42
  "scripts": {
42
43
  "build": "tsc",
43
44
  "watch": "tsc --watch",
44
- "inspector": "pnpm build && node ./run-inspector.js",
45
+ "inspector": "pnpm build && pnpm dotenv -e .env.test -- node ./run-inspector.js",
45
46
  "test": "pnpx vitest run",
46
47
  "upgrade:core": "pnpm update @wenyan-md/core"
47
48
  }