search_meetings
Search meeting data from Fathom.video using participant emails, company domains, or time filters to find relevant recordings with transcripts and summaries.
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 handler function for the 'search_meetings' tool. It calls fathom.listMeetings with the provided filters (participant emails, domains, teams, date ranges) and formats the results using formatMeetingList into markdown.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)The input schema for the 'search_meetings' tool, defining optional parameters for filtering meetings by participants, domains, teams, and date range using Zod.{ 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)The registration of the 'search_meetings' tool using server.tool(), including the name, input schema, and handler function.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 }], }; } );