Google Services MCP Server

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.

Category
Visit Server

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

  1. Download credentials.json from Google Cloud Console
  2. Place credentials.json in the project root directory
  3. Run the setup script to authenticate:
python src/setup.py
  1. Follow the prompts to authorize access to your Google account
  2. The script will create tokens.json with 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:

Sample Google Sheet with Name and Age columns

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:

Sample Gmail email sent via MCP server

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:

Claude scheduling NLP Beginning calendar event

Google Calendar showing NLP Beginning event

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 email 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:

Neon Postgres table with sample data

Example prompt:

Insert 5 demo students into the "shivam" table with just a name field.

Available Tools

Google Sheets

  • read_sheet
  • write_sheet
  • append_sheet
  • get_sheet_info

Gmail

  • list_emails
  • get_email_detail
  • send_email
  • search_emails

Google Calendar

  • list_calendar_events
  • create_calendar_event
  • update_calendar_event
  • delete_calendar_event
  • get_calendar_event

Postgres / Neon DB

  • run_query / other SQL tools (as defined in postgres_mcp.py)

Troubleshooting

Server Won't Start

  1. Check Python: python --version
  2. Check script paths in claude_desktop_config.json
  3. Install deps:
pip install -r requirements.txt

Tools Not Appearing

  • Check Claude Desktop Developer → Local MCP servers logs
  • Ensure tokens.json exists
  • 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

  1. Download credentials.json from Google Cloud Console
  2. Place credentials.json in the project root directory
  3. Run the setup script to authenticate:
python src/setup.py
  1. Follow the prompts to authorize access to your Google account
  2. The script will create tokens.json with 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:

Sample Google Sheet with Name and Age columns

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:

Sample Gmail email sent via MCP server

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:

Claude scheduling NLP Beginning calendar event

Google Calendar showing NLP Beginning event

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 email 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:

Neon Postgres table with sample data

Example prompt:

Insert 5 demo students into the "shivam" table with just a name field.

Available Tools

Google Sheets

  • read_sheet
  • write_sheet
  • append_sheet
  • get_sheet_info

Gmail

  • list_emails
  • get_email_detail
  • send_email
  • search_emails

Google Calendar

  • list_calendar_events
  • create_calendar_event
  • update_calendar_event
  • delete_calendar_event
  • get_calendar_event

Postgres / Neon DB

  • run_query / other SQL tools (as defined in postgres_mcp.py)

Troubleshooting

Server Won't Start

  1. Check Python: python --version
  2. Check script paths in claude_desktop_config.json
  3. Install deps:
pip install -r requirements.txt

Tools Not Appearing

  • Check Claude Desktop Developer → Local MCP servers logs
  • Ensure tokens.json exists
  • 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured