MewCP Google Meet MCP Server

Hosted, Stateless & Multitenant Google Meet MCP server enables AI assistants to create, manage, and coordinate virtual meetings through Google Meet.

Documentation

Create, manage, and inspect Google Meet sessions — directly from your AI workflows.

A Model Context Protocol (MCP) server that exposes Google Meet's API for creating meeting spaces, managing conference records, and retrieving participant information.

Overview

The Google Meet MCP Server provides full programmatic access to Google Meet through a stateless, multi-tenant interface:

  • Create, update, and end Google Meet meeting spaces
  • Retrieve conference records and meeting history
  • List and inspect participants and their session details

Perfect for:

  • Automating meeting creation and management from AI agents
  • Building assistants that can schedule, start, and end Meet sessions
  • Analyzing meeting attendance and participant data in LLM-powered pipelines

Tools

create_meeting_space — Create a new Google Meet meeting space

Creates a new Google Meet meeting space and returns its details including the join link.

Inputs:

None

Output:

{
  "name": "spaces/abc-defg-hij",
  "meetingUri": "https://meet.google.com/abc-defg-hij",
  "meetingCode": "abc-defg-hij"
}
get_meeting_space — Retrieve details for a Google Meet meeting space

Fetches the current details of an existing meeting space by its resource name.

Inputs:

- `name` (string, required) — Space resource name e.g. `spaces/abc-defg-hij`

Output:

{
  "name": "spaces/abc-defg-hij",
  "meetingUri": "https://meet.google.com/abc-defg-hij",
  "meetingCode": "abc-defg-hij",
  "config": { "accessType": "OPEN" }
}
end_meeting_space — End a Google Meet meeting space

Ends an active meeting space, disconnecting all participants.

Inputs:

- `name` (string, required) — Space resource name e.g. `spaces/abc-defg-hij`

Output:

{}
update_meeting_space — Update a Google Meet meeting space

Patches one or more fields of an existing meeting space using a field mask.

Inputs:

- `name` (string, required) — Space resource name e.g. `spaces/abc-defg-hij`
- `update_mask` (string, required) — Comma-separated field mask for the patch operation e.g. `config.accessType`
- `space` (string, required) — JSON string containing the updated space fields e.g. `{"config": {"accessType": "TRUSTED"}}`

Output:

{
  "name": "spaces/abc-defg-hij",
  "meetingUri": "https://meet.google.com/abc-defg-hij",
  "config": { "accessType": "TRUSTED" }
}
get_conference_record — Get a Google Meet conference record

Retrieves a single conference record by its resource name.

Inputs:

- `name` (string, required) — Conference record resource name e.g. `conferenceRecords/abc123`

Output:

{
  "name": "conferenceRecords/abc123",
  "startTime": "2024-03-20T10:00:00.000Z",
  "endTime": "2024-03-20T11:00:00.000Z",
  "space": "spaces/abc-defg-hij"
}
list_conference_records — List Google Meet conference records

Returns a paginated list of past conference records for the authenticated user.

Inputs:

- `page_size` (integer, optional) — Maximum number of records per page
- `page_token` (string, optional) — Pagination token from a previous response

Output:

{
  "conferenceRecords": [
    {
      "name": "conferenceRecords/abc123",
      "startTime": "2024-03-20T10:00:00.000Z",
      "endTime": "2024-03-20T11:00:00.000Z",
      "space": "spaces/abc-defg-hij"
    }
  ],
  "nextPageToken": "token123"
}
get_participant — Get a participant from a conference record

Retrieves details of a single participant from a conference record.

Inputs:

- `name` (string, required) — Participant resource name e.g. `conferenceRecords/abc123/participants/xyz`

Output:

{
  "name": "conferenceRecords/abc123/participants/xyz",
  "signedinUser": {
    "user": "users/123",
    "displayName": "Jane Doe"
  },
  "earliestStartTime": "2024-03-20T10:02:00.000Z",
  "latestEndTime": "2024-03-20T10:58:00.000Z"
}
list_participants — List participants from a conference record

Returns a paginated list of participants for a given conference record.

