Skip to main content
Glama

astra-aigate — Unified AI Service Gateway

One web UI to configure, monitor and route LLM providers, MCP servers and auxiliary services.

License Stars Last commit Star history

Overview

astra-aigate is a self-hosted AI gateway console managing three categories of services:

  1. LLM Providers — provider management, combo routing and fallback (carried from OmniRoute)

  2. MCP Servers — MCP server registration, tool aggregation and connectivity checks

  3. Auxiliary Services — health monitoring and reverse proxying for non-MCP tools (Camofox, SearXNG, etc.)

It is an independent project (not a GitHub fork), seeded from OmniRoute (MIT) and evolving its own identity: Expo design language, Next.js 16 + React 19 frontend, British English locale, zh-CN/zh-TW translations.

Related MCP server: MCP Gateway

Features

  • Expo design language — luminous monochrome UI with pure-black (#000000) primary actions

  • Data-driven sidebarsections.ts is the single source of truth for navigation; collapsible sub-groups (Routing & Access, Combos); redundant redirect stubs removed

  • Independent scrolling — fixed-height layout with sidebar-internal and main-content scroll reset on route change

  • i18n — English (British), zh-CN, zh-TW; language switcher in Settings > Appearance and docs layout

  • Podman deployment — multi-stage standalone build, no Turbopack (webpack-only)

Quick Start

# Run the prebuilt image on the target host:
podman run -d --name astra-aigate --env-file .env -p <port>:20128 localhost/astra-aigate:latest
# Open http://<host>:<port> — first login uses INITIAL_PASSWORD from .env

Tech Stack

Layer

Choice

Runtime

Node.js 26 (container, trixie)

Database

SQLite via better-sqlite3

API framework

Fastify (carried from OmniRoute)

Frontend

Next.js 16 (App Router) + React 19 + Expo design tokens

i18n

next-intl (messages bundled at build time)

Auth

Password + API keys (JWT)

Deployment

Podman multi-stage standalone build

Project Layout

src/shared/constants/sidebarVisibility/sections.ts  # single nav data source
src/shared/components/Sidebar.tsx                   # sidebar (collapsible sub-groups)
src/shared/components/layouts/DashboardLayout.tsx   # fixed-height layout + scroll reset
src/i18n/messages/{en,zh-CN,zh-TW}.json             # locales (British English)
scripts/test/regression-final.mjs                   # Playwright regression suite

Usage

# Route an LLM request through a provider combo (fallback built in):
curl http://<host>:<port>/v1/chat/completions \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"model":"<combo-name>","messages":[{"role":"user","content":"Hello"}]}'

# Aggregate MCP tools across registered servers:
curl http://<host>:<port>/mcp \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Full configuration reference lives in .env.example; the web dashboard (Providers / Combos / MCP / Services) covers day-to-day management.

Documentation

  • AGENTS.md — project context for AI agents

  • DESIGN.md — Expo design system specification

  • docs/ — operational references (incident response, performance budgets)

Credits

This project builds on the following open-source work:

  • OmniRoute (MIT) — the unified AI service gateway this project was seeded from; upstream attribution is retained in the source tree.

  • awesome-design-md — source of the design-spec template used for DESIGN.md.

  • Expo — the visual design language (bright airy canvas, pill-shaped geometry) our UI shell is based on.

Licence

MIT. Seeded from OmniRoute (MIT) — upstream attribution retained in the source tree.


astra-aigate(中文版)

astra-aigate — 统一 AI 服务网关

一个 Web 界面统一配置、监控和路由 LLM 提供商MCP 服务器辅助服务

概述

astra-aigate 是一个自托管的 AI 网关控制台,管理三类服务:

  1. LLM 提供商 — 提供商管理、组合路由和故障转移(继承自 OmniRoute)

  2. MCP 服务器 — MCP 服务器注册、工具聚合和连通性检查

  3. 辅助服务 — 非 MCP 工具(Camofox、SearXNG 等)的健康监控和反向代理

本项目是独立项目(非 GitHub fork),种子代码来自 OmniRoute(MIT),正在形成自己的身份:以 Expo 设计语言,Next.js 16 + React 19 前端,英式英语 locale,zh-CN/zh-TW 翻译。

特性

  • Expo 设计语言 — 明亮单色 UI,纯黑(#000000)主按钮

  • 数据驱动侧边栏sections.ts 是导航的唯一数据源;可折叠子分组(Routing & Access、Combos);清除纯重定向冗余项

  • 独立滚动 — 固定高度布局,侧边栏内部滚动 + 路由切换时主内容滚动归零

  • i18n — 英语(英式)、zh-CN、zh-TW;Settings > Appearance 和 docs 布局中有语言切换器

  • Podman 部署 — 多阶段 standalone 构建,仅 webpack(禁用 Turbopack)

快速开始

# 在目标主机上运行预构建镜像:
podman run -d --name astra-aigate --env-file .env -p <port>:20128 localhost/astra-aigate:latest
# 打开 http://<host>:<port> — 首次登录使用 .env 中的 INITIAL_PASSWORD

技术栈

选型

运行时

Node.js 26(容器,trixie)

数据库

SQLite via better-sqlite3

API 框架

Fastify(继承自 OmniRoute)

前端

Next.js 16(App Router)+ React 19 + Expo 设计令牌

i18n

next-intl(messages 构建时打包)

认证

密码 + API 密钥(JWT)

部署

Podman 多阶段 standalone 构建

项目结构

src/shared/constants/sidebarVisibility/sections.ts  # 导航唯一数据源
src/shared/components/Sidebar.tsx                   # 侧边栏(可折叠子分组)
src/shared/components/layouts/DashboardLayout.tsx   # 固定高度布局 + 滚动重置
src/i18n/messages/{en,zh-CN,zh-TW}.json             # locale(英式英语)
scripts/test/regression-final.mjs                   # Playwright 回归套件

用法

# 通过提供商组合路由 LLM 请求(内置故障转移):
curl http://<host>:<port>/v1/chat/completions \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"model":"<combo-name>","messages":[{"role":"user","content":"你好"}]}'

# 跨已注册服务器聚合 MCP 工具:
curl http://<host>:<port>/mcp \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

完整配置参考见 .env.example;日常管理由 Web 控制台 (Providers / Combos / MCP / Services)覆盖。

文档

  • AGENTS.md — AI 代理项目上下文

  • DESIGN.md — Expo 设计系统规范

  • docs/ — 运维参考(事件响应、性能预算)

致谢

本项目基于以下开源成果:

  • OmniRoute(MIT)—— 本项目的种子来源(统一 AI 服务网关);上游署名保留在源码树中。

  • awesome-design-md —— DESIGN.md 设计规范模板的来源。

  • Expo —— UI 外壳所采用的视觉设计语言(明亮通透的画布、胶囊形几何)。

许可证

MIT。种子代码来自 OmniRoute(MIT)——上游署名保留在源码树中。

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    A powerful gateway for the Model Context Protocol (MCP) that unifies AI toolchains by federating multiple MCP servers, wrapping REST APIs as MCP tools, and supporting multiple transport methods with an admin dashboard.
    Last updated
    1
  • A
    license
    -
    quality
    C
    maintenance
    A universal gateway that aggregates multiple MCP servers into a single interface while providing advanced token optimization, result filtering, and automated summarization. It enables efficient management of large tool catalogs and reduces context usage by up to 95% for major AI clients.
    Last updated
    35
    15
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    A centralized management platform that aggregates multiple Model Context Protocol (MCP) servers into a single unified endpoint for AI agents. It provides a web interface for hot-swappable tool management, proxying of existing servers, and AI-powered generation of custom MCP plugins.
    Last updated
    1
  • A
    license
    -
    quality
    C
    maintenance
    A unified gateway and web dashboard that aggregates multiple MCP servers into a single Streamable HTTP endpoint. It supports stdio, SSE, and HTTP protocols, featuring optimized tool exposure modes to reduce token consumption for AI clients.
    Last updated
    5
    MIT

View all related MCP servers

Related MCP Connectors

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

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/alrcatraz/astra-aigate'

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