multi-google-mcp

One MCP server for all your Google accounts.

Claude reads every inbox you have and drafts from the right address, finds and reads files in every Drive, writes Docs and Sheets, and manages every calendar. It never sends and never deletes. Open source, and it runs on your machine.

$ npx multi-google-mcp setup

What you ask

  • What came in today across my inboxes?
  • Summarise the thread with the venue about Thursday and draft a reply from my work address.
  • Find the budget sheet in any of my Drives and tell me what changed this month.
  • Read the client deck and the meeting notes, then write a one-page brief as a new Doc.
  • Who have I been waiting on for more than three days?
  • Archive the newsletters and label the client emails. You see the plan first.
  • Block Thursday 2 to 4 pm for deep work on my work calendar.

A morning with /mail-triage

One command in Claude Code. It reads what is new in every account, finds the replies you owe and the answers you are waiting for, and leaves drafts in each account, written the way you write.

> /mail-triage Mail triage, since yesterday 18:40 claire@northwind.io 2 need you · 4 FYI · 11 noise claire.m@gmail.com 0 need you · 2 FYI · 23 noise NEEDS YOU - [northwind] Daniel Ortiz: contract renewal, call this week draft ready - [northwind] Finance: Q3 expense report due Friday no draft FOLLOW-UPS - Owe a reply, 4 days: Sara Lind, "Speaker slot in March?" draft ready - Waiting, 5 working days: Marc (venue), signed quote nudge ready SORT archive 34 (newsletters x14, LinkedIn x9, receipts x6, ...) label Clients 3 · To reply 3 · Waiting 1 Sort like this? yes 4 drafts in your Drafts folders. Nothing was sent.

How it works

Your Google accounts connect to multi-google-mcp on your machine, which Claude uses through MCP. work@company.com you@school.edu you@gmail.com multi-google-mcp mail · drive · docs sheets · calendar tokens: ~/.config Claude MCP Google APIs
The server runs on your computer when Claude needs it. It talks to Google with your own login key and to Claude over MCP. There is no server in between.

Tools

ToolDoes
search_mailGmail search syntax, across every account or one
read_threadA whole thread as plain text, with attachment names
create_draftA reply in the thread, or a new email, saved as a draft in the chosen account
label_threadsApply or remove labels; missing labels are created
archive_threadsOut of the inbox, still in All Mail, back on any reply
mark_readRead or unread
list_eventsEvery calendar of every account, duplicates merged
create_event, update_eventAdd or change events, with a Meet link if you want one
search_filesNames and contents across every Drive, shared drives included
read_fileDocs as Markdown, Sheets tab by tab, Slides with notes, PDFs and images
create_doc, edit_docA new Doc from Markdown; append or find-and-replace
create_sheet, update_sheetA new Sheet from rows, formulas included; append or overwrite
list_accounts, list_labelsWhat is connected, and each account's labels

Safety, by design

  • No send, no delete. Those tools do not exist. Every email leaves from your own Gmail, after you have read it. No file, event or message can be deleted.
  • Shared files and guests wait for you. Editing a Doc or Sheet other people can see, or an event with guests, is refused until you approve that exact change. The check is in the code.
  • Mail sorting is reversible. Archived mail stays in All Mail and returns on a reply. Labels come off. Sorting asks first until you tell it not to.
  • Your key, your machine. You create your own Google login key. Tokens stay in ~/.config/multi-google-mcp, readable by your user only. No third party ever sees your data.

Setup

Node.js 20 or newer, a Google account, and Claude Code (Claude Desktop and Cursor work too). About 15 minutes, once. The wizard waits for you at every step.

$ npx multi-google-mcp setup

Your own Google login key

Each user makes their own key, so your data never goes through anyone else. These are the six screens you will see.

  1. Create a project

    Open New Project, name it multi-google-mcp, click Create, then Select project in the notification.

    New Project form with the name multi-google-mcp
  2. Turn on the six APIs, with one link

    Open this link, check the top bar shows your project, then Next and Enable.

    Enable access to APIs, listing Gmail, Calendar, Drive, Docs, Sheets and Slides
  3. Set up the sign-in screen

    Open Google Auth Platform and click Get started. Any app name without "Google", "Gmail" or "Inbox". Audience: External. Tick the policy box, Continue, Create.

    Project configuration, App Information step
  4. Add the two links Google requires

    Open Branding and fill in, then Save: home page https://multi-google-mcp-tau.vercel.app, privacy policy https://multi-google-mcp-tau.vercel.app/privacy, authorized domain multi-google-mcp-tau.vercel.app.

    App domain section filled in
  5. Publish the app

    Open Audience, click Publish app, then Confirm. Ignore the note about verification: the app is only for you. Without publishing, Google signs you out every 7 days.

    Push to production dialog
  6. Create the login key

    Open Create client, choose Desktop app, click Create, then Download JSON. Google shows the secret only once. The wizard finds the file by itself.

    OAuth client created dialog, with Download JSON outlined

Your accounts

Type each address and a browser tab opens. Google warns that it has not verified the app: it is your own app, so click Advanced, then Go to (your app name), and tick every box. The wizard then checks Gmail, Drive and Calendar on each account.

Google hasn't verified this app, with Advanced opened

Claude

Setup registers the server in Claude Code for all your projects and installs the /mail-triage skill. Open a new session and ask what came in today.

Questions

Why do I need my own Google project?

Reading Gmail and Drive are restricted permissions. An app that many people share needs a paid, yearly security audit from Google. A private app used only by you does not, and your data never touches anyone else's server.

Google says "Access blocked: admin_policy_enforced".

That organisation's Google admin blocks outside apps. Only the admin can allow it. Your other accounts still work.

Why does the consent screen ask for so much?

Archiving needs Gmail's "modify" permission and reading every file needs full Drive access, and Google describes both broadly, including sending and deleting. The server exposes no send or delete tool, and the code is open for you to check.

Can it read Word, Excel or PowerPoint files?

Not yet. It reads Google Docs, Sheets and Slides, text files, PDFs and images. Save an Office file as a Google file in Drive first.

Does it work with Outlook or iCloud?

No. Google accounts only.

How is it different from other Google MCP servers?

Most connect one account. This one runs several at once: every search covers every account, results are merged, drafts and files land in the account you choose, and the guardrails for shared files and guests are in the code.