This commit is contained in:
2026-07-09 09:08:39 +03:00
parent d09b6145d2
commit d517162081
7 changed files with 228 additions and 69 deletions
+14 -6
View File
@@ -1,9 +1,9 @@
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { Command } from "commander";
import http from "node:http";
import crypto from "node:crypto";
import http from "node:http";
import { registerAuthTools } from "./tools/auth.ts";
import { registerEmailTools } from "./tools/email.ts";
import { registerFolderTools } from "./tools/folders.ts";
@@ -12,7 +12,10 @@ const program = new Command()
.name("exchange-mcp")
.description("Exchange MCP Server — EWS integration via MCP")
.option("--transport <type>", "Transport: stdio or sse", "stdio")
.option("--token-hash <hash>", "SHA-256 hash of bearer token for HTTP transport auth")
.option(
"--token-hash <hash>",
"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");
@@ -55,7 +58,10 @@ async function runSSE() {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
res.setHeader(
"Access-Control-Allow-Headers",
"Content-Type, Authorization",
);
if (req.method === "OPTIONS") {
res.writeHead(200);
@@ -113,7 +119,9 @@ async function main() {
await runSSE();
break;
default:
console.error(`Unsupported transport: "${transportType}". Use "stdio" or "sse".`);
console.error(
`Unsupported transport: "${transportType}". Use "stdio" or "sse".`,
);
process.exit(1);
}
}
@@ -121,4 +129,4 @@ async function main() {
main().catch((error) => {
console.error("Fatal error:", error);
process.exit(1);
});
});