51 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { AirtableServer } from './server.js';
async function main() {
const apiKey = process.env.AIRTABLE_API_KEY;
if (!apiKey) {
console.error('Error: AIRTABLE_API_KEY environment variable is required');
console.error('Please set your Airtable API key:');
console.error(' export AIRTABLE_API_KEY=your_api_key_here');
process.exit(1);
}
const server = new AirtableServer({
apiKey,
serverName: '@mcpengine/airtable',
serverVersion: '1.0.0',
});
const transport = new StdioServerTransport();
// Graceful shutdown
const cleanup = async () => {
console.error('Shutting down Airtable MCP server...');
process.exit(0);
};
process.on('SIGINT', cleanup);
process.on('SIGTERM', cleanup);
process.on('uncaughtException', (error) => {
console.error('Uncaught exception:', error);
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled rejection at:', promise, 'reason:', reason);
process.exit(1);
});
await server.connect(transport);
console.error('Airtable MCP server running on stdio');
}
main().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});