Announcing CIMD support for MCP Client registration
Learn more

Do You Actually Need Community Google Meet MCP or the Official Meet API will Do?

Nityashree Yadunath
Product Marketing Manager

TL;DR

  • Google Meet does not ship an official first-party MCP server. Google's official Workspace MCP program is in Developer Preview for Drive, Gmail, Calendar, Chat, and the People API; Meet is not on that list. The "MCP path" for Meet today means community-built servers.
  • Most community Meet MCP servers wrap the Google Calendar API, so they create, list, and update meetings with Meet links; they do not reach conference records, participants, recordings, transcripts, or Gemini smart notes.
  • The official Google Meet REST API (v2) is the surface that exposes post-meeting intelligence: spaces, conference records, participants, recordings, transcripts, transcript entries, and smart notes. If your agent needs meeting data, this is the path.
  • Both paths authenticate with OAuth 2.0 at the user level. The REST API additionally supports service-account domain-wide delegation for headless, domain-wide access. Neither path stores, rotates, or revokes credentials for you.
  • For multi-tenant B2B agents, per-user credential isolation is an infrastructure problem regardless of path. Scalekit's Google Meet connector wraps the Meet REST API v2 as 16 scoped tools with per-user OAuth handled for you.

Your agent needs to read and act on Google Meet. You went looking for a Meet MCP server the way you would for Slack or GitHub, and the picture is murkier than you expected. Google has shipped official remote MCP servers for a growing list of products, but Meet is not one of them yet. What exists instead is a set of community MCP servers, most of which quietly talk to the Calendar API rather than the Meet REST API. That distinction changes what your agent can actually do. Here is how to pick.

What Google Meet MCP and Google Meet API actually are

These two paths are not two views of the same surface. One is a community-maintained convenience layer aimed at scheduling; the other is Google's official data plane for meeting artifacts.

Google Meet has no official first-party MCP server

Google's official Model Context Protocol (MCP) program does cover Workspace, but selectively. As of the current supported-products list, the Google Workspace MCP servers in Developer Preview are Google Drive, Gmail, Google Calendar, Google Chat, and the People API. Google Meet is absent. There is no meetmcp.googleapis.com endpoint to point an agent at.

What the community Meet MCP servers actually wrap

The Meet MCP servers you will find in public registries are third-party projects. Most of them interact with Meet through the Google Calendar API, exposing tools such as create-meeting, list-meetings, get-meeting-details, update-meeting, and delete-meeting. That is genuinely useful for scheduling, but it is Calendar functionality with a Meet link attached. These servers run locally, you supply your own OAuth credentials, and you own the deployment. We are not linking specific community servers here; treat them as unmaintained relative to your production timeline.

The Google Meet REST API (v2)

The official Google Meet REST API sits at https://meet.googleapis.com/v2 and is scoped to meetings, not identity or scheduling. Its resources are spaces, conferenceRecords, conferenceRecords.participants, conferenceRecords.recordings, conferenceRecords.transcripts, conferenceRecords.transcripts.entries, and conferenceRecords.smartNotes. Authentication is OAuth 2.0. Recordings export to the organizer's Google Drive and transcripts to a Google Doc, usually ready shortly after a conference ends. The API itself is request and response; event delivery runs through the separate Google Workspace Events API into Cloud Pub/Sub.

Comparing them where it matters for agents

The two paths barely overlap. One creates scheduled meetings; the other reads what happened inside them. That is the whole comparison in a sentence, and it drives every decision below.

What your agent can actually do

The capability split is unusually clean here, because the community MCP path and the REST API path are built on different Google APIs.

Capability
Community Meet MCP (Calendar-API based)
Google Meet REST API (v2)
Create a scheduled meeting with invitees and a Meet link
Yes
No, this is Calendar API territory
Create an on-demand meeting space
Limited
Yes, via spaces.create
Update meeting space access configuration
No
Yes, via spaces.update
End the active conference in a space
No
Yes
List and get past conference records
No
Yes
List participants and participant sessions
No
Yes
Get recordings and their Drive export location
No
Yes
Get transcripts and per-speaker transcript entries
No
Yes
Get Gemini-generated smart notes
No
Yes
Subscribe to Meet events (started, ended, participant, recording ready)
No
Yes, via Workspace Events API and Pub/Sub
Stream real-time audio or video from a live call
No
No, that is the separate Meet Media API

Where the capability gap bites

Post-meeting intelligence lives only in the REST API. If your agent summarizes calls, extracts action items from transcripts, audits attendance, or files recordings, the community MCP path cannot help; it never sees a conference record. Conversely, if all your agent does is put a meeting on someone's calendar, the REST API is the wrong tool, because it does not schedule dated calendar events with invitees. Most real agents need both surfaces, which is why a Meet agent is rarely a single-connector agent.

