We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Articulated7/enfusion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
import { readFileSync, existsSync } from "node:fs";
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { homedir } from "node:os";
import { logger } from "./utils/logger.js";
export interface Config {
/** Path to "Arma Reforger Tools" installation */
workbenchPath: string;
/** Default project directory for project_browse */
projectPath: string;
/** Directory containing scraped data index */
dataDir: string;
/** Directory containing mod pattern definitions */
patternsDir: string;
}
const DEFAULTS: Config = {
workbenchPath:
"C:\\Program Files (x86)\\Steam\\steamapps\\common\\Arma Reforger Tools",
projectPath: "",
dataDir: resolve(
dirname(fileURLToPath(import.meta.url)),
"..",
"data"
),
patternsDir: resolve(
dirname(fileURLToPath(import.meta.url)),
"..",
"data",
"patterns"
),
};
function loadJsonFile(path: string): Partial<Config> {
try {
if (existsSync(path)) {
const raw = readFileSync(path, "utf-8");
return JSON.parse(raw) as Partial<Config>;
}
} catch (e) {
logger.warn(`Failed to load config from ${path}: ${e}`);
}
return {};
}
export function loadConfig(): Config {
// 1. Start with defaults
const config = { ...DEFAULTS };
// 2. Package-local config file
const localConfigPath = resolve(
dirname(fileURLToPath(import.meta.url)),
"..",
"enfusion-mcp.config.json"
);
Object.assign(config, loadJsonFile(localConfigPath));
// 3. User home config
const homeConfigPath = resolve(homedir(), ".enfusion-mcp", "config.json");
Object.assign(config, loadJsonFile(homeConfigPath));
// 4. Environment variables override everything
if (process.env.ENFUSION_WORKBENCH_PATH) {
config.workbenchPath = process.env.ENFUSION_WORKBENCH_PATH;
}
if (process.env.ENFUSION_PROJECT_PATH) {
config.projectPath = process.env.ENFUSION_PROJECT_PATH;
}
if (process.env.ENFUSION_MCP_DATA_DIR) {
config.dataDir = process.env.ENFUSION_MCP_DATA_DIR;
}
logger.debug("Config loaded", config);
return config;
}