Get Transcript
get_transcriptGet the transcript of a meeting by its job ID. Use this to access saved transcriptions from your GhostMinutes account.
Instructions
Fetch a saved transcription job by id from your GhostMinutes account.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Transcription job id |
Implementation Reference
- src/tools/get-transcript.ts:15-36 (handler)Registers the 'get_transcript' tool on the MCP server. The handler function requires auth, calls client.getTranscript(id), and returns the result as JSON text content with structured content.
export function register(server: McpServer, client: GhostMinutesClient): void { server.registerTool( 'get_transcript', { title: 'Get Transcript', description: 'Fetch a saved transcription job by id from your GhostMinutes account.', inputSchema: z.object({ id: z.string().min(1).describe('Transcription job id'), }), annotations: { readOnlyHint: true, openWorldHint: false }, }, async ({ id }) => { requireAuth(client); const body = await client.getTranscript(id); return { content: [{ type: 'text', text: JSON.stringify(body, null, 2) }], structuredContent: jsonStructured(body), }; }, ); } - src/tools/get-transcript.ts:22-24 (schema)Input schema for the 'get_transcript' tool: requires a single 'id' string parameter (min length 1).
inputSchema: z.object({ id: z.string().min(1).describe('Transcription job id'), }), - src/server.ts:7-36 (registration)Import and registration of the get_transcript tool module. Line 7 imports it, line 18 lists it in EXPECTED_TOOL_NAMES, line 36 calls registerGetTranscript(server, client) during server creation.
import { register as registerGetTranscript } from './tools/get-transcript.js'; import { register as registerListTranscripts } from './tools/list-transcripts.js'; import { register as registerSummarize } from './tools/summarize.js'; import { register as registerTranscribeSync } from './tools/transcribe-url-sync.js'; import { register as registerTranscribeUrl } from './tools/transcribe-url.js'; export const EXPECTED_TOOL_NAMES = [ 'transcribe_audio_url', 'transcribe_audio_url_sync', 'get_transcription_status', 'list_transcripts', 'get_transcript', 'delete_transcript', 'summarize', 'get_credits', ] as const; export type ExpectedToolName = (typeof EXPECTED_TOOL_NAMES)[number]; export function createServer(client: GhostMinutesClient): McpServer { const server = new McpServer({ name: 'ghostminutes-mcp', version: '0.1.0', }); registerTranscribeUrl(server, client); registerTranscribeSync(server, client); registerGetStatus(server, client); registerListTranscripts(server, client); registerGetTranscript(server, client); - src/client.ts:118-130 (helper)The client method getTranscript(id) that performs the HTTP GET request to /mcp/jobs/{id} with Bearer auth.
async getTranscript(id: string): Promise<unknown> { try { const res = await this.http.get( `/mcp/jobs/${encodeURIComponent(id)}`, { headers: { Authorization: `Bearer ${this.apiKey}` }, }, ); return this.ensureOk(res); } catch (e) { this.handleThrown(e); } }