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
./start.sh start --background
Make sure start.sh and server.sh scripts have executable permissions(chmod +x)
β Server starts + Dashboard opens + Terminal is free!
Option 1: Direct server script
./scripts/server.sh start --background
Option 2: NPM command
npm start
Option 3: Development mode
npm run dev
To stop: Click the red "Shutdown" button in the dashboard header.
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 --background
Custom 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 8080
Port 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 dev
for 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