Google Calendar and Meet MCP Server
Provides comprehensive calendar event management including listing calendars, creating/updating/deleting events, and managing guest permissions through Google Calendar API v3.
Utilizes Google Cloud Console for OAuth credential management, API enablement, and audit logging for enterprise deployments.
Enables advanced Google Meet space management, conference record tracking, participant monitoring, and artifact configuration (recording, transcription, smart notes) through Google Meet API v2.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Calendar and Meet MCP Server create a team meeting tomorrow at 2pm with auto-recording"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
š Google Meet MCP Server v3.0 - Production Ready
A production-ready enterprise Model Context Protocol (MCP) server for comprehensive Google Meet management through Google Calendar API v3 and Google Meet API v2. Features Docker containerization, Smithery deployment, direct token authentication, team security, and enterprise-grade TypeScript architecture with 23 fully validated tools.
šÆ Quick Start Options
šØ Smithery (Recommended)
Perfect for teams and individual users
One-click deployment with web interface
Automatic updates and health monitoring
š³ Docker
Production deployments with full containerization
Multi-stage builds optimized for size and security
Development and production configurations
āļø Manual Setup
Full control over installation and configuration
Development environments and custom deployments
Direct Node.js execution with TypeScript
š Manual Setup Guide
Related MCP server: Google Calendar MCP Server
š What's New in v3.0 - Production Ready Edition
šÆ NEW IN v3.0 - PRODUCTION FEATURES
š³ Docker Containerization
ā Multi-stage production builds - Optimized for size and security (<200MB)
ā Development and production configurations with Docker Compose
ā Health checks and monitoring - Container-native health endpoints
ā Security hardening - Non-root user, read-only filesystem
ā Volume management - Persistent data and credential handling
šØ Smithery Integration + Direct Token Auth
ā Direct token authentication - No file dependencies (CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN)
ā One-click deployment - Web interface for easy configuration
ā Backward compatibility - Still supports file-based OAuth credentials
ā Team-friendly setup - Individual credentials, shared project structure
ā Automatic health monitoring - Real-time server status and metrics
ā Cross-platform support - Windows, macOS, Linux compatibility
ā Configuration validation - Smart path handling and error detection
š”ļø Enhanced Security
ā Team security policies - Enterprise-grade credential management
ā Individual credential isolation - No shared secrets between users
ā Compliance monitoring - Automated security and rotation tracking
ā Audit logging - Google Cloud Console integration
ā Incident response - Documented procedures for security events
š Complete Documentation
ā User guides for all deployment methods - Smithery, Docker, Manual
ā Team onboarding procedures - Step-by-step for corporate environments
ā Troubleshooting and diagnostics - Common issues and automated solutions
ā Security best practices - Individual and team security policies
š Production Quality Metrics
Container Size: <200MB production image
Security Score: Non-root user, minimal attack surface
Documentation Coverage: 7 comprehensive guides (2000+ lines)
Deployment Options: 3 methods (Smithery, Docker, Manual)
Team Ready: Multi-user, enterprise security, compliance monitoring
šÆ Core Capabilities - Enhanced
Clear API Separation
š Google Calendar API v3 - Full calendar event management with guest permissions
š„ Google Meet API v2 (GA) - Space management, conference records, and participant tracking
Enterprise Features
š Auto-Transcription - Enable automatic meeting transcription
š§ Smart Notes - AI-generated meeting summaries with Gemini
š Attendance Reports - Generate detailed attendance tracking
š”ļø Meeting Moderation - Chat/presentation restrictions and controls
š Viewer Mode - Force participants to join as viewers by default
š¹ Auto-Recording - Enable automatic recording (manual activation required)
Advanced Space Management
šļø Google Meet Spaces - Direct space creation and configuration
š„ Participant Tracking - Access participant data and session information
š Access Controls - OPEN, TRUSTED, or RESTRICTED access types
āļø Artifact Configuration - Recording, transcription, and smart notes settings
š Installation & Deployment
šØ Smithery (Recommended for Teams)
Visit Smithery.ai
Click "Deploy Server"
Configure your Google credentials path
Start using in Claude Desktop
š Complete Smithery User Guide - Step-by-step for teams
š³ Docker (Recommended for Production)
# Quick start development
./scripts/docker-deploy.sh dev
# Production deployment
./scripts/docker-deploy.sh prod --backup --fresh
# View status
./scripts/docker-deploy.sh statusš Docker Deployment Guide - Complete containerization
āļø Manual Installation
# Clone the repository
git clone https://github.com/INSIDE-HAIR/google-meet-mcp-server.git
cd google-meet-mcp-server
# Install dependencies
npm install
# Setup OAuth credentials
npm run setupš Manual Setup Guide - Full control installation
š”ļø Security & Team Management
š Individual Security
Each user creates their own Google OAuth credentials
No shared credentials or tokens between team members
Secure file storage with proper permissions (chmod 600)
š Security Guide - Individual security practices
š„ Team Security
Comprehensive team onboarding procedures
Corporate Google Cloud project management
Credential rotation and compliance monitoring
š Team Security Guide - Enterprise team deployment
š§ Troubleshooting
Complete diagnostics and problem resolution
Common issues and solutions
Health check scripts and monitoring
š Troubleshooting Guide - Problem resolution
Usage
Development Mode (TypeScript with Hot Reload)
# Start server in development mode
npm run start
# Run setup in TypeScript mode
npm run setupProduction Mode (Compiled JavaScript)
# Build TypeScript to JavaScript
npm run build
# Run compiled server
npm run start:jsTesting
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
# Type checking only
npm run type-checkš ļø Available Tools (21 Total) - All Type-Safe & Validated
š Google Calendar API v3 Tools (6 tools)
1. calendar_v3_list_calendars ā
Validated
List all calendars available to the user.
Validation: No parameters required
2. calendar_v3_list_events ā
Validated
List upcoming calendar events with filtering options.
Validation: Date formats, max results (1-2500), calendar ID format
3. calendar_v3_get_event ā
Validated
Get detailed information about a specific calendar event.
Validation: Required event_id parameter
4. calendar_v3_create_event ā
Validated
Create a new calendar event with optional Google Meet conference.
Validation: Required fields, ISO date format, guest permissions, duration logic
Parameters:
summary(required): Event titlestart_time(required): ISO format start timeend_time(required): ISO format end timecreate_meet_conference(optional): Add Google Meetguest_can_invite_others(optional): Guest invitation permissionsguest_can_modify(optional): Guest modification permissionsguest_can_see_other_guests(optional): Guest visibility permissions
5. calendar_v3_update_event ā
Validated
Update an existing calendar event.
Validation: Required event_id, optional update fields, time validation
6. calendar_v3_delete_event ā
Validated
Delete a calendar event.
Validation: Required event_id parameter
š„ Google Meet API v2 Tools (15 tools)
7. meet_v2_create_space ā
Validated
Create a Google Meet space with advanced configuration.
Validation: Access type enum, boolean flags, restriction combinations
Parameters:
access_type: "OPEN" | "TRUSTED" | "RESTRICTED" (default: "TRUSTED")enable_recording: Enable automatic recording preparationenable_transcription: Enable automatic transcriptionmoderation_mode: "ON" | "OFF" meeting moderationchat_restriction: Chat permissions controlpresent_restriction: Presentation permissions control
8. meet_v2_get_space ā
Validated
Get details of a Google Meet space.
Validation: Space name format (spaces/{space_id})
9. meet_v2_update_space ā
Validated
Update configuration of a Google Meet space.
10. meet_v2_end_active_conference ā
Validated
End the active conference in a Google Meet space.
Validation: Space name format validation
11. meet_v2_list_conference_records ā
Validated
List conference records for historical meetings.
Validation: Filter format, page size limits (1-50)
12-21. Additional Meet API Tools ā All Validated
meet_v2_get_conference_record- Get specific conference detailsmeet_v2_list_recordings- List conference recordingsmeet_v2_get_recording- Get recording detailsmeet_v2_list_transcripts- List conference transcriptsmeet_v2_get_transcript- Get transcript detailsmeet_v2_list_transcript_entries- List transcript speech segmentsmeet_v2_get_participant- Get participant detailsmeet_v2_list_participants- List conference participantsmeet_v2_get_participant_session- Get session detailsmeet_v2_list_participant_sessions- List participant sessions
Validation Features:
Resource name format validation (conferenceRecords/{id}/recordings/{id})
Page size limits (1-1000 depending on endpoint)
Regex validation for all Google API resource identifiers
Smart defaults for pagination
MCP Configuration for Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"google-meet": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/google-meet-mcp-server/src/index.ts"],
"env": {
"G_OAUTH_CREDENTIALS": "/absolute/path/to/credentials.json"
},
"disabled": false
}
}
}Production Configuration (with compiled JS):
{
"mcpServers": {
"google-meet": {
"command": "node",
"args": ["/absolute/path/to/google-meet-mcp-server/build/index.js"],
"env": {
"G_OAUTH_CREDENTIALS": "/absolute/path/to/credentials.json"
},
"disabled": false
}
}
}šļø Enterprise Architecture
TypeScript Structure
google-meet-mcp-server/
āāā src/
ā āāā index.ts # Main MCP server (TypeScript)
ā āāā GoogleMeetAPI.ts # API wrapper (fully typed)
ā āāā setup.ts # OAuth setup (typed)
ā āāā types/ # Type system (921+ lines)
ā ā āāā google-apis.d.ts # Google API types
ā ā āāā mcp-server.d.ts # MCP-specific types
ā ā āāā utilities.d.ts # Branded types & helpers
ā ā āāā index.ts # Centralized exports
ā āāā validation/ # Zod schemas
ā ā āāā meetSchemas.ts # 6 validated tools
ā āāā errors/ # Error handling
ā āāā GoogleApiErrorHandler.ts
āāā test/ # Test suite (101 tests)
ā āāā setup.ts # Test utilities
ā āāā GoogleMeetAPI.test.ts # Unit tests
ā āāā integration.test.ts # Integration tests
ā āāā validation.test.ts # Validation tests
ā āāā simple.test.ts # Basic functionality
āāā build/ # Compiled JavaScript
āāā package.json # TypeScript + testing deps
āāā tsconfig.json # TypeScript configuration
āāā vitest.config.ts # Testing configurationType Safety Features
// Branded types for enhanced safety
type EventId = Brand<string, 'EventId'>;
type SpaceName = Brand<string, 'SpaceName'>;
// Complete API interfaces
interface GoogleMeetAPI {
createMeetSpace(config: SpaceConfigInput): Promise<MeetSpace>;
listCalendars(): Promise<ProcessedCalendar[]>;
createCalendarEvent(data: CreateEventInput): Promise<ProcessedEvent>;
}
// Zod validation with business logic
const CreateSpaceSchema = z.object({
access_type: z.enum(["OPEN", "TRUSTED", "RESTRICTED"]).default("TRUSTED"),
enable_recording: z.boolean().default(false)
}).refine((data) => {
// Custom business logic validation
if (data.enable_recording && data.access_type === "OPEN") {
throw new Error("Recording cannot be enabled for OPEN access meetings");
}
return true;
});Error Handling - Claude Desktop Optimized
The server provides context-aware error messages designed for AI assistance:
Google API Errors
š Access Denied
Problem: Your Google account doesn't have the required permissions.
Solution:
1. Run `npm run setup` to re-authenticate
2. Make sure you granted all requested permissions
3. For enterprise features, check you have Google Workspace Business+Enterprise Feature Errors
š¢ Enterprise Feature Required
Problem: This Meet feature requires Google Workspace Business Standard or higher.
Options:
- Use basic calendar events with Meet links instead
- Upgrade your Google Workspace plan
Alternative: Try `calendar_v3_create_event` with `create_meet_conference: true`Requirements
Technical Requirements
Node.js: 18+ (for TypeScript support)
TypeScript: 5+ (included in dependencies)
Google Account: Any Google account works for basic features
Feature Requirements
ā Basic Features: Works with any Google account
ā Calendar Integration: Google Calendar API enabled
š¢ Enterprise Features: Google Workspace Business Standard or higher
š§ Smart Notes: Gemini Business/Enterprise license
š¹ Recording: Manual activation required during meetings
Development
TypeScript Development
# Development with hot reload
npm run start # tsx src/index.ts with watch
npm run setup # tsx src/setup.ts
# Type checking
npm run type-check # tsc --noEmit
# Testing
npm test # vitest run
npm run test:watch # vitest with watch mode
npm run test:coverage # coverage reportProduction Build
# Build TypeScript
npm run build # tsc to build/ directory
npm run clean # clean build directory
# Run compiled JavaScript
npm run start:js # node build/index.js
npm run setup:js # node build/setup.jsTesting Results
ā
Test Files: 5 passed (5)
ā
Tests: 101 passed (101)
ā
Duration: 2.61s
ā
TypeScript: 0 compilation errors
ā
Type Coverage: ~90% specific types
Test Categories:
- 28 GoogleMeetAPI unit tests
- 12 Integration workflow tests
- 35 Validation schema tests
- 16 Basic functionality tests
- 10 MCP server testsš§ Common Issues & Quick Fixes
šØ Server Won't Start
# Check credentials path and permissions
ls -la "/path/to/your/credentials.json"
chmod 600 "/path/to/your/credentials.json"
# Verify configuration
npx tsx scripts/health-check.jsš Authentication Failed
# Re-run OAuth setup
G_OAUTH_CREDENTIALS="/path/to/creds.json" npm run setup
# Check Google Cloud Console:
# 1. APIs enabled (Calendar + Meet)
# 2. OAuth consent screen configured
# 3. Scopes properly setš¤ Claude Desktop Issues
# Verify MCP configuration
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Restart Claude Desktop
# Check server status in Smithery (if using)š Complete Troubleshooting Guide - Detailed problem resolution
Enterprise Features Limitations
Google Meet API v2
Some advanced features require Google Workspace licenses
Recording cannot be started programmatically (requires manual activation)
Smart Notes require Gemini Business/Enterprise license
Participant data is only available for completed conferences
Implementation Notes
All 21 tools are fully implemented using official Google APIs
Advanced features use direct REST API calls to Google Meet API v2
Authentication and token management handled automatically
Complete TypeScript coverage with branded types for safety
š¤ Contributing
Development Requirements
ā TypeScript code with proper types (no 'any' types)
ā Tests pass (
npm test) - maintain 100% test success rateā Zod validation schemas for new tools
ā Error handling for new endpoints
ā Documentation updates for new features
ā Security review for credential handling
Contribution Process
Fork and clone the repository
Create feature branch from
mainImplement changes with tests and documentation
Run full test suite (
npm test)Update relevant guides in
docs/Submit pull request with detailed description
š License
ISC License - Free for commercial and personal use. See LICENSE file for details.
š Ready to supercharge your Google Meet workflow? Choose your deployment method above and get started in minutes!
š” Recommended: Start with Smithery deployment for the easiest setup experience.
š Support & Resources
š Documentation
Smithery User Guide - Team deployment with Smithery
Docker Deployment - Containerized production deployment
Manual Setup - Direct installation and configuration
Security Guide - Individual security best practices
Team Security - Enterprise team management
Troubleshooting - Problem diagnosis and resolution
š Getting Help
š GitHub Issues - Bug reports and feature requests
šØ Smithery Support - Platform-specific help
š MCP Documentation - Model Context Protocol resources
šÆ Quick Links
Repository: github.com/INSIDE-HAIR/google-meet-mcp-server
Smithery Page: smithery.ai/server/@inside-hair/google-meet-mcp-server
Docker Hub: ghcr.io/inside-hair/google-meet-mcp-server
Acknowledgments
Built with Model Context Protocol SDK
Powered by Google Calendar API and Google Meet API
Compatible with Claude Desktop and other MCP clients
Enterprise-grade TypeScript architecture
Comprehensive Zod validation system
Available Tools
24 toolscalendar_v3_create_eventB
[Calendar API v3] Create a new calendar event with Google Meet conference and guest permissions
Inputs: summary (required), start_time (required), end_time (required), description, +8 more.
calendar_v3_delete_eventC
[Calendar API v3] Delete a calendar event
Inputs: event_id (required), calendar_id.
calendar_v3_freebusy_queryC
[Calendar API v3] Query free/busy information for calendars
Inputs: calendar_ids (required), time_min (required), time_max (required).
calendar_v3_get_eventC
[Calendar API v3] Get details of a specific calendar event
Inputs: event_id (required).
calendar_v3_list_calendarsB
[Calendar API v3] List all calendars available to the user
Inputs: no named parameters.
calendar_v3_list_eventsC
[Calendar API v3] List upcoming calendar events with Google Meet conferences
Inputs: max_results, time_min, time_max, calendar_id.
calendar_v3_move_eventC
[Calendar API v3] Move a calendar event from one calendar to another
Inputs: event_id (required), source_calendar_id (required), destination_calendar_id (required).
calendar_v3_quick_addB
[Calendar API v3] Create event using natural language
Inputs: text (required), calendar_id.
calendar_v3_update_eventC
[Calendar API v3] Update an existing calendar event
Inputs: event_id (required), summary, description, location, +7 more.
meet_v2_create_spaceC
[Meet API v2 GA] Create a Google Meet space with advanced configuration
Inputs: access_type, enable_recording, enable_transcription, enable_smart_notes, +5 more.
meet_v2_end_active_conferenceC
[Meet API v2 GA] End the active conference in a Google Meet space
Inputs: space_name (required).
meet_v2_get_conference_recordC
[Meet API v2 GA] Get details of a specific conference record
Inputs: conference_record_name (required).
meet_v2_get_participantC
[Meet API v2 GA] Get details of a specific participant
Inputs: participant_name (required).
meet_v2_get_participant_sessionC
[Meet API v2 GA] Get details of a specific participant session
Inputs: participant_session_name (required).
meet_v2_get_recordingC
[Meet API v2 GA] Get details of a specific recording
Inputs: recording_name (required).
meet_v2_get_spaceC
[Meet API v2 GA] Get details of a Google Meet space
Inputs: space_name (required).
meet_v2_get_transcriptC
[Meet API v2 GA] Get details of a specific transcript
Inputs: transcript_name (required).
meet_v2_list_conference_recordsC
[Meet API v2 GA] List conference records for historical meetings
Inputs: filter, page_size.
meet_v2_list_participantsC
[Meet API v2 GA] List participants for a conference record
Inputs: conference_record_name (required), page_size.
meet_v2_list_participant_sessionsC
[Meet API v2 GA] List sessions for a specific participant
Inputs: participant_name (required), page_size.
meet_v2_list_recordingsC
[Meet API v2 GA] List recordings for a conference record
Inputs: conference_record_name (required).
meet_v2_list_transcript_entriesC
[Meet API v2 GA] List transcript entries (individual speech segments)
Inputs: transcript_name (required), page_size.
meet_v2_list_transcriptsC
[Meet API v2 GA] List transcripts for a conference record
Inputs: conference_record_name (required).
meet_v2_update_spaceC
[Meet API v2 GA] Update configuration of a Google Meet space
Inputs: space_name (required), access_type, moderation_mode, chat_restriction, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 24 tools
Every tool has a clearly distinct purpose with no ambiguity. Calendar tools focus on event/calendar management (create, delete, get, list, update, move, quick_add, freebusy_query), while Meet tools focus on space/conference management and data retrieval (create_space, update_space, end_conference, get_* for various entities, list_* for various entities). The separation between Calendar and Meet domains is explicit, and within each domain, tools target specific resources and actions without overlap.
Tool names follow a highly consistent pattern throughout. All tools use a verb_noun format with a prefix indicating the API (calendar_v3_ or meet_v2_), followed by a descriptive action and resource (e.g., create_event, list_calendars, get_participant, update_space). There are no deviations in style or convention, making the naming predictable and easy to understand.
With 24 tools, the count is borderline heavy for a single server, though it covers two related domains (Calendar and Meet). While each tool appears purposeful, the high number might overwhelm agents or indicate over-specialization. A typical well-scoped server often has 3-15 tools, so 24 pushes into the upper limit of reasonable, leaning toward feeling heavy but not extreme.
The tool surface is complete with comprehensive CRUD/lifecycle coverage for both Calendar and Meet domains. Calendar tools cover all essential operations (create, read, update, delete, list, move, quick_add, freebusy_query), and Meet tools cover space management, conference control, and detailed data retrieval (participants, recordings, transcripts). There are no obvious gaps, and agents can handle full workflows without dead ends.
Maintenance
Related MCP Connectors
Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.
Google Meet meeting transcripts, summaries, and action items, plus a notetaker bot you can send.
Schedule and manage Google Calendar events directly from your workspace. Check availability, viewā¦
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Google Calendar through OAuth2 authentication, supporting calendar and event management including creating, updating, deleting events with attendees, reminders, and search functionality.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables management of Google Calendar events across multiple calendars with natural language support, including searching events, checking availability, creating/updating/deleting events, responding to invitations, and auto-generating Google Meet links.106 npm49MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Calendar by listing, creating, updating, and deleting events. It also includes functionality to find available time slots for scheduling.-
- AlicenseNot gradedqualityDmaintenanceEnables calendar management through Google Calendar API with OAuth2 authentication, multi-account support, and features like event creation, availability checking, and attendee management.MIT