Skip to main content
Glama

Google Calendar and Meet MCP Server

by INSIDE-HAIR
README.md•19.9 kB
# šŸš€ Google Meet MCP Server v3.0 - Production Ready [![smithery badge](https://smithery.ai/badge/@inside-hair/google-calendar-and-meet)](https://smithery.ai/server/@inside-hair/google-calendar-and-meet) 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 - **šŸ“– [Complete Smithery User Guide](./docs/SMITHERY_USER_GUIDE.md)** ### **🐳 Docker** - **Production deployments** with full containerization - **Multi-stage builds** optimized for size and security - **Development and production** configurations - **šŸ“– [Docker Deployment Guide](./docs/DOCKER_DEPLOYMENT.md)** ### **āš™ļø Manual Setup** - **Full control** over installation and configuration - **Development environments** and custom deployments - **Direct Node.js** execution with TypeScript - **šŸ“– [Manual Setup Guide](./docs/SETUP.md)** ## šŸš€ 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)** 1. **Visit [Smithery.ai](https://smithery.ai/server/@INSIDE-HAIR/mcp-google-meet-and-calendar)** 2. **Click "Deploy Server"** 3. **Configure your Google credentials path** 4. **Start using in Claude Desktop** **šŸ“– [Complete Smithery User Guide](./docs/SMITHERY_USER_GUIDE.md)** - Step-by-step for teams ### **🐳 Docker (Recommended for Production)** ```bash # 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](./docs/DOCKER_DEPLOYMENT.md)** - Complete containerization ### **āš™ļø Manual Installation** ```bash # 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](./docs/SETUP.md)** - 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](./docs/SECURITY.md)** - Individual security practices ### **šŸ‘„ Team Security** - **Comprehensive team onboarding procedures** - **Corporate Google Cloud project management** - **Credential rotation and compliance monitoring** - **šŸ“– [Team Security Guide](./docs/TEAM_SECURITY.md)** - Enterprise team deployment ### **šŸ”§ Troubleshooting** - **Complete diagnostics and problem resolution** - **Common issues and solutions** - **Health check scripts and monitoring** - **šŸ“– [Troubleshooting Guide](./docs/TROUBLESHOOTING.md)** - Problem resolution ## Usage ### Development Mode (TypeScript with Hot Reload) ```bash # Start server in development mode npm run start # Run setup in TypeScript mode npm run setup ``` ### Production Mode (Compiled JavaScript) ```bash # Build TypeScript to JavaScript npm run build # Run compiled server npm run start:js ``` ### Testing ```bash # 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 title - `start_time` (required): ISO format start time - `end_time` (required): ISO format end time - `create_meet_conference` (optional): Add Google Meet - `guest_can_invite_others` (optional): Guest invitation permissions - `guest_can_modify` (optional): Guest modification permissions - `guest_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 preparation - `enable_transcription`: Enable automatic transcription - `moderation_mode`: "ON" | "OFF" meeting moderation - `chat_restriction`: Chat permissions control - `present_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 details - `meet_v2_list_recordings` - List conference recordings - `meet_v2_get_recording` - Get recording details - `meet_v2_list_transcripts` - List conference transcripts - `meet_v2_get_transcript` - Get transcript details - `meet_v2_list_transcript_entries` - List transcript speech segments - `meet_v2_get_participant` - Get participant details - `meet_v2_list_participants` - List conference participants - `meet_v2_get_participant_session` - Get session details - `meet_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: ```json { "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):** ```json { "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 configuration ``` ### Type Safety Features ```typescript // 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 ```bash # 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 report ``` ### Production Build ```bash # 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.js ``` ## Testing 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** ```bash # 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** ```bash # 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** ```bash # 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](./docs/TROUBLESHOOTING.md)** - 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** 1. **Fork and clone** the repository 2. **Create feature branch** from `main` 3. **Implement changes** with tests and documentation 4. **Run full test suite** (`npm test`) 5. **Update relevant guides** in `docs/` 6. **Submit pull request** with detailed description ## šŸ“„ **License** **ISC License** - Free for commercial and personal use. See [LICENSE](./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](./docs/SMITHERY_USER_GUIDE.md) for the easiest setup experience. ## šŸ“ž **Support & Resources** ### **šŸ“š Documentation** - **[Smithery User Guide](./docs/SMITHERY_USER_GUIDE.md)** - Team deployment with Smithery - **[Docker Deployment](./docs/DOCKER_DEPLOYMENT.md)** - Containerized production deployment - **[Manual Setup](./docs/SETUP.md)** - Direct installation and configuration - **[Security Guide](./docs/SECURITY.md)** - Individual security best practices - **[Team Security](./docs/TEAM_SECURITY.md)** - Enterprise team management - **[Troubleshooting](./docs/TROUBLESHOOTING.md)** - Problem diagnosis and resolution ### **šŸ†˜ Getting Help** - **šŸ› [GitHub Issues](https://github.com/INSIDE-HAIR/google-meet-mcp-server/issues)** - Bug reports and feature requests - **šŸ”Ø [Smithery Support](https://smithery.ai/support)** - Platform-specific help - **šŸ“– [MCP Documentation](https://modelcontextprotocol.io)** - Model Context Protocol resources ### **šŸŽÆ Quick Links** - **Repository**: [github.com/INSIDE-HAIR/google-meet-mcp-server](https://github.com/INSIDE-HAIR/google-meet-mcp-server) - **Smithery Page**: [smithery.ai/server/@inside-hair/google-meet-mcp-server](https://smithery.ai/server/@INSIDE-HAIR/mcp-google-meet-and-calendar) - **Docker Hub**: [ghcr.io/inside-hair/google-meet-mcp-server](https://ghcr.io/inside-hair/google-meet-mcp-server) ## Acknowledgments - Built with [Model Context Protocol SDK](https://github.com/modelcontextprotocol) - 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

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/INSIDE-HAIR/mcp-google-calendar-and-meet'

If you have feedback or need assistance with the MCP directory API, please join our Discord server