Skip to main content
Glama

update_vacation

Modify Gmail vacation responder settings, including auto-reply enablement, subject, message body, and restrictions for contacts or domain users, with specified start and end times.

Instructions

Update vacation responder settings

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
enableAutoReplyYesWhether the vacation responder is enabled
endTimeNoEnd time for sending auto-replies (epoch ms)
responseBodyPlainTextYesResponse body in plain text format
responseSubjectNoOptional subject line for the vacation responder auto-reply
restrictToContactsNoWhether responses are only sent to contacts
restrictToDomainNoWhether responses are only sent to users in the same domain
startTimeNoStart time for sending auto-replies (epoch ms)

Implementation Reference

  • Handler function that executes the update_vacation tool logic by calling the Gmail API's updateVacation method with user-provided parameters after authentication.
    async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.settings.updateVacation({ userId: 'me', requestBody: params }) return formatResponse(data) }) }
  • Zod schema defining the input parameters for the update_vacation tool.
    { enableAutoReply: z.boolean().describe("Whether the vacation responder is enabled"), responseSubject: z.string().optional().describe("Optional subject line for the vacation responder auto-reply"), responseBodyPlainText: z.string().describe("Response body in plain text format"), restrictToContacts: z.boolean().optional().describe("Whether responses are only sent to contacts"), restrictToDomain: z.boolean().optional().describe("Whether responses are only sent to users in the same domain"), startTime: z.string().optional().describe("Start time for sending auto-replies (epoch ms)"), endTime: z.string().optional().describe("End time for sending auto-replies (epoch ms)") },
  • src/index.ts:943-960 (registration)
    Registration of the update_vacation tool using server.tool(), including description, input schema, and inline handler function.
    server.tool("update_vacation", "Update vacation responder settings", { enableAutoReply: z.boolean().describe("Whether the vacation responder is enabled"), responseSubject: z.string().optional().describe("Optional subject line for the vacation responder auto-reply"), responseBodyPlainText: z.string().describe("Response body in plain text format"), restrictToContacts: z.boolean().optional().describe("Whether responses are only sent to contacts"), restrictToDomain: z.boolean().optional().describe("Whether responses are only sent to users in the same domain"), startTime: z.string().optional().describe("Start time for sending auto-replies (epoch ms)"), endTime: z.string().optional().describe("End time for sending auto-replies (epoch ms)") }, async (params) => { return handleTool(config, async (gmail: gmail_v1.Gmail) => { const { data } = await gmail.users.settings.updateVacation({ userId: 'me', requestBody: params }) return formatResponse(data) }) } )
  • Shared helper function handleTool used by update_vacation (and other tools) for authentication, Gmail client creation, API call execution, and 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) { // Check for specific authentication errors if ( error.message?.includes("invalid_grant") || error.message?.includes("refresh_token") || error.message?.includes("invalid_client") || error.message?.includes("unauthorized_client") || error.code === 401 || error.code === 403 ) { return formatResponse({ error: `Authentication failed: ${error.message}. Please re-authenticate by running: npx @shinzolabs/gmail-mcp auth`, }); } return formatResponse({ error: `Tool execution failed: ${error.message}` }); } }
  • Helper function to format API responses for MCP tools.
    const formatResponse = (response: any) => ({ content: [{ type: "text", text: JSON.stringify(response) }] })

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/shinzo-labs/gmail-mcp'

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