UNPKG

yapi-devloper-mcp

Version:

YApi MCP Integration

144 lines 5.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getServerConfig = getServerConfig; exports.getConfigSource = getConfigSource; exports.printConfig = printConfig; const zod_1 = require("zod"); const dotenv_1 = require("dotenv"); const yargs_1 = __importDefault(require("yargs")); const helpers_1 = require("yargs/helpers"); (0, dotenv_1.config)(); const configSchema = zod_1.z.object({ yapiBaseUrl: zod_1.z.string().url(), yapiUsername: zod_1.z.string().optional(), yapiPassword: zod_1.z.string().optional(), yapiToken: zod_1.z.string().optional(), port: zod_1.z.number().optional(), }); function maskApiKey(key) { if (key.length <= 4) return "****"; return `****${key.slice(-4)}`; } function getServerConfig() { const argv = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv)) .options({ "yapi-base-url": { type: "string", description: "YApi服务器基础URL", }, "yapi-username": { type: "string", description: "YApi用户名", }, "yapi-password": { type: "string", description: "YApi密码", }, port: { type: "number", description: "MCP服务器运行端口", }, "yapi-token": { type: "string", description: "token", }, }) .help() .parseSync(); const config = { yapiBaseUrl: "", configSources: { yapiBaseUrl: "default", }, }; if (argv["yapi-base-url"]) { config.yapiBaseUrl = argv["yapi-base-url"]; config.configSources.yapiBaseUrl = "cli"; } else if (process.env.YAPI_BASE_URL) { config.yapiBaseUrl = process.env.YAPI_BASE_URL; config.configSources.yapiBaseUrl = "env"; } if (argv["yapi-username"]) { config.yapiUsername = argv["yapi-username"]; config.configSources.yapiUsername = "cli"; } else if (process.env.YAPI_USERNAME) { config.yapiUsername = process.env.YAPI_USERNAME; config.configSources.yapiUsername = "env"; } if (argv["yapi-password"]) { config.yapiPassword = argv["yapi-password"]; config.configSources.yapiPassword = "cli"; } else if (process.env.YAPI_PASSWORD) { config.yapiPassword = process.env.YAPI_PASSWORD; config.configSources.yapiPassword = "env"; } if (argv["yapi-token"]) { config.yapiToken = argv["yapi-token"]; config.configSources.yapiToken = "cli"; } else if (process.env.YAPI_TOKEN) { config.yapiToken = process.env.YAPI_TOKEN; config.configSources.yapiToken = "env"; } if (argv.port) { config.port = argv.port; config.configSources.port = "cli"; } else if (process.env.PORT) { config.port = parseInt(process.env.PORT, 10); config.configSources.port = "env"; } console.log("\n配置信息:"); console.log(`- YApi服务器地址: ${config.yapiBaseUrl} (来源: ${config.configSources.yapiBaseUrl})`); console.log(`- YApi用户名: ${config.yapiUsername || "未配置"} (来源: ${config.configSources.yapiUsername})`); console.log(`- YApi密码: ${config.yapiPassword ? "****" : "未配置"} (来源: ${config.configSources.yapiPassword})`); console.log(`- MCP服务器端口: ${config.port} (来源: ${config.configSources.port})`); console.log(); console.log(`- token: ${config.yapiToken ? "****" : "未配置"} (来源: ${config.configSources.yapiToken})`); try { configSchema.parse(config); } catch (error) { console.error("配置验证失败:"); if (error instanceof zod_1.z.ZodError) { error.errors.forEach((err) => { console.error(`- ${err.path.join(".")}: ${err.message}`); }); } throw new Error("配置验证失败"); } if (!config.yapiToken && (!config.yapiUsername || !config.yapiPassword)) { throw new Error("必须提供 yapiToken 或者 yapiUsername/yapiPassword"); } console.log(config); return config; } function getConfigSource(config, key) { return config.configSources[key] || "default"; } function printConfig(config) { console.log("当前配置:"); console.log("-------------------"); console.log(`YApi Base URL: ${config.yapiBaseUrl} (来自: ${getConfigSource(config, "yapiBaseUrl")})`); if (config.yapiUsername) { console.log(`YApi Username: ${config.yapiUsername} (来自: ${getConfigSource(config, "yapiUsername")})`); } if (config.yapiPassword) { console.log(`YApi Password: ****** (来自: ${getConfigSource(config, "yapiPassword")})`); } if (config.yapiToken) { console.log(`YApi Token: ****** (来自: ${getConfigSource(config, "yapiToken")})`); } if (config.port) { console.log(`Port: ${config.port} (来自: ${getConfigSource(config, "port")})`); } console.log("-------------------"); } //# sourceMappingURL=config.js.map