Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253import { z } from "zod";
export const MAX_MCP_HEADERS = 8;const reserved = new Set([ "host", "content-length", "content-type", "accept", "connection", "transfer-encoding", "upgrade", "origin", "referer",]);export const mcpHeaderName = z .string() .trim() .toLowerCase() .min(1) .max(100) .regex(/^[!#$%&'*+.^_`|~0-9a-z-]+$/) .refine( (name) => !reserved.has(name) && !name.startsWith("sec-") && !name.startsWith("mcp-"), );export const mcpHeaders = z .array( z.strictObject({ name: mcpHeaderName, value: z .string() .trim() .min(1) .max(4096) .regex(/^[\x20-\x7e]+$/), }), ) .max(MAX_MCP_HEADERS) .refine( (headers) => new Set(headers.map((header) => header.name)).size === headers.length, ) .refine( (headers) => headers.reduce( (bytes, header) => bytes + header.name.length + header.value.length, 0, ) <= 16384, );export type McpHeader = z.infer<typeof mcpHeaders>[number];