Skip to main content
Glama

get_meeting_transcript

Retrieve meeting transcripts from video calls using bot IDs to access recorded conversations and discussions.

Instructions

Get the transcript from a meeting bot

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bot_idYesID of the bot whose transcript to retrieve

Implementation Reference

  • The primary handler function that executes the tool logic: validates bot_id input, fetches transcript data from the API endpoint `/api/v1/bots/{bot_id}/transcript`, formats it, and returns as MCP text content.
    private async getMeetingTranscript(args: Record<string, unknown>) {
      const bot_id = args.bot_id as string;
      
      if (!bot_id || typeof bot_id !== 'string') {
        throw new Error("Missing or invalid required parameter: bot_id");
      }
      
      const data = await this.makeApiRequest(`/api/v1/bots/${bot_id}/transcript`);
    
      return {
        content: [
          {
            type: "text",
            text: this.formatTranscriptResponse(data, bot_id),
          },
        ],
      };
    }
  • src/index.ts:238-251 (registration)
    Registers the 'get_meeting_transcript' tool in the ListTools response, including its name, description, and input schema definition.
    {
      name: "get_meeting_transcript",
      description: "Get the transcript from a meeting bot",
      inputSchema: {
        type: "object",
        properties: {
          bot_id: {
            type: "string",
            description: "ID of the bot whose transcript to retrieve",
          },
        },
        required: ["bot_id"],
      },
    },
  • Defines the input schema for the tool, specifying the required 'bot_id' string parameter.
    inputSchema: {
      type: "object",
      properties: {
        bot_id: {
          type: "string",
          description: "ID of the bot whose transcript to retrieve",
        },
      },
      required: ["bot_id"],
    },
  • Helper function that formats the raw transcript data from the API into a user-friendly string output, handling both array and object formats, with timestamps and speaker names.
    private formatTranscriptResponse(data: any, botId: string): string {
      // If data is an array, it means we got the transcript entries directly
      if (Array.isArray(data)) {
        if (data.length === 0) {
          return `❌ No transcript available for bot ${botId}`;
        }
        
        let transcript = `πŸ“ Meeting Transcript for bot ${botId}:\n\n`;
        transcript += "─".repeat(50) + "\n";
        
        data.forEach((entry: any) => {
          const timestamp = entry.timestamp_ms / 1000;
          const minutes = Math.floor(timestamp / 60);
          const seconds = Math.floor(timestamp % 60);
          const timeStr = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
          
          transcript += `[${timeStr}] ${entry.speaker_name}:\n${entry.transcription}\n\n`;
        });
        
        transcript += "─".repeat(50) + `\nπŸ“Š Total entries: ${data.length}`;
        return transcript;
      }
      
      // Handle object response (legacy format)
      if (data.ready && data.transcript) {
        return [
          `πŸ“ Meeting Transcript for bot ${botId}:`,
          "",
          "─".repeat(50),
          data.transcript,
          "─".repeat(50),
        ].join("\n");
      } else {
        const stateIcon = data.transcription_state === "in_progress" ? "πŸ”„" : "⏳";
        return [
          `${stateIcon} Transcript not ready for bot ${botId}`,
          `Current transcription state: ${data.transcription_state}`,
          "",
          "πŸ’‘ The transcript will be available after the meeting ends and processing completes.",
        ].join("\n");
      }
    }

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/rexposadas/attendee-mcp'

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