プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Markdown To WhatsApp

作者:drsoundバージョン 1.0.3i★ –iパソコンで動く
レジストリ名io.github.drsound/markdown-to-whatsapp

インストール

概要

作者による説明(英語の原文)

Convert Markdown into WhatsApp formatting: tables drawn to fit the phone's monospace width.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: チャット・メール

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.jsのインストール(npxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "markdown-to-whatsapp": {
      "command": "npx",
      "args": [
        "-y",
        "markdown-to-whatsapp",
        "mcp"
      ]
    }
  }
}

ターミナルでこれを実行します

claude mcp add markdown-to-whatsapp -- npx -y markdown-to-whatsapp mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "markdown-to-whatsapp": {
      "command": "npx",
      "args": [
        "-y",
        "markdown-to-whatsapp",
        "mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "markdown-to-whatsapp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "markdown-to-whatsapp",
        "mcp"
      ]
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント drsound で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

チャット・メールのほかのサーバーとの比較i

  • このカテゴリのほかの1787件のうち0%よりスターが多い
  • このカテゴリのほかの1787件のうち26%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1787件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Markdown To WhatsAppは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.0.3)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Vexa, emailmd, MCP WhatsApp Cloud

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Vexa

作者:Vexa-ai

Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.

クラウドで動く★ 2,949Apache-2.02 か月前更新
インストール

emailmd

作者:anypost

Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.

パソコンでもクラウドでも★ 1,385MIT32 日前更新
インストール

MCP WhatsApp Cloud

作者:codespar

MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API

パソコンで動く★ 277MIT5 か月前更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Markdown to WhatsApp Converter

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](https://drsound.github.io/markdown-to-whatsapp/)

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.
   +--------+-------------+

| Name | Description | +========+=============+ | Value | Details | +--------+-------------+

  1. 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.
  * *CPU:* Intel Xeon
  • *RAM:* 64 GB
  • *Storage:* 1 TB SSD
  • 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.
  * *Proxmox*
  • ◦ _Kernel:_ KVM
  • ◦ _License:_ AGPL v3
  • *ESXi*
  • ◦ _Kernel:_ VMkernel
  • ◦ _License:_ Proprietary
  • Rows — everything else: one group per row, labelled by its first cell.
  * *Product:* Laptop
  • ◦ _Price:_ $999
  • ◦ _Stock:_ 50
  • *Product:* Smartphone
  • ◦ _Price:_ $599
  • ◦ _Stock:_ 100

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).
  2. Compact borderless style, again removing padding progressively:
    Head1|Head2       |Head-N

------+------------+------ A |BBBBBBBBBBBB|C

3. **Wrapped** box, full borders first and then compact: each column gets at least its longest word, the remaining width is shared proportionally and cells are word-wrapped. Rows grow as tall as they need — there is no limit — and a rule is always drawn between them, since two wrapped rows without one run into each other. Cells align to the top of their row.

+---------+--------------+ | Feature | Notes here | +=========+==============+ | Alpha | short note | +---------+--------------+ | Beta | a slightly | | | longer note | +---------+--------------+

4. **Bulleted List**, when not even the longest words fit (a long URL, five columns at 26 characters…).

Whether a tall wrapped box reads better than the list is a judgement the preview lets you make: that table's own panel switches it to List. A table that cannot fit any box says so in its panel and offers the list layout instead of a style that could not change anything.

