wechat-md-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wechat-md-mcp-serverConvert this Markdown to WeChat HTML using the tech theme"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
微信 Markdown 转换 MCP
把 Markdown 转成适合微信公众号的内联样式 HTML。服务只负责渲染输出,复制富文本交给用户现有工作流(浏览器、Doocs/md、WeMD、mdnice 等)。
工具
工具 | 说明 |
| Markdown → 内联样式 HTML 字符串 |
| 将 HTML 存入缓存并在浏览器中打开,全选复制后可直接粘贴到公众号编辑器 |
| 返回可用主题列表 |
转换成功后自动缓存 HTML 到 ./.cache/wechat-mcp/,可通过 WECHAT_MCP_CACHE_DIR 环境变量覆盖。
Related MCP server: Xiayan MCP Server
运行
uvx --from "git+https://github.com/huxuanming/wechat-md-mcp-server.git" wechat-md-mcp-server本地开发:
uvx --from . wechat-md-mcp-server查看可用工具:
uvx --from . wechat-md-mcp-server --list-toolsMCP 配置示例
远程(GitHub):
{
"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,自动感知代码变化):
{
"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
参数 | 类型 | 必填 | 说明 |
| string | 是 | 源 Markdown 文本 |
| string | 否 | 主题,见下方列表,默认 |
| string | 否 | 文章标题,渲染为 h1 |
输出:HTML 字符串(<article>...</article>)。
list_wechat_themes
无参数,返回主题名称和描述列表。
主题
名称 | 风格 |
| 通用企业风 |
| 简洁技术风 |
| 暖色品牌风 |
| Apple 极简风 |
| 微信绿原生风 |
命令行工具
wechat-md-convert 可直接转换本地 Markdown 文件:
uvx --from . wechat-md-convert input.md --theme tech --out output.html参数 | 说明 |
| 输入 Markdown 文件路径 |
| 主题(默认 |
| 标题覆盖 |
| 输出 HTML 路径,省略则写入缓存目录 |
| 覆盖缓存目录 |
| 转换完成后自动在浏览器中打开,全选复制即可粘贴到公众号编辑器 |
支持的 Markdown 语法
标题:
#到######段落、换行
无序列表(
-/*/+)、有序列表引用:
>分割线:
---或***粗体:
**bold**,斜体:*italic*,嵌套:**bold *italic* bold**行内代码:
`code`代码块:
```lang ... ```链接:
[text](https://...)/[text](#anchor)/[text](mailto:...)
快速验证
uvx --from . python3 - <<'PY'
import server as s
md = "# 标题\n\n这是**测试**,带[链接](https://example.com)和`代码`。"
print(s.parse_markdown(md, theme_name="default")[:300])
PY缓存目录优先级
WECHAT_MCP_CACHE_DIR环境变量<输入文件目录>/.cache/wechat-mcp/~/.cache/wechat-mcp/(macOS:~/Library/Caches/wechat-mcp/)系统临时目录
Available Tools
3 toolsconvert_markdown_to_wechat_htmlA
Convert Markdown to WeChat-friendly HTML with inline styles for copy/paste publishing workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | No | Theme name: default | tech | warm | apple | wechat-native | default |
| title | No | Optional article title rendered as h1 | |
| markdown | Yes | Source markdown text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the output HTML includes inline styles and is intended for copy/paste workflows, which are behavioral traits. It does not mention potential limitations or details about the conversion process, but for a pure conversion tool, it adequately describes the core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that starts with the main verb 'Convert.' It wastes no words and immediately communicates the essential purpose and a key detail (inline styles).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple parameter set, and the schema covers parameters. There is no output schema, but the description implies the output is HTML. It does not mention the return format in detail, but for this straightforward conversion tool, the description is sufficient given its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all three parameters (markdown, theme, title). The description itself adds no additional parameter information, so the baseline of 3 is appropriate. The schema already explains the parameters sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool converts Markdown to WeChat-friendly HTML, with a specific verb ('Convert') and resource ('Markdown to WeChat-friendly HTML'). It also mentions inline styles and publishing workflows. However, it does not explicitly differentiate from sibling tools like open_wechat_html_in_browser, though the distinct action implies differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context: 'for copy/paste publishing workflows,' indicating when to use this tool. It does not mention alternatives or exclusions, but the use case is well implied. No explicit 'when not to use' is provided, but the stated purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_wechat_themesA
List available rendering themes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool lists available themes, implying a read-only operation, but does not describe the output format, any side effects, or security considerations. It adds minimal behavioral context beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, directly stating the action and subject. It contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and lack of parameters, the description is adequate. However, it does not describe what the returned theme list looks like (e.g., array of strings) or how these themes relate to the sibling tools, leaving some room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline of 4 applies. The description does not need to explain parameter semantics, and it correctly conveys that the tool requires no input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'list' and resource 'available rendering themes', clearly distinguishing it from sibling tools that open HTML or convert Markdown to HTML.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives is provided. The usage is implied by the name and description—when you need to see available themes—but there is no mention of exclusions or alternative tools for related actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_wechat_html_in_browserA
Open a cached WeChat HTML file in the default browser. Select all and copy in the browser, then paste into WeChat editor as rich text.
| Name | Required | Description | Default |
|---|---|---|---|
| cache_path | Yes | cache_path returned by convert_markdown_to_wechat_html |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states that the tool opens a file in a browser, which implies a read-only, non-destructive action, but it does not mention potential side effects like launching an external application, whether the browser will block, or what happens if the file path is invalid. The workflow instruction adds context, but some behavioral details remain implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the core action, and the second provides essential workflow guidance. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool, the description covers the purpose, the workflow, and the necessary context (cached file from conversion). It doesn't elaborate on error handling or return values, but given the tool's simplicity and the schema already documenting the parameter, the description is sufficiently complete. A brief note about the file not existing would be a minor enhancement, but it's not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (cache_path) with a clear description stating it is returned by convert_markdown_to_wechat_html. The tool description adds the word 'cached' and the workflow context, but this is largely redundant with the parameter description. Baseline 3 is appropriate since the schema already provides the essential meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (open), the target resource (cached WeChat HTML file), and the destination (default browser). It also includes the follow-up workflow (select all, copy, paste), making the tool's purpose unambiguous and distinct from the sibling tools that convert or list themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is used after converting Markdown to WeChat HTML, as it references the cached file. The second sentence explains exactly what to do next, effectively telling the user when to use this tool (as an intermediate step) and what actions follow. It doesn't explicitly mention alternatives, but no real alternatives exist for this specific open-and-copy workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool serves a distinct purpose: conversion, opening in the browser, and listing themes. No overlap or ambiguity in their intended use.
All tool names follow a consistent verb-first pattern (open, convert, list) with snake_case, making the set predictable and easy to navigate.
Three tools is an ideal size for a focused Markdown-to-WeChat conversion utility, covering the essential workflow without unnecessary bloat.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Clean, repair, and convert AI-generated Markdown to HTML/PDF/DOCX/PNG; save and share documents.
Convert documents and web pages to clean Markdown: PDF, DOCX, XLSX, EPUB, scanned files, any URL.
Convert Markdown, HTML, and web pages to high-quality PDF with Prince.
Instant markdown sharing. Create, manage, and share documents with password protection.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables parsing and extracting content from WeChat public account articles using browser simulation, supporting multiple output formats (JSON, Markdown, HTML) and media resource extraction.
- AlicenseNot gradedqualityCmaintenanceEnables publishing Markdown articles to WeChat Official Account draft box with 8 elegant themes, automatic image upload, and comprehensive media material management capabilities.5Apache 2.0
- FlicenseNot gradedqualityDmaintenanceExtracts title, author, and content (in Markdown format) from WeChat official account articles via URL, supporting both MCP stdio and HTTP server modes.1
- AlicenseBqualityDmaintenanceConverts Markdown content into beautifully designed knowledge cards with customizable styles and sizes. Also supports fetching and converting WeChat public account articles to Markdown.22080MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/huxuanming/wechat-md-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server