UNPKG

synaptra

Version:

A high-performance Model Context Protocol server for GraphQL APIs with advanced features, type-safety, and developer experience improvements

97 lines 4.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NetworkError = exports.ValidationError = exports.QueryError = exports.SchemaError = exports.McpGraphQLError = exports.AnalyzeQueryParamsSchema = exports.BuildQueryParamsSchema = exports.QueryGraphQLParamsSchema = exports.IntrospectSchemaParamsSchema = exports.McpConfigSchema = void 0; const zod_1 = require("zod"); // Configuration schemas exports.McpConfigSchema = zod_1.z.object({ name: zod_1.z.string().default('mcp-gql'), endpoint: zod_1.z.string().url(), headers: zod_1.z.record(zod_1.z.string()).default({}), // Default headers, can be overridden per request defaultApiKey: zod_1.z.string().optional(), // Default API key used when no Authorization header is provided allowMutations: zod_1.z.boolean().default(false), allowSubscriptions: zod_1.z.boolean().default(false), schema: zod_1.z.string().optional(), timeout: zod_1.z.number().default(30000), retries: zod_1.z.number().default(3), security: zod_1.z.object({ maxDepth: zod_1.z.number().default(10), maxComplexity: zod_1.z.number().default(1000), allowIntrospection: zod_1.z.boolean().default(true), rateLimiting: zod_1.z.object({ enabled: zod_1.z.boolean().default(false), windowMs: zod_1.z.number().default(60000), max: zod_1.z.number().default(100), }).default({}), }).default({}), logging: zod_1.z.object({ level: zod_1.z.enum(['error', 'warn', 'info', 'debug']).default('info'), queries: zod_1.z.boolean().default(false), performance: zod_1.z.boolean().default(false), }).default({}), }); // Tool parameter schemas exports.IntrospectSchemaParamsSchema = zod_1.z.object({ format: zod_1.z.enum(['sdl', 'json', 'introspection']).default('sdl'), includeDescription: zod_1.z.boolean().default(true), includeDeprecated: zod_1.z.boolean().default(false), headers: zod_1.z.record(zod_1.z.string()).optional(), // Per-request headers }); exports.QueryGraphQLParamsSchema = zod_1.z.object({ query: zod_1.z.string(), variables: zod_1.z.record(zod_1.z.any()).optional(), operationName: zod_1.z.string().optional(), validate: zod_1.z.boolean().default(true), dryRun: zod_1.z.boolean().default(false), headers: zod_1.z.record(zod_1.z.string()).optional(), // Per-request headers }); exports.BuildQueryParamsSchema = zod_1.z.object({ operation: zod_1.z.enum(['query', 'mutation', 'subscription']), selection: zod_1.z.string(), variables: zod_1.z.record(zod_1.z.any()).optional(), fragments: zod_1.z.array(zod_1.z.string()).optional(), }); exports.AnalyzeQueryParamsSchema = zod_1.z.object({ query: zod_1.z.string(), variables: zod_1.z.record(zod_1.z.any()).optional(), includeComplexity: zod_1.z.boolean().default(true), includeDepth: zod_1.z.boolean().default(true), includeFields: zod_1.z.boolean().default(true), headers: zod_1.z.record(zod_1.z.string()).optional(), // Per-request headers }); // Error types class McpGraphQLError extends Error { code; details; constructor(message, code, details) { super(message); this.code = code; this.details = details; this.name = 'McpGraphQLError'; } } exports.McpGraphQLError = McpGraphQLError; class SchemaError extends McpGraphQLError { constructor(message, details) { super(message, 'SCHEMA_ERROR', details); } } exports.SchemaError = SchemaError; class QueryError extends McpGraphQLError { constructor(message, details) { super(message, 'QUERY_ERROR', details); } } exports.QueryError = QueryError; class ValidationError extends McpGraphQLError { constructor(message, details) { super(message, 'VALIDATION_ERROR', details); } } exports.ValidationError = ValidationError; class NetworkError extends McpGraphQLError { constructor(message, details) { super(message, 'NETWORK_ERROR', details); } } exports.NetworkError = NetworkError; //# sourceMappingURL=index.js.map