Google Calendar
Google Calendar MCP Server
Interact with your Google Calendar through Claude Desktop using the Model Context Protocol (MCP).
This is a TypeScript-based MCP server that implements Google Calendar integration. It demonstrates core MCP concepts while providing:
- Calendar event management through MCP URIs
- Tools for creating and modifying events
- Prompts for generating calendar insights
Features
Resources
- Access calendar events via MCP URIs
- Each event has title, time, description, and attendees
- Structured event data with proper mime types
Tools
create_event
- Create new calendar events- Takes title, time, and other event details as parameters
- Directly interfaces with Google Calendar API
list_events
- View upcoming calendar events- [Add other tools you've implemented]
Prompts
analyze_schedule
- Generate insights about your calendar- Includes upcoming events as embedded resources
- Returns structured prompt for LLM analysis
- [Add other prompts you've implemented]
Prerequisites
- Node.js (v14 or higher)
- A Google Cloud Project with Calendar API enabled
- OAuth 2.0 Client credentials
Development
Install devbox by following instructions at devbox.sh
curl -fsSL https://get.jetpack.io/devbox | bash
Initialize devbox in the project directory:
devbox init
Start the devbox shell:
devbox shell
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"Google Calendar": {
"command": "/path/to/Google Calendar/build/index.js"
}
}
}
First-Time Setup
-
Set up Google Cloud credentials:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google Calendar API
- Create OAuth 2.0 credentials (Desktop application type)
- Download the client secret JSON file
- Rename it to
.client_secret.json
and place it in the project root
-
Initial Authentication:
- When first running the server, it will provide an authentication URL
- Visit the URL in your browser
- Grant the requested permissions
- Copy the provided authorization code
- Paste the code back into the CLI prompt
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.