Skip to main content
Glama
matthewbergvinson

Fathom MCP Server

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
NameRequiredDescriptionDefault
participant_emailsNoEmail addresses of participants to search for
domainsNoCompany domains to search for (e.g., acme.com)
teamsNoTeam names to filter by
created_afterNoISO 8601 timestamp
created_beforeNoISO 8601 timestamp

Implementation Reference

  • 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 }],
      };
    }
  • 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 }],
        };
      }
    );

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