A comprehensive ecosystem for managing MCP (Model Context Protocol) servers with Mozilla's mcpd, featuring an Electron desktop app, STDIO bridge for Claude Desktop, HTTP gateway for universal access, and a CLI tool for quick client setup.
Mozilla has NEVER published any packages from this project to npm.
The following malicious packages have been confirmed on the public npm registry:
mcpd-bridge-server- CONFIRMED MALICIOUSmcpd-http-gateway- CONFIRMED EXISTS (treat as malicious)@mcpd/setup- CONFIRMED EXISTS (treat as malicious)
If any other packages claiming to be from this project exist on npm, they should also be treated as malicious.
Please be aware that Mozilla.ai will ONLY ever publish packages under the @mozilla-ai/ namespace.
All components in this repository should ONLY be installed from source. Always use the provided ./install-global.sh script or manual installation from this repository. Never use npm install or npx with these unscoped package names.
Visual desktop application for managing MCP servers with dashboard, configuration editor, and real-time monitoring.
Native MCP protocol bridge for Claude Desktop integration with flexible unified/individual server modes.
Universal HTTP/HTTPS gateway exposing MCP servers via REST API and WebSocket for web apps, Claude Code, Cursor, and any HTTP client.
Command-line tool for quick setup of MCP servers with various clients (Claude, Cursor, HTTP, Tunnel).
- Visual Server Management: Add, remove, and monitor MCP servers through an intuitive UI
- Tool Explorer: Browse and test MCP tools with live execution
- Configuration Editor: Edit
.mcpd.tomlfiles with syntax highlighting - Real-time Logs: Monitor daemon and server logs with filtering and search
- System Tray Integration: Run in background with quick access controls
- Dashboard: Overview of system status, active servers, and available tools
- Multiple Access Methods:
- STDIO Bridge for Claude Desktop
- HTTP Gateway for web/API access
- Cloudflare Tunnels for external access (no account needed)
- Direct mcpd API access
- One-Click Client Setup: Quick configuration for Claude, Cursor, and other MCP clients
- Export Configurations: Generate configs for various platforms and tools
- Node.js 16+ and npm
- mcpd installed (
brew install mozilla-ai/tap/mcpdor from GitHub releases) - npx (for JavaScript MCP servers)
- uvx (for Python MCP servers)
# Clone the repository
git clone https://github.com/mozilla-ai/mcpd-client.git
cd mcpd-client
# Install dependencies
npm install
# Build the application
npm run build
# Install CLI tools globally (mcpd-bridge, mcpd-setup, etc.)
./install-global.sh
# Start the application
npm start# Run in development mode
npm run dev
# Build for production
npm run build
# Package for distribution
npm run dist
# Platform-specific builds
npm run dist:mac # macOS
npm run dist:win # Windows
npm run dist:linux # LinuxThe application consists of:
- Main Process: Manages the mcpd daemon, handles IPC, and system tray
- Renderer Process: React-based UI with Ant Design components
- mcpd Integration: Communicates with mcpd's HTTP API on port 8090
- Electron: Cross-platform desktop framework
- React: UI framework
- TypeScript: Type safety
- Ant Design: UI component library
- Monaco Editor: Code editing for configurations
- xterm.js: Terminal emulator for logs
- Start the Daemon: Click the power button in the header or use the system tray menu
- Add Servers: Navigate to the Servers tab and click "Add Server"
- Quick Connect: Use the Connect tab for one-click setup with Claude, Cursor, or HTTP gateway
- Explore Tools: Use the Tools tab to browse and test available MCP tools
- Edit Configuration: Modify
.mcpd.tomldirectly in the Configuration tab - Monitor Logs: View real-time logs with filtering in the Logs tab
The Connect tab provides the easiest way to integrate your MCP servers with various tools.
For each configured server, just click a button:
- Connect to Claude Desktop - Automatically configures claude_desktop_config.json
- Start HTTP Gateway - Launches HTTP server and shows the API endpoint
- Connect to Cursor - Currently use the CLI tool (see Option 2)
After running ./install-global.sh, you can use these commands from anywhere:
# List available servers
mcpd-setup list
# Setup for Claude Desktop
mcpd-setup filesystem --client claude
# Start HTTP Gateway (local access)
mcpd-setup filesystem --client http
# Create public tunnel (for external services like Railway)
mcpd-setup filesystem --client tunnel
# Setup for Cursor (with automatic tunnel)
mcpd-setup filesystem --client cursorClaude Desktop Integration:
- Automatically configures
claude_desktop_config.json - Uses STDIO bridge for native MCP protocol support
- Creates individual server entries for clean organization
- Supports both unified (all servers) and per-server modes
Cursor Integration:
- Automatically creates a Cloudflare tunnel to bypass localhost restrictions
- Configures
~/.cursor/mcp.jsonwith the tunnel URL - Starts HTTP gateway for MCP protocol translation
- Keeps the tunnel alive (terminal must stay open)
- Provides real-time access to MCP tools in Cursor
Windsurf Integration:
- Sets up Windsurf with MCP server access
- Optimized configuration for development workflows
HTTP Gateway:
- Starts HTTP server at
http://localhost:3001/partner/mcpd/{server}/mcp - Provides REST API access for web applications
- Compatible with Claude Code and other HTTP clients
- Automatic server discovery and routing
- CORS enabled for web app integration
Public Tunnel (Cloudflare):
- Creates a public URL for your MCP server
- No account or authentication required
- Perfect for Railway apps or external services
- Automatic cloudflared installation
- Example:
https://random-name.trycloudflare.com/partner/mcpd/{server}/mcp
Setting up Claude Desktop:
- Go to Connect tab
- Click "Copy" next to Claude command for your server
- Paste and run in terminal
- Restart Claude Desktop
- Your MCP server is now available in Claude!
Web Development with HTTP Gateway:
- Use the HTTP setup command
- Access your server at
http://localhost:3001/partner/mcpd/filesystem/mcp - Make MCP calls via HTTP POST requests
- Perfect for integrating with web apps or API clients
For manual setup or custom configurations, you can also integrate directly:
The Connect tab automates this, but you can also manually add to claude_desktop_config.json:
{
"mcpServers": {
"mcpd-filesystem": {
"command": "node",
"args": ["/path/to/mcpd-bridge-server/dist/index.js"],
"env": {
"MCPD_SERVER": "filesystem",
"MCPD_URL": "http://localhost:8090"
}
}
}
}Start the HTTP gateway manually:
cd mcpd-http-gateway
npm startThen access via REST API:
const response = await fetch('http://localhost:3001/partner/mcpd/filesystem/mcp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: {
name: "read_file",
arguments: { path: "/tmp/test.txt" }
}
})
});Connect directly to mcpd's HTTP API:
const response = await fetch('http://localhost:8090/api/v1/servers/filesystem/tools/read_file', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ path: "/tmp/test.txt" })
}); mcpd Daemon
β
βββββββββββββββββββββΌββββββββββββββββββββ
β β β
Electron App STDIO Bridge HTTP Gateway
(Management) (Claude Desktop) (Web/API Access)
β β β
Dashboard MCP Protocol REST API
Config Editor Namespacing WebSocket
Tool Explorer Dual Modes Authentication
Licensed under the Apache License 2.0.