Skip to main content
Glama

mcp-google-sheets

piece-metadata.ts4.25 kB
import { PiecePropertyMap } from "./property"; import { WebhookRenewConfiguration } from "./trigger/trigger"; import { ErrorHandlingOptionsParam } from "./action/action"; import { PieceAuthProperty } from "./property/authentication"; import { Static, Type } from "@sinclair/typebox"; import { LocalesEnum, PackageType, PieceCategory, PieceType, ProjectId, TriggerStrategy, TriggerTestStrategy, WebhookHandshakeConfiguration } from "@activepieces/shared"; const I18nForPiece = Type.Optional(Type.Partial(Type.Record(Type.Enum(LocalesEnum), Type.Record(Type.String(), Type.String())))); export type I18nForPiece = Static<typeof I18nForPiece> export const PieceBase = Type.Object({ id: Type.Optional(Type.String()), name: Type.String(), displayName: Type.String(), logoUrl: Type.String(), description: Type.String(), projectId: Type.Optional(Type.String()), authors: Type.Array(Type.String()), platformId: Type.Optional(Type.String()), directoryPath: Type.Optional(Type.String()), auth: Type.Optional(PieceAuthProperty), version: Type.String(), categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))), minimumSupportedRelease: Type.Optional(Type.String()), maximumSupportedRelease: Type.Optional(Type.String()), i18n:I18nForPiece, }) export type PieceBase = { id?: string; name: string; displayName: string; logoUrl: string; description: string; projectId?: ProjectId; platformId?: string; authors: string[], directoryPath?: string; auth?: PieceAuthProperty; version: string; categories?: PieceCategory[]; minimumSupportedRelease?: string; maximumSupportedRelease?: string; i18n?: Partial<Record<LocalesEnum, Record<string, string>>> } export const ActionBase = Type.Object({ name: Type.String(), displayName: Type.String(), description: Type.String(), props: PiecePropertyMap, requireAuth: Type.Boolean(), errorHandlingOptions: Type.Optional(ErrorHandlingOptionsParam), }) export type ActionBase = { name: string, displayName: string, description: string, props: PiecePropertyMap, requireAuth: boolean; errorHandlingOptions?: ErrorHandlingOptionsParam; } export const TriggerBase = Type.Composite([ Type.Omit(ActionBase, ["requireAuth"]), Type.Object({ type: Type.Enum(TriggerStrategy), sampleData: Type.Unknown(), handshakeConfiguration: Type.Optional(WebhookHandshakeConfiguration), renewConfiguration: Type.Optional(WebhookRenewConfiguration), testStrategy: Type.Enum(TriggerTestStrategy), }) ]) export type TriggerBase = ActionBase & { type: TriggerStrategy; sampleData: unknown, handshakeConfiguration?: WebhookHandshakeConfiguration; renewConfiguration?: WebhookRenewConfiguration; testStrategy: TriggerTestStrategy; }; export const PieceMetadata = Type.Composite([ PieceBase, Type.Object({ actions: Type.Record(Type.String(), ActionBase), triggers: Type.Record(Type.String(), TriggerBase), }) ]) export type PieceMetadata = PieceBase & { actions: Record<string, ActionBase>; triggers: Record<string, TriggerBase>; }; export const PieceMetadataSummary = Type.Composite([ Type.Omit(PieceMetadata, ["actions", "triggers"]), Type.Object({ actions: Type.Number(), triggers: Type.Number(), suggestedActions: Type.Optional(Type.Array(TriggerBase)), suggestedTriggers: Type.Optional(Type.Array(ActionBase)), }) ]) export type PieceMetadataSummary = Omit<PieceMetadata, "actions" | "triggers"> & { actions: number; triggers: number; suggestedActions?: ActionBase[]; suggestedTriggers?: TriggerBase[]; } const PiecePackageMetadata = Type.Object({ projectUsage: Type.Number(), tags: Type.Optional(Type.Array(Type.String())), pieceType: Type.Enum(PieceType), packageType: Type.Enum(PackageType), archiveId: Type.Optional(Type.String()), }) type PiecePackageMetadata = Static<typeof PiecePackageMetadata> export const PieceMetadataModel = Type.Composite([ PieceMetadata, PiecePackageMetadata ]) export type PieceMetadataModel = PieceMetadata & PiecePackageMetadata export const PieceMetadataModelSummary = Type.Composite([ PieceMetadataSummary, PiecePackageMetadata ]) export type PieceMetadataModelSummary = PieceMetadataSummary & PiecePackageMetadata;

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