Skip to main content
Glama

mcp-google-sheets

props.ts4.38 kB
import { HttpMethod } from '@activepieces/pieces-common'; import { PiecePropValueSchema, Property } from '@activepieces/pieces-framework'; import { zohoMailApiCall } from '.'; import { zohoMailAuth } from './auth'; interface DropdownParams { displayName: string; description?: string; required: boolean; } export const accountId = (params: DropdownParams) => Property.Dropdown({ displayName: params.displayName, description: params.description, refreshers: [], required: params.required, options: async ({ auth }) => { if (!auth) { return { placeholder: 'Please connect your account first.', options: [], disabled: true, }; } const authValue = auth as PiecePropValueSchema<typeof zohoMailAuth>; const response = await zohoMailApiCall<{ data: { accountId: string; displayName: string }[]; }>({ auth: authValue, method: HttpMethod.GET, resourceUri: '/accounts', }); return { disabled: false, options: response.data.map((account) => { return { label: account.displayName || account.accountId, value: account.accountId, }; }), }; }, }); export const folderId = (params: DropdownParams) => Property.Dropdown({ displayName: params.displayName, description: params.description, refreshers: ['accountId'], required: params.required, options: async ({ auth, accountId }) => { if (!auth) { return { placeholder: 'Please connect your account first.', options: [], disabled: true, }; } if (!accountId) { return { placeholder: 'Please select Account first.', options: [], disabled: true, }; } const authValue = auth as PiecePropValueSchema<typeof zohoMailAuth>; const response = await zohoMailApiCall<{ data: { folderId: string; path: string }[]; }>({ auth: authValue, method: HttpMethod.GET, resourceUri: `/accounts/${accountId}/folders`, }); return { disabled: false, options: response.data.map((folder) => { return { label: folder.path || folder.folderId, value: folder.folderId, }; }), }; }, }); export const messageId = (params: DropdownParams) => Property.Dropdown({ displayName: params.displayName, description: params.description, refreshers: ['accountId', 'folderId'], required: params.required, options: async ({ auth, accountId, folderId }) => { if (!auth) { return { placeholder: 'Please connect your account first.', options: [], disabled: true, }; } if (!accountId) { return { placeholder: 'Please select Account first.', options: [], disabled: true, }; } if (!folderId) { return { placeholder: 'Please select Folder first.', options: [], disabled: true, }; } const authValue = auth as PiecePropValueSchema<typeof zohoMailAuth>; const response = await zohoMailApiCall<{ data: { messageId: string; subject: string }[]; }>({ auth: authValue, method: HttpMethod.GET, resourceUri: `/accounts/${accountId}/messages/view`, query: { folderId: folderId as string, limit: 50, }, }); return { disabled: false, options: response.data.map((message) => { return { label: message.subject, value: message.messageId, }; }), }; }, }); export const fromAddress = (params: DropdownParams) => Property.Dropdown({ displayName: params.displayName, description: params.description, refreshers: ['accountId'], required: params.required, options: async ({ auth, accountId }) => { if (!auth) { return { placeholder: 'Please connect your account first.', options: [], disabled: true, }; } if (!accountId) { return { placeholder: 'Please select Account first.', options: [], disabled: true, }; } const authValue = auth as PiecePropValueSchema<typeof zohoMailAuth>; const response = await zohoMailApiCall<{ data: { sendMailDetails: { fromAddress: string }[] }; }>({ auth: authValue, method: HttpMethod.GET, resourceUri: `/accounts/${accountId}`, }); return { disabled: false, options: response.data.sendMailDetails.map((account) => { return { label: account.fromAddress, value: account.fromAddress, }; }), }; }, });

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/activepieces/activepieces'

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