A modern, responsive web-based dashboard for managing Amazon Q MCP (Model Context Protocol) servers on macOS. This dashboard allows you to easily view, enable, and disable MCP servers configured in your ~/.aws/amazonq/mcp.json file.
- ποΈ Dashboard Overview: View all configured MCP servers at a glance
 - π’ Status Indicators: Green/red lights showing enabled/disabled status
 - β‘ Quick Actions: Enable/disable individual servers or all servers at once
 - π Statistics: Real-time stats showing total, enabled, and disabled servers
 - π Auto-sync: Automatically reads and writes to your MCP configuration file
 - π± Responsive Design: Works perfectly on desktop, tablet, and mobile
 - π¨ Modern UI: Clean, intuitive interface with smooth animations
 - π Safe Operations: Creates backups before making changes
 - β¨οΈ Keyboard Shortcuts: Quick access via keyboard shortcuts
 
The clean, modern interface with glassmorphism design and intuitive controls:
The sleek dark theme with enhanced visual contrast and modern aesthetics:
Based on the screenshots above, here's what you'll find on the dashboard:
- Dashboard Title: "MCP Manager Dashboard" with elegant typography
 - Theme Toggle: Sun/Moon icon in the top-right to switch between light and dark modes
 - Refresh Button: Reload server configurations from your MCP file
 - Server Statistics: Live count showing "Total: 4, Enabled: 2, Disabled: 2"
 
Each server is displayed as an individual card containing:
- Server Name: Clearly labeled (e.g., "filesystem", "brave-search", "mcp-server-git", "postgres")
 - Server Type Badge: Visual indicator showing the type (Docker, Python, Node.js, etc.)
 - Status Indicator: Green dot (enabled) or red dot (disabled) with animated pulse
 - Command Preview: Shows the actual command that will be executed
 - Enable/Disable Toggle: Individual button to control each server
 - Server Details: Environment variables, arguments, and configuration info
 
- "Enable All" Button: Activate all MCP servers with one click
 - "Disable All" Button: Deactivate all servers simultaneously
 - Operation Feedback: Toast notifications confirm successful actions
 
- Activity Log: Shows recent actions with timestamps
 - Action Types: Server enabled/disabled, configuration refreshed, etc.
 - Time Stamps: Precise timing of each operation (e.g., "3:28:45 PM")
 - Operation Success: Visual confirmation of completed actions
 
- Glassmorphism Cards: Semi-transparent cards with backdrop blur effects
 - Gradient Background: Beautiful blue-to-purple gradient backdrop
 - Smooth Animations: Hover effects and transitions on interactive elements
 - Typography Hierarchy: Clear information hierarchy with varied font weights
 - Color-Coded Status: Intuitive green/red system for server states
 - Responsive Layout: Grid system that adapts to different screen sizes
 
The dashboard enables you to:
- Quick Server Overview: See all MCP servers and their status at a glance
 - Individual Control: Enable or disable specific servers as needed
 - Bulk Management: Turn all servers on/off for testing or maintenance
 - Configuration Monitoring: Track changes and verify server states
 - Activity Tracking: Review what changes were made and when
 - Theme Preference: Choose your preferred visual mode for comfort
 
- macOS with Amazon Q CLI installed
 - Node.js (version 14 or higher)
 - MCP configuration file at 
~/.aws/amazonq/mcp.json 
- 
Clone the repository:
git clone https://github.com/YOUR_USERNAME/q-mcp-manager.git cd q-mcp-manager - 
Install dependencies:
npm install
 - 
