Skip to content

MCP Inspector seems to be spawning multiple instances of the MCP Server. #293

@ratacat

Description

@ratacat

Describe the bug
When I connect my server it and open MCP Inspector in the browser and hit connect, it appears to be cycling through starting new instances of the server every few seconds.

To Reproduce
Here's my server

#!/usr/bin/env node --no-warnings

import path from 'path';
import { fileURLToPath } from 'url';
import fs from 'fs/promises'; // Use promises API for async file reading
import dotenv from 'dotenv';
// Fix imports to match the actual file paths
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; // Revert to McpServer
import { McpError, ErrorCode, ReadResourceRequestSchema } from '@modelcontextprotocol/sdk/types.js';

// Direct ESM imports now that modules have been converted
import { log } from './src/utils/logger.js';
import { z } from 'zod'; // Re-add Zod import
import { runSlurpWorkflow } from './src/slurpWorkflow.js';

// Replicate __dirname behavior in ESM
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// Explicitly load .env from the script's directory
dotenv.config({ path: path.resolve(__dirname, '.env') });

/**
 * Main function to initialize and run the MCP server.
 * @async
 */
async function main() {
  log.info("Initializing Slurp MCP Server...");

  // 1. Initialize MCP Server
  const server = new McpServer( // Revert to McpServer
    {
      // Server Information
      name: "slurp-mcp-server",
      version: "1.0.0", // TODO: Maybe pull from package.json later?
      // Add any other relevant server info here
    },
    {
      // Server Capabilities
      capabilities: {
        // Declare support for tools and resources as planned
        tools: {}, // Empty object indicates basic support
        resources: {}, // Empty object indicates basic support
        // Add other capabilities like prompts if needed later
      }
    }
  );
  // --- Tool and Resource Handlers ---

  // Schema defined inline below
  // Register the slurp_url tool
  server.tool(
    'slurp_url',
    'Scrapes documentation starting from a given URL, compiles it into a single Markdown file, and returns a resource URI to the compiled content.',
    { // Define schema inline as an object literal
      url: z.string().describe("The starting URL for documentation scraping.")
    },
    async (args, extra) => { // Add 'extra' parameter
      
      log.debug(`Raw args received: ${JSON.stringify(args)}`);
      let url;
      let progressToken;
      let actualArgs = args; // Assume args is the correct object initially

      // Check if args itself is the object containing the url and _meta,
      // or if args.url contains a JSON string that needs further parsing.
      if (actualArgs && typeof actualArgs.url === 'string') {
          // Check if the url property *value* looks like JSON
          try {
              const innerData = JSON.parse(actualArgs.url);
              // If parsing succeeds AND it contains a 'url' property, assume double encoding
              if (innerData && typeof innerData.url === 'string') {
                  log.debug('Detected double-encoded args, parsing inner url property.');
                  actualArgs = innerData; // Use the parsed inner object
              } else {
                 // If it parsed but doesn't have inner url, treat args.url as the actual URL
                 log.debug('args.url is a string but not double-encoded JSON, using it directly.');
                 // No change needed, actualArgs.url is the URL
              }
          } catch (e) {
              // If parsing args.url fails, assume it's just the URL string itself
              log.debug('args.url is a simple string URL.');
              // No change needed, actualArgs.url is the URL
          }
      } else if (actualArgs && typeof actualArgs.url !== 'string') {
          // If args.url is not a string, log a warning, something is wrong upstream
          log.warn(`Expected args.url to be a string, but got ${typeof actualArgs.url}. Attempting to proceed.`);
          // Attempt to use actualArgs.url anyway, might fail later
      }

      // Extract data from the potentially corrected args object
      url = actualArgs.url; // This should now be the actual URL string
      progressToken = actualArgs._meta?.progressToken;

      // Add extra check to ensure url is a string before proceeding
      if (typeof url !== 'string') {
          log.error(`Failed to extract a valid URL string. Value received: ${JSON.stringify(url)}`);
          throw new McpError(ErrorCode.InvalidParams, `Invalid URL parameter type received: ${typeof url}`);
      }

      log.debug(`Final extracted URL: ${url}`);
      log.debug(`Final extracted progressToken: ${progressToken}`);

      log.info(`Received slurp_url request for URL: ${url}`); // Use extracted url variable

      try {
        // Define progress update function
        const sendProgressUpdate = (progress, total, message) => {
          // Check if a progress token was provided by the client
          if (progressToken !== undefined) {
            // Use the underlying 'server.server' instance and its 'notification' method
            // server.server.notification({ // Call the base notification method
            //   method: 'notifications/progress', // Specify the correct method name
            //   params: {
            //     progressToken,
            //     progress,
            //     ...(total !== undefined && { total }), // Conditionally add total
            //     ...(message && { message }), // Conditionally add message
            //   },
            // });
            log.verbose(`Sent progress update via server.server.notification: ${progress}${total !== undefined ? '/' + total : ''} - ${message || ''}`);
          } else {
            log.verbose(`Progress update skipped (no progressToken): ${progress}${total !== undefined ? '/' + total : ''} - ${message || ''}`);
          }
        };

        // Call the refactored workflow function
        log.debug('Starting runSlurpWorkflow...');
        log.debug(`Calling runSlurpWorkflow with URL: ${url}`); // Use extracted url variable
        // Pass the signal from the 'extra' object to the workflow options
        const result = await runSlurpWorkflow(url, { onProgress: sendProgressUpdate, signal: extra.signal });

        if (result.success && result.compiledFilePath) {
          // Construct the resource URI using the 'slurp' scheme
          // Ensure the path is relative and uses forward slashes for URI consistency
          const relativePath = result.compiledFilePath.replace(/\\/g, '/');
          const resourceUri = `slurp://${relativePath}`;

          log.success(`Workflow successful for ${url}. Compiled file: ${result.compiledFilePath}`);
          return {
            // Return the resource URI in the tool result
            resource_uri: resourceUri,
            message: `Successfully scraped and compiled documentation. Resource available at: ${resourceUri}`
          };
        } else {
          // Workflow reported failure
          const errorMessage = result.error?.message || 'Unknown error during Slurp workflow.';
          log.error(`Slurp workflow failed for ${url}: ${errorMessage}`);
          // Return a structured MCP error
           throw new McpError(ErrorCode.InternalError, `Slurp workflow failed: ${errorMessage}`);
          // Alternatively, return error content:
          // return {
          //   isError: true,
          //   content: [{ type: 'text', text: `Slurp workflow failed: ${errorMessage}` }]
          // };
        }
      } catch (error) {
        // Catch unexpected errors during the handler execution
        log.error(`Unexpected error in slurp_url handler for ${url}: ${error.message}`);
         if (error.stack) {
             log.verbose(error.stack);
         }
         // Throw structured MCP error
         throw new McpError(ErrorCode.InternalError, `Unexpected server error: ${error.message}`);
        // Alternatively, return error content:
        // return {
        //   isError: true,
        //   content: [{ type: 'text', text: `Unexpected server error: ${error.message}` }]
        // };
      }
    }
  );

  // --- Resource Handler ---

  // ReadResourceRequestSchema is imported at the top now

  server.resource(ReadResourceRequestSchema, async (request) => { // Try server.resource() for McpServer // Revert to setRequestHandler
    const requestedUri = request.params.uri;
    log.verbose(`Received resources/read request for URI: ${requestedUri}`);

    const SLURP_SCHEME = 'slurp://';

    if (!requestedUri || !requestedUri.startsWith(SLURP_SCHEME)) {
      // This shouldn't happen if client uses resources correctly, but good to check
      throw new McpError(ErrorCode.InvalidParams, `Invalid or unsupported URI scheme for resources/read: ${requestedUri}`);
    }

    // Extract relative path, remove scheme prefix
    const relativePath = requestedUri.substring(SLURP_SCHEME.length);

    // Basic path sanitization/validation
    if (relativePath.includes('..') || path.isAbsolute(relativePath)) {
        throw new McpError(ErrorCode.InvalidParams, `Invalid path specified in URI: ${relativePath}`);
    }

    // Construct absolute path relative to the project root directory
    const absolutePath = path.resolve(process.cwd(), relativePath);

    // Security check: Ensure the resolved path is still within the project directory
    // This prevents accessing files outside the intended scope via tricky relative paths
    if (!absolutePath.startsWith(process.cwd())) {
         throw new McpError(ErrorCode.InvalidParams, `Attempted to access path outside project directory: ${relativePath}`);
    }


    try {
      log.verbose(`Attempting to read file at: ${absolutePath}`);
      const fileContent = await fs.readFile(absolutePath, { encoding: 'utf-8' });
      log.success(`Successfully read file for URI: ${requestedUri}`);

      // Return the content in the expected MCP format
      return {
        contents: [
          {
            uri: requestedUri,
            mimeType: 'text/markdown', // Assume compiled output is Markdown
            text: fileContent,
          },
        ],
      };
    } catch (error) {
      if (error.code === 'ENOENT') {
        log.error(`File not found for URI ${requestedUri} at path ${absolutePath}`);
        throw new McpError(ErrorCode.InvalidParams, `Resource not found: ${requestedUri}`); // Use InvalidParams as per spec suggestion for unknown URIs
      } else {
        log.error(`Error reading file for URI ${requestedUri}: ${error.message}`);
        throw new McpError(ErrorCode.InternalError, `Server error reading resource: ${error.message}`);
      }
    }
  });

  // --- Connect Transport and Start ---

  // 2. Initialize Transport (Stdio for local execution)
  const transport = new StdioServerTransport();

  // 3. Connect Server to Transport and Start Listening
  try {
    await server.connect(transport);
    log.success(`Slurp MCP Server running on stdio transport.`);
    log.verbose(`Capabilities declared: ${JSON.stringify(server.capabilities)}`);

    // Keep the server running until the transport closes
    await new Promise((resolve) => {
        transport.onclose = resolve;
        // Optional: Add specific error handling for transport errors
        transport.onerror = (error) => {
            log.error(`Transport error: ${error.message}`);
            // Depending on the error, you might want to exit or attempt recovery
            process.exit(1); // Exit on transport error for simplicity
        };
    });

    log.info("Slurp MCP Server transport closed. Exiting.");

  } catch (error) {
    log.error(`Failed to start or connect Slurp MCP Server: ${error.message}`);
    if (error.stack) {
        log.verbose(error.stack);
    }
    process.exit(1); // Exit if server fails to start
  }
} // <-- Closing brace for main function now goes here

