Skip to main content
Glama
README.md
# šŸ”Œ MCP Gateway Pro

*Unified Model Context Protocol Server — Connect your AI agents to everything through a single Docker container.*

Stop running five separate MCP servers. MCP Gateway Pro bundles Slack, GitHub, Jira, PostgreSQL, Redis, AWS, webhooks, and email into one lightweight image that starts in under a second.

---

## šŸš€ Quick Start

```bash
docker pull ro450/mcp-gateway-pro:latest
docker run -d -p 8080:8080 --name mcp-gateway ro450/mcp-gateway-pro:latest
```

Open `http://localhost:8080` for the web dashboard.

---

## šŸ“¦ Available Tags

- **`latest`** — Full image with all 8 integrations pre-configured. Built via CI/CD.
- **`community`** — Built directly from this public repository. Ideal for auditing, contributing, or customizing.

```bash
docker pull ro450/mcp-gateway-pro:community
```

---

## ✨ Features

- **8 built-in integrations** — Slack, GitHub, Jira, PostgreSQL, Redis, AWS, Webhooks, Email
- **Unified REST API** — All services accessible through consistent endpoints
- **Web dashboard** — Monitor integrations, uptime, and request metrics
- **Distroless base** — Built on Wolfi for a minimal attack surface (no shell, no package manager)
- **Zero dependencies** — Uses Python stdlib only; no pip packages required at runtime
- **Non-root user** — Runs as unprivileged `mcp` user
- **Health checks** — Built-in `/health` endpoint with uptime and integration status
- **Small footprint** — ~55 MB compressed image

---

## šŸ“¦ Available Integrations

- šŸ’¬ **Slack** — Send messages, list channels, manage workspaces *(Configured)*
- šŸ”§ **GitHub** — Repositories, issues, pull requests *(Configured)*
- šŸ“‹ **Jira** — Issues, projects, sprints *(Configured)*
- šŸ—„ļø **PostgreSQL** — Read-only queries, schema inspection *(Configured)*
- ⚔ **Redis** — Cache operations, pub/sub, key management *(Available)*
- ā˜ļø **AWS** — S3, DynamoDB, Lambda *(Available)*
- šŸ”— **Webhook Relay** — Receive and forward webhooks *(Configured)*
- šŸ“§ **Email Gateway** — SMTP/IMAP send and receive *(Available)*

---

## šŸ“– API Reference

### Health & Metrics

- `GET /health` — Health check with uptime and integration count
- `GET /api/metrics` — Server metrics and integration status
- `GET /api/integrations` — List all available integrations
- `GET /api/integration/{name}` — Details for a specific integration

### Service Endpoints

All integration endpoints follow the pattern `/api/{service}/{action}`:

```
GET  /api/slack/channels
POST /api/slack/message
GET  /api/github/repos
GET  /api/github/issues
GET  /api/jira/projects
POST /api/jira/issues
GET  /api/postgres/schemas
POST /api/postgres/query
GET  /api/redis/get
POST /api/redis/set
GET  /api/aws/s3
POST /api/webhook/receive
POST /api/email/send
```

---

## āš™ļø Environment Variables

- `MCP_PORT` — HTTP server port *(Default: `8080`)*
- `MCP_HOST` — Bind address *(Default: `0.0.0.0`)*
- `MCP_LOG_LEVEL` — Logging verbosity *(Default: `info`)*
- `MCP_CONFIG_DIR` — Configuration directory *(Default: `/etc/mcp-gateway`)*
- `MCP_DATA_DIR` — Persistent data directory *(Default: `/var/lib/mcp-gateway`)*

---

## 🐳 Docker Compose

```yaml
version: "3.8"

services:
  mcp-gateway:
    image: ro450/mcp-gateway-pro:community
    container_name: mcp-gateway
    ports:
      - "8080:8080"
    environment:
      - MCP_PORT=8080
      - MCP_LOG_LEVEL=info
    volumes:
      - mcp-data:/var/lib/mcp-gateway
    restart: unless-stopped

volumes:
  mcp-data:
```

---

## šŸ”’ Security

- **Distroless base** — Wolfi image with no shell, no package manager, no curl, no wget
- **Non-root execution** — All processes run as unprivileged `mcp` user
- **Minimal dependencies** — Zero pip packages at runtime; Python stdlib only
- **Health check** — Built-in container health monitoring
- **Read-only where possible** — Configuration loaded from environment variables

---

## šŸ—ļø Architecture

```
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│            MCP Gateway Pro            │
│                                       │
│  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”   │
│  │ Web UI  │  │   REST API       │   │
│  │ :8080   │  │   /api/*         │   │
│  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜   │
│                    │                  │
│  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” │
│  │       Integration Layer         │ │
│  │  Slack  GitHub  Jira  PG  ...   │ │
│  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ │
│                    │                  │
│  ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā” │
│  │    Cache & Metrics Subsystem    │ │
│  ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜ │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
```

---

## šŸ“Š Monitoring

The built-in dashboard shows real-time metrics including total requests processed, active integrations and their status, server uptime, and request rate. The `/api/metrics` endpoint returns JSON for integration with Prometheus, Grafana, or custom monitoring stacks.

---

## šŸ”§ Development

```bash
# Clone the repository
git clone https://github.com/GatewayDev450/mcp-gateway-pro.git
cd mcp-gateway-pro

# Run locally without Docker
python app.py

# Build the image locally
docker build -t mcp-gateway-pro:community .

# Run with Docker Compose
docker-compose up -d
```

---

## šŸ“ License

MIT License — see the [LICENSE](LICENSE) file for details.

---

## šŸ¤ Contributing

Contributions are welcome! Open an issue or submit a pull request on [GitHub](https://github.com/GatewayDev450/mcp-gateway-pro).

---

**Built with ā¤ļø using Python, Wolfi, and Docker.**