MCP Hub
Back to servers

MCP Router

A centralized gateway platform for aggregating and managing multiple Model Context Protocol (MCP) servers through a single Electron-based interface. It provides enterprise-grade security features including policy-based access control, human-in-the-loop approval workflows, and comprehensive audit logging.

Updated
Jan 27, 2026

MCP Router

A secure, enterprise-grade Model Context Protocol (MCP) server aggregation platform built with Electron.

Overview

MCP Router acts as a centralized gateway for managing multiple MCP servers, providing:

  • Server Aggregation: Connect and manage multiple MCP servers from a single interface
  • Policy-Based Access Control: Fine-grained control over tool and resource access
  • Token Authentication: Secure API token management with scoping and expiration
  • Approval Workflows: Human-in-the-loop approval for sensitive operations
  • Rate Limiting: Protect against abuse with configurable rate limits
  • Audit Logging: Complete audit trail of all operations

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                        MCP Router                                │
├─────────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐              │
│  │   Clients   │  │   Policy    │  │  Approval   │              │
│  │  (Claude,   │──│   Engine    │──│   Queue     │              │
│  │   etc.)     │  │             │  │             │              │
│  └─────────────┘  └─────────────┘  └─────────────┘              │
│         │                │                │                      │
│         ▼                ▼                ▼                      │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                   MCP Aggregator                         │    │
│  │  - Tool routing    - Resource proxying    - Audit log   │    │
│  └─────────────────────────────────────────────────────────┘    │
│         │                │                │                      │
│         ▼                ▼                ▼                      │
│  ┌───────────┐    ┌───────────┐    ┌───────────┐                │
│  │ MCP Server│    │ MCP Server│    │ MCP Server│                │
│  │     A     │    │     B     │    │     C     │                │
│  └───────────┘    └───────────┘    └───────────┘                │
└─────────────────────────────────────────────────────────────────┘

Features

Server Management

  • Support for stdio and HTTP transport protocols
  • Automatic server health monitoring
  • Tool and resource discovery
  • Per-server configuration

Security

  • Token-based authentication with scopes
  • Policy rules with glob pattern matching
  • Rate limiting per client/token
  • Secure credential storage via system keychain

Policy Engine

  • Global, client-specific, and server-specific policies
  • Allow, deny, and require_approval actions
  • Priority-based rule evaluation
  • Wildcard pattern matching

Approval System

  • Real-time approval notifications
  • Configurable timeout and expiration
  • Audit trail for all decisions

Quick Start

Prerequisites

  • Node.js 20+
  • pnpm 9+

Installation

# Clone the repository
git clone https://github.com/your-org/mcp-router.git
cd mcp-router

# Install dependencies
pnpm install

# Start development server
pnpm dev

Building

# Build for production
pnpm build

# Package for distribution
pnpm package

Project Structure

mcp-router/
├── apps/
│   └── desktop/                 # Electron desktop application
│       ├── src/
│       │   ├── main/           # Main process (Node.js)
│       │   │   ├── core/       # DI container, types, interfaces
│       │   │   ├── services/   # Business logic services
│       │   │   ├── repositories/ # Data access layer
│       │   │   └── ipc/        # IPC handlers
│       │   ├── preload/        # Preload scripts (context bridge)
│       │   └── renderer/       # React UI
│       │       ├── components/ # Reusable UI components
│       │       ├── features/   # Feature modules
│       │       ├── hooks/      # Custom React hooks
│       │       └── stores/     # Zustand state stores
│       └── tests/              # Test files
├── docs/                       # Documentation
│   ├── adr/                   # Architecture Decision Records
│   ├── api/                   # API documentation
│   └── guides/                # User and developer guides
└── packages/                   # Shared packages (future)

Technology Stack

LayerTechnology
FrameworkElectron 28
UIReact 18 + TypeScript
StylingTailwind CSS + shadcn/ui
StateZustand
DIInversifyJS
DatabaseSQLite (better-sqlite3)
Buildelectron-vite + Vite
TestingVitest + Playwright

Documentation

Scripts

CommandDescription
pnpm devStart development server
pnpm buildBuild for production
pnpm testRun unit tests
pnpm test:watchRun tests in watch mode
pnpm lintRun ESLint
pnpm lint:fixFix linting issues
pnpm typecheckRun TypeScript type checking

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - see LICENSE for details.

Reviews

No reviews yet

Sign in to write a review