Skip to main content
Glama

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

Layer

Technology

Framework

Electron 28

UI

React 18 + TypeScript

Styling

Tailwind CSS + shadcn/ui

State

Zustand

DI

InversifyJS

Database

SQLite (better-sqlite3)

Build

electron-vite + Vite

Testing

Vitest + Playwright

Documentation

Scripts

Command

Description

pnpm dev

Start development server

pnpm build

Build for production

pnpm test

Run unit tests

pnpm test:watch

Run tests in watch mode

pnpm lint

Run ESLint

pnpm lint:fix

Fix linting issues

pnpm typecheck

Run 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.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/justinpreston/mcp-router'

If you have feedback or need assistance with the MCP directory API, please join our Discord server