ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Emailens MCP

โดย emailensรุ่น 0.15.0i★ –iบนเครื่องหรือคลาวด์
ชื่อใน registryio.github.emailens/mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Analyze, audit, fix and diff HTML, MJML, Maizzle and React Email across 21 email clients.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: บนเครื่องหรือคลาวด์
  • ช่องทาง (transport): stdio, Streamable HTTP
  • หมวด: แชตและอีเมล
  • ต้องใส่ค่าเหล่านี้: EMAILENS_API_KEY

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:

  1. เปิด Settings → Connectors
  2. กด Add custom connector
  3. วางที่อยู่ด้านล่างแล้วกด Add
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Add2https://…3
https://emailens.dev/api/mcp

หรือรันในเครื่องคุณ

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "emailens": {
      "command": "npx",
      "args": [
        "-y",
        "@emailens/mcp"
      ],
      "env": {
        "EMAILENS_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http emailens https://emailens.dev/api/mcp

หรือรันในเครื่องคุณ

claude mcp add emailens --env EMAILENS_API_KEY='ใส่ค่าของคุณ' -- npx -y @emailens/mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "emailens": {
      "url": "https://emailens.dev/api/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "emailens": {
      "command": "npx",
      "args": [
        "-y",
        "@emailens/mcp"
      ],
      "env": {
        "EMAILENS_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "emailens": {
      "type": "http",
      "url": "https://emailens.dev/api/mcp"
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "emailens": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@emailens/mcp"
      ],
      "env": {
        "EMAILENS_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:

  1. เปิด ChatGPT บนเว็บ → Settings → Connectors (Apps)
  2. กด Create หรือ Add (บางแพ็กเกจต้องเปิด Developer mode ใน Advanced ก่อน)
  3. วางที่อยู่ด้านล่าง ตั้งชื่อ แล้วบันทึก
  4. ถ้าให้ล็อกอิน ให้ล็อกอินกับผู้ทำ
SettingsConnectors1+ Create2https://…3
https://emailens.dev/api/mcp

ชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • EMAILENS_API_KEY ความลับ env
    API key for screenshots and sharing. Get one free at app.emailens.dev/dashboard/api

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub emailens ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    endpoint ตอบ

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    ล็อกอินแบบ OAuth

    ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint

เทียบกับตัวอื่นในหมวด แชตและอีเมลi

  • ดาวมากกว่า 0% ของอีก 1771 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 77% ของอีก 1771 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1771 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Emailens MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: EMAILENS_API_KEY

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.15.0) เข้า registry 8 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Vexa, emailmd, MCP WhatsApp Cloud

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Vexa

โดย Vexa-ai

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

รันบนคลาวด์★ 2,949Apache-2.0อัปเดต 2 เดือนที่ผ่านมา
ติดตั้ง

emailmd

โดย anypost

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

บนเครื่องหรือคลาวด์★ 1,385MITอัปเดต 31 วันที่ผ่านมา
ติดตั้ง

MCP WhatsApp Cloud

โดย codespar

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

รันบนเครื่อง★ 277MITอัปเดต 5 เดือนที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Email rendering analysis for AI assistants

MCP server for email compatibility analysis. Analyze, preview, diff, and fix emails across 21 email clients, plus capture real screenshots and create shareable links with an optional API key.

Send HTML, MJML, Maizzle or React Email. Set format and the template is compiled before analysis, so what gets checked is the HTML your readers actually receive.

Why your assistant needs this: across the 298 CSS and HTML features we track, only 6 are fully supported in every major email client (see the data). Ask Claude to check your email before you send it.

Built on @emailens/engine. Also available as a GitHub Action.

Install

npx -y @emailens/mcp

Setup

Claude Desktop

Add to claude_desktop_config.json:

{

"mcpServers": { "emailens": { "command": "npx", "args": ["-y", "@emailens/mcp"] } } }

Claude Code
claude mcp add emailens -- npx -y @emailens/mcp
With API Key (optional, unlocks screenshots + sharing)
{

"mcpServers": { "emailens": { "command": "npx", "args": ["-y", "@emailens/mcp"], "env": { "EMAILENS_API_KEY": "ek_live_..." } } } }

Get your free API key at app.emailens.dev/dashboard/api.

Remote (no install)

Use the hosted endpoint: no npm or Node.js needed. API key required.

{

"mcpServers": { "emailens": { "url": "https://app.emailens.dev/api/mcp", "headers": { "Authorization": "Bearer ek_live_..." } } } }

Tools

Local Tools (no account needed)
preview_email

Full email compatibility preview: transforms HTML for 21 clients, analyzes CSS, generates scores, simulates dark mode, checks inbox preview and email size.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML source
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
clientsstring[]NoFilter to specific client IDs
formatenumNo"html", "jsx", "mjml", "maizzle"
analyze_email

Quick CSS compatibility analysis; returns per-client scores and one finding per problem. Faster than audit_email when you only need CSS compatibility.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML source
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
formatenumNoInput format
detailenumNo"summary" (default) or "full"
clientsstring[]NoOnly report these client IDs
targetingPolicyenumNo"progressive" (default), "strict", or "lenient"

One finding per problem, not one per client. The engine reports per client because a score is per client, and per selector because a fix is per selector. On an ordinary newsletter border-radius arrives twelve times (two clients that drop it, six selectors that use it) with the same sentence in every copy. That was 286KB of JSON, about 73,000 tokens, for an 11KB email.

Findings group by property, severity and message, listing the clients affected, with positions merged across all of them. The same email now returns 40KB.

{

"property": "border-radius", "severity": "warning", "clients": ["outlook-windows", "outlook-windows-legacy"], "message": "Does not support \"border-radius\". Round corners can be used in VML…", "fixType": "structural", "hasFix": true, "loc": { "line": 61, "column": 28, "offset": 2753, "length": 171 }, "alsoAtLines": [62, 64, 75, 78, 87] }

Fix snippets are not included; they were 93KB of that 286KB, and fix_email produces them for the issues you decide to act on. hasFix tells you one is available; fixType tells you whether the repair is markup or CSS.

Pass detail: "full" for the engine's per-client shape with snippets, and clients: ["gmail-web", "outlook-windows"] to report only what you care about: the fastest further saving, roughly halving the response for two clients. Scores stay whole-email either way: narrowing the report does not change what the email is worth elsewhere. An unknown client ID is rejected by name; an empty result would read as "this email is fine for that client".

Source positions. For HTML input, every warning carries loc (line, column, offset, length) for the first occurrence, plus alsoAtLines for any others, so an assistant can edit the exact source and knows where the rest are. audit_email positions its other findings the same way.

{

"property": "border-radius", "loc": { "line": 7, "column": 8, "offset": 142, "length": 25 }, "alsoAtLines": [12, 19] }

Later occurrences are line numbers rather than full positions on purpose: this response is read by a model paying for every token, and a real newsletter can produce over a thousand occurrences; carrying them all in full nearly doubles the payload.

Positions are reported for html input only. JSX, MJML and Maizzle are compiled before analysis, so a line number would point into generated output rather than the file you have open: the tools omit it instead of returning one that looks authoritative.

audit_email

Comprehensive quality audit: CSS compatibility, spam scoring, link validation, accessibility, images, inbox preview, size (Gmail clipping), template variables, content overflow, visual bugs, dark-mode and mobile text contrast, design consistency, and client targeting.

The last three cover what a light desktop preview cannot show: text that disappears when a client forces dark mode or when the email's own dark block repaints a surface without re-colouring the text on it, contrast below the email's breakpoint, and colours that differ by value but not to a reader.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML source
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
formatenumNoInput format
detailenumNo"summary" (default) or "full"
clientsstring[]NoOnly report these client IDs
skipstring[]NoChecks to skip (e.g. ["spam", "images"])
targetingPolicyenumNo"progressive" (default), "strict", or "lenient"
emailTypeenumNo"transactional" (no unsubscribe link required) or "marketing". Omitted: guessed from the content
previousHtmlstringNoThe design to hold this version to, usually your first draft. Omitted: the first version of this email audited in the session. What the edits removed comes back as designRemovals

Fix error and warning findings. info findings are not problems: the email falls back safely there, so never remove responsive (@media) or dark-mode CSS to clear them.

fix_email

Generate a structured fix prompt for compatibility issues. Returns markdown with fix instructions that the AI can apply directly.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML to fix
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
formatenumNoControls fix syntax
scopeenumNo"all" or "current"
selectedClientIdstringNoClient ID for scoped fixes
list_clients

List all 21 supported email clients with IDs, names, engines, and dark mode support.

diff_emails

Compare two email HTML versions; shows score changes, fixed issues, and introduced issues per client.

ParameterTypeRequiredDescription
before / beforePathstringOne ofOriginal email source, or its file
after / afterPathstringOne ofModified email source, or its file
formatenumNoInput format
check_deliverability

Check email deliverability for a domain: SPF, DKIM, DMARC, MX, BIMI records with a score and actionable issues.

ParameterTypeRequiredDescription
domainstringYesDomain to check (e.g. "company.com")
Hosted Tools (require EMAILENS_API_KEY)
capture_screenshots

Capture real email screenshots across 21 clients in real browsers. Screenshots are hosted on CDN.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML source
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
formatenumNoInput format
clientsstring[]NoFilter clients
modesstring[]No["light"], ["dark"], or ["light", "dark"]
titlestringNoName for the preview

Free plan: 30 previews/day. Sign up

share_preview

Create a shareable link. Recipients see the full analysis without an account.

ParameterTypeRequiredDescription
htmlstringOne ofEmail HTML source
pathstringOne ofAbsolute path to the source file instead of html (.html, .htm, .mjml, .jsx, .tsx, .vue); the extension sets format
titlestringNoDisplay title
formatenumNoInput format

Requires Dev plan ($9/mo). Share links expire after 7 days (Dev) or never (Pro).

Template formats

format accepts html (the default), mjml, maizzle and jsx (React Email). maizzle is an HTML template or a Vue single-file component. A pasted Vue file with no format is compiled as maizzle. Anything but html is compiled before analysis and also decides the syntax the fix snippets come back in.

Compiling matters more than it sounds. An email client renders the *output*, so that is what has to be checked: handed a raw document, an HTML parser finds no CSS in it and reports a perfectly clean email. An answer like that is worse than an error, because an assistant will repeat it.

The compilers are not bundled. MJML alone pulls 56MB, and this server is usually started with npx, so the engine keeps them as optional peer dependencies:

npm install mjml                                              # MJML

npm install @maizzle/framework@5 # Maizzle HTML npm install @maizzle/framework@6 # Maizzle Vue single-file components npm install sucrase react @react-email/components @react-email/render # React Email

They have to be installed where t

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx