mcp-server-value-picker 1.0.2 → 1.0.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.
Files changed (2) hide show
  1. package/dist/index.js +40 -10
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -34120,9 +34120,17 @@ class StreamableHTTPServerTransport {
34120
34120
 
34121
34121
  // main.ts
34122
34122
  var import_cors = __toESM(require_lib4(), 1);
34123
+ import { createServer as createNetServer } from "node:net";
34123
34124
  import { createServer } from "./server.js";
34124
- var isStdio = process.argv.includes("--stdio");
34125
- if (isStdio) {
34125
+ function resolveTransport() {
34126
+ if (process.argv.includes("--stdio"))
34127
+ return "stdio";
34128
+ if (process.argv.includes("--http"))
34129
+ return "http";
34130
+ return process.stdin.isTTY ? "http" : "stdio";
34131
+ }
34132
+ var transport = resolveTransport();
34133
+ if (transport === "stdio") {
34126
34134
  const noop = () => {};
34127
34135
  console.log = noop;
34128
34136
  console.info = noop;
@@ -34130,22 +34138,44 @@ if (isStdio) {
34130
34138
  console.error = noop;
34131
34139
  console.debug = noop;
34132
34140
  }
34141
+ function findAvailablePort(preferred) {
34142
+ return new Promise((resolve, reject) => {
34143
+ const srv = createNetServer();
34144
+ srv.once("error", (err) => {
34145
+ if (err.code === "EADDRINUSE") {
34146
+ srv.listen(0, "0.0.0.0", () => {
34147
+ const addr = srv.address();
34148
+ const port = typeof addr === "object" && addr ? addr.port : 0;
34149
+ srv.close(() => resolve(port));
34150
+ });
34151
+ } else {
34152
+ reject(err);
34153
+ }
34154
+ });
34155
+ srv.listen(preferred, "0.0.0.0", () => {
34156
+ const addr = srv.address();
34157
+ const port = typeof addr === "object" && addr ? addr.port : preferred;
34158
+ srv.close(() => resolve(port));
34159
+ });
34160
+ });
34161
+ }
34133
34162
  async function startStreamableHTTPServer(createServer2) {
34134
- const port = parseInt(process.env.PORT ?? "3456", 10);
34163
+ const preferredPort = parseInt(process.env.PORT ?? "3456", 10);
34164
+ const port = await findAvailablePort(preferredPort);
34135
34165
  const app = createMcpExpressApp({ host: "0.0.0.0" });
34136
34166
  app.use(import_cors.default());
34137
34167
  app.all("/mcp", async (req, res) => {
34138
34168
  const server = createServer2();
34139
- const transport = new StreamableHTTPServerTransport({
34169
+ const transport2 = new StreamableHTTPServerTransport({
34140
34170
  sessionIdGenerator: undefined
34141
34171
  });
34142
34172
  res.on("close", () => {
34143
- transport.close().catch(() => {});
34173
+ transport2.close().catch(() => {});
34144
34174
  server.close().catch(() => {});
34145
34175
  });
34146
34176
  try {
34147
- await server.connect(transport);
34148
- await transport.handleRequest(req, res, req.body);
34177
+ await server.connect(transport2);
34178
+ await transport2.handleRequest(req, res, req.body);
34149
34179
  } catch (error2) {
34150
34180
  console.error("MCP error:", error2);
34151
34181
  if (!res.headersSent) {
@@ -34172,11 +34202,11 @@ async function startStreamableHTTPServer(createServer2) {
34172
34202
  }
34173
34203
  async function startStdioServer(createServer2) {
34174
34204
  const server = createServer2();
34175
- const transport = new StdioServerTransport;
34176
- await server.connect(transport);
34205
+ const stdioTransport = new StdioServerTransport;
34206
+ await server.connect(stdioTransport);
34177
34207
  }
34178
34208
  async function main() {
34179
- if (isStdio) {
34209
+ if (transport === "stdio") {
34180
34210
  await startStdioServer(createServer);
34181
34211
  } else {
34182
34212
  await startStreamableHTTPServer(createServer);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-value-picker",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "type": "module",
5
5
  "description": "Test MCP App: 10 selectable values + ui/update-model-context for Phase 5 testing",
6
6
  "main": "dist/server.js",