Sandbox
@AmoyLab/Unla

MCP gateway for REST APIs and MCP servers

Unla sits between your agent and your backends, then presents REST APIs or existing MCP servers as MCP endpoints. You configure routes and servers in YAML or the UI, and it serves them over SSE or streamable HTTP.

2,223 starsโ€ข183 forksโ€ขTypeScriptโ€ขUpdated 21d ago
Who it's for

Builders who want to connect Claude Code, Cursor, or other MCP clients to existing APIs without changing the backend.

What it delivers

You can give your agent access to existing services through one MCP gateway instead of wiring each integration by hand.

What it does

REST to MCP conversion

Maps RESTful APIs into MCP servers through configuration.

MCP proxying

Forwards MCP clients to existing MCP servers through the gateway.

MCP transport support

Serves MCP over SSE and streamable HTTP endpoints.

Management UI

Provides a web interface for adding servers, editing config, and testing chat.

Persistent sessions

Keeps session state so work can resume after reconnects.

Multi-tenant configuration

Supports separate users and managed configs across deployments.

Docker and Kubernetes deployment

Ships ready-to-run Docker images, Helm charts, and Kubernetes manifests.

How to get it

  1. 1Configure environment variables
    export APISERVER_JWT_SECRET_KEY="changeme-please-generate-a-random-secret"
    export SUPER_ADMIN_USERNAME="admin"
    export SUPER_ADMIN_PASSWORD="changeme-please-use-a-secure-password"

README

Unla - MCP Gateway

๐Ÿš€ Instantly transform your existing MCP Servers and APIs into MCP endpoints โ€” without changing a line of code.

English ็ฎ€ไฝ“ไธญๆ–‡ ็น้ซ”ไธญๆ–‡ Release Docs Ask DeepWiki Discord Go Report Card Snyk Security LLMAPIS


โšก Note: Unla is under rapid development! We strive to maintain backward compatibility, but it cannot be 100% guaranteed. Please make sure to check version changes carefully when upgrading. Due to the fast iteration, documentation updates may sometimes lag behind. If you encounter any issues, feel free to search or ask for help via Discord or Issues โค๏ธ


โœจ What is Unla?

Unla is a lightweight and highly available gateway service written in Go. It enables individuals and organizations to convert their existing MCP Servers and APIs into services compliant with the MCP Protocol โ€” all through configuration, with zero code changes.

https://github.com/user-attachments/assets/69480eda-7aa7-4be7-9bc7-cae57fe16c54

๐Ÿ”ง Core Design Principles

  • โœ… Zero Intrusion: Platform-agnostic, supports deployment on bare metal, VMs, ECS, Kubernetes, etc., without modifying existing infrastructure
  • ๐Ÿ”„ Configuration-Driven: Convert legacy APIs to MCP Servers using YAML configuration โ€” no code required
  • ๐Ÿชถ Lightweight & Efficient: Designed for minimal resource usage without compromising on performance or availability
  • ๐Ÿงญ Built-in Management UI: Ready-to-use web interface to simplify setup and reduce operational overhead

๐Ÿš€ Getting Started

Unla supports a ready-to-run Docker deployment. Full deployment and configuration instructions are available in the docs.

Quick Launch with Docker

Configure environment variables:

export APISERVER_JWT_SECRET_KEY="changeme-please-generate-a-random-secret"
export SUPER_ADMIN_USERNAME="admin"
export SUPER_ADMIN_PASSWORD="changeme-please-use-a-secure-password"

Launch the container:

docker run -d \
  --name unla \
  -p 8080:80 \
  -p 5234:5234 \
  -p 5235:5235 \
  -p 5335:5335 \
  -p 5236:5236 \
  -e ENV=production \
  -e TZ=Asia/Shanghai \
  -e APISERVER_JWT_SECRET_KEY=${APISERVER_JWT_SECRET_KEY} \
  -e SUPER_ADMIN_USERNAME=${SUPER_ADMIN_USERNAME} \
  -e SUPER_ADMIN_PASSWORD=${SUPER_ADMIN_PASSWORD} \
  --restart unless-stopped \
  ghcr.io/amoylab/unla/allinone:latest

Access and Configuration

  1. Access the Web Interface:

  2. Add an MCP Server:

Available Endpoints

After configuration, the service will be available at these endpoints:

Configure your MCP Client with the /sse or /mcp suffix URLs to start using it.

Testing

You can test the service using:

  1. The MCP Chat page in the web interface
  2. Your own MCP Client (recommended)

๐Ÿ“– Read the full guide โ†’ Quick Start ยป


๐Ÿš€ Core Features

๐Ÿ”Œ Protocol & Proxy Capabilities

  • Support for converting RESTful APIs to MCP Server โ€” Client โ†’ MCP Gateway โ†’ APIs
  • Support proxying MCP services โ€” Client โ†’ MCP Gateway โ†’ MCP Servers
  • Support for converting gRPC to MCP Server โ€” Client โ†’ MCP Gateway โ†’ gRPC
  • Support for converting WebSocket to MCP Server โ€” Client โ†’ MCP Gateway โ†’ WebSocket
  • Support for MCP SSE
  • Support for MCP Streamable HTTP
  • Support for MCP responses including text, images, and audio

๐Ÿง  Session & Multi-Tenant Support

  • Persistent and recoverable session support
  • Multi-tenant support
  • Support for grouping and aggregating MCP servers

๐Ÿ›  Configuration & Management

  • Automatic configuration fetching and seamless hot-reloading
  • Configuration persistence (Disk/SQLite/PostgreSQL/MySQL)
  • Configuration sync via OS Signals, HTTP, or Redis PubSub
  • Version control for configuration

๐Ÿ” Security & Authentication

  • OAuth-based pre-authentication support for MCP Servers

๐Ÿ–ฅ User Interface

  • Intuitive and lightweight management UI

๐Ÿ“ฆ Deployment & Operations

  • Multi-replica service support
  • Docker support
  • Kubernetes and Helm deployment support

๐Ÿ“š Documentation

For more usage patterns, configuration examples, and integration guides, please visit:

๐Ÿ‘‰ https://docs.unla.amoylab.com


๐Ÿ“„ License

This project is licensed under the MIT License.

๐Ÿ’ฌ Join Our WeChat Community

Scan the QR code below to add us on WeChat. Please include a note: mcp-gateway, mcpgw or unla.

WeChat QR Code

๐Ÿ“ˆ Star History

Star History Chart

Files in the repo

Repository payloadโ€ข22 top-level entries
  • .github
  • assets
  • changelog
  • cmd
  • configs
  • deploy
  • docs
  • internal
  • pkg
  • web
  • .cursorrules
  • .dockerignore
  • .env.example
  • .gitignore
  • agents.md
  • CLAUDE.md
  • go.mod
  • go.sum
  • LICENSE
  • Makefile
  • NOTICE
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

86k

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph โ€” average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code โ€” use any LLM (Claude, Gemini, Grok, DeepSeek, Ollamaโ€ฆ) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300ยตs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up โ€” it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k