UNPKG

@softeria/ms-365-mcp-server

Version:

Microsoft 365 MCP Server

46 lines (38 loc) 1.48 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import logger, { enableConsoleLogging } from './logger.mjs'; import { registerExcelTools } from './excel-tools.mjs'; import { registerAuthTools } from './auth-tools.mjs'; import { registerFilesTools } from './files-tools.mjs'; import { registerCalendarTools } from './calendar-tools.mjs'; import { registerMailTools } from './mail-tools.mjs'; import GraphClient from './graph-client.mjs'; class MicrosoftGraphServer { constructor(authManager, options = {}) { this.authManager = authManager; this.options = options; this.graphClient = new GraphClient(authManager); this.server = null; } async initialize(version) { this.server = new McpServer({ name: 'Microsoft365MCP', version, }); registerAuthTools(this.server, this.authManager); registerFilesTools(this.server, this.graphClient); registerExcelTools(this.server, this.graphClient); registerCalendarTools(this.server, this.graphClient); registerMailTools(this.server, this.graphClient); } async start() { if (this.options.v) { enableConsoleLogging(); } logger.info('Microsoft 365 MCP Server starting...'); const transport = new StdioServerTransport(); await this.server.connect(transport); logger.info('Server connected to transport'); } } export default MicrosoftGraphServer;