Additional table behaviour

  • Column widths are measured in display cells, so emoji and CJK text stay aligned (✅, 日本語 count as two columns) — as far as the phone allows: those glyphs come from a fallback font too, so the alignment is best effort, unlike the ASCII borders.
  • Column alignment (:---, :---:, ---:) is honoured in the box and compact styles.
  • Header-only tables render without an empty body or a doubled border.
  • `

inside a cell becomes a space, and an escaped \| becomes ¦` so it cannot fake an extra column.

  • Borders are plain ASCII (+-|=), on purpose. WhatsApp's monospace font has no box-drawing glyphs: a phone takes ─ and ┌ from whatever fallback font it has, at whatever width that font gives them, and a rule of 26 of them wraps onto two lines while the text rows next to it do not. +-| are the only characters whose width a monospace font actually promises — which is also why the escaped pipe becomes ¦, a Latin-1 character from the same font as à.
  • Row separator (default off) draws a rule between body rows, in every boxed and compact style; a wrapped table draws it regardless.
  • The style, the row separator and the list layout can be set per table: hovering a table in the preview reveals its own controls, which start from the document default and override it for that table only, showing only the ones that still apply (the separator on a box, the layout on a list). The width is not among them — there is one bubble, and it is the same for every table. A table carrying its own settings keeps a dashed mark, since the controls at the top of the panel deliberately leave it alone — its "reset" button hands it back to them. Overrides follow the table by its header text, so adding or removing a table above does not move them. A table nested inside a list item or a blockquote always follows the document default.
Code blocks

Fenced and indented blocks reach WhatsApp verbatim: the converter never re-wraps or re-indents them, since a line break inside code is content, not layout. WhatsApp wraps long lines by itself, mid-word, and a chat bubble has no horizontal scroll — so the preview reproduces that wrap at monoWidth instead of scrolling, and shows exactly where the recipient will see the break.

Other elements
  • Links: [text](url) → text (url); autolinks, [https://x](https://x), [url](url) and render as the bare URL or address (no duplication, no mailto: leak)
  • HTML entities: decimal and hexadecimal references plus the common named ones — Latin-1 letters, punctuation and symbols (café → café, © → ©, A → A). Rarer references (Greek, mathematical) are left as written.
  • Inline HTML: / → *, / → _, / → ~, → ` , `

` → newline; comments and other tags are stripped

  • HTML blocks: tags removed, block boundaries turned into newlines, entities decoded
  • Blockquotes: Preserves > prefix, supports nesting (> > nested)
  • Code blocks: Preserved with triple backticks; a triple backtick inside the content is replaced with ˋˋˋ so it cannot close the block early
  • Horizontal rules: --- → ───────────────
  • Escape characters: Uses Unicode look-alikes (∗, _, ∼) so WhatsApp won't interpret them as formatting
WhatsApp-specific handling
  • Partial-word formatting is ignored: super**bold**ly → superboldly (WhatsApp doesn't support mid-word formatting)
  • Punctuation is a valid boundary: **Name**: value → *Name*: value, and so are (**x**) and **end**.

How to use

  1. Open the web page: https://drsound.github.io/markdown-to-whatsapp/
  2. Paste, type or drop a `.md` file into the left panel. "Try an example" fills it with a sample message.
  3. The right panel shows the message in a WhatsApp bubble, exactly as the recipient will see it; "view raw syntax" shows the text that will be copied. The two panels scroll together — whichever is under the pointer leads — and while you type the preview follows the cursor.
  4. "Copy for WhatsApp", or "Share on WhatsApp" to open a chat with the message ready via wa.me. A very long message does not fit in a link — browsers cut URLs past a few thousand characters — so Share steps aside and says to copy instead.

The interface follows the operating system's light or dark theme; the header toggle overrides it and that choice is remembered. The options bar has one section per kind of content, each shown only while the text contains it: Bubble (the width, when there is a table or a code block), Tables (style and separator) and Headings (the emoji prefix). A control that another setting makes pointless — the separator in List style, the width with nothing monospace to draw — is dimmed in place rather than removed, so the bar keeps its shape. The options are stored in localStorage along with the theme. Per-table choices are not stored: they belong to the text being converted.

Use it from code, the shell or an agent

The same converter is published on npm as `markdown-to-whatsapp` (Node 20 or newer). The options are the ones described above, with the same names and defaults, and are listed in full at the end of this section.

Library
npm install markdown-to-whatsapp
imp

冒頭だけを表示しています。続きはリポジトリで読めます

PopNxに聞く