Inputs:

- `parent` (string, required) — Parent conference record resource name e.g. `conferenceRecords/abc123`
- `page_size` (integer, optional) — Maximum number of participants per page
- `page_token` (string, optional) — Pagination token from a previous response
- `filter` (string, optional) — API filter expression e.g. `signedinUser.user='users/123'`

Output:

{
  "participants": [
    {
      "name": "conferenceRecords/abc123/participants/xyz",
      "signedinUser": { "displayName": "Jane Doe" }
    }
  ],
  "nextPageToken": "token123"
}
get_participant_session — Get a participant session from a conference record

Retrieves a single participant session, representing one continuous join/leave interval.

Inputs:

- `name` (string, required) — Participant session resource name e.g. `conferenceRecords/abc123/participants/xyz/participantSessions/session1`

Output:

{
  "name": "conferenceRecords/abc123/participants/xyz/participantSessions/session1",
  "startTime": "2024-03-20T10:02:00.000Z",
  "endTime": "2024-03-20T10:30:00.000Z"
}
list_participant_sessions — List participant sessions of a participant

Returns a paginated list of all sessions for a given participant in a conference record.

Inputs:

- `parent` (string, required) — Parent participant resource name e.g. `conferenceRecords/abc123/participants/xyz`
- `page_size` (integer, optional) — Maximum number of sessions per page
- `page_token` (string, optional) — Pagination token from a previous response
- `filter` (string, optional) — API filter expression

Output:

{
  "participantSessions": [
    {
      "name": "conferenceRecords/abc123/participants/xyz/participantSessions/session1",
      "startTime": "2024-03-20T10:02:00.000Z",
      "endTime": "2024-03-20T10:30:00.000Z"
    }
  ],
  "nextPageToken": "token123"
}

API Parameters Reference

Common Parameters
  • name — Full resource name identifying a Meet object. Always returned in API responses and used as the identifier for subsequent calls.
  • page_size — Limits the number of items returned per page. If omitted, the API uses its default page size.
  • page_token — Token from a previous paginated response. Pass it to retrieve the next page of results.
  • filter — Standard API filter expression for narrowing list results.
Resource Name Formats

Meeting Space:

spaces/{spaceId}
Example: spaces/abc-defg-hij

Conference Record:

conferenceRecords/{recordId}
Example: conferenceRecords/abc123xyz

Participant:

conferenceRecords/{recordId}/participants/{participantId}
Example: conferenceRecords/abc123/participants/p456

Participant Session:

conferenceRecords/{recordId}/participants/{participantId}/participantSessions/{sessionId}
Example: conferenceRecords/abc123/participants/p456/participantSessions/s789

Troubleshooting

Missing or Invalid Headers
  • Cause: API key not provided in request headers or incorrect format
  • Solution:
    1. Verify Authorization: Bearer YOUR_API_KEY and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are present
    2. Check API key is active in your MewCP account
Insufficient Credits
  • Cause: API calls have exceeded your request limits
  • Solution:
    1. Check credit usage in your Curious Layer dashboard
    2. Upgrade to a paid plan or add credits for higher limits
    3. Contact support for credit adjustments
Credential Not Connected
  • Cause: No Google credential linked to your account
  • Solution:
    1. Go to Credentials in your MewCP dashboard
    2. Connect your Google account via OAuth
    3. Retry the request with the correct X-Mewcp-Credential-Id header
Malformed Request Payload
  • Cause: JSON payload is invalid or missing required fields
  • Solution:
    1. Validate JSON syntax before sending
    2. Ensure all required tool parameters are included
    3. Check parameter types match expected values
Server Not Found
  • Cause: Incorrect server name in the API endpoint
  • Solution:
    1. Verify endpoint format: {server-name}/mcp/{tool-name}
    2. Use correct server name from documentation
    3. Check available servers in your Curious Layer account
Google Meet API Error
  • Cause: Upstream Google Meet API returned an error
  • Solution:
    1. Check Google service status at Google Workspace Status Page
    2. Verify your credential has the required Meet permissions
    3. Review the error message for specific details

Resources