mcp-server-value-picker 1.0.1 → 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 +46 -19
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -34120,33 +34120,62 @@ 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) {
34126
- const stderrWrite = (...args) => {
34127
- process.stderr.write(args.map(String).join(" ") + `
34128
- `);
34129
- };
34130
- console.log = stderrWrite;
34131
- console.info = stderrWrite;
34132
- console.warn = stderrWrite;
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") {
34134
+ const noop = () => {};
34135
+ console.log = noop;
34136
+ console.info = noop;
34137
+ console.warn = noop;
34138
+ console.error = noop;
34139
+ console.debug = noop;
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
+ });
34133
34161
  }
34134
34162
  async function startStreamableHTTPServer(createServer2) {
34135
- const port = parseInt(process.env.PORT ?? "3456", 10);
34163
+ const preferredPort = parseInt(process.env.PORT ?? "3456", 10);
34164
+ const port = await findAvailablePort(preferredPort);
34136
34165
  const app = createMcpExpressApp({ host: "0.0.0.0" });
34137
34166
  app.use(import_cors.default());
34138
34167
  app.all("/mcp", async (req, res) => {
34139
34168
  const server = createServer2();
34140
- const transport = new StreamableHTTPServerTransport({
34169
+ const transport2 = new StreamableHTTPServerTransport({
34141
34170
  sessionIdGenerator: undefined
34142
34171
  });
34143
34172
  res.on("close", () => {
34144
- transport.close().catch(() => {});
34173
+ transport2.close().catch(() => {});
34145
34174
  server.close().catch(() => {});
34146
34175
  });
34147
34176
  try {
34148
- await server.connect(transport);
34149
- await transport.handleRequest(req, res, req.body);
34177
+ await server.connect(transport2);
34178
+ await transport2.handleRequest(req, res, req.body);
34150
34179
  } catch (error2) {
34151
34180
  console.error("MCP error:", error2);
34152
34181
  if (!res.headersSent) {
@@ -34166,7 +34195,6 @@ async function startStreamableHTTPServer(createServer2) {
34166
34195
  console.log(`Value Picker MCP server listening on http://localhost:${port}/mcp`);
34167
34196
  });
34168
34197
  const shutdown = () => {
34169
- console.error("Shutting down...");
34170
34198
  httpServer.close(() => process.exit(0));
34171
34199
  };
34172
34200
  process.on("SIGINT", shutdown);
@@ -34174,12 +34202,11 @@ async function startStreamableHTTPServer(createServer2) {
34174
34202
  }
34175
34203
  async function startStdioServer(createServer2) {
34176
34204
  const server = createServer2();
34177
- const transport = new StdioServerTransport;
34178
- await server.connect(transport);
34179
- console.error("Value Picker MCP server running on STDIO");
34205
+ const stdioTransport = new StdioServerTransport;
34206
+ await server.connect(stdioTransport);
34180
34207
  }
34181
34208
  async function main() {
34182
- if (isStdio) {
34209
+ if (transport === "stdio") {
34183
34210
  await startStdioServer(createServer);
34184
34211
  } else {
34185
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.1",
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",