import 'dotenv/config';
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { GHLApiClient } from './clients/ghl-api-client.js';
import { DEFAULT_GHL_BASE_URL, configSchema, resolveConfig } from './config.js';
import { GHLMCPServer, setupGracefulShutdown } from './server.js';
export { configSchema };
async function main(): Promise<void> {
const config = resolveConfig();
const server = new Server(
{
name: 'ghl-mcp-server',
version: '1.0.0',
},
{
capabilities: {
tools: {},
},
}
);
const ghlClient = new GHLApiClient({
accessToken: config.ghlApiKey,
baseUrl: config.ghlBaseUrl ?? DEFAULT_GHL_BASE_URL,
version: '2021-07-28',
locationId: config.ghlLocationId,
});
const ghlServer = new GHLMCPServer({ server, ghlClient });
setupGracefulShutdown();
await ghlServer.start(new StdioServerTransport());
}
main().catch((error) => {
console.error('Unhandled error while starting MCP server:', error);
process.exit(1);
});