Skip to main content
Glama

export_meeting

Export meeting recordings from Fathom.video to markdown files. Save AI-generated transcripts, summaries, and action items to your workspace directory for documentation and analysis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
recording_idYesThe recording ID of the meeting to export
output_dirNoDirectory to save the file (defaults to workspace/transcripts)

Implementation Reference

  • The handler function that implements the export_meeting tool logic: fetches meeting data, formats to markdown, writes to file in specified or default directory, returns filepath.
    async ({ recording_id, output_dir }) => { const targetDir = output_dir || OUTPUT_DIR; console.error(`Exporting meeting ${recording_id} to ${targetDir}...`); const response = await fathom.listMeetings({ include_transcript: true, include_summary: true, include_action_items: true, include_crm_matches: true, }); const meeting = response.items.find(m => m.recording_id === recording_id); if (!meeting) { return { content: [{ type: 'text', text: `Meeting with recording ID ${recording_id} not found.` }], isError: true, }; } const markdown = formatMeetingToMarkdown(meeting); const filename = generateTranscriptFilename(meeting); const filepath = path.join(targetDir, filename); await fs.mkdir(targetDir, { recursive: true }); await fs.writeFile(filepath, markdown, 'utf-8'); console.error(`Exported: ${filename}`); return { content: [{ type: 'text', text: `Exported meeting to: ${filepath}` }], }; }
  • Zod input schema defining parameters: required recording_id (number), optional output_dir (string).
    { recording_id: z.number().describe('The recording ID of the meeting to export'), output_dir: z.string().optional().describe('Directory to save the file (defaults to workspace/transcripts)'), },
  • src/index.ts:148-185 (registration)
    Registration of the export_meeting tool on the MCP server via server.tool() call, specifying name, input schema, and handler function.
    server.tool( 'export_meeting', { recording_id: z.number().describe('The recording ID of the meeting to export'), output_dir: z.string().optional().describe('Directory to save the file (defaults to workspace/transcripts)'), }, async ({ recording_id, output_dir }) => { const targetDir = output_dir || OUTPUT_DIR; console.error(`Exporting meeting ${recording_id} to ${targetDir}...`); const response = await fathom.listMeetings({ include_transcript: true, include_summary: true, include_action_items: true, include_crm_matches: true, }); const meeting = response.items.find(m => m.recording_id === recording_id); if (!meeting) { return { content: [{ type: 'text', text: `Meeting with recording ID ${recording_id} not found.` }], isError: true, }; } const markdown = formatMeetingToMarkdown(meeting); const filename = generateTranscriptFilename(meeting); const filepath = path.join(targetDir, filename); await fs.mkdir(targetDir, { recursive: true }); await fs.writeFile(filepath, markdown, 'utf-8'); console.error(`Exported: ${filename}`); return { content: [{ type: 'text', text: `Exported meeting to: ${filepath}` }], }; } );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/matthewbergvinson/fathom-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server