#!/usr/bin/env node
/* eslint-disable no-console */
// Stdio transport uses stdout for MCP protocol — redirect logs to stderr
console.log = console.error;
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { ApiClient } from './api-client.js';
import { config } from './config.js';
import { registerAllResources } from './resources/index.js';
import { registerAllTools } from './tools/index.js';
async function main() {
const apiClient = new ApiClient(config.apiBaseUrl);
console.log(`[MCP] Connecting to API at ${config.apiBaseUrl}...`);
await apiClient.login();
const server = new McpServer({
name: 'peoplebox-ats',
version: '1.0.0',
});
registerAllTools(server, apiClient);
registerAllResources(server, apiClient);
const transport = new StdioServerTransport();
await server.connect(transport);
console.log('[MCP] Stdio transport connected');
}
main().catch(error => {
console.error('[MCP] Fatal error:', error);
process.exit(1);
});