๐ All-in-One Google MCP
๐ All-in-One Google MCP ๐

A unified, high-performance Model Context Protocol (MCP) backend powered by Google Apps Script (GAS). This tool allows LLMs (like Antigravity, Gemini, ChatGPT, and Claude) to interact directly with your Google Workspace services with zero local overhead.
โจ Features
- ๐ง Gmail: List threads, search emails, get details, send replies, archive, delete, and Bulk Emailing.
- ๐ Drive: List files, search, create/update/delete files and folders, and share.
- ๐ Calendar: Manage events, search by date range, create/update/delete.
- โ Tasks: Unified task management (List, Create, Update, Delete).
- ๐ Sheets: Read, write, append, and clear spreadsheet data.
- ๐ Docs: Create, read, and append to Google Documents.
- ๐ก๏ธ MCP Compliant: Uses standard JSON-RPC protocol and valid tool naming (underscores).
๐ ๏ธ Connection & Setup
๐ Using mcp-remote (Recommended)
The easiest way to connect your LLM client to this backend is using mcp-remote. Add the following configuration to your MCP settings file (e.g., mcp_config.json for Antigravity or Desktop App):
{
"mcpServers": {
"google-mcp": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://script.google.com/macros/s/YOUR_DEPLOYMENT_ID/exec?key=YOUR_API_KEY"
],
"disabledTools": []
}
}
}
[!IMPORTANT] Tool Naming: All tools use underscore separation (e.g.,
gmail_listThreads) to comply with strict MCP name validation regex (^[a-zA-Z0-9_-]{1,64}$).
[!TIP] Replace the URL with your own deployment URL if you are hosting your own instance.
๐ป Platform Setup
๐ Antigravity / Gemini Desktop
- Open your
mcp_config.json. - Add the
google-mcpconfiguration block shown above. - Restart the application or refresh the MCP server list.
๐ป VS Code (MCP Client)
If you are using an MCP-compatible extension in VS Code:
- Locate the extension's configuration for MCP servers.
- Add the
npx mcp-remotecommand and your Web App URL.
๐ Other Clients & Platforms
Since this is a standard MCP server reached via mcp-remote, it works with any client that supports the Model Context Protocol, including:
- Claude Desktop
- Custom MCP Proxies
- Self-hosted LLM interfaces
๐ Usage & Example Prompts
Once connected, you can ask your AI to perform tasks across Google Workspace. Here are some examples:
- Gmail: "Read my latest email and summarize it."
- Bulk Email: "Send a personalized welcome email to this list of 5 users: [list]."
- Calendar: "Do I have any meetings tomorrow?" or "Schedule a 'Focus Time' from 2 PM to 4 PM today."
- Sheets: "Read the first 10 rows of the 'Budget' spreadsheet."
- Docs: "Create a new document called 'Project Notes' and add a summary of our discussion."
- Tasks: "List my pending tasks for today."
๐ Quotas & Limits
Google Apps Script has daily quotas that are generous for individual use but worth noting:
| Service | Consumer (@gmail.com) | Workspace | | :--- | :--- | :--- | | URL Fetch | 20,000 / day | 100,000 / day | | Email Send | 100 recipients / day | 1,500 recipients / day | | Triggers Runtime | 90 min / day | 6 hours / day | | Simultaneous Executions | 30 | 30 |
[!NOTE] Each script execution has a hard limit of 6 minutes. Large batch operations should be broken down into smaller chunks.
โ๏ธ Backend Installation (Self-Hosting)
- Create a New Script: Go to script.google.com and create a new project.
- Add Code: Copy the content of
Code.gsfrom this repository and paste it into the editor. - Update Manifest: Switch to the
appsscript.jsontab (enable it in Settings if hidden) and paste the manifest content. - Set API Key: In Project Settings, add a Script Property
MCP_API_KEYwith your secret key. - Deploy: Click Deploy > New Deployment > Web App. Set Access to "Anyone".
๐ก๏ธ Security
This project uses a simple API Key authentication mechanism passed via the key query parameter or apiKey JSON field. Keep your Deployment URL secret.
๐ค Contributing
Contributions are welcome! If you'd like to improve this project, please follow these steps:
- Fork the repository.
- Create a new Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Please ensure your code follows the existing style and includes appropriate documentation.
๐ License
MIT ยฉ SH20RAJ