import fs from "fs";
import path from "path";
import os from "os";
function getConfigPaths() {
const configDir = path.join(os.homedir(), ".clickup-mcp");
const configFile = path.join(configDir, "config.json");
return { configDir, configFile };
}
export interface Config {
clientId?: string;
clientSecret?: string;
accessToken?: string;
refreshToken?: string;
}
export function saveConfig(config: Config) {
const { configDir, configFile } = getConfigPaths();
if (!fs.existsSync(configDir)) {
fs.mkdirSync(configDir);
}
fs.writeFileSync(configFile, JSON.stringify(config, null, 2));
}
export function loadConfig(): Config {
// Check Environment Variables first (Cloud/Headless mode)
if (process.env.CLICKUP_ACCESS_TOKEN) {
return {
clientId: process.env.CLICKUP_CLIENT_ID,
clientSecret: process.env.CLICKUP_CLIENT_SECRET,
accessToken: process.env.CLICKUP_ACCESS_TOKEN,
refreshToken: process.env.CLICKUP_REFRESH_TOKEN,
};
}
const { configFile } = getConfigPaths();
if (!fs.existsSync(configFile)) {
return {};
}
const content = fs.readFileSync(configFile, "utf-8");
return JSON.parse(content);
}