MCP Launch Assistant

MCP Launch Assistant

Manages the lifecycle of MCP services with health monitoring, auto-restart capabilities, and process tracking. Enables users to start, stop, restart, and monitor MCP services through natural language commands.

Category
Visit Server

README

MCP Launch Assistant

⚠️ DEPRECATED: This service has been replaced by mcp-services-assistant which provides better separation of concerns and improved LaunchAgent management. Please migrate to the new service.

Service lifecycle management for the MCP ecosystem.

Overview

The Launch Assistant manages the lifecycle of all MCP services in the ecosystem with integrated health monitoring and auto-restart capabilities.

Features

  • Service Management: Start, stop, restart, and monitor services
  • Health Monitoring: Automatic health checks every 30 seconds for services with ports
  • Auto-Restart: Automatically restart failed services (up to 3 attempts by default)
  • Process Tracking: Track PIDs, uptime, restart counts, and exit codes
  • Log Capture: Capture stdout/stderr and keep last 100 lines in memory
  • Graceful Shutdown: 10-second grace period before force-killing
  • Service Discovery: Auto-discover services from registry
  • LaunchAgent Support: macOS system integration for auto-start

Installation

npm install

Usage

As MCP Server (Claude Desktop)

Configure in Claude Desktop settings:

{
  "mcpServers": {
    "launch": {
      "command": "node",
      "args": ["/path/to/mcp-launch-assistant/index.js"]
    }
  }
}

As HTTP Service

npm start

The service will be available at http://localhost:9102

Available Tools

list_services

List all registered services and their status.

await client.callTool({
  name: 'list_services',
  arguments: {
    category: 'platform' // optional: filter by category
  }
});

start_service

Start a specific service.

await client.callTool({
  name: 'start_service',
  arguments: {
    service: 'mcp-gateway-assistant',
    mode: 'dual' // 'mcp', 'http', or 'dual'
  }
});

stop_service

Stop a running service.

await client.callTool({
  name: 'stop_service',
  arguments: {
    service: 'mcp-gateway-assistant'
  }
});

restart_service

Restart a service.

await client.callTool({
  name: 'restart_service',
  arguments: {
    service: 'mcp-gateway-assistant'
  }
});

service_status

Get detailed status of a service including health and logs.

await client.callTool({
  name: 'service_status',
  arguments: {
    service: 'mcp-gateway-assistant'
  }
});

// Returns:
{
  service: 'mcp-gateway-assistant',
  status: 'running',
  pid: 12345,
  startedAt: '2025-01-13T10:00:00Z',
  uptime: 3600000,
  restarts: 0,
  health: {
    status: 'healthy',
    responseTime: '45ms'
  },
  recentLogs: [...]
}

setup_launchagent

Create a LaunchAgent for automatic startup (macOS only).

await client.callTool({
  name: 'setup_launchagent',
  arguments: {
    service: 'mcp-gateway-assistant'
  }
});

Configuration

Constructor Options

const launcher = new McpLaunchAssistant({
  healthCheckInterval: 30000,    // Check health every 30 seconds
  autoRestart: true,             // Auto-restart failed services
  maxRestarts: 3,                // Max restart attempts
  restartDelay: 5000,            // Wait 5 seconds before restart
  gracefulShutdownTimeout: 10000 // 10 seconds for graceful shutdown
});

Environment Variables

SERVICE_PORT=9103          # Launch assistant port
SERVICE_MODE=dual          # Default service mode
LOG_LEVEL=info            # Logging level
NODE_ENV=production       # Environment

Data Storage

  • Service metadata: ~/Documents/mcp-assistant/data/launch-assistant/services.json
  • Process info: ~/Documents/mcp-assistant/data/launch-assistant/processes.json
  • Logs: ~/Documents/mcp-assistant/logs/launch-assistant.log

Development

# Run tests
npm test

# Development mode
npm run dev

Events

The launcher emits these events:

  • serviceStarted - Service successfully started
  • serviceStopped - Service stopped
  • serviceRestarted - Service restarted after failure
  • serviceUnhealthy - Health check failed
  • serviceExited - Process exited
  • serviceLog - New log entry
  • serviceError - Error log entry

Troubleshooting

Service won't start

  • Check if port is already in use
  • Verify service directory exists
  • Check NODE_PATH environment variable
  • Review service logs with service_status

Health checks failing

  • Ensure service implements /health endpoint
  • Check if service is actually listening on configured port
  • Increase health check timeout if service is slow

Auto-restart not working

  • Check if max restarts exceeded
  • Verify autoRestart option is enabled
  • Check logs for crash reasons

LaunchAgent not working

  • Ensure proper permissions
  • Check ~/Library/LaunchAgents/
  • Review system logs with log show --predicate 'subsystem == "com.mcpassistant"'

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured