import { z } from 'zod';
import fs from 'fs';
import path from 'path';
export const MCPConfigSchema = z.object({
aiAgent: z.enum(['none', 'copilot', 'openai', 'custom']).default('none'),
openAIKey: z.string().optional(),
useCursorAssist: z.boolean().default(true),
hooksOutputDir: z.string().default('hooks'),
docsOutputDir: z.string().default('mcp-docs'),
autoInferRender: z.boolean().default(true),
enableDryRun: z.boolean().default(false),
allowedApiKinds: z
.array(z.enum(['api-client', 'graphql-query', 'graphql-mutation']))
.default(['api-client', 'graphql-query', 'graphql-mutation']),
});
export type MCPConfig = z.infer<typeof MCPConfigSchema>;
// Load config dynamically if file exists
export function loadMCPConfig(): MCPConfig {
const configPath = path.join(process.cwd(), 'mcp.config.js');
if (fs.existsSync(configPath)) {
const userConfig = require(configPath);
return MCPConfigSchema.parse(userConfig);
}
console.log('⚠️ No MCP config found, using defaults');
return MCPConfigSchema.parse({});
}