@kpritam/gremlin-mcp
Version:
A Gremlin MCP server that allows for fetching status, schema, and querying using Gremlin for any Gremlin-compatible graph database (TypeScript implementation).
103 lines • 4.58 kB
TypeScript
/**
* Configuration module for Gremlin MCP Server.
*/
import { z } from 'zod';
/**
* Comprehensive configuration schema with flattened structure.
* Validates environment variables and transforms them into a clean config object.
*/
declare const configSchema: z.ZodEffects<z.ZodObject<{
GREMLIN_ENDPOINT: z.ZodString;
GREMLIN_USE_SSL: z.ZodEffects<z.ZodDefault<z.ZodString>, boolean, string | undefined>;
GREMLIN_USERNAME: z.ZodOptional<z.ZodString>;
GREMLIN_PASSWORD: z.ZodOptional<z.ZodString>;
LOG_LEVEL: z.ZodDefault<z.ZodEnum<["error", "warn", "info", "debug"]>>;
GREMLIN_IDLE_TIMEOUT: z.ZodEffects<z.ZodDefault<z.ZodString>, number, string | undefined>;
GREMLIN_ENUM_DISCOVERY_ENABLED: z.ZodEffects<z.ZodDefault<z.ZodString>, boolean, string | undefined>;
GREMLIN_ENUM_CARDINALITY_THRESHOLD: z.ZodEffects<z.ZodDefault<z.ZodString>, number, string | undefined>;
GREMLIN_ENUM_PROPERTY_BLACKLIST: z.ZodEffects<z.ZodDefault<z.ZodString>, string[], string | undefined>;
GREMLIN_SCHEMA_INCLUDE_SAMPLE_VALUES: z.ZodEffects<z.ZodDefault<z.ZodString>, boolean, string | undefined>;
GREMLIN_SCHEMA_MAX_ENUM_VALUES: z.ZodEffects<z.ZodDefault<z.ZodString>, number, string | undefined>;
GREMLIN_SCHEMA_INCLUDE_COUNTS: z.ZodEffects<z.ZodDefault<z.ZodString>, boolean, string | undefined>;
}, "strip", z.ZodTypeAny, {
GREMLIN_ENDPOINT: string;
GREMLIN_USE_SSL: boolean;
LOG_LEVEL: "info" | "error" | "warn" | "debug";
GREMLIN_IDLE_TIMEOUT: number;
GREMLIN_ENUM_DISCOVERY_ENABLED: boolean;
GREMLIN_ENUM_CARDINALITY_THRESHOLD: number;
GREMLIN_ENUM_PROPERTY_BLACKLIST: string[];
GREMLIN_SCHEMA_INCLUDE_SAMPLE_VALUES: boolean;
GREMLIN_SCHEMA_MAX_ENUM_VALUES: number;
GREMLIN_SCHEMA_INCLUDE_COUNTS: boolean;
GREMLIN_USERNAME?: string | undefined;
GREMLIN_PASSWORD?: string | undefined;
}, {
GREMLIN_ENDPOINT: string;
GREMLIN_USE_SSL?: string | undefined;
GREMLIN_USERNAME?: string | undefined;
GREMLIN_PASSWORD?: string | undefined;
LOG_LEVEL?: "info" | "error" | "warn" | "debug" | undefined;
GREMLIN_IDLE_TIMEOUT?: string | undefined;
GREMLIN_ENUM_DISCOVERY_ENABLED?: string | undefined;
GREMLIN_ENUM_CARDINALITY_THRESHOLD?: string | undefined;
GREMLIN_ENUM_PROPERTY_BLACKLIST?: string | undefined;
GREMLIN_SCHEMA_INCLUDE_SAMPLE_VALUES?: string | undefined;
GREMLIN_SCHEMA_MAX_ENUM_VALUES?: string | undefined;
GREMLIN_SCHEMA_INCLUDE_COUNTS?: string | undefined;
}>, {
gremlinHost: string;
gremlinPort: number;
gremlinTraversalSource: string;
gremlinUseSSL: boolean;
gremlinUsername: string | undefined;
gremlinPassword: string | undefined;
gremlinIdleTimeout: number;
gremlinEnumDiscoveryEnabled: boolean;
gremlinEnumCardinalityThreshold: number;
gremlinEnumPropertyBlacklist: string[];
gremlinSchemaIncludeSampleValues: boolean;
gremlinSchemaMaxEnumValues: number;
gremlinSchemaIncludeCounts: boolean;
serverName: "gremlin-mcp";
serverVersion: "0.0.3";
logLevel: "info" | "error" | "warn" | "debug";
}, {
GREMLIN_ENDPOINT: string;
GREMLIN_USE_SSL?: string | undefined;
GREMLIN_USERNAME?: string | undefined;
GREMLIN_PASSWORD?: string | undefined;
LOG_LEVEL?: "info" | "error" | "warn" | "debug" | undefined;
GREMLIN_IDLE_TIMEOUT?: string | undefined;
GREMLIN_ENUM_DISCOVERY_ENABLED?: string | undefined;
GREMLIN_ENUM_CARDINALITY_THRESHOLD?: string | undefined;
GREMLIN_ENUM_PROPERTY_BLACKLIST?: string | undefined;
GREMLIN_SCHEMA_INCLUDE_SAMPLE_VALUES?: string | undefined;
GREMLIN_SCHEMA_MAX_ENUM_VALUES?: string | undefined;
GREMLIN_SCHEMA_INCLUDE_COUNTS?: string | undefined;
}>;
export type Config = z.infer<typeof configSchema>;
/**
* Validated and transformed configuration object.
* Parsed once during module initialization for efficiency.
*/
export declare const config: {
gremlinHost: string;
gremlinPort: number;
gremlinTraversalSource: string;
gremlinUseSSL: boolean;
gremlinUsername: string | undefined;
gremlinPassword: string | undefined;
gremlinIdleTimeout: number;
gremlinEnumDiscoveryEnabled: boolean;
gremlinEnumCardinalityThreshold: number;
gremlinEnumPropertyBlacklist: string[];
gremlinSchemaIncludeSampleValues: boolean;
gremlinSchemaMaxEnumValues: number;
gremlinSchemaIncludeCounts: boolean;
serverName: "gremlin-mcp";
serverVersion: "0.0.3";
logLevel: "info" | "error" | "warn" | "debug";
};
export {};
//# sourceMappingURL=config.d.ts.map