Google Services MCP Server
MCP server for Claude Desktop that provides tools to read/write Google Sheets, manage Gmail, schedule Google Calendar events, and run queries on Neon Postgres databases.
README
Google Services MCP Server
MCP (Model Context Protocol) server for Claude Desktop that provides access to Google Sheets, Gmail, Google Calendar, and Neon Postgres.
Features
- MCP Tools:
- Google Sheets (4 tools): Read, write, append, and get sheet info
- Gmail (4 tools): List, search, get details, and send emails
- Google Calendar (5 tools): List, create, update, delete, and get event details
- Postgres / Neon DB: Run queries and insert data into tables
Prerequisites
- Python 3.8 or higher
- Google Cloud Project with APIs enabled:
- Google Sheets API
- Gmail API
- Google Calendar API
- OAuth 2.0 credentials (
credentials.json) - Claude Desktop installed
- (Optional) Neon Postgres database URL
Installation
1. Clone and Install Dependencies
# Navigate to project directory
cd mcplatestv1
# Install dependencies
pip install -r requirements.txt
2. Setup Google OAuth
- Download
credentials.jsonfrom Google Cloud Console - Place
credentials.jsonin the project root directory - Run the setup script to authenticate:
python src/setup.py
- Follow the prompts to authorize access to your Google account
- The script will create
tokens.jsonwith your access tokens
3. Configure Your Services
Edit config.json:
{
"google": {
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost",
"spreadsheetId": "your-spreadsheet-id",
"calendarId": "primary"
},
"database": {
"url": "postgresql://<USER>:<PASSWORD>@<HOST>/<DBNAME>?sslmode=require"
},
"mongodb": {
"uri": "your-mongodb-uri"
}
}
Do not commit real credentials to git or share them publicly.
Claude Desktop Setup
Step 1: Find Claude Desktop Config File
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Edit Config File
{
"mcpServers": {
"google-services": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mcp_server.py"
],
"env": {}
},
"postgresql-db": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\postgres_mcp.py"
],
"env": {}
},
"mongodb": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mongodb_mcp.py"
],
"env": {}
}
}
}
- Update paths for your system.
- Use
\\on Windows,/on Mac/Linux.
Step 3: Restart Claude Desktop
Quit Claude Desktop completely and start it again.
Step 4: Verify Connection
Ask in Claude:
What tools do you have access to?
You should see Google Sheets, Gmail, Calendar, and Postgres tools.
Usage
Once connected, you can ask Claude to:
- Sheets –
Read the data from Sheet1!A1:B10 - Sheets –
Write these values to my spreadsheet: [['Name','Age'],['John','30']] - Gmail –
Show me my last 10 emails - Gmail –
Send an email to john@example.com with subject 'Hello' and body 'Test message' - Calendar –
Create a calendar event for tomorrow at 2pm titled 'Meeting' - Neon DB –
Insert 5 demo students into the "shivam" table in my Neon database
Example Google Sheet
When prompted:
Make a sheet where column is Name and Age and add some dummy data
the Sheets tools create a sheet like:
| Name | Age |
|---|---|
| John | 25 |
| Sarah | 30 |
| Mike | 28 |
| Emily | 22 |
| David | 35 |
Screenshot:

Configure the sheet ID in config.json:
{
"google": {
"spreadsheetId": "<YOUR_SPREADSHEET_ID>"
}
}
Example Gmail Usage
Prompt in Claude:
Hey send a email to salmaniaman957@gmail.com to Hello
Claude confirmed subject/body and sent:
- Subject:
Hello Message - Body:
Hello
Screenshot:

Example Google Calendar Usage
Prompt in Claude:
Schedule a task for tomorrow at 9 AM for 3 hours as "NLP Beginning"
Claude created an event:
- Title:
NLP Beginning - Time: 9:00 AM – 12:00 PM
Screenshots:


Example Neon Postgres (neondb) Usage
A Neon database is configured via database.url.
In the public.shivam table, sample rows were inserted through the Postgres MCP server:
| id | name | created_at | |
|---|---|---|---|
| 1 | Aditya Sahu | NULL | 2026‑02‑15 11:25:26… |
| 2 | Kavya Iyer | NULL | 2026‑02‑15 11:25:26… |
| 3 | Rohan Joshi | NULL | 2026‑02‑15 11:25:26… |
| 4 | Ananya Reddy | NULL | 2026‑02‑15 11:25:26… |
| 5 | Karan Nair | NULL | 2026‑02‑15 11:25:26… |
Screenshot:

