UNPKG

@vibe-kit/grok-cli

Version:

An open-source AI agent that brings the power of Grok directly into your terminal.

80 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MCPManager = void 0; const settings_1 = require("./settings"); class MCPManager { static getServers() { const settings = (0, settings_1.loadSettings)(); return settings.mcpServers || {}; } static addServer(name, server) { const settings = (0, settings_1.loadSettings)(); if (!settings.mcpServers) { settings.mcpServers = {}; } settings.mcpServers[name] = server; (0, settings_1.saveSettings)(settings); } static removeServer(name) { const settings = (0, settings_1.loadSettings)(); if (!settings.mcpServers || !settings.mcpServers[name]) { return false; } delete settings.mcpServers[name]; (0, settings_1.saveSettings)(settings); return true; } static getServer(name) { const servers = this.getServers(); return servers[name]; } static listServers() { const servers = this.getServers(); return Object.entries(servers).map(([name, server]) => ({ name, server })); } static validateServer(server) { const errors = []; if (!server.name || server.name.trim() === '') { errors.push('Server name is required'); } if (!server.transport) { errors.push('Transport type is required'); } else if (!['stdio', 'sse', 'http'].includes(server.transport)) { errors.push('Transport must be one of: stdio, sse, http'); } if (server.transport === 'stdio') { if (!server.command) { errors.push('Command is required for stdio transport'); } } else if (server.transport === 'sse' || server.transport === 'http') { if (!server.url) { errors.push('URL is required for SSE/HTTP transport'); } } return errors; } static parseServerFromArgs(name, transport, ...args) { const server = { name, transport: transport, }; if (transport === 'stdio') { if (args.length === 0) { throw new Error('Command is required for stdio transport'); } server.command = args[0]; server.args = args.slice(1); } else if (transport === 'sse' || transport === 'http') { if (args.length === 0) { throw new Error('URL is required for SSE/HTTP transport'); } server.url = args[0]; } return server; } } exports.MCPManager = MCPManager; //# sourceMappingURL=mcp-manager.js.map