Self-hosted PHP API gateway and management platform that turns databases and business logic into REST APIs, with MCP support for AI agents.
membrane/api-gateway
Open-source API gateway that proxies REST and SOAP services, adding OpenAPI deployment, WSDL-to-OpenAPI conversion, OAuth2/JWT security and message validation.
Open-source alternative to:Apigee
Kong Konnect
- Stars
- 658
- Forks
- 186
- Open issues
- 45
- Last commit
- 4 hours ago
What is it?
Membrane is an API gateway written in Java that sits in front of backend services and handles routing, transformation, security and traffic control. It can deploy APIs directly from OpenAPI descriptions (versions 3.0 to 3.2) and validate requests against OpenAPI, JSON Schema, XSD and WSDL. It runs as a Docker container or Java application and needs no database; configuration is written in YAML.
A main focus is legacy integration. Membrane can generate OpenAPI specifications from WSDL, expose SOAP web services as JSON REST APIs, and convert between JSON and XML using the schemas from the WSDL. It also supports WS-Security UsernameTokens and XML signatures, and provides an MCP protection plugin and an LLM gateway for AI provider access.
On the security and operations side, Membrane offers API keys, OAuth2, JWT validation, TLS, rate limiting, load balancing, Prometheus metrics and OpenTelemetry tracing. Flows can be extended with Groovy or JavaScript scripts, templates and orchestration calls to other APIs.
Key features
- 01Deploys APIs directly from OpenAPI 3.0, 3.1 and 3.2 descriptions with optional request validation.
- 02Converts WSDL-described SOAP services into OpenAPI and JSON REST endpoints.
- 03Validates messages against OpenAPI, JSON Schema, XSD and WSDL.
- 04Supports API keys, OAuth2, JWT and WS-Security for authentication.
- 05Provides rate limiting, load balancing and TLS termination.
- 06Exports Prometheus metrics and OpenTelemetry traces.
Use cases
- Exposing legacy SOAP services to modern JSON or REST clients without changing the backend.
- Putting OAuth2 or JWT protection in front of existing APIs with a YAML configuration.
- Running a lightweight gateway in containers where no database is available.
- Controlling which tools and models an AI agent or LLM client can access through an MCP or LLM gateway.
Quick start
- 1
Start Membrane as a container
docker run --rm -it -p 2000:2000 predic8/membrane - 2
Create an apis.yaml file with the proxy configuration shown in the README
- 3
Run the container with apis.yaml mounted (Linux/macOS)
docker run --rm -p 2000:2000 -v "$(pwd)/apis.yaml:/opt/membrane/conf/apis.yaml" predic8/membrane
Things to know
- Java-based, so running it outside Docker requires a Java setup.
In collections
Topics
FAQ
- What is api-gateway?
- Open-source API gateway that proxies REST and SOAP services, adding OpenAPI deployment, WSDL-to-OpenAPI conversion, OAuth2/JWT security and message validation. Membrane is an API gateway written in Java that sits in front of backend services and handles routing, transformation, security and traffic control. It can deploy APIs directly from OpenAPI descriptions (versions 3.0 to 3.2) and validate requests against OpenAPI, JSON Schema, XSD and WSDL. It runs as a Docker container or Java application and needs no database; configuration is written in YAML.
- Is api-gateway free to use? What license does it have?
- api-gateway is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is api-gateway still maintained?
- Actively maintained. The last commit to api-gateway was on Nov 7, 2026.
- What can I use api-gateway for?
- Exposing legacy SOAP services to modern JSON or REST clients without changing the backend. Putting OAuth2 or JWT protection in front of existing APIs with a YAML configuration. Running a lightweight gateway in containers where no database is available. Controlling which tools and models an AI agent or LLM client can access through an MCP or LLM gateway.
- How do I install api-gateway?
- Start Membrane as a container: docker run --rm -it -p 2000:2000 predic8/membrane Create an apis.yaml file with the proxy configuration shown in the README Run the container with apis.yaml mounted (Linux/macOS): docker run --rm -p 2000:2000 -v "$(pwd)/apis.yaml:/opt/membrane/conf/apis.yaml" predic8/membrane
- Where can I get api-gateway?
- The source code and installation instructions are on GitHub: https://github.com/membrane/api-gateway
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC, with local, Git and cloud storage.
A Python web framework for building APIs with standard type hints, offering automatic validation, OpenAPI docs and high performance.
Design-first Go framework that generates HTTP, gRPC, and JSON-RPC services, clients, and OpenAPI/protobuf specs from one Go contract.
A JavaScript framework for building type-safe web APIs, generating OpenAPI specs from JSDoc comments, with built-in SSE streaming for LLM responses.
Open-source API development ecosystem for sending REST, GraphQL, WebSocket, SSE, Socket.IO and MQTT requests, offered as web, desktop and CLI apps.