stdio MCP Server Support

DeployStack Satellite now supports Node.js-based MCP servers that use stdio transport. This expands the platform from supporting ~20% of available MCP servers to ~80% of the MCP ecosystem.

DeployStack Node MCP Server support

Before This Update

  • ✅ HTTP/SSE MCP servers worked (like Context7)
  • ❌ npm package-based MCP servers didn't work
  • ❌ MCP servers requiring npx commands didn't work

After This Update

  • ✅ HTTP/SSE MCP servers work (unchanged)
  • ✅ Node.js MCP servers work (installed via npx i.e.: memory)
  • ✅ MCP servers from npm registry work
  • ❌ Python MCP servers still don't work (coming later)

What You Can Do Now

Install npm-Based MCP Servers

You can now install MCP servers from the npm registry directly through DeployStack:

Examples of servers that now work:

  • @modelcontextprotocol/server-filesystem - File system access
  • @modelcontextprotocol/server-sqlite - SQLite database queries
  • @modelcontextprotocol/server-postgres - PostgreSQL database access
  • Any MCP server published to npm with stdio transport

How It Works

  1. Install a Server: Add an npm-based MCP server from the catalog
  2. Automatic Setup: Satellite downloads and spawns the Node.js process
  3. Instant Access: Tools appear in your IDE within 30 seconds
  4. Team Isolation: Each team gets their own isolated process

What Happens Behind the Scenes

When you install an npm-based MCP server:

  1. Satellite receives the installation command from the backend
  2. Spawns a Node.js subprocess using npx (allows package downloads)
  3. Performs MCP handshake with 30-second timeout
  4. Discovers available tools from the running process
  5. Makes tools available through your IDE's MCP client

Technical Details

Auto-Restart with Limits

If an MCP server process crashes:

  • Automatic restart up to 3 times within 5 minutes
  • Exponential backoff: 1s → 5s → 15s between retries
  • Permanent failure after 3 crashes (visible in dashboard)
  • Immediate restart if process ran successfully for 60+ seconds

This prevents infinite restart loops from misconfigured servers while recovering from temporary failures.

Resource Limits (Production Only)

In production environments, stdio processes run with resource limits:

  • Memory: 100MB per process
  • CPU Time: 60 seconds total CPU time
  • Processes: Maximum 50 child processes
  • Isolation: Complete namespace isolation per team

Development environments run without limits for easier debugging.

Tool Discovery

Tools from stdio processes are:

  • Automatically discovered after process starts
  • Namespaced to prevent conflicts (e.g., filesystem-read_file)
  • Cached for performance
  • Team-isolated using OAuth tokens

Current Limitations

Python MCP Servers Not Supported

What doesn't work yet:

  • MCP servers requiring Python/pip installation
  • Servers using uvx or pip commands
  • Python-based MCP packages

Why: This release focused on Node.js (which covers ~80% of MCP servers). Python support is planned for a future release.

Known Issues

  • First installation takes longer: npx downloads packages on first run (30s timeout accounts for this)
  • No version pinning yet: Servers always install latest version from npm

Acknowledgments

This release builds on the architecture from DeployStack Gateway (our deprecated local CLI), adapting process management for multi-tenant cloud deployment. The implementation maintains backward compatibility while adding significant new capabilities.

Share: