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

Hub

โดย ItsBreezeรุ่น 1.1.0i★ –iรันบนคลาวด์
ชื่อใน registryio.github.ItsBreeze/hub

ติดตั้ง

ภาพรวม

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

Multiple Google accounts (Gmail, Calendar, Drive, Contacts, Tasks) in one Claude connector.

สามเสาของ PopNx MCP

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

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

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

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

ติดตั้ง

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

ก่อนติดตั้ง

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

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย

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

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

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

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

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

claude mcp add --transport http hub https://hub.grounders.app/mcp

เปิดใน Cursor

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

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

{
  "mcpServers": {
    "hub": {
      "url": "https://hub.grounders.app/mcp"
    }
  }
}

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

เปิดใน VS Code

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

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

{
  "servers": {
    "hub": {
      "type": "http",
      "url": "https://hub.grounders.app/mcp"
    }
  }
}

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

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

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

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

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

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

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

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

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

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

  • ✓ ผ่าน

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

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

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

    ยังมีคนดูแล

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

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

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

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

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

    endpoint ตอบ

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

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

    ล็อกอินแบบ OAuth

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

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

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

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

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

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

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

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

Hub ปลอดภัยไหม?

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

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

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

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

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

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

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

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

โปรแกรมที่รองรับ 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Hub — a multi-account Google connector for Claude

A remote MCP server that gives Claude access to several Google accounts at once — Gmail, Calendar, Drive, Contacts and Tasks. Claude's built-in Google connectors each hold exactly one account; connecting a second replaces the first. This holds as many as you link, and every search tool fans out across all of them in a single call.

AOL mailboxes link too. They are reached over IMAP and SMTP with an app password, sit behind the same mail tools, and are searched together with Gmail — see AOL mailboxes.

Run it yourself and it holds your Google tokens in your own database, encrypted, and talks to Google directly — nothing passes through a third party. Or try the hosted one first.

Node and Postgres, six tables. Dependencies are Express, pg and jsonwebtoken, plus imapflow, mailparser and nodemailer for AOL — IMAP, MIME and SMTP are protocols, not parsing jobs, and each library is the maintained standard for its one. Document text extraction — PDF, Word, Excel, PowerPoint, OpenDocument — uses only Node's standard library.

Status: running in production against real mailboxes, with 564 automated checks. Built for one person's needs and published because the one-account limit is not unique to them. Treat it as working software with a small user base, not as a hardened product.

Try the hosted one

A copy runs at hub.grounders.app. It is in testing, and free while it is.

  1. In Claude: Settings → Connectors → Add custom connector, with the URL https://hub.grounders.app/mcp. ChatGPT, Cursor and other MCP clients take the same URL as a remote MCP server.
  2. Sign in with Google once when asked.
  3. Link each account at hub.grounders.app/gmail/connect.

Google's review of the app is still in progress, so you will see an "unverified app" screen the first time.

Quick start

git clone https://github.com/ItsBreeze/google-multi-account-mcp.git

cd google-multi-account-mcp npm install cp .env.example .env # fill it in — see Setup below npm run migrate # creates the six tables npm start

Then deploy it somewhere with a public HTTPS URL (Railway, Fly, Render, a VPS — anything that runs Node and reaches Postgres) and follow Setup.

Endpoints

MethodPathDescription
POST/mcpMCP Streamable HTTP endpoint (Bearer auth)
GET/mcp/oauth/authorizeConsent screen — operator password
POST/mcp/oauth/tokenToken + refresh grants
POST/mcp/oauth/registerRFC 7591 dynamic client registration
GET/.well-known/oauth-protected-resourceRFC 9728 discovery
GET/.well-known/oauth-authorization-serverRFC 8414 discovery
GET/gmail/connectLink an account (repeat per account)
GET/POST/gmail/aolLink an AOL mailbox with an app password (checked against AOL before it is stored)
POST/gmail/unlinkUnlink one, revoking the grant at Google (or deleting the stored AOL app password)
GET/POST/ai/k/ Reply link for an AI agent without MCP: GET reads its thread, POST {"text"} answers

Tools (59)

Every tool takes an optional account. On a search, omitting it fans the call out across every linked account and merges the results — the thing no single-account connector can do. On a write it names the one account to act on, so "create this event" is never ambiguous about whose calendar it lands in.

