Skip to main content
Glama

export_meeting

Export meeting recordings from Fathom.video to markdown files. Specify a recording ID to save transcripts, summaries, and action items to your workspace directory.

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. It retrieves the full meeting details (transcript, summary, action items, CRM matches), formats them into Markdown, generates a filename based on the meeting details, creates the output directory if needed, writes the Markdown file, and returns the file path.
    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}` }], }; }
  • Input schema for the export_meeting tool using Zod validation: requires 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 using McpServer.tool(), including inline schema and handler.
    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