// Run the server
// Run the server using an IIAFE
(async () => {
  try {
    await main();
  } catch (error) {
    // Catch any uncaught errors during async main execution
    log.error(`Unhandled error during server execution: ${error.message}`);
    if (error.stack) {
         log.verbose(error.stack);
    }
    process.exit(1);
  }
})();

Expected behavior
I would expect it to just maintain it's initial connection to the server.

Logs


Node.js v23.4.0
mkwudfhe@Jareds-MacBook-Pro-10 slurpai % npx @modelcontextprotocol/inspector node mcp-server.js
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
Received message for sessionId 2af3e12f-0f6f-4068-96af-ae10b4ba24cc
Received message for sessionId 2af3e12f-0f6f-4068-96af-ae10b4ba24cc
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy
New SSE connection
Query parameters: {
  transportType: 'stdio',
  command: 'node',
  args: 'mcp-server.js',
  env: '{"HOME":"/Users/mkwudfhe","LOGNAME":"mkwudfhe","PATH":"/Users/mkwudfhe/.npm/_npx/5a9d879542beca3a/node_modules/.bin:/Users/mkwudfhe/Projects/slurpai/node_modules/.bin:/Users/mkwudfhe/Projects/node_modules/.bin:/Users/mkwudfhe/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/opt/homebrew/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/Users/mkwudfhe/.codeium/windsurf/bin:/usr/local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/mkwudfhe/.codeium/windsurf/bin:/Users/mkwudfhe/.local/bin:/opt/homebrew/bin/:/Library/Frameworks/Python.framework/Versions/3.13/bin:/Users/mkwudfhe/.lmstudio/bin:/Users/mkwudfhe/.lmstudio/bin","SHELL":"/bin/zsh","TERM":"xterm-256color","USER":"mkwudfhe"}'
}
Stdio transport: command=/opt/homebrew/bin/node, args=mcp-server.js
Spawned stdio transport
Connected MCP client to backing server transport
Created web app transport
Created web app transport
Set up MCP proxy

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingwaiting on submitterWaiting for the submitter to provide more info

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions