multi-mail@0.2.1
VERIFIED· install onlyPublisher claims: "Enables searching, reading, drafting, and sending email across multiple Gmail accounts from Claude Desktop, Claude Code, and ChatGPT, including cross-account search and threaded replies." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.
Before you give it your token
- It will ask for
CREDENTIALS_PATHGOOGLE_CLIENT_SECRETMCP_AUTH_TOKENMULTI_MAIL_CREDENTIALSConfiguration, not credentials: GOOGLE_CLIENT_ID, MULTI_MAIL_DEFAULT, MULTI_MAIL_HOME, MULTI_MAIL_SEND, MULTI_MAIL_TZ- Where it talks to
- no vendor host named in the codeAlso google.com — not the publisher's domain; check what for before connecting.
- What the honeypot saw
- no credential files read · no network
- What we could not test
- use of the skill by an agent
Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names google.com as well as its own vendor. The guard injects CREDENTIALS_PATH, GOOGLE_CLIENT_SECRET, MCP_AUTH_TOKEN, MULTI_MAIL_CREDENTIALS only into requests to the host you bind (and its subdomains) and refuses the rest.
Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-08 and scored it 81/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
<summary>הרצה מקוד המקור</summary> ```bash git clone https://github.com/yybd/multi-mail-mcp.git multi-mail && cd multi-mail && npm install && npm run build ``` Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.<summary>Running from source instead</summary> ```bash git clone https://github.com/yybd/multi-mail-mcp.git multi-mail && cd multi-mail && npm install && npm ruFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.const srv = spawn('npx', ['tsx', 'src/http.ts'], { env: { ...env, MCP_AUTH_TOKEN: TOKEN, PORT: String(port) }, stdio: 'pipe' });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if (!refresh) throw new Error(`${acc.email} has no refresh token — reconnect it: npx -y @yybd/multi-mail-mcp add`);Fix: Pin versions and sources; vendor anything fetched at install time.if (accounts.length === 0) throw new Error('No Gmail accounts are connected. Run: npx -y @yybd/multi-mail-mcp add');Fix: Pin versions and sources; vendor anything fetched at install time.(או `ngrok http 3333`.) ב-ChatGPT: **Settings → Apps & Connectors → Advanced → Developer mode** → **Create** →Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.`npx -y @yybd/multi-mail-mcp add ${acc.email} --calendar`Fix: Pin versions and sources; vendor anything fetched at install time.const bad = spawn('npx', ['tsx', 'src/http.ts'], { env: { ...env, MCP_AUTH_TOKEN: '' } });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`Access to ${acc.email} has expired or was revoked. Reconnect: npx -y @yybd/multi-mail-mcp add ${acc.email}. ` +Fix: Pin versions and sources; vendor anything fetched at install time.if (!accounts.length) return console.log(`No accounts connected yet. Run: npx -y @yybd/multi-mail-mcp add\n(credentials: ${CREDENTIALS_PATH})`);Fix: Pin versions and sources; vendor anything fetched at install time.(או `ngrok http 3333`.) ב-ChatGPT: **Settings → Apps & Connectors → Advanced → Developer mode** → **Create** →Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.throw new Error('No Gmail accounts are connected. Run: npx -y @yybd/multi-mail-mcp add');Fix: Pin versions and sources; vendor anything fetched at install time.…veral accounts of one person in one session isn't documented | yes | yes | yes (developer mode) | only you and Google | | [navbuildz/gmail-mcp-server](https://github.com/navb…Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.| [google_workspace_mcp](https://github.com/taylorwilsdon/google_workspace_mcp) (~3.5k ⭐) | ריבוי *משתמשים*. כמה תיבות של אדם אחד באותו סשן לא מתועד | כן | כן | כן (Developer Mode) | רק אצלך ובגוגל |Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.for (const how of [{ args: ['tsx', 'src/main.ts', '--drafts-only'], env }, { args: ['tsx', 'src/main.ts'], env: { ...env, MULTI_MAIL_SEND: 'off' } }]) {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.`npx -y @yybd/multi-mail-mcp add ${acc.email} --labels`Fix: Pin versions and sources; vendor anything fetched at install time.| [google_workspace_mcp](https://github.com/taylorwilsdon/google_workspace_mcp) (~3.5k ⭐) | ריבוי *משתמשים*. כמה תיבות של אדם אחד באותו סשן לא מתועד | כן | כן | כן (Developer Mode) | רק אצלך ובגוגל |Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.throw new Error('No account has calendar enabled. Run: npx -y @yybd/multi-mail-mcp add <account> --calendar');Fix: Pin versions and sources; vendor anything fetched at install time.Usage: npx -y @yybd/multi-mail-mcp [command]Fix: Pin versions and sources; vendor anything fetched at install time.assert.equal(safeFilename('../../etc/passwd'), 'passwd');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log('✓ drafts-only (flag and env): no send tools');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.'so the HTTP endpoint will not start without one. Generate one with: npx -y @yybd/multi-mail-mcp token'Fix: Pin versions and sources; vendor anything fetched at install time.In ChatGPT, open **Settings → Apps & Connectors → Advanced**, turn on **Developer mode**, then click **Create** and fill in:Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.In ChatGPT, open **Settings → Apps & Connectors → Advanced**, turn on **Developer mode**, then click **Create** and fill in:Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.…veral accounts of one person in one session isn't documented | yes | yes | yes (developer mode) | only you and Google | | [navbuildz/gmail-mcp-server](https://github.com/navb…Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.