The auth path each one puts you on

Both paths use OAuth 2.0, and both make the agent act as the user who granted consent. The Meet REST API returns records only for spaces the authenticated principal can access, so scope is a function of identity by default. For headless, domain-wide access, the REST API also supports a service account with domain-wide delegation, which the community Calendar-based servers do not meaningfully offer.

The Google consent screen reality

There is a production wrinkle on either path. Until Google verifies your external OAuth app, users see an unverified-app screen naming your intermediary domain rather than your brand. Switching to an organization-owned OAuth client does not bypass verification. This is Google's behavior, not something the MCP layer or a proxy removes, and it applies whether you build against a community server or the REST API directly.

What you own in production

With a community MCP server, you own the server: you host it, patch it, refresh its OAuth credentials, and inherit whatever the maintainer did or did not handle around token refresh and revocation. With the direct REST API, you own everything the API does not: request schemas, cursor-based pagination on conferenceRecords and participants, error handling, retries, the OAuth flow, and the token lifecycle for every user.

When to use the community MCP path

  • You are prototyping an interactive assistant and want meeting scheduling wired up fast, with a human present to complete OAuth
  • Your agent's Meet needs stop at creating, listing, and updating scheduled meetings
  • You are comfortable self-hosting and maintaining the server for the life of the agent
  • You do not need transcripts, recordings, participants, or conference records

When to use the Google Meet REST API

  • Your agent reads meeting artifacts: transcripts, transcript entries, recordings, or Gemini smart notes
  • Your agent audits participation, enumerates conference records, or reacts to meeting lifecycle events
  • You need headless, domain-wide access through a service account with domain-wide delegation
  • You are building a deterministic pipeline where the exact resource surface and pagination behavior matter

The credential problem that exists on both paths

Whichever path you choose, you end up holding a Google credential per user. OAuth gives you a token per person; it does not give you a vault, a rotation policy, or a revocation flow. Those are yours to build.

The N-credential problem

In a multi-tenant B2B Meet agent, every user authorizes their own Google account. That is N tokens to encrypt, isolate per tenant, refresh before expiry, and revoke on offboarding. The failure mode is quiet: an employee is disabled in your IdP, but a Google refresh token issued nine months ago and stored on a box somewhere still works. The agent does not decide to keep using it. It just does. This is the same problem on both paths; only the token's origin differs. For a deeper look at how to handle token refresh for AI agents, the failure modes and best practices are covered in detail.

Where Scalekit fits

Scalekit's Google Meet connector wraps the official Meet REST API v2 as 16 LLM-ready tools with OAuth 2.0, and resolves the right user's token on every call so credentials never touch your agent runtime. The connector covers the full artifact surface: googlemeet_create_meet_space, googlemeet_list_conference_records, googlemeet_list_participants, googlemeet_get_recording, googlemeet_get_transcript, googlemeet_list_transcript_entries, and googlemeet_get_smart_note, among others. The path decision does not change what you need at the credential layer, and Scalekit handles that layer for you. For the deeper background on OAuth for AI agents and production architecture, see how Scalekit approaches the token lifecycle and per-user delegation.

Building a Google Meet agent with Scalekit

The pattern below is per-user by construction. You never write a Meet tool schema, and no Google token enters your agent code. The full quickstart lives in the AgentKit quickstart.

Set up the connection

In the Scalekit dashboard, create a Google Meet connection under AgentKit and Connections, supply your Google Cloud OAuth client, and enable the Google Meet API in your Google Cloud project. The connection name you choose, for example googlemeet, is what your code references on every call. Install the SDK with pip install anthropic scalekit-sdk-python protobuf.

Discover the tools the user authorized

The agent does not load a flat Meet catalog. It loads only the tools the current user's connected account is authorized to call, resolved from the identifier you pass. That identifier comes from your own authenticated session, never from the client. The call that retrieves this scoped surface is list_scoped_tools. Understanding secure token management for AI agents is essential before wiring this pattern into production.

