UNPKG

@aot-tech/gmail-mcp-server

Version:

Gmail MCP Server with Bearer Token Authentication - A Model Context Protocol server for Gmail access

60 lines (59 loc) 2.06 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const types_js_1 = require("@modelcontextprotocol/sdk/types.js"); const index_1 = require("./config/index"); const auth_1 = require("./utils/auth"); const send_email_1 = require("./tools/send-email"); const server = new index_js_1.Server(index_1.SERVER_CONFIG, { capabilities: { tools: {}, }, }); server.setRequestHandler(types_js_1.ListToolsRequestSchema, async (request) => { (0, auth_1.initializeAuth)(request.params?.meta); return { tools: [ { name: send_email_1.sendEmailTool.name, description: send_email_1.sendEmailTool.description, inputSchema: send_email_1.sendEmailTool.parameters, }, ], }; }); server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; (0, auth_1.initializeAuth)(request.params?.meta); try { switch (name) { case send_email_1.sendEmailTool.name: return await send_email_1.sendEmailTool.handler(args); default: throw new Error(`Unknown tool: ${name}`); } } catch (error) { const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; return { content: [ { type: 'text', text: `Error executing ${name}: ${errorMessage}`, }, ], isError: true, }; } }); async function main() { const transport = new stdio_js_1.StdioServerTransport(); await server.connect(transport); console.error('Gmail MCP Server with Bearer Token Authentication started'); } main().catch((error) => { console.error('Server error:', error); process.exit(1); });