Example prompt:
Insert 5 demo students into the "shivam" table with just a name field.
Available Tools
Google Sheets
read_sheetwrite_sheetappend_sheetget_sheet_info
Gmail
list_emailsget_email_detailsend_emailsearch_emails
Google Calendar
list_calendar_eventscreate_calendar_eventupdate_calendar_eventdelete_calendar_eventget_calendar_event
Postgres / Neon DB
run_query/ other SQL tools (as defined inpostgres_mcp.py)
Troubleshooting
Server Won't Start
- Check Python:
python --version - Check script paths in
claude_desktop_config.json - Install deps:
pip install -r requirements.txt
Tools Not Appearing
- Check Claude Desktop Developer → Local MCP servers logs
- Ensure
tokens.jsonexists - Restart Claude Desktop
Authentication Errors
- Re‑run
python src/setup.py - Verify
credentials.json - Ensure APIs are enabled in Google Cloud Console
Project Structure
mcplatestv1/
├── src/
│ ├── mcp_server.py # Google services MCP server
│ ├── postgres_mcp.py # Postgres / Neon DB MCP server
│ ├── mongodb_mcp.py # MongoDB MCP server
│ ├── google_auth.py # Google OAuth handling
│ ├── google_sheets.py # Google Sheets functions
│ ├── google_gmail.py # Gmail functions
│ ├── google_calendar.py # Calendar functions
│ ├── agent.py # Automatic decision logic
│ └── setup.py # Initial setup script
├── config.json # Local config (NOT for git)
├── config.example.json # Safe template config
├── credentials.json # Google OAuth credentials
├── tokens.json # OAuth tokens
├── requirements.txt # Dependencies
├── claude_desktop_config.json # Example Claude config
└── README.md # This file
License
This project is for personal use. Keep all credentials and config files private.<!-- filepath: c:\Users\user\OneDrive\Documents\Data_Scientist\Internship_Projects\MCP_Project\mcppractical_zip_5S0c\README.md -->
Google Services MCP Server
MCP (Model Context Protocol) server for Claude Desktop that provides access to Google Sheets, Gmail, Google Calendar, and Neon Postgres.
Features
- MCP Tools:
- Google Sheets (4 tools): Read, write, append, and get sheet info
- Gmail (4 tools): List, search, get details, and send emails
- Google Calendar (5 tools): List, create, update, delete, and get event details
- Postgres / Neon DB: Run queries and insert data into tables
Prerequisites
- Python 3.8 or higher
- Google Cloud Project with APIs enabled:
- Google Sheets API
- Gmail API
- Google Calendar API
- OAuth 2.0 credentials (
credentials.json) - Claude Desktop installed
- (Optional) Neon Postgres database URL
Installation
1. Clone and Install Dependencies
# Navigate to project directory
cd mcplatestv1
# Install dependencies
pip install -r requirements.txt
2. Setup Google OAuth
- Download
credentials.jsonfrom Google Cloud Console - Place
credentials.jsonin the project root directory - Run the setup script to authenticate:
python src/setup.py
- Follow the prompts to authorize access to your Google account
- The script will create
tokens.jsonwith your access tokens
3. Configure Your Services
Edit config.json:
{
"google": {
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"redirectUri": "http://localhost",
"spreadsheetId": "your-spreadsheet-id",
"calendarId": "primary"
},
"database": {
"url": "postgresql://<USER>:<PASSWORD>@<HOST>/<DBNAME>?sslmode=require"
},
"mongodb": {
"uri": "your-mongodb-uri"
}
}
Do not commit real credentials to git or share them publicly.
Claude Desktop Setup
Step 1: Find Claude Desktop Config File
Windows:
%APPDATA%\Claude\claude_desktop_config.json
Mac:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Edit Config File
{
"mcpServers": {
"google-services": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mcp_server.py"
],
"env": {}
},
"postgresql-db": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\postgres_mcp.py"
],
"env": {}
},
"mongodb": {
"command": "python",
"args": [
"D:\\mcplatestv1\\src\\mongodb_mcp.py"
],
"env": {}
}
}
}
- Update paths for your system.
- Use
\\on Windows,/on Mac/Linux.
Step 3: Restart Claude Desktop
Quit Claude Desktop completely and start it again.
Step 4: Verify Connection
Ask in Claude:
What tools do you have access to?
You should see Google Sheets, Gmail, Calendar, and Postgres tools.
Usage
Once connected, you can ask Claude to:
- Sheets –
Read the data from Sheet1!A1:B10 - Sheets –
Write these values to my spreadsheet: [['Name','Age'],['John','30']] - Gmail –
Show me my last 10 emails - Gmail –
Send an email to john@example.com with subject 'Hello' and body 'Test message' - Calendar –
Create a calendar event for tomorrow at 2pm titled 'Meeting' - Neon DB –
Insert 5 demo students into the "shivam" table in my Neon database
Example Google Sheet
When prompted:
Make a sheet where column is Name and Age and add some dummy data
the Sheets tools create a sheet like:
| Name | Age |
|---|---|
| John | 25 |
| Sarah | 30 |
| Mike | 28 |
| Emily | 22 |
| David | 35 |
Screenshot:

