UNPKG

@gluneau/hive-mcp-server

Version:

An MCP server that enables AI assistants to interact with the Hive blockchain

92 lines 4.03 kB
#!/usr/bin/env node "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const tools_1 = require("./tools"); const config_1 = require("./config"); const logger_1 = __importDefault(require("./utils/logger")); const startServer = () => __awaiter(void 0, void 0, void 0, function* () { const config = (0, config_1.getConfig)(); // Set log level logger_1.default.setLogLevel(config.log.logLevel); // Check environment variables and log status if (!config.hive.username) { logger_1.default.warn('Warning: HIVE_USERNAME environment variable is not set'); } else { logger_1.default.info(`Info: Using Hive account: ${config.hive.username}`); } // Check posting key if (!config.hive.postingKey) { logger_1.default.warn('Warning: HIVE_POSTING_KEY environment variable is not set'); } else { logger_1.default.info('Info: HIVE_POSTING_KEY is set'); // Validate private key format (without logging the actual key) if ((0, config_1.validatePrivateKey)(config.hive.postingKey)) { logger_1.default.info('Info: HIVE_POSTING_KEY is valid'); } else { logger_1.default.warn('Warning: HIVE_POSTING_KEY is not a valid private key'); } } // Check active key if (!config.hive.activeKey) { logger_1.default.warn('Warning: HIVE_ACTIVE_KEY environment variable is not set (required for token transfers)'); } else { logger_1.default.info('Info: HIVE_ACTIVE_KEY is set'); // Validate active key format if ((0, config_1.validatePrivateKey)(config.hive.activeKey)) { logger_1.default.info('Info: HIVE_ACTIVE_KEY is valid'); } else { logger_1.default.warn('Warning: HIVE_ACTIVE_KEY is not a valid private key'); } } // Check memo key if (!config.hive.memoKey) { logger_1.default.warn('Warning: HIVE_MEMO_KEY environment variable is not set'); } else { logger_1.default.info('Info: HIVE_MEMO_KEY is set'); // Validate memo key format if ((0, config_1.validatePrivateKey)(config.hive.memoKey)) { logger_1.default.info('Info: HIVE_MEMO_KEY is valid'); } else { logger_1.default.warn('Warning: HIVE_MEMO_KEY is not a valid private key'); } } // Create and configure the server const server = new mcp_js_1.McpServer({ name: config.server.name, version: config.server.version }); // Register tools (0, tools_1.registerTools)(server); (0, tools_1.registerPrompts)(server); // Connect to the transport const transport = new stdio_js_1.StdioServerTransport(); yield server.connect(transport); }); // Start the server and handle any errors startServer().catch((err) => { // Use logger.error instead of console.error logger_1.default.error(`Server failed to start: ${err instanceof Error ? err.message : String(err)}`); process.exit(1); }); //# sourceMappingURL=index.js.map