get_meeting_transcript
Retrieve the full transcript of a specific meeting by providing its meeting ID, giving access to speaker-identified conversations and meeting details.
Instructions
Get transcript for a specific meeting
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | Meeting ID to get transcript for |
Implementation Reference
- granola_mcp_server/server.py:549-574 (handler)The _get_meeting_transcript method that executes the tool logic for retrieving a meeting transcript, formats it with speaker info, language, confidence, and content.
async def _get_meeting_transcript(self, meeting_id: str) -> List[TextContent]: """Get meeting transcript.""" if not self.cache_data: return [TextContent(type="text", text="No meeting data available")] if meeting_id not in self.cache_data.transcripts: return [TextContent(type="text", text=f"No transcript available for meeting '{meeting_id}'")] transcript = self.cache_data.transcripts[meeting_id] meeting = self.cache_data.meetings.get(meeting_id) output = [f"# Transcript: {meeting.title if meeting else meeting_id}\n"] if transcript.speakers: output.append(f"**Speakers:** {', '.join(transcript.speakers)}") if transcript.language: output.append(f"**Language:** {transcript.language}") if transcript.confidence: output.append(f"**Confidence:** {transcript.confidence:.2%}") output.append("\n## Transcript Content\n") output.append(transcript.content) return [TextContent(type="text", text="\n".join(output))] - granola_mcp_server/server.py:141-154 (registration)Registration of the get_meeting_transcript tool in the list_tools() handler with input schema requiring meeting_id.
Tool( name="get_meeting_transcript", description="Get transcript for a specific meeting", inputSchema={ "type": "object", "properties": { "meeting_id": { "type": "string", "description": "Meeting ID to get transcript for" } }, "required": ["meeting_id"] } ), - granola_mcp_server/server.py:206-207 (handler)The call_tool dispatcher that routes the 'get_meeting_transcript' tool name to the _get_meeting_transcript handler method.
elif name == "get_meeting_transcript": return await self._get_meeting_transcript(arguments["meeting_id"]) - granola_mcp_server/models.py:30-36 (schema)The MeetingTranscript Pydantic model used as the schema for transcript data, containing meeting_id, content, speakers, language, and confidence fields.
class MeetingTranscript(BaseModel): """Meeting transcript information.""" meeting_id: str content: str speakers: List[str] = [] language: Optional[str] = None confidence: Optional[float] = None - granola_mcp_server/models.py:39-43 (helper)The CacheData model that stores transcripts in a dictionary keyed by meeting_id, used by the handler to look up transcripts.
class CacheData(BaseModel): """Complete cache data structure.""" meetings: Dict[str, MeetingMetadata] = {} documents: Dict[str, MeetingDocument] = {} transcripts: Dict[str, MeetingTranscript] = {}