Skip to main content
Glama

Enhanced Outlook MCP Server

by jibberish69
index.js2.55 kB
const { MCPServer } = require('@anthropic-ai/mcp'); const config = require('./config'); const logger = require('./utils/logger'); // Import module exports const authTools = require('./auth'); const emailTools = require('./email'); const calendarTools = require('./calendar'); const folderTools = require('./folder'); const rulesTools = require('./rules'); // Gather all tools from modules const TOOLS = [ ...authTools, ...emailTools, ...calendarTools, ...folderTools, ...rulesTools ]; // Set up MCP server with comprehensive error handling const server = new MCPServer({ name: config.server.name, version: config.server.version, port: config.server.port, tools: TOOLS, onRequest: async (req) => { logger.info(`Received request for tool: ${req.tool}`); // Rate limiting check (would be implemented in the rate-limiter utility) try { const { rateLimiter } = require('./utils/rate-limiter'); await rateLimiter.check(); } catch (error) { logger.warn(`Rate limit exceeded: ${error.message}`); return { error: { type: 'rate_limit_exceeded', message: 'Too many requests. Please try again later.', retry_after: error.retryAfter } }; } }, onError: (error, req) => { logger.error(`Error in MCP request for tool ${req?.tool}:`, error); // Provide more informative error response based on error type if (error.name === 'AuthenticationError') { return { error: { type: 'authentication_error', message: 'Authentication failed. Please re-authenticate using the authenticate tool.', } }; } if (error.name === 'GraphAPIError') { return { error: { type: 'api_error', message: `Microsoft Graph API error: ${error.message}`, code: error.code } }; } // Generic error fallback return { error: { type: 'internal_error', message: 'An unexpected error occurred. Please try again or check the server logs.', } }; } }); // Start the server server.start().then(() => { logger.info(`${config.server.name} v${config.server.version} started on port ${config.server.port}`); if (config.testing.enabled) { logger.info('Server running in TEST MODE with mock data'); } logger.info(`Authentication server should be running on port ${config.server.authPort}`); }).catch(error => { logger.error('Failed to start MCP server:', error); process.exit(1); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jibberish69/enhanced-outlook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server