google_oauth_refresh_tokens
Refresh OAuth access tokens and update them in the token file
Send Gmail with attachments from local files or Google Drive, and pull attachments back down to disk.
LABSCO SUMMARY
Sending mail from an assistant is common; sending it with a file from Google Drive attached, or pulling every attachment off a thread onto disk, is not. Credentials are your own — an OAuth client or a service account with impersonation — so nothing is brokered elsewhere.
A collection of Google-native tools for MCP — Gmail, Calendar, Drive and Tasks — run through bunx and integrated with clients such as Claude and Cursor. Attachment handling is the recent addition: sending from local files or Google Drive in the same message, drafts with attachments, and downloading every attachment on an email.
Bun, since it runs through bunx. Then either OAuth — a client id, client secret and a token path you choose — or a service account with a client email, private key and a user to impersonate. One or the other, not both.
One command plus credentials — bunx --no-cache google-mcp@latest, then supply credentials
USE CASES
The attachment comes from a local path and goes out with the message, with MIME type detection and the 25MB limit checked before the send rather than after it.
Drive file ids attach directly, so a document does not have to be downloaded and re-uploaded to be sent.
A draft is created with its attachments in place, so the last read happens in Gmail before anything goes out.
Every attachment downloads to local storage, with the Downloads folder found automatically and name conflicts resolved by renaming.
Listed in project code.
google_oauth_refresh_tokensRefresh OAuth access tokens and update them in the token file
google_oauth_reauthenticateDelete existing tokens and start fresh OAuth authentication flow
google_calendar_set_defaultSet the default calendar ID for operations
google_calendar_list_calendarsList all available calendars
google_calendar_create_eventCreate a new event in Google Calendar
google_calendar_get_eventsRetrieve upcoming events from Google Calendar
google_calendar_get_eventGet detailed information about a specific event
google_calendar_update_eventUpdate an existing event in Google Calendar
google_calendar_delete_eventDelete an event from Google Calendar
google_calendar_find_free_timeFind available time slots between events
google_gmail_list_labelsList all available Gmail labels
google_gmail_list_emailsList emails from a specific label or folder
google_gmail_get_emailGet detailed information about a specific email
google_gmail_get_email_by_indexGet email by its index from the most recent search results
google_gmail_send_emailSend a new email
google_gmail_draft_emailCreate a draft email
google_gmail_delete_emailDelete or trash an email
google_gmail_modify_labelsAdd or remove labels from an email
google_gmail_download_attachmentsDownload all attachments from a specific email
google_drive_list_filesList files from Google Drive
google_drive_get_file_contentGet the content of a file from Google Drive
google_drive_create_fileCreate a new file in Google Drive
google_drive_update_fileUpdate the content of an existing file in Google Drive
google_drive_delete_fileDelete a file from Google Drive
google_drive_share_fileShare a file with another user
google_tasks_set_default_listSet the default task list ID for operations
google_tasks_list_tasklistsList all available task lists
google_tasks_list_tasksList tasks from a task list
google_tasks_get_taskGet details about a specific task
google_tasks_create_taskCreate a new task
google_tasks_update_taskUpdate an existing task
google_tasks_complete_taskMark a task as completed
google_tasks_delete_taskDelete a task
google_tasks_create_tasklistCreate a new task list
google_tasks_delete_tasklistDelete a task list
BEFORE YOU INSTALL
35 tools registered in the project's code.
Both documented setups run the server on your machine.
INSTALLATION
bunx --no-cache google-mcp@latest{
"mcpServers": {
"google-mcp": {
"command": "bunx",
"args": [
"--no-cache",
"google-mcp@latest"
],
"env": {
"GOOGLE_OAUTH_CLIENT_ID": "<YOUR_CLIENT_ID>",
"GOOGLE_OAUTH_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"GOOGLE_OAUTH_TOKEN_PATH": "<YOUR_GOOGLE_OAUTH_TOKEN_PATH>"
}
}
}
}{
"mcpServers": {
"google-mcp": {
"command": "bunx",
"args": [
"--no-cache",
"google-mcp@latest"
],
"env": {
"GOOGLE_CLIENT_EMAIL": "<YOUR_SERVICE_ACCOUNT_EMAIL>",
"GOOGLE_PRIVATE_KEY": "<YOUR_SERVICE_ACCOUNT_PRIVATE_KEY>",
"GMAIL_USER_TO_IMPERSONATE": "<YOUR_GMAIL_USER_TO_IMPERSONATE>"
}
}
}
}