Skip to main content
Glama
huxuanming

wechat-md-mcp-server

by huxuanming
README.md
# 微信 Markdown 转换 MCP

把 Markdown 转成适合微信公众号的内联样式 HTML。服务只负责渲染输出,复制富文本交给用户现有工作流(浏览器、Doocs/md、WeMD、mdnice 等)。

## 工具

| 工具 | 说明 |
|------|------|
| `convert_markdown_to_wechat_html` | Markdown → 内联样式 HTML 字符串 |
| `open_wechat_html_in_browser` | 将 HTML 存入缓存并在浏览器中打开,全选复制后可直接粘贴到公众号编辑器 |
| `list_wechat_themes` | 返回可用主题列表 |

转换成功后自动缓存 HTML 到 `./.cache/wechat-mcp/`,可通过 `WECHAT_MCP_CACHE_DIR` 环境变量覆盖。

## 运行

```bash
uvx --from "git+https://github.com/huxuanming/wechat-md-mcp-server.git" wechat-md-mcp-server
```

本地开发:

```bash
uvx --from . wechat-md-mcp-server
```

查看可用工具:

```bash
uvx --from . wechat-md-mcp-server --list-tools
```

## MCP 配置示例

**远程(GitHub):**

```json
{
  "mcpServers": {
    "wechat-md-mcp-server": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/huxuanming/wechat-md-mcp-server.git", "wechat-md-mcp-server"]
    }
  }
}
```

**本地开发(推荐用 `uv run`,自动感知代码变化):**

```json
{
  "mcpServers": {
    "wechat-md-mcp-server": {
      "command": "uv",
      "args": ["--directory", "/path/to/wechat-md-mcp-server", "run", "wechat-md-mcp-server"]
    }
  }
}
```

> 本地开发不要用 `uvx --from /path`,uvx 会缓存构建产物,代码修改后不会自动重建。

## 工具参数

### `convert_markdown_to_wechat_html`

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `markdown` | string | 是 | 源 Markdown 文本 |
| `theme` | string | 否 | 主题,见下方列表,默认 `default` |
| `title` | string | 否 | 文章标题,渲染为 h1 |

输出:HTML 字符串(`<article>...</article>`)。

### `list_wechat_themes`

无参数,返回主题名称和描述列表。

## 主题

| 名称 | 风格 |
|------|------|
| `default` | 通用企业风 |
| `tech` | 简洁技术风 |
| `warm` | 暖色品牌风 |
| `apple` | Apple 极简风 |
| `wechat-native` | 微信绿原生风 |

## 命令行工具

`wechat-md-convert` 可直接转换本地 Markdown 文件:

```bash
uvx --from . wechat-md-convert input.md --theme tech --out output.html
```

| 参数 | 说明 |
|------|------|
| `input` | 输入 Markdown 文件路径 |
| `--theme` | 主题(默认 `default`) |
| `--title` | 标题覆盖 |
| `--out` | 输出 HTML 路径,省略则写入缓存目录 |
| `--cache-dir` | 覆盖缓存目录 |
| `--open` | 转换完成后自动在浏览器中打开,全选复制即可粘贴到公众号编辑器 |

## 支持的 Markdown 语法

- 标题:`#` 到 `######`
- 段落、换行
- 无序列表(`-` / `*` / `+`)、有序列表
- 引用:`>`
- 分割线:`---` 或 `***`
- 粗体:`**bold**`,斜体:`*italic*`,嵌套:`**bold *italic* bold**`
- 行内代码:`` `code` ``
- 代码块:` ```lang ... ``` `
- 链接:`[text](https://...)` / `[text](#anchor)` / `[text](mailto:...)`

## 快速验证

```bash
uvx --from . python3 - <<'PY'
import server as s
md = "# 标题\n\n这是**测试**,带[链接](https://example.com)和`代码`。"
print(s.parse_markdown(md, theme_name="default")[:300])
PY
```

## 缓存目录优先级

1. `WECHAT_MCP_CACHE_DIR` 环境变量
2. `<输入文件目录>/.cache/wechat-mcp/`
3. `~/.cache/wechat-mcp/`(macOS:`~/Library/Caches/wechat-mcp/`)
4. 系统临时目录

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a distinct purpose: conversion, opening in the browser, and listing themes. No overlap or ambiguity in their intended use.

Naming Consistency5/5

All tool names follow a consistent verb-first pattern (open, convert, list) with snake_case, making the set predictable and easy to navigate.

Tool Count5/5

Three tools is an ideal size for a focused Markdown-to-WeChat conversion utility, covering the essential workflow without unnecessary bloat.

Completeness5/5

The server covers the full conversion cycle: converting Markdown to HTML, previewing/opening it for copy-paste, and supporting theme selection. No obvious gaps for its stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues