personal-mcp
Allows searching and reading Gmail messages across multiple accounts, retrieving individual messages and conversations, and creating drafts. It cannot send email.
Allows searching, reading, creating, updating, and trashing files in Google Drive, with write and trash operations restricted to items the server created itself.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@personal-mcpsearch all my email accounts for the invoice from Acme last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
personal-mcp
A private Model Context Protocol server that lets an AI assistant (Claude) search and read my own Hotmail/Outlook and Gmail accounts, plus Google Drive and Calendar, across several accounts at once. It can create drafts, calendar events and files, but it cannot send email.
It runs in two modes from the same code:
Local (stdio) for Claude Code and Claude Desktop, with logins kept in the macOS Keychain.
Remote (AWS Lambda) so it also works from the Claude mobile app, behind owner-only OAuth.
Tools
16 tools, all taking an explicit account argument:
Area | Tools |
Accounts |
|
| |
Drive |
|
Calendar |
|
Providers: Hotmail/Outlook through Microsoft Graph, Gmail/Drive/Calendar through the Google APIs.
Related MCP server: mcp-outlook-desktop
Design notes
No sending, by design. Only drafts are created. Drive and Calendar writes are restricted to items the server created itself (tagged
createdBy), Drive only moves files to Trash, and calendar calls never send invitations.Untrusted content. Mail, documents and events are treated as untrusted input; tool descriptions tell the model not to follow instructions found inside them, and bodies are truncated.
Audit log of every operation (account, operation, query or IDs; never bodies or tokens).
One code path for credentials (
tokenstore.py): Keychain locally, a private S3 bucket on AWS.
Remote mode
Claude app -> Lambda Function URL (HTTPS) -> Lambda (FastMCP, streamable HTTP, stateless)
|-- private S3 bucket (logins, OAuth state)
'-- SSM Parameter Store (secrets/config)OAuth 2.1 authorization server in
oauth_provider.py: dynamic client registration, PKCE, single-use authorization codes, rotating refresh tokens, tokens stored as SHA-256 hashes.Owner-only sign-in through Google, checked against an allowlisted email; redirect URIs are limited to Claude's own callback; requests with a wrong Host header are rejected.
The server refuses to start without its OAuth configuration, so it can never be exposed unauthenticated.
Runs on the AWS free tier; a reserved-concurrency cap limits abuse and setting it to 0 switches the server off.
Deployment (AWS SAM) is described in deploy/README.md.
Local setup
uv venv --python 3.12 .venv
uv pip install --python .venv/bin/python -r requirements.txt
MS_CLIENT_ID=<entra app id> .venv/bin/python login.py <account> # one browser login per account
MS_CLIENT_ID=<entra app id> .venv/bin/python server.pyAccounts are listed in accounts.json (not committed), for example {"hotmail": "outlook", "work": "gmail"}. Google logins need an OAuth desktop client JSON at ~/.config/personal-mcp/google_client.json.
Status
Personal project. There is no automated test suite; the OAuth flow was checked with a local script and the deployment was verified by hand. Nothing here is audited, so review it before trusting it with your own accounts.
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Gmail, Outlook, Drive, OneDrive and calendars for AI agents. Many accounts, one endpoint, audit log.
Multiple Gmail accounts, editable Google Sheets & Docs for AI agents. Deny-by-default access rules.
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
- alfred_OAuthai.get-alfred
Your real Gmail, Outlook and calendars, worked as you: read, draft, send, schedule, organize.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage multiple email accounts with secure credentials, local full-text search, thread-aware replies, and automation.7 npmMIT
- AlicenseAqualityBmaintenanceEnables AI assistants to securely read, search, draft, and send Outlook emails, manage calendar events, and access mailbox folders through a local MAPI connection to Windows Outlook, with human-in-the-loop safeguards.91MIT

exfu-multiaccountofficial
FlicenseNot gradedqualityBmaintenanceA local MCP server that lets AI assistants access Gmail, Drive, Docs, and Calendar across multiple Google accounts, routing each request by a human-readable account alias. It supports reading, searching, and writing with per-account tagging while keeping OAuth credentials secure and separate.-- AlicenseAqualityBmaintenanceEnables an AI assistant to connect to multiple Google accounts at once, searching and acting across Gmail, Drive, Calendar, and Contacts from a single interface.2917 npmMIT