Unla
đź§© MCP Gateway - A lightweight gateway service that instantly transforms existing MCP Servers and APIs into MCP servers with zero code changes. Features Docker deployment and management UI, requiring no infrastructure modifications.
claude mcp add --transport stdio amoylab-unla 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 \
--env TZ=" Asia/Shanghai" \
--env ENV="production" \
--env SUPER_ADMIN_PASSWORD="Default admin password (replace with secure value)" \
--env SUPER_ADMIN_USERNAME="Default admin username (replace with secure value)" \
--env APISERVER_JWT_SECRET_KEY="JWT secret for API server authentication (replace with secure value)"How to use
Unla is a Go-based gateway that lets you expose your existing MCP servers and APIs as MCP endpoints without modifying your code. It acts as a configurable proxy layer, converting RESTful APIs and MCP services into MCP-compliant endpoints, via a YAML configuration or the built-in management UI. After deploying Unla (via Docker in the official quick-start), you configure MCP servers in the web interface or by feeding a configuration file, then interact with the MCP endpoints through the standard MCP client tooling. The gateway provides access points such as MCP SSE, MCP SSE messages, and MCP streamable HTTP that clients can subscribe to or poll depending on the MCP client’s capabilities.
How to install
Prerequisites: Docker installed on your host, internet access to pull the Unla image, and a basic understanding of MCP endpoints.
Step 1: Install Docker (if not already installed)
- Linux: follow your distro’s instructions, e.g., apt/yum or install script from docker.com
- macOS/Windows: install Docker Desktop from docker.com
Step 2: Pull and run the Unla image (quick-start)
- Create environment variables for admin credentials and secrets (recommended to set securely):
- APISERVER_JWT_SECRET_KEY
- SUPER_ADMIN_USERNAME
- SUPER_ADMIN_PASSWORD
Step 3: Run the container (example)
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
Step 4: Access the UI and configure MCP servers
- Open http://localhost:8080/ in your browser
- Log in with the admin credentials you configured
- Use the web UI to add an MCP Server by pasting the configuration from the provided YAML example or existing server configs
Step 5: Verify connectivity
- Use your MCP client to connect to the exposed endpoints (SSE at /mcp/user/sse, messages at /mcp/user/message, and HTTP streamable at /mcp/user/mcp) once a server is configured.
Additional notes
Tips:
- Keep APISERVER_JWT_SECRET_KEY and admin credentials in a secure vault; avoid committing them to version control.
- The configuration is environment-driven; you can override ENV and TZ per deployment environment.
- If you scale this deployment, consider mounting a persistent storage for configuration and logs and/or using Redis for cross-instance configuration synchronization.
- Ensure firewall rules allow access to 8080 (UI) and the MCP endpoints (5234-5236, 5335) as configured.
- Regularly update the Unla image to pick up security fixes and feature improvements.
Related MCP Servers
context7
Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
mcphub
A unified hub for centrally managing and dynamically orchestrating multiple MCP servers/APIs into separate endpoints with flexible routing strategies
director
MCP Playbooks for AI agents
agent
A unified Model Context Protocol server implementation that aggregates multiple MCP servers into one.
awesome
A collection about MCP
mcp-bundler
Is the MCP configuration too complicated? You can easily share your own simplified setup!