datadog-mcp 5.3.2 → 5.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5607,6 +5607,24 @@ function createServer(config) {
5607
5607
  );
5608
5608
  return server;
5609
5609
  }
5610
+ function createServerFactory(config) {
5611
+ const clients = createDatadogClients(config.datadog);
5612
+ return () => {
5613
+ const server = new McpServer({
5614
+ name: config.server.name,
5615
+ version: config.server.version
5616
+ });
5617
+ registerAllTools(
5618
+ server,
5619
+ clients,
5620
+ config.limits,
5621
+ config.features,
5622
+ config.datadog.site,
5623
+ config.datadog
5624
+ );
5625
+ return server;
5626
+ };
5627
+ }
5610
5628
 
5611
5629
  // src/transport/stdio.ts
5612
5630
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -5621,11 +5639,11 @@ import express from "express";
5621
5639
  import { randomUUID } from "crypto";
5622
5640
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
5623
5641
  import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
5624
- var transports = {};
5625
- function createExpressApp(server, config) {
5642
+ function createExpressApp(createServer2, config) {
5626
5643
  const app = express();
5627
5644
  app.disable("x-powered-by");
5628
5645
  app.use(express.json());
5646
+ const transports = {};
5629
5647
  app.get("/health", (_req, res) => {
5630
5648
  res.json({ status: "ok", name: config.name, version: config.version });
5631
5649
  });
@@ -5648,7 +5666,15 @@ function createExpressApp(server, config) {
5648
5666
  console.error(`[MCP] Session closed: ${transport.sessionId}`);
5649
5667
  }
5650
5668
  };
5651
- await server.connect(transport);
5669
+ try {
5670
+ const server = createServer2();
5671
+ await server.connect(transport);
5672
+ } catch (error) {
5673
+ if (transport.sessionId) {
5674
+ delete transports[transport.sessionId];
5675
+ }
5676
+ throw error;
5677
+ }
5652
5678
  } else {
5653
5679
  res.status(400).json({
5654
5680
  jsonrpc: "2.0",
@@ -5679,8 +5705,8 @@ function createExpressApp(server, config) {
5679
5705
  });
5680
5706
  return app;
5681
5707
  }
5682
- async function connectHttp(server, config) {
5683
- const app = createExpressApp(server, config);
5708
+ async function connectHttp(createServer2, config) {
5709
+ const app = createExpressApp(createServer2, config);
5684
5710
  app.listen(config.port, config.host, () => {
5685
5711
  console.error(`[MCP] Datadog MCP server running on http://${config.host}:${config.port}/mcp`);
5686
5712
  console.error(`[MCP] Health check available at http://${config.host}:${config.port}/health`);
@@ -5690,10 +5716,11 @@ async function connectHttp(server, config) {
5690
5716
  // src/index.ts
5691
5717
  try {
5692
5718
  const config = loadConfig();
5693
- const server = createServer(config);
5694
5719
  if (config.server.transport === "http") {
5695
- await connectHttp(server, config.server);
5720
+ const factory = createServerFactory(config);
5721
+ await connectHttp(factory, config.server);
5696
5722
  } else {
5723
+ const server = createServer(config);
5697
5724
  await connectStdio(server);
5698
5725
  }
5699
5726
  } catch (error) {