Mail — Gmail and AOL (23)
AreaToolsNotes
Accountslist_accountsWhich accounts are linked, with token health
Searchsearch_messages, search_threadsGmail query syntax, merged and date-sorted across accounts. search_threads returns one row per conversation — subject, every participant, message and unread counts, last activity — for "where does my thread with X stand" without pulling bodies
Readget_message, get_thread, get_attachmentBodies flattened to text and capped at 60 KB; attachment metadata included. `get_attachment` extracts text from PDF, Word, Excel, PowerPoint and OpenDocument attachments, so an emailed contract or invoice is readable directly; anything else comes back base64 (2 MB cap)
Sendsend_message, reply_to_message, forward_messageReplies thread via In-Reply-To/References; forwards carry attachments (10 MB cap, skipped ones named); optional from + fromName send as a verified Gmail send-as alias
Draftscreate_draft, list_drafts, get_draft, update_draft, send_draft, delete_draftcreate_draft with reply_to_message_id drafts an in-thread reply for review — the safe path for AI-written mail; create_draft and send_draft also take from/fromName (send_draft rewrites the draft's From first, Gmail only)
Labelsmodify_labels, list_labels, create_label, update_label, delete_labelmodify_labels takes message_id or thread_id; removing INBOX archives
Trash & spamtrash_message, untrash_message, mark_spamAll take message_id or thread_id; trash is recoverable for 30 days; mark_spam with unmark: true restores
Calendar (9)
AreaToolsNotes
Readlist_calendars, list_events, search_events, get_eventlist_events merges every linked calendar into one timeline, defaulting to the next 7 days; recurring series are expanded into actual occurrences, so a weekly standup appears on each day it happens
Writecreate_event, update_event, delete_eventTimes are ISO 8601; a bare YYYY-MM-DD means all-day. update_event patches — unmentioned fields keep their value. Attendees are not emailed unless send_updates says so
Repeatscreate_event, update_event, delete_eventrepeat: "weekly" (with repeat_count or repeat_until) covers the ordinary cases; recurrence takes full RFC 5545 rules. On a repeating event, scope chooses one occurrence or the whole series — see below
RSVPrespond_to_eventaccepted / declined / tentative, as the account that was invited; notifies the organiser by default
Schedulingsuggest_timeFree slots across every linked calendar at once — busy anywhere means busy. Returns whole gaps rather than chopping a 3-hour opening into six half-hour slots
Drive (15)
AreaToolsNotes
Findsearch_files, list_recent_files, get_file_metadata, list_shared_drivesText search over names and contents, with optional raw Drive query syntax in filter. Covers My Drive and every shared drive at once; drive_id narrows to one. Trashed files excluded unless you ask for them
Readread_file_content, download_file_contentDocs, Sheets and Slides exported (Sheets as CSV); PDF, Word, Excel, PowerPoint and OpenDocument extracted to text; ocr: true routes scans and images through Google's own conversion; include_comments returns the comment threads. download_file_content takes export_as — turn a Doc into a PDF or docx, a Sheet into xlsx. Text caps at 60 KB, binaries at 2 MB base64
Writecreate_file, update_file, copy_fileText via content, binary via content_base64. convert_to makes Drive convert the upload into an editable Doc, Sheet or Slides — or a folder. update_file renames, moves and describes; overwriting contents additionally needs replace_content: true. On a file you do not own it edits a private copy — see below
Commentcomment_on_fileLeave a comment on a draft, or reply to a thread — the review path that changes nothing in the document
Sharingget_file_permissions, share_file, unshare_fileShares with one named person at reader/commenter/writer. Domain-wide and public-link sharing are off unless DRIVE_ALLOW_PUBLIC_SHARING=true, and then still need confirm_public. `unshare_file` withdraws access — by person, by domain, or by removing the public link
Removetrash_file, untrash_fileTrash and restore, within the 30-day window — see the scope note below
Contacts (2) and Tasks (5)
AreaToolsNotes
Contactssearch_contacts, list_contactsRead-only. Searches saved contacts and people the account has corresponded with, so "email Ann" resolves to an address instead of a guess
Taskslist_task_lists, list_tasks, create_task, update_task, delete_tasklist_id defaults to the account's first list. update_task with completed: true ticks a task off; false reopens it. Google Tasks has no trash, so delete_task is permanent
AI agents (5)

AIs talk to each other through Hub instead of by email. Every message has a thread, a hop count and a read time, so nothing is lost to subject matching and a sender can see whether it was read.

AreaToolsNotes
Talkai_send, ai_inbox, ai_threadai_send with thread answers in place and to defaults to the other side. ai_inbox with wait_seconds (up to 50) holds until a reply arrives. Threads stop at hop 10
Agentsai_agents, ai_set_agentAn agent can be woken by email (one JSON object from a linked mailbox, subject template like Claude -> Lute (hop {hop})) or by webhook (POST {"text"}, headers stored encrypted). A failed wake keeps the message unread and tells the sender

An agent without MCP needs no account: each wake carries a signed reply_url (30 days, one owner, one agent). POST {"text":"..."} to it to answer, GET it to read the thread, or POST {"new_thread":true,"to":"claude","text":"..."} to start a new conversation.

AOL mailboxes

Link one at /gmail/aol with the address and an app password generated at AOL Account Security — AOL has no OAuth for third-party mail clients outside an approved partner list, so this is the only door. The password is signed in to IMAP before it is stored (one app password covers IMAP and SMTP), so a typo is reported on the link page, not on Claude's first tool call. It is stored AES-256-GCM encrypted under TOKEN_ENC_KEY, like the Google tokens. Hosts come from a preset in code (imap_providers.js), never from the request.

Sending goes through a relay where SMTP is blocked. Railway blocks outbound SMTP below its Pro plan, so hub.grounders.app hands each AOL submission over HTTPS to a Cloudflare Worker (smtp-relay/) that speaks SMTP to smtp.aol.com:465. The Worker stores and logs nothing and reaches only preset hosts. It is used when SMTP_RELAY_URL and SMTP_RELAY_TOKEN are set; without them the server talks SMTP directly, as a self-hosted copy that can reach port 465 should. Gmail sending is unaffected — it goes through Google's API.

The 23 mail tools work on an AOL mailbox unchanged, and a search with no account covers Gmail and AOL in one merged, date-sorted result. What differs is IMAP itself, and the tools say so rather than pretend:

GmailAOL over IMAP
Labels, several per messageFolders, one per message. UNREAD/STARRED are flags; INBOX, SPAM, TRASH and folder names move the message. A change that would need two folders is refused; IMPORTANT and categories do not exist
Ids are permanentAn id is folder + UID, so a move gives the message a new id — every moving call returns it as new_message_id. An id from a folder the server renumbered is refused as stale, never resolved to a different message

| Gmail query syntax | Translated to IMAP SEARCH: from: to: cc: bcc: subject: is:unread/read/starred has:attachment newer_than: older_than: after: before: in: label: larger: smaller:, phrases, OR, -, parentheses. Anything el

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

ถาม PopNx