Skip to main content
Glama

mcp-google-sheets

index.ts1.69 kB
import { PieceAuth, createPiece } from '@activepieces/pieces-framework'; import { PieceCategory } from '@activepieces/shared'; import crypto from 'crypto'; import { triggers } from './lib/triggers'; export const squareAuth = PieceAuth.OAuth2({ description: 'Authentication', authUrl: 'https://connect.squareup.com/oauth2/authorize', tokenUrl: 'https://connect.squareup.com/oauth2/token', required: true, scope: [ 'MERCHANT_PROFILE_READ', 'CUSTOMERS_READ', 'CUSTOMERS_WRITE', 'ITEMS_READ', 'ITEMS_WRITE', 'ORDERS_READ', 'ORDERS_WRITE', 'PAYMENTS_READ', 'INVOICES_READ', 'APPOINTMENTS_READ', 'APPOINTMENTS_WRITE', ], }); export const square = createPiece({ displayName: 'Square', description: 'Payment solutions for every business', minimumSupportedRelease: '0.30.0', logoUrl: 'https://cdn.activepieces.com/pieces/square.png', categories: [PieceCategory.COMMERCE], authors: ["kishanprmr","MoShizzle","khaledmashaly","abuaboud"], auth: squareAuth, events: { verify: ({ webhookSecret, payload, appWebhookUrl }) => { const signature = payload.headers['x-square-hmacsha256-signature']; const hmac = crypto.createHmac('sha256', webhookSecret as string); hmac.update(appWebhookUrl + payload.rawBody); const hash = hmac.digest('base64'); return hash === signature; }, parseAndReply: ({ payload }) => { const payloadBody = payload.body as Payload | undefined; return { event: payloadBody?.type, identifierValue: payloadBody?.merchant_id, }; }, }, actions: [], triggers, }); type Payload = { type: string; merchant_id: string; };

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