{"_id":"@dtannen/google-meet-mcp","_rev":"2-b9b9fbdd87f84132956d166a975b5bb1","name":"@dtannen/google-meet-mcp","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@dtannen/google-meet-mcp","version":"1.0.0","keywords":["mcp","model-context-protocol","claude","google-meet","meetings","transcripts","ai","llm","integration"],"author":{"name":"nspady"},"license":"MIT","_id":"@dtannen/google-meet-mcp@1.0.0","maintainers":[{"name":"dtannen","email":"dtannen@yahoo.com"}],"homepage":"https://github.com/nspady/google-calendar-mcp#readme","bugs":{"url":"https://github.com/nspady/google-calendar-mcp/issues"},"bin":{"google-meet-mcp":"build/index.js"},"dist":{"shasum":"e5936524d0c0cc28b07c46c673f9f97201eb10d2","tarball":"https://registry.npmjs.org/@dtannen/google-meet-mcp/-/google-meet-mcp-1.0.0.tgz","fileCount":7,"integrity":"sha512-dMSVrPyjMBjnGNi3OCEYseUmMyCWjJwNIIOkosh9LUkKIMNCHA1CLClmfJFoBDx/hXLOG3Mt5XMtL1+j9Tquyw==","signatures":[{"sig":"MEUCIQDCCL054/t3dIRbUgThj9UF2LHfsI4oFyL/TlzLdsQTPAIgQcw2F46qDj8yXZx0+66nJIwUM6EloSIAyEUFKs0t4Ho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282798},"main":"build/index.js","type":"module","gitHead":"ab10594be5fc31a5ddeb1de9f66480446a2743b1","scripts":{"dev":"node scripts/dev.js","auth":"node build/auth-server.js","lint":"tsc --noEmit -p tsconfig.lint.json","test":"vitest run src/tests/unit","build":"node scripts/build.js","start":"node build/index.js","test:all":"vitest run src/tests","start:http":"node build/index.js --transport http --port 3000","test:watch":"vitest src/tests/unit","test:coverage":"vitest run src/tests/unit --coverage","test:integration":"vitest run src/tests/integration","start:http:public":"node build/index.js --transport http --port 3000 --host 0.0.0.0"},"_npmUser":{"name":"dtannen","email":"dtannen@yahoo.com"},"repository":{"url":"git+https://github.com/nspady/google-calendar-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"Google Meet MCP Server for creating meeting links and accessing transcripts","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.22.4","open":"^7.4.2","esbuild":"^0.25.0","googleapis":"^144.0.0","zod-to-json-schema":"^3.24.5","google-auth-library":"^9.15.0","@google-cloud/local-auth":"^3.0.1","@modelcontextprotocol/sdk":"^1.12.1"},"preferGlobal":false,"_hasShrinkwrap":false,"devDependencies":{"openai":"^4.104.0","vitest":"^3.1.1","typescript":"^5.3.3","@types/node":"^20.10.4","@anthropic-ai/sdk":"^0.52.0","@vitest/coverage-v8":"^3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/google-meet-mcp_1.0.0_1755718358134_0.4485326058604344","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dtannen/google-meet-mcp","version":"1.0.1","description":"Google Meet MCP Server for creating meeting links and accessing transcripts","type":"module","main":"build/index.js","bin":{"google-meet-mcp":"build/index.js"},"preferGlobal":false,"keywords":["mcp","model-context-protocol","claude","google-meet","meetings","transcripts","ai","llm","integration"],"repository":{"type":"git","url":"git+https://github.com/nspady/google-calendar-mcp.git"},"bugs":{"url":"https://github.com/nspady/google-calendar-mcp/issues"},"homepage":"https://github.com/nspady/google-calendar-mcp#readme","author":{"name":"nspady"},"license":"MIT","scripts":{"start":"node build/index.js","build":"node scripts/build.js","auth":"node build/auth-server.js","dev":"node scripts/dev.js","lint":"tsc --noEmit -p tsconfig.lint.json","test":"vitest run src/tests/unit","test:watch":"vitest src/tests/unit","test:integration":"vitest run src/tests/integration","test:all":"vitest run src/tests","test:coverage":"vitest run src/tests/unit --coverage","start:http":"node build/index.js --transport http --port 3000","start:http:public":"node build/index.js --transport http --port 3000 --host 0.0.0.0"},"dependencies":{"@google-cloud/local-auth":"^3.0.1","@modelcontextprotocol/sdk":"^1.12.1","esbuild":"^0.25.0","google-auth-library":"^9.15.0","googleapis":"^144.0.0","open":"^7.4.2","zod":"^3.22.4","zod-to-json-schema":"^3.24.5"},"devDependencies":{"@anthropic-ai/sdk":"^0.52.0","@types/node":"^20.10.4","@vitest/coverage-v8":"^3.1.1","openai":"^4.104.0","typescript":"^5.3.3","vitest":"^3.1.1"},"_id":"@dtannen/google-meet-mcp@1.0.1","gitHead":"ab10594be5fc31a5ddeb1de9f66480446a2743b1","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-IVbivg6VtafFqKIYGka7IYbCy3V+JMfoZrBNZ+9sHmNcqB054j9R0czs3oMXz60Vcw7YWknc4nqRnBgjWcZDdg==","shasum":"23ec5da51f4eac4480f1bc6c0c06198edc940fab","tarball":"https://registry.npmjs.org/@dtannen/google-meet-mcp/-/google-meet-mcp-1.0.1.tgz","fileCount":7,"unpackedSize":282804,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDyW0Jt3tFoKOggsIEjFDOhVsDU+Var/FspLgixcNho6AiEA6adG0w7z+DsF5XgxBoQRfCCUpkWk0ORAqGLcPYc6V7I="}]},"_npmUser":{"name":"dtannen","email":"dtannen@yahoo.com"},"directories":{},"maintainers":[{"name":"dtannen","email":"dtannen@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/google-meet-mcp_1.0.1_1755718553152_0.7124265946889168"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-20T19:32:38.035Z","modified":"2025-08-20T19:35:53.574Z","1.0.0":"2025-08-20T19:32:38.314Z","1.0.1":"2025-08-20T19:35:53.339Z"},"bugs":{"url":"https://github.com/nspady/google-calendar-mcp/issues"},"author":{"name":"nspady"},"license":"MIT","homepage":"https://github.com/nspady/google-calendar-mcp#readme","keywords":["mcp","model-context-protocol","claude","google-meet","meetings","transcripts","ai","llm","integration"],"repository":{"type":"git","url":"git+https://github.com/nspady/google-calendar-mcp.git"},"description":"Google Meet MCP Server for creating meeting links and accessing transcripts","maintainers":[{"name":"dtannen","email":"dtannen@yahoo.com"}],"readme":"# Google Meet MCP Server\n\nA Model Context Protocol (MCP) server that provides Google Meet integration for AI assistants like Claude.\n\n## Features\n\n- **Create Meet Links**: Generate Google Meet links for future meetings\n- **Transcript Access**: Retrieve transcripts from completed Google Meet sessions\n- **Calendar Integration**: Uses the same Google OAuth credentials as calendar systems\n- **Drive Integration**: Access transcripts saved to Google Drive\n- **Smart Scheduling**: Create meetings with natural language date/time input\n\n## Quick Start\n\n### Prerequisites\n\n1. A Google Cloud project with Calendar API and Drive API enabled\n2. OAuth 2.0 credentials (Desktop app type)\n3. For transcript access: Google Workspace account (Business/Enterprise/Education)\n\n### Google Cloud Setup\n\n1. Go to the [Google Cloud Console](https://console.cloud.google.com)\n2. Create a new project or select an existing one.\n3. Enable the following APIs:\n   - [Google Calendar API](https://console.cloud.google.com/apis/library/calendar-json.googleapis.com)\n   - [Google Drive API](https://console.cloud.google.com/apis/library/drive.googleapis.com)\n4. Create OAuth 2.0 credentials:\n   - Go to Credentials\n   - Click \"Create Credentials\" > \"OAuth client ID\"\n   - Choose \"User data\" for the type of data that the app will be accessing\n   - Add your app name and contact information\n   - Add the following scopes:\n     - `https://www.googleapis.com/auth/calendar` (for creating meetings)\n     - `https://www.googleapis.com/auth/drive.readonly` (for transcript access)\n   - Select \"Desktop app\" as the application type (Important!)\n   - Save the auth key, you'll need to add its path to the JSON in the next step\n   - Add your email address as a test user under the [Audience screen](https://console.cloud.google.com/auth/audience)\n      - Note: it might take a few minutes for the test user to be added. The OAuth consent will not allow you to proceed until the test user has propagated.\n      - Note about test mode: While an app is in test mode the auth tokens will expire after 1 week and need to be refreshed (see Re-authentication section below).\n\n### Installation\n\n**Option 1: Use with npx (Recommended)**\n\nAdd to your Claude Desktop configuration:\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n```json\n{\n  \"mcpServers\": {\n    \"google-meet\": {\n      \"command\": \"npx\",\n      \"args\": [\"@dtannen/google-meet-mcp\"],\n      \"env\": {\n        \"GOOGLE_OAUTH_CREDENTIALS\": \"/path/to/your/gcp-oauth.keys.json\"\n      }\n    }\n  }\n}\n```\n\n**⚠️ Important Note for npx Users**: When using npx, you **must** specify the credentials file path using the `GOOGLE_OAUTH_CREDENTIALS` environment variable.\n\n**Option 2: Local Installation**\n\n```bash\ngit clone https://github.com/nspady/google-calendar-mcp.git\ncd google-calendar-mcp\nnpm install\nnpm run build\n```\n\nThen add to Claude Desktop config using the local path or by specifying the path with the `GOOGLE_OAUTH_CREDENTIALS` environment variable.\n\n**Option 3: Docker Installation**\n\n```bash\ngit clone https://github.com/nspady/google-calendar-mcp.git\ncd google-calendar-mcp\ncp /path/to/your/gcp-oauth.keys.json .\ndocker compose up\n```\n\nSee the [Docker deployment guide](docs/docker.md) for detailed configuration options including HTTP transport mode.\n\n### First Run\n\n1. Start Claude Desktop\n2. The server will prompt for authentication on first use\n3. Complete the OAuth flow in your browser\n4. You're ready to use Google Meet features!\n\n### Re-authentication\n\nIf you're in test mode (default), tokens expire after 7 days. If you are using a client like Claude Desktop it should open up a browser window to automatically re-auth. However, if you see authentication errors you can also resolve by following these steps:\n\n**For npx users:**\n```bash\nexport GOOGLE_OAUTH_CREDENTIALS=\"/path/to/your/gcp-oauth.keys.json\"\nnpx @dtannen/google-meet-mcp auth\n```\n\n**For local installation:**\n```bash\nnpm run auth\n```\n\n**To avoid weekly re-authentication**, publish your app to production mode (without verification):\n1. Go to Google Cloud Console → \"APIs & Services\" → \"OAuth consent screen\"\n2. Click \"PUBLISH APP\" and confirm\n3. Your tokens will no longer expire after 7 days but Google will show a more threatning warning when connecting to the app about it being unverified. \n\nSee [Authentication Guide](docs/authentication.md#moving-to-production-mode-recommended) for details.\n\n## Example Usage\n\nHere are common use cases for the Google Meet MCP:\n\n1. **Create a meeting with Google Meet link**:\n   ```\n   Create a meeting for tomorrow at 2 PM called \"Team Standup\" with Google Meet link. \n   Invite alice@company.com and bob@company.com.\n   ```\n\n2. **Schedule recurring meetings**:\n   ```\n   Set up a weekly team meeting every Monday at 10 AM with a Google Meet link.\n   ```\n\n3. **Find previous meetings and get transcripts**:\n   ```\n   Show me all my Google Meet meetings from last week that have transcripts available.\n   ```\n   \n4. **Get transcripts from meetings**:\n   ```\n   Get the transcript from the Google Meet recording that was saved to my Drive. \n   The file ID is 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms\n   ```\n\n5. **Quick ad-hoc meetings**:\n   ```\n   I need to create a quick Google Meet for right now to discuss the project with the team.\n   ```\n\n6. **Meeting with timezone handling**:\n   ```\n   Create a meeting for 3 PM Pacific Time tomorrow with our London team. \n   Include a Google Meet link.\n   ```\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `create-meet-link` | Create a Google Meet link by creating a calendar event with conference data |\n| `list-meetings` | List previous Google Meet meetings with associated recordings and transcripts |\n| `get-meet-transcript` | Retrieve transcripts from Google Meet recordings |\n| `get-current-time` | Get current system time and timezone information |\n\n## Documentation\n\n- [Authentication Setup](docs/authentication.md) - Detailed Google Cloud setup\n- [Advanced Usage](docs/advanced-usage.md) - Multi-account, batch operations\n- [Deployment Guide](docs/deployment.md) - HTTP transport, remote access\n- [Docker Guide](docs/docker.md) - Docker deployment with stdio and HTTP modes\n- [OAuth Verification](docs/oauth-verification.md) - Moving from test to production mode\n- [Architecture](docs/architecture.md) - Technical architecture overview\n- [Development](docs/development.md) - Contributing and testing\n- [Testing](docs/testing.md) - Unit and integration testing guide\n\n## Configuration\n\n**Environment Variables:**\n- `GOOGLE_OAUTH_CREDENTIALS` - Path to OAuth credentials file\n- `GOOGLE_CALENDAR_MCP_TOKEN_PATH` - Custom token storage location (optional)\n\n**Claude Desktop Config Location:**\n- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n\n## Security\n\n- OAuth tokens are stored securely in your system's config directory\n- Credentials never leave your local machine\n- All Google Meet operations require explicit user consent\n- Transcript access requires proper Google Workspace permissions\n\n### Troubleshooting\n\n1. **OAuth Credentials File Not Found:**\n   - For npx users: You **must** specify the credentials file path using `GOOGLE_OAUTH_CREDENTIALS`\n   - Verify file paths are absolute and accessible\n\n2. **Authentication Errors:**\n   - Ensure your credentials file contains credentials for a **Desktop App** type\n   - Verify your user email is added as a **Test User** in the Google Cloud OAuth Consent screen\n   - Try deleting saved tokens and re-authenticating\n   - Check that no other process is blocking ports 3000-3004\n\n3. **Build Errors:**\n   - Run `npm install && npm run build` again\n   - Check Node.js version (use LTS)\n   - Delete the `build/` directory and run `npm run build`\n4. **\"Something went wrong\" screen during browser authentication**\n   - Perform manual authentication per the below steps\n   - Use a Chromium-based browser to open the authentication URL. Test app authentication may not be supported on some non-Chromium browsers.\n\n### Manual Authentication\nFor re-authentication or troubleshooting:\n```bash\n# For npx installations\nexport GOOGLE_OAUTH_CREDENTIALS=\"/path/to/your/credentials.json\"\nnpx @dtannen/google-meet-mcp auth\n\n# For local installations\nnpm run auth\n```\n\n## License\n\nMIT\n\n## Support\n\n- [GitHub Issues](https://github.com/nspady/google-calendar-mcp/issues)\n- [Documentation](docs/)\n","readmeFilename":"README.md"}