Read-only · fetch
Convenience read of one authorized meeting's complete canonical transcript in a single response when it fits: timestamped text labelled by canonical speaker, metadata.segments with speaker objects, metadata.speakerResolution, coverage, revision metadata, url (equals openUrl), openUrl, appDeepLink and sourceUrl (evidence resource, not a meeting link).
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Meeting UUID, exact MTLY-N reference, or legacy MTLY-platform-UUIDprefix code. |
What you get
text- The meeting content.
title- The meeting title.
url- A link to the meeting source.
id- The meeting identifier.
metadata- Additional details about the meeting.Includes: segments, speakerResolution, conversationBreakdown.
openUrl- Optional user-facing HTTPS link for this meeting (https://www.getmeetly.ai/open/meeting/<uuid>). Opens the exact meeting where the installed Meetly app supports meeting links, otherwise a Meetly page with Open in Meetly and App Store actions. The meeting is identified by its title and meetingReference (MTLY-N).
More response fields
sourceUrl- MCP evidence resource for citation provenance (https://mcp.getmeetly.ai/mcp/sources/meetings/<uuid>). Not a meeting-opening link and not a substitute for openUrl.
appDeepLink- Native link (meetly://meeting/<uuid>) for native clients that hand off to the app directly; openUrl is the cross-platform link.
Example
Replace meeting-id-from-search with an ID returned by search. This is a placeholder, not a real meeting.
Call fetch with:
{
"id": "meeting-id-from-search"
}Illustrative input, checked against this catalog at build time.
Full description from the catalog
Convenience read of one authorized meeting's complete canonical transcript in a single response when it fits: timestamped text labelled by canonical speaker, metadata.segments with speaker objects, metadata.speakerResolution, coverage, revision metadata, url (equals openUrl), openUrl, appDeepLink and sourceUrl (evidence resource, not a meeting link). A transcript whose serialized response (text plus segments) exceeds the single-response limit returns paging information instead; get_transcript reads the same transcript in pages. Generated summaries are excluded; an optional metadata.conversationBreakdown is generated secondary content, not transcript text.
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Meeting UUID, exact MTLY-N reference, or legacy MTLY-platform-UUIDprefix code."
}
},
"required": [
"id"
]
}Output schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"properties": {
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"speaker": {
"type": "object",
"description": "Canonical speaker. Identity precedence: manual user tag in Meetly (attribution manual_tag, nameVerified true) > self or other verified Meetly mapping (role self) > anonymous cluster (localId only) > unknown. Names generated by get_summary are secondary and are not used as transcript identities. localId is stable within one meeting. displayName is set only from identities Meetly knows; nameVerified is true only for names the user assigned or confirmed in Meetly (manual tag, chosen contact) or the owner's own profile name. role self is the account owner by voice match or user correction. nameSource and confidence for each localId are in speakerResolution.speakers.",
"additionalProperties": false,
"properties": {
"localId": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": [
"string",
"null"
]
},
"role": {
"enum": [
"self",
"participant",
"anonymous",
"unknown"
]
},
"attribution": {
"enum": [
"manual_tag",
"voice_match",
"user_corrected",
"calendar_match",
"anonymous_cluster",
"unverified"
]
},
"nameVerified": {
"type": "boolean"
}
},
"required": [
"localId",
"displayName",
"role",
"attribution",
"nameVerified"
]
}
}
}
},
"speakerResolution": {
"type": "object",
"description": "Whole-meeting speaker identity, identical on every page of one revision. status: complete (every segment self or user-named), partial (some identified), unknown (none identified), processing (native speaker processing pending). Text is returned regardless of attribution status.",
"additionalProperties": true,
"properties": {
"status": {
"enum": [
"complete",
"partial",
"unknown",
"processing"
]
},
"speakerRevision": {
"type": "number"
},
"namesRevision": {
"type": [
"number",
"null"
]
},
"namesSource": {
"enum": [
"canonical",
"native_sidecar",
"none",
"withheld",
"unavailable"
]
},
"nativeSpeakerStatus": {
"type": "string"
},
"segmentsTotal": {
"type": "number"
},
"segmentsNamed": {
"type": "number"
},
"segmentsSelf": {
"type": "number"
},
"segmentsAnonymous": {
"type": "number"
},
"segmentsUnknown": {
"type": "number"
},
"speakers": {
"type": "array",
"items": {
"type": "object",
"description": "Canonical speaker. Identity precedence: manual user tag in Meetly (attribution manual_tag, nameVerified true) > self or other verified Meetly mapping (role self) > anonymous cluster (localId only) > unknown. Names generated by get_summary are secondary and are not used as transcript identities. localId is stable within one meeting. displayName is set only from identities Meetly knows; nameVerified is true only for names the user assigned or confirmed in Meetly (manual tag, chosen contact) or the owner's own profile name. role self is the account owner by voice match or user correction.",
"additionalProperties": true,
"properties": {
"localId": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": [
"string",
"null"
]
},
"role": {
"enum": [
"self",
"participant",
"anonymous",
"unknown"
]
},
"attribution": {
"enum": [
"manual_tag",
"voice_match",
"user_corrected",
"calendar_match",
"anonymous_cluster",
"unverified"
]
},
"nameSource": {
"enum": [
"user_tag",
"user_contact",
"owner_profile",
"calendar_auto",
"unverified_label",
null
]
},
"nameVerified": {
"type": "boolean"
},
"confidence": {
"type": [
"number",
"null"
]
},
"segments": {
"type": "number"
}
},
"required": [
"localId",
"displayName",
"role",
"attribution",
"nameSource",
"nameVerified",
"confidence"
]
}
}
},
"required": [
"status",
"speakerRevision",
"segmentsTotal"
]
},
"conversationBreakdown": {
"type": "object",
"additionalProperties": true
}
}
},
"openUrl": {
"type": "string",
"format": "uri",
"description": "Optional user-facing HTTPS link for this meeting (https://www.getmeetly.ai/open/meeting/<uuid>). Opens the exact meeting where the installed Meetly app supports meeting links, otherwise a Meetly page with Open in Meetly and App Store actions. The meeting is identified by its title and meetingReference (MTLY-N)."
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "MCP evidence resource for citation provenance (https://mcp.getmeetly.ai/mcp/sources/meetings/<uuid>). Not a meeting-opening link and not a substitute for openUrl."
},
"appDeepLink": {
"type": "string",
"description": "Native link (meetly://meeting/<uuid>) for native clients that hand off to the app directly; openUrl is the cross-platform link."
}
},
"required": [
"id",
"title",
"text",
"url"
]
}Full tool definition and annotations
{
"name": "fetch",
"title": "Fetch a Meetly meeting source",
"description": "Convenience read of one authorized meeting's complete canonical transcript in a single response when it fits: timestamped text labelled by canonical speaker, metadata.segments with speaker objects, metadata.speakerResolution, coverage, revision metadata, url (equals openUrl), openUrl, appDeepLink and sourceUrl (evidence resource, not a meeting link). A transcript whose serialized response (text plus segments) exceeds the single-response limit returns paging information instead; get_transcript reads the same transcript in pages. Generated summaries are excluded; an optional metadata.conversationBreakdown is generated secondary content, not transcript text.",
"annotations": {
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": false,
"idempotentHint": true,
"title": "Fetch a Meetly meeting source"
},
"securitySchemes": [
{
"type": "oauth2",
"scopes": [
"meetings:read"
]
}
],
"_meta": {
"securitySchemes": [
{
"type": "oauth2",
"scopes": [
"meetings:read"
]
}
],
"openai/toolInvocation/invoking": "Reading Meetly source…",
"openai/toolInvocation/invoked": "Meetly source ready"
},
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Meeting UUID, exact MTLY-N reference, or legacy MTLY-platform-UUIDprefix code."
}
},
"required": [
"id"
]
},
"outputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
},
"properties": {
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"speaker": {
"type": "object",
"description": "Canonical speaker. Identity precedence: manual user tag in Meetly (attribution manual_tag, nameVerified true) > self or other verified Meetly mapping (role self) > anonymous cluster (localId only) > unknown. Names generated by get_summary are secondary and are not used as transcript identities. localId is stable within one meeting. displayName is set only from identities Meetly knows; nameVerified is true only for names the user assigned or confirmed in Meetly (manual tag, chosen contact) or the owner's own profile name. role self is the account owner by voice match or user correction. nameSource and confidence for each localId are in speakerResolution.speakers.",
"additionalProperties": false,
"properties": {
"localId": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": [
"string",
"null"
]
},
"role": {
"enum": [
"self",
"participant",
"anonymous",
"unknown"
]
},
"attribution": {
"enum": [
"manual_tag",
"voice_match",
"user_corrected",
"calendar_match",
"anonymous_cluster",
"unverified"
]
},
"nameVerified": {
"type": "boolean"
}
},
"required": [
"localId",
"displayName",
"role",
"attribution",
"nameVerified"
]
}
}
}
},
"speakerResolution": {
"type": "object",
"description": "Whole-meeting speaker identity, identical on every page of one revision. status: complete (every segment self or user-named), partial (some identified), unknown (none identified), processing (native speaker processing pending). Text is returned regardless of attribution status.",
"additionalProperties": true,
"properties": {
"status": {
"enum": [
"complete",
"partial",
"unknown",
"processing"
]
},
"speakerRevision": {
"type": "number"
},
"namesRevision": {
"type": [
"number",
"null"
]
},
"namesSource": {
"enum": [
"canonical",
"native_sidecar",
"none",
"withheld",
"unavailable"
]
},
"nativeSpeakerStatus": {
"type": "string"
},
"segmentsTotal": {
"type": "number"
},
"segmentsNamed": {
"type": "number"
},
"segmentsSelf": {
"type": "number"
},
"segmentsAnonymous": {
"type": "number"
},
"segmentsUnknown": {
"type": "number"
},
"speakers": {
"type": "array",
"items": {
"type": "object",
"description": "Canonical speaker. Identity precedence: manual user tag in Meetly (attribution manual_tag, nameVerified true) > self or other verified Meetly mapping (role self) > anonymous cluster (localId only) > unknown. Names generated by get_summary are secondary and are not used as transcript identities. localId is stable within one meeting. displayName is set only from identities Meetly knows; nameVerified is true only for names the user assigned or confirmed in Meetly (manual tag, chosen contact) or the owner's own profile name. role self is the account owner by voice match or user correction.",
"additionalProperties": true,
"properties": {
"localId": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": [
"string",
"null"
]
},
"role": {
"enum": [
"self",
"participant",
"anonymous",
"unknown"
]
},
"attribution": {
"enum": [
"manual_tag",
"voice_match",
"user_corrected",
"calendar_match",
"anonymous_cluster",
"unverified"
]
},
"nameSource": {
"enum": [
"user_tag",
"user_contact",
"owner_profile",
"calendar_auto",
"unverified_label",
null
]
},
"nameVerified": {
"type": "boolean"
},
"confidence": {
"type": [
"number",
"null"
]
},
"segments": {
"type": "number"
}
},
"required": [
"localId",
"displayName",
"role",
"attribution",
"nameSource",
"nameVerified",
"confidence"
]
}
}
},
"required": [
"status",
"speakerRevision",
"segmentsTotal"
]
},
"conversationBreakdown": {
"type": "object",
"additionalProperties": true
}
}
},
"openUrl": {
"type": "string",
"format": "uri",
"description": "Optional user-facing HTTPS link for this meeting (https://www.getmeetly.ai/open/meeting/<uuid>). Opens the exact meeting where the installed Meetly app supports meeting links, otherwise a Meetly page with Open in Meetly and App Store actions. The meeting is identified by its title and meetingReference (MTLY-N)."
},
"sourceUrl": {
"type": "string",
"format": "uri",
"description": "MCP evidence resource for citation provenance (https://mcp.getmeetly.ai/mcp/sources/meetings/<uuid>). Not a meeting-opening link and not a substitute for openUrl."
},
"appDeepLink": {
"type": "string",
"description": "Native link (meetly://meeting/<uuid>) for native clients that hand off to the app directly; openUrl is the cross-platform link."
}
},
"required": [
"id",
"title",
"text",
"url"
]
}
}Server 0.17.0 · Source commit 6cc62bc5b29fb3bf09648dc755c8f5a26ea54d18