search_meetings
Search recorded meetings by participants, companies, teams, or date range to access transcripts, summaries, and action items from Fathom.video.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| participant_emails | No | Email addresses of participants to search for | |
| domains | No | Company domains to search for (e.g., acme.com) | |
| teams | No | Team names to filter by | |
| created_after | No | ISO 8601 timestamp | |
| created_before | No | ISO 8601 timestamp |
Implementation Reference
- src/index.ts:243-260 (handler)The async handler function that executes the search_meetings tool logic: calls fathom.listMeetings with search parameters (participants, domains, teams, dates), formats the results using formatMeetingList, and returns markdown content.async ({ participant_emails, domains, teams, created_after, created_before }) => { console.error('Searching meetings...'); const response = await fathom.listMeetings({ calendar_invitees: participant_emails, calendar_invitees_domains: domains, teams, created_after, created_before, }); console.error(`Found ${response.items.length} meetings`); const markdown = formatMeetingList(response.items); return { content: [{ type: 'text', text: markdown }], }; }
- src/index.ts:236-242 (schema)Zod input schema defining optional parameters for searching meetings: participant emails, domains, teams, and date ranges.{ participant_emails: z.array(z.string()).optional().describe('Email addresses of participants to search for'), domains: z.array(z.string()).optional().describe('Company domains to search for (e.g., acme.com)'), teams: z.array(z.string()).optional().describe('Team names to filter by'), created_after: z.string().optional().describe('ISO 8601 timestamp'), created_before: z.string().optional().describe('ISO 8601 timestamp'), },
- src/index.ts:234-261 (registration)Registration of the search_meetings tool on the MCP server using server.tool(name, inputSchema, handlerFunction).server.tool( 'search_meetings', { participant_emails: z.array(z.string()).optional().describe('Email addresses of participants to search for'), domains: z.array(z.string()).optional().describe('Company domains to search for (e.g., acme.com)'), teams: z.array(z.string()).optional().describe('Team names to filter by'), created_after: z.string().optional().describe('ISO 8601 timestamp'), created_before: z.string().optional().describe('ISO 8601 timestamp'), }, async ({ participant_emails, domains, teams, created_after, created_before }) => { console.error('Searching meetings...'); const response = await fathom.listMeetings({ calendar_invitees: participant_emails, calendar_invitees_domains: domains, teams, created_after, created_before, }); console.error(`Found ${response.items.length} meetings`); const markdown = formatMeetingList(response.items); return { content: [{ type: 'text', text: markdown }], }; } );