Skip to main content

Overview

MCPHub’s server management system allows you to centrally configure, monitor, and control multiple MCP (Model Context Protocol) servers from a single dashboard. All changes are applied in real-time without requiring server restarts.

Adding MCP Servers

Via Dashboard

  1. Access the Dashboard: Navigate to http://localhost:3000 and log in
  2. Click “Add Server”: Located in the servers section
  3. Fill Server Details:
    • Name: Unique identifier for the server
    • Command: Executable command (e.g., npx, uvx, python)
    • Arguments: Array of command arguments
    • Environment Variables: Key-value pairs for environment setup
    • Working Directory: Optional working directory for the command

Via Configuration File

Edit your mcp_settings.json file:
{
  "mcpServers": {
    "server-name": {
      "command": "command-to-run",
      "args": ["arg1", "arg2"],
      "env": {
        "API_KEY": "your-api-key",
        "CONFIG_VALUE": "some-value"
      },
      "cwd": "/optional/working/directory"
    }
  }
}

Via API

Use the REST API to add servers programmatically:
curl -X POST http://localhost:3000/api/servers \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -d '{
    "name": "fetch-server",
    "command": "uvx",
    "args": ["mcp-server-fetch"],
    "env": {}
  }'
Provides web scraping and HTTP request capabilities:
{
  "fetch": {
    "command": "uvx",
    "args": ["mcp-server-fetch"]
  }
}
Available Tools:
  • fetch: Make HTTP requests
  • fetch_html: Scrape web pages
  • fetch_json: Get JSON data from APIs
Browser automation for web interactions:
{
  "playwright": {
    "command": "npx",
    "args": ["@playwright/mcp@latest", "--headless"]
  }
}
Available Tools:
  • playwright_navigate: Navigate to web pages
  • playwright_screenshot: Take screenshots
  • playwright_click: Click elements
  • playwright_fill: Fill forms
File and directory management:
{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
  }
}
Available Tools:
  • read_file: Read file contents
  • write_file: Write to files
  • create_directory: Create directories
  • list_directory: List directory contents
Database operations:
{
  "sqlite": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/database.db"]
  }
}
Available Tools:
  • execute_query: Execute SQL queries
  • describe_tables: Get table schemas
  • create_table: Create new tables
Slack workspace integration:
{
  "slack": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-slack"],
    "env": {
      "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
      "SLACK_TEAM_ID": "T1234567890"
    }
  }
}
Available Tools:
  • send_slack_message: Send messages to channels
  • list_slack_channels: List available channels
  • get_slack_thread: Get thread messages
GitHub repository operations:
{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token"
    }
  }
}
Available Tools:
  • create_or_update_file: Create/update repository files
  • search_repositories: Search GitHub repositories
  • create_issue: Create issues
  • create_pull_request: Create pull requests
Google Drive file operations:
{
  "gdrive": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-gdrive"],
    "env": {
      "GDRIVE_CLIENT_ID": "your-client-id",
      "GDRIVE_CLIENT_SECRET": "your-client-secret",
      "GDRIVE_REDIRECT_URI": "your-redirect-uri"
    }
  }
}
Available Tools:
  • gdrive_search: Search files and folders
  • gdrive_read: Read file contents
  • gdrive_create: Create new files
Chinese mapping and location services:
{
  "amap": {
    "command": "npx",
    "args": ["-y", "@amap/amap-maps-mcp-server"],
    "env": {
      "AMAP_MAPS_API_KEY": "your-api-key"
    }
  }
}
Available Tools:
  • search_location: Search for locations
  • get_directions: Get route directions
  • reverse_geocode: Convert coordinates to addresses

Server Lifecycle Management

Starting Servers

Servers are automatically started when:
  • MCPHub boots up
  • A server is added via the dashboard or API
  • A server configuration is updated
  • A stopped server is manually restarted

Stopping Servers

You can stop servers:
  • Via Dashboard: Toggle the server status switch
  • Via API: Send a POST request to /api/servers/{name}/toggle
  • Automatically: Servers stop if they crash or encounter errors

Restarting Servers

Servers are automatically restarted:
  • When configuration changes are made
  • After environment variable updates
  • When manually triggered via dashboard or API

Server Status Monitoring

Status Indicators

Each server displays a status indicator:
  • 🟢 Running: Server is active and responding
  • 🟡 Starting: Server is initializing
  • 🔴 Stopped: Server is not running
  • ⚠️ Error: Server encountered an error

Real-time Logs

View server logs in real-time:
  1. Dashboard Logs: Click on a server to view its logs
  2. API Logs: Access logs via /api/logs endpoint
  3. Streaming Logs: Subscribe to log streams via WebSocket

Health Checks

MCPHub automatically performs health checks:
  • Initialization Check: Verifies server starts successfully
  • Tool Discovery: Confirms available tools are detected
  • Response Check: Tests server responsiveness
  • Resource Monitoring: Tracks CPU and memory usage

Configuration Management

Environment Variables

Servers can use environment variables for configuration:
{
  "server-name": {
    "command": "python",
    "args": ["server.py"],
    "env": {
      "API_KEY": "${YOUR_API_KEY}",
      "DEBUG": "true",
      "MAX_CONNECTIONS": "10"
    }
  }
}
Environment Variable Expansion:
  • ${VAR_NAME}: Expands to environment variable value
  • ${VAR_NAME:-default}: Uses default if variable not set
  • ${VAR_NAME:+value}: Uses value if variable is set

Command Variations

Different ways to specify server commands:
  • npm/npx
  • Python/uvx
{
  "npm-server": {
    "command": "npx",
    "args": ["-y", "package-name", "--option", "value"]
  }
}

Advanced Features

Hot Reloading

MCPHub supports hot reloading of server configurations:
  1. Dashboard Updates: Immediately applies changes made through the web interface
  2. API Updates: Real-time updates via REST API calls
  3. Zero Downtime: Graceful server restarts without affecting other servers

Troubleshooting

Check the following:
  • Command is available in PATH
  • All required environment variables are set
  • Working directory exists and is accessible
  • Network ports are not blocked
  • Dependencies are installed
Debug steps:
  1. Check server logs in the dashboard
  2. Test command manually in terminal
  3. Verify environment variable expansion
  4. Check file permissions
Common causes:
  • Invalid configuration parameters
  • Missing API keys or credentials
  • Resource limits exceeded
  • Dependency conflicts
Solutions:
  1. Review server logs for error messages
  2. Test with minimal configuration
  3. Verify all credentials and API keys
  4. Check system resource availability
Possible issues:
  • Server not fully initialized
  • Tool discovery timeout
  • Communication protocol mismatch
  • Server reporting errors
Debug steps:
  1. Wait for server initialization to complete
  2. Check server logs for tool registration messages
  3. Test direct communication with server
  4. Verify MCP protocol compatibility

Next Steps

I