insodimension/google-meet
v0.1.2MIT
Create Google Meet spaces, read conference records/recordings/transcripts, and live-transcribe a call
What this package declares
The file a client reads when it loads this plugin, exactly as this revision carries it.
plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "google-meet",
"version": "0.1.2",
"description": "Create Google Meet spaces, read conference records/recordings/transcripts, and live-transcribe a call",
"author": {
"name": "Dimension"
},
"license": "MIT",
"keywords": [
"google-meet",
"meet",
"meetings",
"transcription",
"conference-records",
"recordings",
"productivity"
],
"extensions": {
"ai.insodimension.dimension": {
"contractVersion": 1,
"title": "Google Meet",
"icon": "assets/icon.svg",
"category": "connector",
"defaultEnabled": false,
"examples": [
"Create a Google Meet and give me the join link",
"Summarize the transcript of my last meeting and list the action items",
"Join my standup at https://meet.google.com/abc-defg-hij and take notes"
],
"connect": {
"kind": [
"oauth"
],
"setup": [
{
"title": "Reuse (or create) your Google Cloud OAuth client",
"detail": "If you set up Google Drive or Calendar you already have one — the same Desktop-app OAuth client works here. If not, create a free Google Cloud project and a Desktop-app OAuth client (no billing, no redirect URI to register).",
"url": "https://console.cloud.google.com/apis/credentials",
"urlLabel": "Open Credentials"
},
{
"title": "Enable the Google Meet API",
"detail": "APIs & Services → Library → \"Google Meet API\" → Enable. Creating the client is NOT enough — without this step the connection succeeds but every Meet call fails.",
"url": "https://console.cloud.google.com/apis/library/meet.googleapis.com",
"urlLabel": "Open the API Library"
},
{
"title": "Copy the Client ID and Client Secret into the form below",
"detail": "Same values as your Drive/Calendar connector — they stay on this machine. Note: reading past-meeting conference records, recordings, and transcripts generally requires a Google Workspace account (personal Gmail can create spaces and live-transcribe, but has no conference-record artifacts)."
}
],
"form": [
{
"id": "clientId",
"label": "OAuth Client ID",
"help": "Reuse the SAME OAuth client you created for Google Drive or Calendar — no new Cloud project needed; just also enable the Google Meet API. If you don't have one yet, follow the steps above.",
"helpUrl": "https://console.cloud.google.com/apis/credentials",
"helpUrlLabel": "Open Google Cloud Console"
},
{
"id": "clientSecret",
"label": "OAuth Client Secret",
"secret": true,
"help": "The same Client Secret as your Drive/Calendar connector. Google issues one for Desktop app clients even though it isn't treated as secret for installed apps (RFC 8252). Copy it from the same credential page."
}
],
"oauth": {
"provider": "google",
"authUrl": "https://accounts.google.com/o/oauth2/v2/auth",
"tokenUrl": "https://oauth2.googleapis.com/token",
"scopes": [
"https://www.googleapis.com/auth/meetings.space.created",
"https://www.googleapis.com/auth/meetings.space.readonly",
"https://www.googleapis.com/auth/meetings.space.settings"
],
"usePkce": true,
"extraAuthParams": {
"access_type": "offline",
"prompt": "consent"
}
},
"configTarget": "~/.config/dimension-google-meet/token.json",
"verify": {
"http": "https://meet.googleapis.com/v2/conferenceRecords?pageSize=1",
"failures": [
{
"match": "has not been used in project|is disabled|SERVICE_DISABLED|accessNotConfigured",
"title": "Enable the Google Meet API",
"detail": "Your account connected, but the Google Cloud project has the Meet API turned off. Enable it, wait a minute, then connect again.",
"url": "https://console.cloud.google.com/apis/library/meet.googleapis.com",
"urlLabel": "Open the API Library"
},
{
"match": "invalid_grant|UNAUTHENTICATED|Invalid Credentials|invalid_token",
"title": "Reconnect your Google account",
"detail": "The stored token is no longer valid — run Connect again to re-authorize."
},
{
"match": "PERMISSION_DENIED|permission|not authorized|Workspace",
"title": "Conference records need a Google Workspace account",
"detail": "Reading past-meeting records/recordings/transcripts requires a Google Workspace account with Meet artifacts enabled. A personal Gmail account can still create spaces and live-transcribe, but has no conference-record history — this is expected."
}
]
}
},
"toolRenderer": [
{
"match": "google_meet_create_space",
"use": "summary",
"icon": "google-meet",
"title": "Create Meet"
},
{
"match": "google_meet_get_space",
"use": "summary",
"icon": "google-meet",
"title": "Meet space"
},
{
"match": "google_meet_end_active_conference",
"use": "summary",
"icon": "google-meet",
"title": "End conference"
},
{
"match": "google_meet_list_conference_records",
"use": "summary",
"icon": "google-meet",
"title": "Conference records"
},
{
"match": "google_meet_get_conference_record",
"use": "summary",
"icon": "google-meet",
"title": "Conference record"
},
{
"match": "google_meet_list_participants",
"use": "summary",
"icon": "google-meet",
"title": "Participants"
},
{
"match": "google_meet_list_recordings",
"use": "summary",
"icon": "google-meet",
"title": "Recordings"
},
{
"match": "google_meet_list_transcripts",
"use": "summary",
"icon": "google-meet",
"title": "Transcripts"
},
{
"match": "google_meet_list_transcript_entries",
"use": "summary",
"icon": "google-meet",
"title": "Transcript"
},
{
"match": "google_meet_join",
"use": "summary",
"icon": "google-meet",
"title": "Join call"
},
{
"match": "google_meet_live_status",
"use": "summary",
"icon": "google-meet",
"title": "Call status"
},
{
"match": "google_meet_live_transcript",
"use": "summary",
"icon": "google-meet",
"title": "Live transcript"
},
{
"match": "google_meet_leave",
"use": "summary",
"icon": "google-meet",
"title": "Leave call"
}
],
"skillCard": {
"skill": "google-meet",
"use": "summary",
"icon": "google-meet",
"title": "Google Meet"
},
"tools": [
{
"name": "google_meet_create_space",
"description": "Create a new Meet space and return its join URL and meeting code"
},
{
"name": "google_meet_get_space",
"description": "Look up a Meet space by name or meeting code, incl. whether a conference is active"
},
{
"name": "google_meet_end_active_conference",
"description": "End the active conference in a Meet space"
},
{
"name": "google_meet_list_conference_records",
"description": "List past conference records (optionally filtered by space/meeting code/time)"
},
{
"name": "google_meet_get_conference_record",
"description": "Get one conference record by id"
},
{
"name": "google_meet_list_participants",
"description": "List the participants of a conference record"
},
{
"name": "google_meet_list_recordings",
"description": "List a conference's recordings and their Drive links"
},
{
"name": "google_meet_list_transcripts",
"description": "List a conference's transcripts and their Google Docs links"
},
{
"name": "google_meet_list_transcript_entries",
"description": "Read the structured speech entries of a transcript"
},
{
"name": "google_meet_join",
"description": "Join a live meet.google.com call and start scraping captions to a transcript (listen-only)"
},
{
"name": "google_meet_live_status",
"description": "Report the live call bot's state — joined, lobby, caption progress"
},
{
"name": "google_meet_live_transcript",
"description": "Read the live-scraped transcript for the active call"
},
{
"name": "google_meet_leave",
"description": "Leave the active live call and finalize the transcript"
}
]
}
}
}
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- ai.insodimension.dimension