Skip to main content
Glama

mcp-google-sheets

schemas.ts4.11 kB
import z from 'zod'; export const sendMessageSchema = { spaceId: z.string().min(1, 'Space ID is required'), text: z.string().min(1, 'Message text is required'), thread: z.string().optional(), messageReplyOption: z.enum([ 'REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', 'REPLY_MESSAGE_OR_FAIL' ]).optional(), customMessageId: z.string().regex( /^[a-z0-9-]+$/, 'Custom message ID must contain only lowercase letters, numbers, and hyphens' ).max(63, 'Custom message ID must be 63 characters or less').optional(), isPrivate: z.boolean().optional(), privateMessageViewer: z.string().optional(), }; export const spaceIdSchema = z.string().regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ); export const threadIdSchema = z.string().regex( /^spaces\/[a-zA-Z0-9_-]+\/threads\/[a-zA-Z0-9_-]+$/, 'Thread ID must be in format: spaces/{space}/threads/{thread}' ); export const userResourceNameSchema = z.string().regex( /^people\/[a-zA-Z0-9_-]+$/, 'User resource name must be in format: people/{person}' ); export const customMessageIdSchema = z.string() .regex( /^client-[a-z0-9-]+$/, 'Custom message ID must start with "client-" and contain only lowercase letters, numbers, and hyphens' ) .max(63, 'Custom message ID must be 63 characters or less'); export const messageTextSchema = z.string() .min(1, 'Message text cannot be empty') .max(32000, 'Message text cannot exceed 32,000 characters'); export const validateSpaceFromDropdown = z.object({ value: spaceIdSchema, label: z.string(), }); export const validateThreadFromDropdown = z.object({ value: z.union([z.literal(''), threadIdSchema]), label: z.string(), }); export const validateUserFromDropdown = z.object({ value: userResourceNameSchema, label: z.string(), }); export const getMessageSchema = { name: z.string() .min(1, 'Message resource name is required') .regex( /^spaces\/[a-zA-Z0-9_-]+\/messages\/[a-zA-Z0-9_-]+$/, 'Message resource name must be in format: spaces/{space}/messages/{message}' ), }; export const addSpaceMemberSchema = { spaceId: z.string() .min(1, 'Space ID is required') .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ), personId: z.string() .min(1, 'Person ID is required') .regex( /^people\/[a-zA-Z0-9_-]+$/, 'Person ID must be in format: people/{person}' ), }; export const findMemberSchema = { spaceId: z.string() .min(1, 'Space ID is required') .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ), email: z.string() .min(1, 'Email is required') .email('Please enter a valid email address'), }; export const searchMessagesSchema = { spaceId: z.string() .min(1, 'Space ID is required') .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ), keyword: z.string() .min(1, 'Search keyword is required') .min(2, 'Search keyword must be at least 2 characters long'), limit: z.number() .min(1, 'Limit must be at least 1') .max(1000, 'Limit cannot exceed 1000') .optional(), }; export const getDirectMessageDetailsSchema = { directMessageId: z.string() .min(1, 'Direct message ID is required') .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Direct message ID must be in format: spaces/{space}' ), }; export const newMessageTriggerSchema = { projectId: z.string() .min(1, 'Project ID is required'), spaceId: z.string() .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ) .optional(), }; export const newMentionTriggerSchema = { projectId: z.string() .min(1, 'Project ID is required'), spaceId: z.string() .regex( /^spaces\/[a-zA-Z0-9_-]+$/, 'Space ID must be in format: spaces/{space}' ) .optional(), spaceMemberId: z.string() .regex( /^users\/[a-zA-Z0-9_-]+$/, 'Space member ID must be in format: users/{user}' ) .optional(), };

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