get_meeting_documents
Retrieve all documents associated with a meeting using its meeting ID. Access notes, slides, and attachments from Granola.ai meeting intelligence records.
Instructions
Get documents associated with a meeting
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meeting_id | Yes | Meeting ID to get documents for |
Implementation Reference
- granola_mcp_server/server.py:576-602 (handler)Handler function that retrieves documents for a given meeting_id from the cache, formats them with title, type, creation time, tags, and content, and returns as TextContent.
async def _get_meeting_documents(self, meeting_id: str) -> List[TextContent]: """Get meeting documents.""" if not self.cache_data: return [TextContent(type="text", text="No meeting data available")] documents = [doc for doc in self.cache_data.documents.values() if doc.meeting_id == meeting_id] if not documents: return [TextContent(type="text", text=f"No documents found for meeting '{meeting_id}'")] meeting = self.cache_data.meetings.get(meeting_id) output = [f"# Documents: {meeting.title if meeting else meeting_id}\n"] output.append(f"Found {len(documents)} document(s):\n") for doc in documents: output.append(f"## {doc.title}") output.append(f"**Type:** {doc.document_type}") output.append(f"**Created:** {self._format_local_time(doc.created_at)}") if doc.tags: output.append(f"**Tags:** {', '.join(doc.tags)}") output.append(f"\n{doc.content}\n") output.append("---\n") return [TextContent(type="text", text="\n".join(output))] - granola_mcp_server/server.py:155-168 (registration)Tool registration with name 'get_meeting_documents', description, and input schema requiring a meeting_id string.
Tool( name="get_meeting_documents", description="Get documents associated with a meeting", inputSchema={ "type": "object", "properties": { "meeting_id": { "type": "string", "description": "Meeting ID to get documents for" } }, "required": ["meeting_id"] } ), - granola_mcp_server/server.py:158-167 (schema)Input schema for the tool: a JSON object with a required 'meeting_id' string field.
inputSchema={ "type": "object", "properties": { "meeting_id": { "type": "string", "description": "Meeting ID to get documents for" } }, "required": ["meeting_id"] } - granola_mcp_server/server.py:208-209 (registration)Call routing in the call_tool handler that dispatches 'get_meeting_documents' to the _get_meeting_documents method.
elif name == "get_meeting_documents": return await self._get_meeting_documents(arguments["meeting_id"]) - granola_mcp_server/models.py:19-27 (helper)Pydantic model defining the MeetingDocument schema used by the handler to access document fields (title, content, document_type, created_at, tags, meeting_id).
class MeetingDocument(BaseModel): """Meeting document information.""" id: str meeting_id: str title: str content: str document_type: str created_at: datetime tags: List[str] = []