Configure the sheet ID in config.json:
{
"google": {
"spreadsheetId": "<YOUR_SPREADSHEET_ID>"
}
}
Example Gmail Usage
Prompt in Claude:
Hey send a email to salmaniaman957@gmail.com to Hello
Claude confirmed subject/body and sent:
- Subject:
Hello Message - Body:
Hello
Screenshot:

Example Google Calendar Usage
Prompt in Claude:
Schedule a task for tomorrow at 9 AM for 3 hours as "NLP Beginning"
Claude created an event:
- Title:
NLP Beginning - Time: 9:00 AM – 12:00 PM
Screenshots:


Example Neon Postgres (neondb) Usage
A Neon database is configured via database.url.
In the public.shivam table, sample rows were inserted through the Postgres MCP server:
| id | name | created_at | |
|---|---|---|---|
| 1 | Aditya Sahu | NULL | 2026‑02‑15 11:25:26… |
| 2 | Kavya Iyer | NULL | 2026‑02‑15 11:25:26… |
| 3 | Rohan Joshi | NULL | 2026‑02‑15 11:25:26… |
| 4 | Ananya Reddy | NULL | 2026‑02‑15 11:25:26… |
| 5 | Karan Nair | NULL | 2026‑02‑15 11:25:26… |
Screenshot:

Example prompt:
Insert 5 demo students into the "shivam" table with just a name field.
Available Tools
Google Sheets
read_sheetwrite_sheetappend_sheetget_sheet_info
Gmail
list_emailsget_email_detailsend_emailsearch_emails
Google Calendar
list_calendar_eventscreate_calendar_eventupdate_calendar_eventdelete_calendar_eventget_calendar_event
Postgres / Neon DB
run_query/ other SQL tools (as defined inpostgres_mcp.py)
Troubleshooting
Server Won't Start
- Check Python:
python --version - Check script paths in
claude_desktop_config.json - Install deps:
pip install -r requirements.txt
Tools Not Appearing
- Check Claude Desktop Developer → Local MCP servers logs
- Ensure
tokens.jsonexists - Restart Claude Desktop
Authentication Errors
- Re‑run
python src/setup.py - Verify
credentials.json - Ensure APIs are enabled in Google Cloud Console
Project Structure
mcplatestv1/
├── src/
│ ├── mcp_server.py # Google services MCP server
│ ├── postgres_mcp.py # Postgres / Neon DB MCP server
│ ├── mongodb_mcp.py # MongoDB MCP server
│ ├── google_auth.py # Google OAuth handling
│ ├── google_sheets.py # Google Sheets functions
│ ├── google_gmail.py # Gmail functions
│ ├── google_calendar.py # Calendar functions
│ ├── agent.py # Automatic decision logic
│ └── setup.py # Initial setup script
├── config.json # Local config (NOT for git)
├── config.example.json # Safe template config
├── credentials.json # Google OAuth credentials
├── tokens.json # OAuth tokens
├── requirements.txt # Dependencies
├── claude_desktop_config.json # Example Claude config
└── README.md # This file
License
This project is for personal use. Keep all credentials and config files private.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.