#!/usr/bin/env node
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { createDroydMcpServer } from './server.js';
// =============================================================================
// Environment Configuration
// =============================================================================
const DROYD_API_KEY = process.env.DROYD_API_KEY;
const DROYD_BASE_URL = process.env.DROYD_BASE_URL || 'https://api.droyd.ai';
// Validate required configuration
if (!DROYD_API_KEY) {
console.error('Error: DROYD_API_KEY environment variable is required');
console.error('');
console.error('Set it in your MCP configuration:');
console.error('');
console.error(' {');
console.error(' "mcpServers": {');
console.error(' "droyd": {');
console.error(' "command": "npx",');
console.error(' "args": ["-y", "@droyd/mcp-server"],');
console.error(' "env": {');
console.error(' "DROYD_API_KEY": "your-api-key"');
console.error(' }');
console.error(' }');
console.error(' }');
console.error(' }');
console.error('');
process.exit(1);
}
// =============================================================================
// Server Startup
// =============================================================================
async function main() {
// Create the MCP server
const server = createDroydMcpServer({
config: {
apiKey: DROYD_API_KEY!,
baseUrl: DROYD_BASE_URL,
},
serverInfo: {
name: 'droyd-mcp-server',
version: '0.1.0',
},
});
// Create stdio transport
const transport = new StdioServerTransport();
// Connect the server to the transport
await server.connect(transport);
// Log startup (to stderr so it doesn't interfere with stdio protocol)
console.error('DROYD MCP Server started');
console.error(` Base URL: ${DROYD_BASE_URL}`);
}
main().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});