UNPKG

@gluneau/hive-mcp-server

Version:

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

85 lines 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.canPerformTokenTransfers = exports.canPerformAuthenticatedOperations = exports.refreshEnvConfig = exports.getConfig = exports.validatePrivateKey = void 0; // Configuration manager for environment variables and settings const dhive_1 = require("@hiveio/dhive"); const fs_1 = require("fs"); const path_1 = require("path"); // Read package.json for server info function getPackageInfo() { try { const packagePath = (0, path_1.join)(__dirname, '..', 'package.json'); const packageJson = JSON.parse((0, fs_1.readFileSync)(packagePath, 'utf8')); return { name: packageJson.name || 'HiveServer', version: packageJson.version || '1.0.0' }; } catch (error) { // Fallback values if package.json cannot be read return { name: 'HiveServer', version: '1.0.0' }; } } // Create a function to read environment variables const readEnvConfig = () => { return { username: process.env.HIVE_USERNAME, postingKey: process.env.HIVE_POSTING_KEY, activeKey: process.env.HIVE_ACTIVE_KEY, memoKey: process.env.HIVE_MEMO_KEY, }; }; // Get package info for server configuration const packageInfo = getPackageInfo(); // Default configuration const defaultConfig = { hive: readEnvConfig(), server: { name: packageInfo.name, version: packageInfo.version, }, log: { logLevel: 'info', }, }; // Validate a private key format (without logging the actual key) const validatePrivateKey = (key) => { if (!key) return false; try { dhive_1.PrivateKey.fromString(key); return true; } catch (error) { return false; } }; exports.validatePrivateKey = validatePrivateKey; // Get the configuration const getConfig = () => { return defaultConfig; }; exports.getConfig = getConfig; // Refresh the environment variables in the config const refreshEnvConfig = () => { defaultConfig.hive = readEnvConfig(); }; exports.refreshEnvConfig = refreshEnvConfig; // Check if the authenticated operations are available const canPerformAuthenticatedOperations = () => { // Always read the latest environment values (0, exports.refreshEnvConfig)(); const { username, postingKey } = defaultConfig.hive; return Boolean(username && postingKey && (0, exports.validatePrivateKey)(postingKey)); }; exports.canPerformAuthenticatedOperations = canPerformAuthenticatedOperations; // Check if token transfers are available const canPerformTokenTransfers = () => { // Always read the latest environment values (0, exports.refreshEnvConfig)(); const { username, activeKey } = defaultConfig.hive; return Boolean(username && activeKey && (0, exports.validatePrivateKey)(activeKey)); }; exports.canPerformTokenTransfers = canPerformTokenTransfers; exports.default = defaultConfig; //# sourceMappingURL=index.js.map