45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import { LightspeedMCPServer } from './server.js';
|
|
|
|
// Get configuration from environment variables
|
|
const accountId = process.env.LIGHTSPEED_ACCOUNT_ID;
|
|
const clientId = process.env.LIGHTSPEED_CLIENT_ID;
|
|
const clientSecret = process.env.LIGHTSPEED_CLIENT_SECRET;
|
|
const accessToken = process.env.LIGHTSPEED_ACCESS_TOKEN;
|
|
const refreshToken = process.env.LIGHTSPEED_REFRESH_TOKEN;
|
|
const apiType = process.env.LIGHTSPEED_API_TYPE || 'retail'; // retail or restaurant
|
|
const environment = process.env.LIGHTSPEED_ENVIRONMENT || 'production'; // production or trial
|
|
|
|
if (!accountId || !clientId || !clientSecret) {
|
|
console.error('Error: Missing required environment variables');
|
|
console.error('Required: LIGHTSPEED_ACCOUNT_ID, LIGHTSPEED_CLIENT_ID, LIGHTSPEED_CLIENT_SECRET');
|
|
console.error('Optional: LIGHTSPEED_ACCESS_TOKEN, LIGHTSPEED_REFRESH_TOKEN, LIGHTSPEED_API_TYPE, LIGHTSPEED_ENVIRONMENT');
|
|
process.exit(1);
|
|
}
|
|
|
|
const config: any = {
|
|
apiType: apiType as 'retail' | 'restaurant',
|
|
environment: environment as 'production' | 'trial',
|
|
};
|
|
|
|
if (accessToken) {
|
|
config.accessToken = accessToken;
|
|
}
|
|
|
|
if (refreshToken) {
|
|
config.refreshToken = refreshToken;
|
|
}
|
|
|
|
const server = new LightspeedMCPServer(accountId, clientId, clientSecret, config);
|
|
|
|
// Set tokens if provided
|
|
if (accessToken && refreshToken) {
|
|
server.setTokens(accessToken, refreshToken);
|
|
}
|
|
|
|
server.run().catch((error) => {
|
|
console.error('Server error:', error);
|
|
process.exit(1);
|
|
});
|