Verify your MCP configuration exists:
ls -la ~/.aws/amazonq/mcp.json 
Option 1: Standard Start (Easiest)
./start.sh start --backgroundOption 2: Persistent Start (Keeps running after terminal closes)
./start-persistent.shOption 3: Access Running Dashboard
./access-dashboard.shMake sure scripts have executable permissions: chmod +x *.sh scripts/*.sh
β Server starts + Dashboard opens + Terminal is free!
Direct server script:
./scripts/server.sh start --backgroundNPM commands:
npm start          # Standard start
npm run dev        # Development modeTo stop: Click the red "Shutdown" button in the dashboard header or use ./scripts/server.sh stop
http://localhost:3000  # Default port
http://localhost:8080  # Custom port example
http://localhost:3000  # Default port
http://localhost:8080  # Custom port example
All server operations use a single script: ./scripts/server.sh
./scripts/server.sh start [options]- Start the server (auto-opens browser)./scripts/server.sh stop [options]- Stop the server gracefully./scripts/server.sh restart [options]- Restart the server./scripts/server.sh status [options]- Check server status and health./scripts/server.sh logs [--follow]- View server logs./scripts/server.sh help- Show all available commands
Run the dashboard on any port to avoid conflicts or match your preferences:
Default port (3000):
./scripts/server.sh start --backgroundCustom port options:
# Using --port flag
./scripts/server.sh start --port 8080 --background
./scripts/server.sh start -p 5000 --background --no-open
# Using --port= syntax  
./scripts/server.sh start --port=4000 --background
# All commands support custom ports
./scripts/server.sh status --port 8080
./scripts/server.sh stop --port 8080Port validation:
- β Ports 1-65535 are valid
 β οΈ Ports below 1024 show privilege warning- β Invalid ports are rejected with clear error messages
 - π Automatic port conflict detection
 
Common use cases:
- Multiple instances: Run dashboards for different projects on different ports
 - Avoid conflicts: Use alternative ports when 3000 is occupied
 - Corporate networks: Use non-standard ports to avoid firewall restrictions
 - Environment matching: Match existing development port conventions
 
Environment variable support:
# Direct Node.js execution with custom port
PORT=8080 node src/backend/server.js
# NPM script with custom port
PORT=8080 npm startπ Auto-Open Feature: The dashboard automatically opens in your browser when you start the server (use --no-open to disable)
π For detailed server management instructions, see docs/SERVER_GUIDE.md
Once the dashboard is running:
- View all configured servers with their current status
 - Click the Enable/Disable button on individual server cards
 - Use "Enable All" or "Disable All" for bulk operations
 - Click "Refresh" to reload the configuration from disk
 
Ctrl/Cmd + R: Refresh serversCtrl/Cmd + E: Enable all serversCtrl/Cmd + D: Disable all servers
The backend server provides the following REST API endpoints:
GET /api/mcp-config: Read the current MCP configurationPOST /api/mcp-config: Update the MCP configurationPOST /api/validate-config: Validate a configuration before savingGET /api/health: Check server health status
q-mcp-manager/
βββ src/
β   βββ backend/
β   β   βββ server.js              # Express.js server
β   βββ frontend/
β   β   βββ dashboard/             # Main dashboard
β   β   β   βββ index.html
β   β   β   βββ script.js
β   β   β   βββ styles.css
β   β   βββ home/                  # Home launcher
β   β       βββ index.html
β   β       βββ script.js
β   β       βββ styles.css
β   βββ assets/                    # Static assets & screenshots
β       βββ launcher.html
β       βββ start.html
β       βββ Screenshot_1.png       # Light mode dashboard
β       βββ Screenshot_2.png       # Dark mode dashboard
βββ scripts/
β   βββ server.sh                  # Main server control script
βββ docs/
β   βββ QUICK_START.md             # Quick start guide
β   βββ SERVER_GUIDE.md            # Detailed server guide
βββ logs/                          # Server logs (auto-generated)
βββ start.sh                       # Convenience startup script
βββ package.json                   # Node.js dependencies
βββ CONTRIBUTING.md                # Development guidelines
βββ LICENSE                        # MIT License
βββ README.md                      # This file
βββ .gitignore                     # Git ignore rules
The dashboard works with the standard Amazon Q MCP configuration format:
{
  "mcpServers": {
    "server-name": {
      "command": "docker",
      "args": ["run", "--rm", "--interactive", "image:latest"],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}- Automatic Backups: Creates timestamped backups before making changes
 - Configuration Validation: Validates JSON structure before saving
 - Error Handling: Comprehensive error handling with user-friendly messages
 - Real-time Status: Shows connection status and loading states
 
- Make sure Node.js is installed: 
node --version - Check if port 3000 is available: 
lsof -i :3000 - Install dependencies: 
npm install 
- Verify the file exists: 
ls -la ~/.aws/amazonq/mcp.json - Check file permissions: 
chmod 644 ~/.aws/amazonq/mcp.json - Validate JSON syntax: 
cat ~/.aws/amazonq/mcp.json | jq . 
- Click the "Refresh" button to reload from disk
 - Check the browser console for error messages
 - Verify the backend server is running
 
To contribute or modify the dashboard:
- Frontend changes: Edit 
index.html,styles.css, orscript.js - Backend changes: Edit 
server.js - Use development mode: 
npm run devfor auto-reload 
- The dashboard runs locally on your machine
 - Only accessible via localhost (not exposed to the internet)
 - Creates backups before making any changes
 - Validates all configuration changes before applying
 
MIT License - feel free to modify and distribute as needed.
If you encounter any issues:
- Check the browser console for error messages
 - Verify your MCP configuration file is valid JSON
 - Ensure the backend server is running on port 3000
 - Check file permissions on the MCP configuration file
 

