mcp-cisco-support
Version:
MCP server for Cisco Support APIs including Bug Search and future tools
55 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
const mcp_server_js_1 = require("./mcp-server.js");
const sse_server_js_1 = require("./sse-server.js");
const fs_1 = require("fs");
const path_1 = require("path");
// Get version from package.json
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../package.json'), 'utf8'));
const VERSION = packageJson.version;
// Determine mode from command line arguments
const isHttpMode = process.argv.includes('--http') || process.argv.includes('--sse');
const isStdioMode = !isHttpMode;
// Configure logging based on mode
(0, mcp_server_js_1.setLogging)(!isStdioMode);
// Main function
async function main() {
const args = process.argv.slice(2);
const isHTTP = args.includes('--http') || args.includes('--sse');
if (isHTTP) {
// Run as SSE HTTP server
const PORT = process.env.PORT || 3000;
const sseServer = (0, sse_server_js_1.createSSEServer)(mcp_server_js_1.mcpServer);
// Graceful shutdown handling
const cleanup = () => {
mcp_server_js_1.logger.info('Shutting down gracefully');
process.exit(0);
};
process.on('SIGTERM', cleanup);
process.on('SIGINT', cleanup);
sseServer.listen(PORT, () => {
mcp_server_js_1.logger.info(`Cisco Support MCP SSE Server started on port ${PORT}`, {
environment: process.env.NODE_ENV || 'development',
version: VERSION,
mode: 'sse-http'
});
});
}
else {
// Run as MCP server over stdio (default)
mcp_server_js_1.logger.info('Starting Cisco Support MCP Server in stdio mode');
const transport = new stdio_js_1.StdioServerTransport();
await mcp_server_js_1.mcpServer.connect(transport);
mcp_server_js_1.logger.info('Cisco Support MCP Server connected via stdio');
}
}
// Run if called directly
if (require.main === module) {
main().catch((error) => {
mcp_server_js_1.logger.error('Failed to start server', error);
process.exit(1);
});
}
//# sourceMappingURL=index.js.map