SkillTide Submit
Official description7 sourcesMCP servers8d ago
drsound/markdown-to-whatsapp

drsound/markdown-to-whatsapp

Convert Markdown into WhatsApp formatting: tables drawn to fit the phone's monospace width. Web page, library, CLI and MCP server.
View on GitHub ↗Direct link · no redirect page
Config template (adjust for your client)
claude mcp add markdown-to-whatsapp -- npx -y markdown-to-whatsapp
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
0 ★ · drsound/markdown-to-whatsapp · read from the GitHub search API · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository drsound/markdown-to-whatsapp;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
Third-party quality signals

Markdown to WhatsApp Converter

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

Convert standard Markdown into WhatsApp's formatting syntax — as a web page, an npm library, a command line tool or an MCP server for agents.
**➡️ Go to the Live Tool**
npm i markdown-to-whatsapp · npx markdown-to-whatsapp mcp
---
Purpose of this tool
WhatsApp uses a non-standard syntax for text formatting (e.g., *bold*, _italic_, ~strikethrough~). This is similar, but not identical, to standard Markdown.
This tool provides a simple way to convert text from Markdown sources (like text editors, Google Docs, etc.) into the format that WhatsApp expects, saving the need for manual correction.
The entire conversion process runs locally in your browser using JavaScript, and the parser ships with the page. **No data is ever sent to a server** — the only request that leaves the page is for the font.
Supported conversions
The script uses the marked library for proper AST-based parsing and handles:
Text styles
* **Bold:** **text** → *text*
* **Italic:** *text* or _text_ → _text_
* **Strikethrough:** ~~text~~ → ~text~
* **Inline code:** code → code
* **Bold+Italic:** ***text*** → _*text*_ (preserves both styles)
Headings
Headings are converted to bold text with level-specific emoji prefixes:
* # H1 → *📌 H1*
* ## H2 → *🟠 H2*
* ### H3 → *🟡 H3*
* And so on...
The emoji prefix can be turned off in the UI (Headings · Emoji), leaving plain *Title*.
Lists
* **Unordered lists:** Uses * prefix with ◦ for nested levels
* Level 1: * Item
* Level 2: * ◦ Item
* Level 3: * ◦ ◦ Item
* **Ordered lists:** Preserves numbering, with ◦ marking nested levels
* 1. A / ◦ 1. A1 / ◦ ◦ 1. A1a / 2. B
* **Task lists:** - [x] → ☑, - [ ] → ☐, also inside ordered lists (1. ☑ done)
* **Loose items:** multiple paragraphs of one item are joined on a single line
* **Block content in items:** code blocks, blockquotes and nested lists are emitted on their own lines below the item
Bubble width
A WhatsApp bubble fits a fixed number of monospace characters on one line — about **26** on a 360 px phone, which is the default. Measure yours by sending yourself a code block and counting where it breaks, then set **Width** in the bar to that (the ? next to it says the same). The field accepts 10 to 80: no phone is outside that range.
The number is a property of the phone, not of any one table, so it governs everything monospace: tables degrade to stay under it, and the preview draws every code block exactly that wide, wrapping where the recipient's WhatsApp will wrap.
Tables
A table is rendered in one of **two styles**, chosen in the UI for the whole document or for one table at a time:
1. **Auto** (default): a drawn table inside a monospace block, as wide as it needs and never wider than the bubble — and the bulleted list when no box can be drawn at all.
2. **List**: always the bulleted list.
**How the list is laid out**
A list can group the cells in three ways. The converter **guesses** from the headers and the bold cells, and the guess can be overridden per table (Layout: Auto · Rows · Columns · Pairs):
* **Pairs** — 2 columns, whatever the headers: each row is a key: value line. Spelling the headers out on every row reads worse than Italy: Rome in nearly every table.
* **Columns** — 3+ columns whose first header is empty or names a property ("Feature", "Spec", "Parameter"…), or whose first column is bold: a comparison matrix, where the things compared are the columns, so each column becomes a group.
* **Rows** — everything else: one group per row, labelled by its first cell.
The property words are matched word by word ("Species" does not count as "spec") in **11 languages**: English, Italian, Spanish, French, Portuguese, German, Russian, Arabic, Hindi, Bengali, and Indonesian. Pairs need exactly two columns; asked for on a wider table, it reads as Rows.
**How the box degrades**
The box is not drawn at any width: it degrades until it fits monoWidth, and becomes a list when nothing does. There is no way to ask for a table wider than the bubble.
1. Full box, removing padding column by column (right-side first, then left-side).
Source
awesome · https://github.com/drsound/markdown-to-whatsapp
Browse by field
MCP servers
added
yesterday

More in MCP servers

All 5,525 in MCP servers →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index