import os import anthropic import scalekit.client from google.protobuf.json_format import MessageToDict from dotenv import find_dotenv, load_dotenv load_dotenv(find_dotenv()) scalekit_client = scalekit.client.ScalekitClient( client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"), ) actions = scalekit_client.actions # The identifier represents the current user in YOUR system. identifier = "user_123" # 1. Ensure this user has an active Google Meet connection. account = actions.get_or_create_connected_account( connection_name="googlemeet", identifier=identifier, ) if account.connected_account.status != "ACTIVE": link = actions.get_authorization_link( connection_name="googlemeet", identifier=identifier ) print("Authorize Google Meet:", link.link) input("Press Enter after authorizing...") # 2. Retrieve only the tools this user's connected account can call. # "googlemeet" must match the Connection name in the dashboard exactly. scoped_response, _ = actions.tools.list_scoped_tools( identifier=identifier, filter={"connection_names": ["googlemeet"]}, page_size=100, ) llm_tools = [ { "name": MessageToDict(tool.tool).get("definition", {}).get("name"), "description": MessageToDict(tool.tool) .get("definition", {}) .get("description", ""), "input_schema": MessageToDict(tool.tool) .get("definition", {}) .get("input_schema", {}), } for tool in scoped_response.tools ] print(f"Discovered {len(llm_tools)} Google Meet tools")

Execute tools in a Claude agent loop

With the scoped tools in Anthropic's native format, the loop is the standard Claude tool-use pattern. When Claude asks for a tool, you call execute_tool with the same identifier, and Scalekit makes the Meet REST API call as that user. The token is fetched from the vault and never returned to your code.

client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) messages = [ { "role": "user", "content": "Find my most recent Google Meet conference record and " "summarize its transcript into three action items.", } ] while True: response = client.messages.create( model=os.getenv("ANTHROPIC_MODEL", "claude-sonnet-4-6"), max_tokens=1024, tools=llm_tools, messages=messages, ) if response.stop_reason == "end_turn": print(response.content[0].text) break tool_results = [] for block in response.content: if block.type == "tool_use": print(f" -> Calling: {block.name}") try: result = actions.execute_tool( tool_name=block.name, identifier=identifier, tool_input=block.input, ) content = str(result.data) except Exception as e: content = f"Error: {str(e)}" tool_results.append({ "type": "tool_result", "tool_use_id": block.id, "content": content, }) messages.append({"role": "assistant", "content": response.content}) messages.append({"role": "user", "content": tool_results})

One connector, both the tools and the auth

To reach that prompt, Claude will typically chain googlemeet_list_conference_records, then googlemeet_list_transcripts, then googlemeet_list_transcript_entries. You wrote none of those schemas, and Scalekit maintains them against the live Meet API, so a Google-side change does not become your code change. The same connected-account pattern works with other frameworks through the AgentKit code samples, including LangChain and Google ADK adapters. See how tool calling authentication for AI agents works across different frameworks.

Virtual MCP: one endpoint for multi-tool, multi-tenant Meet agents

A real Meet agent is usually a Meet plus Calendar plus Drive agent. That is exactly where a raw MCP catalog starts to hurt, and where Scalekit's Virtual MCP Servers change the model. The concept is covered in the Virtual MCP overview and in when to use a Virtual MCP server.

Least-privilege tool access

A standard MCP server exposes everything it has. A summarizer agent that only needs to read transcripts should not also hold the ability to end conferences or change space access. A Virtual MCP server enforces least privilege at the tool level: the agent sees only the tools you explicitly allow, not everything the connector exposes.

One server definition, per-user identity

One server definition serves all your users. Before each run, a short-lived session token is minted scoped to that specific user's connected accounts, so there is no credential sharing between users and no per-user server to configure. The endpoint is static; the identity is not. There is no MCP server for you to deploy, host, or maintain, which is the maintenance burden the community Meet MCP path puts squarely on you.

Observability: auth logs for every downstream tool call

When your agent ends a conference or exports a recording, someone will eventually ask who authorized it. On a self-hosted community server, that answer is whatever logging you happened to add. With Scalekit, every tool call is attributable.

What gets recorded

Scalekit records which user initiated the action, which agent acted, and which resource was accessed, as queryable auth logs. That is the audit trail an enterprise security review asks for, and it is the same trail whether the underlying call hit googlemeet_get_transcript or any other tool. For the reasoning behind treating this as first-class, see agent tool observability and audit trails for agent auth.

Which one to build against

If your agent's entire job is scheduling meetings and a human is present to consent, a community MCP server gets you moving quickly, with the understanding that you own its upkeep. If your agent reads what happened in meetings — transcripts, recordings, participants, or smart notes — build against the official Google Meet REST API, because that data does not exist on the community path. Most production Meet agents need both scheduling and artifacts, which means multiple connectors and, underneath them, per-user credential isolation. That last part is the same problem on every path, and it is the part that needs production-grade infrastructure rather than another server to babysit.

If you are also weighing the adjacent Google surfaces, the same framework applies in Google Calendar MCP vs API and Google Drive MCP vs API. To see a Meet-shaped agent end to end, the meeting prep agent template and the sales call prep agent template are good starting points, and pricing for building on the connector library is on the Scalekit pricing page.

Start building

Browse the Scalekit Google Meet connector or read the connector docs to wire it into your agent. If you want a hand, join the Scalekit Slack community or talk to us for help building Meet agents.

No items found.
Agent
Auth Quickstart
On this page
Share this article
Agent
Auth Quickstart

Acquire enterprise customers with
zero upfront cost.

Every feature unlocked. No hidden fees.