#!/usr/bin/env node
// Google Drive MCP Server - Entry Point
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { authenticate, runAuthCommand } from './auth/index.js';
import { createServer } from './server.js';
function log(message: string, data?: unknown) {
const timestamp = new Date().toISOString();
const logMessage = data
? `[${timestamp}] ${message}: ${JSON.stringify(data)}`
: `[${timestamp}] ${message}`;
console.error(logMessage);
}
async function main() {
// Check for auth command
if (process.argv[2] === 'auth') {
await runAuthCommand();
return;
}
log('Starting Google Drive MCP Server...');
try {
// Authenticate
const authClient = await authenticate();
log('Authentication successful');
// Create and start server
const server = createServer(authClient);
const transport = new StdioServerTransport();
await server.connect(transport);
log('Server connected and ready');
} catch (error) {
log('Failed to start server', error);
process.exit(1);
}
}
main().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});