Google Calendar MCP Server

Google Calendar MCP Server

Enables natural language interaction with Google Calendar via the Model Context Protocol, allowing LLMs like Claude to read and manage calendar events through the Google Calendar v3 API.

Category
Visit Server

README

šŸ—“ļø Google Calendar MCP Server

This project integrates the Google Calendar v3 APIs with a custom MCP (Model Context Protocol) Server, enabling natural language interaction with your calendar via tools like Claude Desktop.

It acts as a bridge between your calendar data and an LLM using MCP-compatible HTTP streaming.


🧠 Overview

This project contains two core servers:

1. šŸ” Google OAuth Server

  • Handles OAuth 2.0 flow
  • Stores and refreshes access tokens in a local session file

2. šŸ¤– MCP Server


šŸš€ Getting Started

Step 1: šŸ”§ Set Up Google API Credentials

  1. Go to the Google Cloud Console
  2. Create or select a project
  3. Enable the Google Calendar API
  4. Go to Credentials → Create OAuth 2.0 Client ID
    • Choose Desktop App
    • Set branding and add test user emails in audience
  5. Download the OAuth credentials as client_secret.json
  6. Place this file in the root directory of the project

Step 2: šŸ“¦ Install Dependencies

poetry install

Step 3: 🚪 Start the OAuth Server

poetry run uvicorn src.main:app --host 0.0.0.0 --port 8000
  • This should automatically open a browser for OAuth authentication.
  • If not, visit http://0.0.0.0:8000/google_oauth/
  • Upon successful authentication, you'll see a success page.
  • A session.json file will be created with your access/refresh tokens.

OAuth Success Page


Step 4: 🧩 Run the MCP Server

poetry run python src/server.py

This launches a streamable MCP-compatible HTTP server at http://localhost:8080/mcp


Step 5: 🧠 Connect MCP Client (Claude Desktop)

Update the config file at:

~/Library/Application Support/Claude/claude_desktop_config.json

Add the following entry:

{
  "mcpServers": {
    "google-calendar-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8080/mcp"
      ]
    }
  }
}

Step 6: āœ… Verify Integration

  • Open Claude Desktop settings.
  • If the MCP server was added correctly, it will appear under Settings -> integrations

MCP client integrations

🧠 Demo

https://github.com/user-attachments/assets/27a8e5ee-8f2f-40c7-bdfc-1caa93767efb

🧱 Project Structure

project-root/
ā”œā”€ā”€ client_secret.json         # Google OAuth credentials
ā”œā”€ā”€ session.json               # Access/refresh token storage
ā”œā”€ā”€ pyproject.toml             # Poetry project config
ā”œā”€ā”€ README.md                  

└── src/
    ā”œā”€ā”€ main.py                # FastAPI app for OAuth server
    ā”œā”€ā”€ server.py              # MCP-compatible server
    ā”œā”€ā”€ settings.py            # App settings and constants

    ā”œā”€ā”€ api/
    │   └── oauth_callback.py  # OAuth endpoint logic

    ā”œā”€ā”€ core/
    │   ā”œā”€ā”€ calendar_client.py # Google Calendar API wrapper
    │   ā”œā”€ā”€ mcp_tools.py       # Tools exposed to MCP clients
    │   ā”œā”€ā”€ oauth_manager.py   # OAuth initiation and flow
    │   └── session_manager.py # Token handling

    └── gcalendar_types/       # Typed definitions for Calendar v3 API

🧩 Dependencies


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