get_summary
Generate meeting summaries from recordings, providing clean markdown content without playback URLs for efficient review.
Instructions
Get summaries for one or more meeting recordings. Returns clean markdown with playback URLs stripped.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| recording_ids | Yes | One or more recording IDs (from list_meetings). |
Implementation Reference
- src/server.ts:454-469 (handler)The handler function that executes the logic for the 'get_summary' tool, which involves fetching the summary from the client and formatting it with Markdown.
async args => { const client = getClient(); const fetchOne = async (rid: number): Promise<string> => { const cached = _summaryCache.get(rid); if (cached && Date.now() - cached.fetchedAt <= CACHE_TTL_MS) { return cached.text; } const result = await client.getSummary(rid); const summary = (result.summary ?? {}) as Record<string, unknown>; const md = summary.markdown_formatted as string | undefined; const text = md ? `# Summary (recording ${rid})\n\n${stripMdLinks(md)}` : `# Summary (recording ${rid})\n\nNo summary available.`; _summaryCache.set(rid, { text, fetchedAt: Date.now() }); return text; - src/server.ts:442-453 (registration)Registration of the 'get_summary' tool in the MCP server.
server.registerTool( 'get_summary', { description: 'Get summaries for one or more meeting recordings. Returns clean markdown with playback URLs stripped.', inputSchema: { recording_ids: z .array(z.number().int().positive()) .min(1) .describe('One or more recording IDs (from list_meetings).'), }, }, - src/fathom-client.ts:123-125 (handler)The underlying client method that performs the API request to retrieve the summary for a specific recording ID.
async getSummary(recordingId: number): Promise<Record<string, unknown>> { return this._get(`/recordings/${recordingId}/summary`); }