loading…
Search for a command to run...
loading…
A locally-hosted MCP server that integrates Gmail, Google Calendar, and Google Drive to provide AI-powered management of emails, events, and files. It enables t
A locally-hosted MCP server that integrates Gmail, Google Calendar, and Google Drive to provide AI-powered management of emails, events, and files. It enables tool-based interactions like sending emails, creating calendar events, and searching Drive files through clients like Cursor and Claude Desktop.
A locally-hosted MCP server built with FastMCP 3.x that connects to your personal Google account and exposes Gmail, Google Calendar, and Google Drive as tools.
| Service | Tool | Description |
|---|---|---|
| Gmail | list_emails |
List recent emails from a label |
| Gmail | read_email |
Read full content of an email |
| Gmail | send_email |
Send a new email |
| Gmail | search_emails |
Search emails with Gmail query syntax |
| Calendar | list_calendars |
List all accessible calendars |
| Calendar | list_events |
List upcoming events |
| Calendar | create_event |
Create a new calendar event |
| Drive | list_files |
List files (optionally in a folder) |
| Drive | read_file |
Read text content of a file |
| Drive | search_files |
Search for files by name or query |
# Using pip
pip install -e .
# Or using uv
uv pip install -e .
credentials.json in the project rootCopy the example env file and adjust paths if needed:
cp .env.example .env
The defaults (credentials.json and token.json in the project root) work for most setups.
python server.py
On first run, a browser window will open asking you to sign in with your Google account and grant permissions. The token is cached in token.json for subsequent runs.
fastmcp run server.py:mcp --transport http --port 8000
The server will be available at http://localhost:8000/mcp.
Add this to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"google": {
"command": "python",
"args": ["server.py"],
"cwd": "/path/to/mcp-playground"
}
}
}
Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"google": {
"command": "python",
"args": ["/path/to/mcp-playground/server.py"]
}
}
}
This server requests the following OAuth scopes (narrowly scoped for safety):
| Scope | Access |
|---|---|
gmail.readonly |
Read-only access to Gmail |
gmail.send |
Send emails only |
calendar.events |
Read and write calendar events |
drive.readonly |
Read-only access to Drive files |
If you change scopes in auth/google_auth.py, delete token.json and re-authenticate.
mcp-playground/
├── server.py # FastMCP server entry point
├── auth/
│ └── google_auth.py # OAuth2 flow + service builders
├── tools/
│ ├── gmail.py # Gmail tools
│ ├── calendar.py # Calendar tools
│ └── drive.py # Drive tools
├── pyproject.toml # Dependencies
├── .env.example # Environment config template
└── README.md
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"google-mcp-server": {
"command": "npx",
"args": []
}
}
}