@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
JavaScript
;
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);
});