untrash_thread
Restore deleted email threads from Gmail trash to your inbox using thread ID. Recover accidentally removed conversations.
Instructions
Remove a thread from the trash
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the thread to remove from trash |
Implementation Reference
- src/index.ts:804-815 (registration)Registration of the 'untrash_thread' tool, including input schema (thread ID) and handler function. The handler uses the shared 'handleTool' utility to authenticate and call the Gmail API's users.threads.untrash method to remove the specified thread from trash.server.tool("untrash_thread", "Remove a thread from the trash", { id: z.string().describe("The ID of the thread to remove from trash") }, async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.threads.untrash({ userId: 'me', id: params.id }) return formatResponse(data) }) } )
- src/index.ts:809-813 (handler)Inline handler function for 'untrash_thread' tool that invokes the Gmail API to untrash the thread.async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.threads.untrash({ userId: 'me', id: params.id }) return formatResponse(data) })
- src/index.ts:806-808 (schema)Input schema for 'untrash_thread' tool: requires 'id' string parameter for the thread ID.{ id: z.string().describe("The ID of the thread to remove from trash") },
- src/index.ts:50-66 (helper)Shared 'handleTool' helper used by 'untrash_thread' (and other tools) for OAuth2 authentication, Gmail client creation, and API call execution with error handling.const handleTool = async (queryConfig: Record<string, any> | undefined, apiCall: (gmail: gmail_v1.Gmail) => Promise<any>) => { try { const oauth2Client = queryConfig ? createOAuth2Client(queryConfig) : defaultOAuth2Client if (!oauth2Client) throw new Error('OAuth2 client could not be created, please check your credentials') const credentialsAreValid = await validateCredentials(oauth2Client) if (!credentialsAreValid) throw new Error('OAuth2 credentials are invalid, please re-authenticate') const gmailClient = queryConfig ? google.gmail({ version: 'v1', auth: oauth2Client }) : defaultGmailClient if (!gmailClient) throw new Error('Gmail client could not be created, please check your credentials') const result = await apiCall(gmailClient) return result } catch (error: any) { return `Tool execution failed: ${error.message}` } }
- src/index.ts:48-48 (helper)Shared 'formatResponse' helper used by 'untrash_thread' (and other tools) to format API responses for MCP.const formatResponse = (response: any) => ({ content: [{ type: "text", text: JSON.stringify(response) }] })