UNPKG

qiniu-mcp

Version:

A Model Context Protocol server for Qiniu Cloud Storage services with optimized local file upload support

100 lines 3.04 kB
import { readFileSync, existsSync } from 'fs'; import { homedir } from 'os'; import { join } from 'path'; export class ConfigManager { static instance; config = null; remoteConfig; constructor() { // 默认远程服务器配置 - 使用你的服务器 this.remoteConfig = { endpoint: process.env.QINIU_MCP_ENDPOINT || 'http://mcp.qiaomu.ai:8766/qiniu/api', timeout: 30000 }; } static getInstance() { if (!ConfigManager.instance) { ConfigManager.instance = new ConfigManager(); } return ConfigManager.instance; } /** * 从多个位置加载配置 */ loadConfig() { if (this.config) { return this.config; } // 1. 从环境变量加载 const envConfig = this.loadFromEnv(); if (envConfig) { this.config = envConfig; return this.config; } // 2. 从用户配置文件加载 const fileConfig = this.loadFromFile(); if (fileConfig) { this.config = fileConfig; return this.config; } return null; } loadFromEnv() { const accessKey = process.env.QINIU_ACCESS_KEY; const secretKey = process.env.QINIU_SECRET_KEY; if (accessKey && secretKey) { return { accessKey, secretKey, bucket: process.env.QINIU_BUCKET, region: process.env.QINIU_REGION, domain: process.env.QINIU_DOMAIN }; } return null; } loadFromFile() { const configPaths = [ join(process.cwd(), '.qiniu-mcp.json'), join(homedir(), '.qiniu-mcp.json'), join(homedir(), '.config', 'qiniu-mcp', 'config.json') ]; for (const configPath of configPaths) { if (existsSync(configPath)) { try { const content = readFileSync(configPath, 'utf-8'); const config = JSON.parse(content); if (config.accessKey && config.secretKey) { return config; } } catch (error) { console.warn(`Failed to load config from ${configPath}:`, error); } } } return null; } getRemoteConfig() { return this.remoteConfig; } setRemoteEndpoint(endpoint) { this.remoteConfig.endpoint = endpoint; } hasValidConfig() { return this.loadConfig() !== null; } /** * 生成配置文件模板 */ generateConfigTemplate() { return JSON.stringify({ accessKey: "your_qiniu_access_key", secretKey: "your_qiniu_secret_key", bucket: "your_default_bucket", region: "z0", // 华东-浙江 domain: "your_custom_domain.com" }, null, 2); } } //# sourceMappingURL=config.js.map