MCP server for multi-account Gmail access with built-in OAuth onboarding.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http · sse counts 24 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
add_labels
-
archive_emails
-
block_sender
-
create_draft
-
create_label
-
delete_drafts
-
delete_label
-
get_email_thread
-
get_labels
-
list_accounts
-
list_blocked_senders
-
list_drafts
-
mark_as_read
-
mute_thread
-
read_emails
-
remove_labels
-
search_drafts
-
search_drive_files
-
search_emails
-
send_draft
-
send_email
-
trash_emails
-
unblock_sender
-
unsubscribe_from_email
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit ced0138 · analyzer v33 · 3w ago
danger signals8
- over-broad OAuth scope https://mail.google.com/
expected for this server's purpose
tszaks-ghub-ced0138/dist/gmail-client.js :7
'https://mail.google.com/', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
tszaks-ghub-ced0138/dist/gmail-client.js :11
export const DRIVE_FULL_SCOPE = 'https://www.googleapis.com/auth/drive'; - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
tszaks-ghub-ced0138/dist/gmail-client.js :12
export const SHEETS_SCOPE = 'https://www.googleapis.com/auth/spreadsheets'; - over-broad OAuth scope https://www.googleapis.com/auth/documents
expected for this server's purpose
tszaks-ghub-ced0138/dist/gmail-client.js :13
export const DOCS_SCOPE = 'https://www.googleapis.com/auth/documents'; - over-broad OAuth scope https://mail.google.com/
expected for this server's purpose
tszaks-ghub-ced0138/src/gmail-client.ts :8
'https://mail.google.com/', - over-broad OAuth scope https://www.googleapis.com/auth/drive
expected for this server's purpose
tszaks-ghub-ced0138/src/gmail-client.ts :16
'https://www.googleapis.com/auth/drive' as const; - over-broad OAuth scope https://www.googleapis.com/auth/spreadsheets
expected for this server's purpose
tszaks-ghub-ced0138/src/gmail-client.ts :19
'https://www.googleapis.com/auth/spreadsheets' as const; - over-broad OAuth scope https://www.googleapis.com/auth/documents
expected for this server's purpose
tszaks-ghub-ced0138/src/gmail-client.ts :22
'https://www.googleapis.com/auth/documents' as const;
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 17
filesystem 11
- fs tszaks-ghub-ced0138/dist/accounts.js :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/dist/attachments.js :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/dist/config.js :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/dist/gmail-client.js :3
import { promises as fs, createReadStream } from 'node:fs'; - fs tszaks-ghub-ced0138/dist/index.js :2
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/src/accounts.ts :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/src/attachments.ts :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/src/config.ts :1
import { promises as fs } from 'node:fs'; - fs tszaks-ghub-ced0138/src/gmail-client.ts :3
import { promises as fs, createReadStream } from 'node:fs'; - fs tszaks-ghub-ced0138/src/index.ts :3
import { promises as fs } from 'node:fs'; - fs (weak) tszaks-ghub-ced0138/test/attachments.test.mjs :3
import { promises as fs } from 'node:fs';
shell / exec 2
- shell tszaks-ghub-ced0138/dist/attachments.js :2
import { execFile } from 'node:child_process'; - shell tszaks-ghub-ced0138/src/attachments.ts :2
import { execFile } from 'node:child_process';
network 2
- net tszaks-ghub-ced0138/dist/index.js :1960
const response = await fetch(httpsUrl, { - net tszaks-ghub-ced0138/src/index.ts :2538
const response = await fetch(httpsUrl, {
tool registrations 43
- list_accounts tszaks-ghub-ced0138/dist/index.js :324
- read_emails tszaks-ghub-ced0138/dist/index.js :333
- search_emails tszaks-ghub-ced0138/dist/index.js :362
- search_drive_files tszaks-ghub-ced0138/dist/index.js :386
- get_email_thread tszaks-ghub-ced0138/dist/index.js :410
- get_labels tszaks-ghub-ced0138/dist/index.js :423
- mark_as_read tszaks-ghub-ced0138/dist/index.js :435
- add_labels tszaks-ghub-ced0138/dist/index.js :452
- remove_labels tszaks-ghub-ced0138/dist/index.js :474
- archive_emails tszaks-ghub-ced0138/dist/index.js :496
- trash_emails tszaks-ghub-ced0138/dist/index.js :513
- create_label tszaks-ghub-ced0138/dist/index.js :530
show 28 more
- delete_label tszaks-ghub-ced0138/dist/index.js :553
- block_sender tszaks-ghub-ced0138/dist/index.js :566
- list_blocked_senders tszaks-ghub-ced0138/dist/index.js :593
- unblock_sender tszaks-ghub-ced0138/dist/index.js :605
- unsubscribe_from_email tszaks-ghub-ced0138/dist/index.js :625
- mute_thread tszaks-ghub-ced0138/dist/index.js :646
- create_draft tszaks-ghub-ced0138/dist/index.js :668
- list_accounts tszaks-ghub-ced0138/src/index.ts :751
- read_emails tszaks-ghub-ced0138/src/index.ts :761
- search_emails tszaks-ghub-ced0138/src/index.ts :791
- search_drive_files tszaks-ghub-ced0138/src/index.ts :816
- get_email_thread tszaks-ghub-ced0138/src/index.ts :841
- get_labels tszaks-ghub-ced0138/src/index.ts :854
- mark_as_read tszaks-ghub-ced0138/src/index.ts :866
- add_labels tszaks-ghub-ced0138/src/index.ts :883
- remove_labels tszaks-ghub-ced0138/src/index.ts :905
- archive_emails tszaks-ghub-ced0138/src/index.ts :927
- trash_emails tszaks-ghub-ced0138/src/index.ts :944
- create_label tszaks-ghub-ced0138/src/index.ts :961
- delete_label tszaks-ghub-ced0138/src/index.ts :984
- block_sender tszaks-ghub-ced0138/src/index.ts :997
- list_blocked_senders tszaks-ghub-ced0138/src/index.ts :1028
- unblock_sender tszaks-ghub-ced0138/src/index.ts :1041
- unsubscribe_from_email tszaks-ghub-ced0138/src/index.ts :1063
- mute_thread tszaks-ghub-ced0138/src/index.ts :1086
- create_draft tszaks-ghub-ced0138/src/index.ts :1110
- delete_drafts tszaks-ghub-ced0138/src/index.ts :1164
- send_draft tszaks-ghub-ced0138/src/index.ts :1181
3 more not shown — this panel samples each group; the count above is the real total.
install hooks 1
- postinstall tszaks-ghub-ced0138/package.json :16
bash scripts/build-ocr.sh
declared dependencies 11
- @modelcontextprotocol/sdk@^1.25.2
- @types/express@^5.0.6
- express@^5.2.1
- google-auth-library@^9.15.1
- googleapis@^144.0.0
- mammoth@^1.9.0
- officeparser@^5.0.0
- pdf-parse@^1.1.1
- xlsx@^0.18.5
- @types/node@^20.17.10
- typescript@^5.7.3