Skip to main content
Glama

ACP Commerce MCP Server

validation.ts1.75 kB
import { z } from 'zod'; import { X402HeaderSchema } from '../types/x402.js'; const AddressSchema = z.object({ line1: z.string().min(1), line2: z.string().optional(), city: z.string().min(1), state: z.string().min(1), postal_code: z.string().min(3), country: z.string().length(2), }); export const BuyerInfoSchema = z.object({ email: z.string().email(), phone: z.string().min(7).max(32).optional(), shipping_address: AddressSchema, billing_address: AddressSchema.optional(), }); export const PaymentDetailsSchema = z.object({ payment_method: z.enum(['card', 'bank_account', 'digital_wallet']), payment_token: z.string().min(8), save_for_future: z.boolean().optional(), }); export const LookupItemsSchema = z.object({ query: z.string().min(1), limit: z.number().int().min(1).max(50).default(10), category: z.string().min(1).optional(), }); export const CollectBuyerInfoInputSchema = BuyerInfoSchema.extend({ session_id: z.string().uuid().optional(), }); export const CollectPaymentDetailsInputSchema = PaymentDetailsSchema.extend({ session_id: z.string().uuid().optional(), }); export const BrowseCatalogInputSchema = z.object({}); export const CartMutationSchema = z.object({ session_id: z.string().uuid().optional(), productId: z.string().min(1), quantity: z.number().int().min(0).max(99).default(1), }); export const PaymentInitiateSchema = z.object({ session_id: z.string().uuid(), amount: z.number().int().min(1), }); export const PaymentConfirmSchema = z.object({ payment_intent_id: z.string().min(1), session_id: z.string().uuid().optional(), }); export function validateHeaders(headers: Record<string, unknown>) { return X402HeaderSchema.parse(headers); } export { AddressSchema };

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/gratitude5dee/wzrdmcp'

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