feat: add data dir option
This commit is contained in:
+2
-1
@@ -10,4 +10,5 @@
|
||||
.vscode
|
||||
.yarn
|
||||
node_modules
|
||||
config.json
|
||||
config.json
|
||||
data/
|
||||
+7
-3
@@ -3,13 +3,18 @@ import fs from "node:fs";
|
||||
import https from "node:https";
|
||||
import { createRequire } from "node:module";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { promisify } from "node:util";
|
||||
import type { Email } from "./types/email.ts";
|
||||
import type { Folder } from "./types/folder.ts";
|
||||
import type { LoginConfig } from "./types/login_config.ts";
|
||||
|
||||
let inMemoryPassword: string | null = null;
|
||||
let dataDir: string = "./data";
|
||||
|
||||
export function initDataDir(dir: string): void {
|
||||
dataDir = path.resolve(dir);
|
||||
fs.mkdirSync(dataDir, { recursive: true });
|
||||
}
|
||||
|
||||
export function setPassword(password: string): void {
|
||||
inMemoryPassword = password;
|
||||
@@ -74,8 +79,7 @@ ${body}
|
||||
}
|
||||
|
||||
function configFilePath(): string {
|
||||
const dir = path.dirname(fileURLToPath(import.meta.url));
|
||||
return path.join(dir, "config.json");
|
||||
return path.join(dataDir, "config.json");
|
||||
}
|
||||
|
||||
export function loadConfig(): LoginConfig {
|
||||
|
||||
@@ -4,6 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
||||
import { Command } from "commander";
|
||||
import crypto from "node:crypto";
|
||||
import http from "node:http";
|
||||
import { initDataDir } from "./ews_client.ts";
|
||||
import { registerAuthTools } from "./tools/auth.ts";
|
||||
import { registerEmailTools } from "./tools/email.ts";
|
||||
import { registerFolderTools } from "./tools/folders.ts";
|
||||
@@ -17,11 +18,14 @@ const program = new Command()
|
||||
"SHA-256 hash of bearer token for HTTP transport auth",
|
||||
)
|
||||
.option("--host <host>", "HTTP host", "127.0.0.1")
|
||||
.option("--port <port>", "HTTP port", "8000");
|
||||
.option("--port <port>", "HTTP port", "8000")
|
||||
.option("--data-dir <path>", "Data directory for config.json", "./data");
|
||||
|
||||
program.parse(process.argv);
|
||||
const options = program.opts();
|
||||
|
||||
initDataDir(options.dataDir);
|
||||
|
||||
function buildServer(): McpServer {
|
||||
const server = new McpServer({
|
||||
name: "exchange-mcp",
|
||||
|
||||
Reference in New Issue
Block a user