qiscrm-mcp
Version:
MCP server for QISCRM
54 lines (53 loc) • 1.54 kB
JavaScript
import { createServer } from './server.js';
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { log } from './utils.js';
import { API_KEY, BASE_URL, ORG_ID } from './config.js';
async function main() {
// Ensure API key exists
if (!API_KEY) {
log("API_KEY environment variable is not set");
process.exit(1);
}
if (!BASE_URL) {
log("BASE_URL environment variable is not set");
process.exit(1);
}
if (!ORG_ID) {
log("ORG_ID environment variable is not set");
process.exit(1);
}
try {
log("Starting MCP server");
const server = createServer();
const transport = new StdioServerTransport();
await server.connect(transport);
log("Qiscrm MCP Server running on stdio");
// Handle process exit signals
setupExitHandlers(server);
}
catch (error) {
log("Failed to start server:", error);
process.exit(1);
}
}
/**
* Set up process exit signal handlers
*/
function setupExitHandlers(server) {
const exitHandler = async () => {
log("Shutting down server...");
await server.stop();
process.exit(0);
};
// Handle various exit signals
process.on("SIGINT", exitHandler);
process.on("SIGTERM", exitHandler);
process.on("SIGUSR1", exitHandler);
process.on("SIGUSR2", exitHandler);
}
// Start program
main().catch((error) => {
log("Fatal error:", error);
process.exit(1);
});