Skip to content

Commit 259fa04

Browse files
authored
Update mkdocs with security policy, security guide and linking roadmap on frontpage (#550)
Signed-off-by: Mihai Criveti <[email protected]>
1 parent 51013c5 commit 259fa04

File tree

9 files changed

+287
-4
lines changed

9 files changed

+287
-4
lines changed

docs/docs/.pages

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ nav:
66
- "🛡️ Manage": manage
77
- "💻 Develop": development
88
- "🧪 Test": testing
9-
- "📐 Architecture": architecture
9+
- "📐 Design & Roadmap": architecture
1010
- "📰 Media": media
1111
- "📖 Tutorials": tutorials
1212
- "❓ FAQ": faq

docs/docs/deployment/.pages

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ nav:
1313
- aws.md
1414
- azure.md
1515
- fly-io.md
16-
- tutorials

docs/docs/deployment/index.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@ This section explains how to deploy MCP Gateway in various environments - from l
44

55
---
66

7+
## 🔐 Security First
8+
9+
**Before deploying to production**, review our [Security Guide](securing.md) for:
10+
- Critical security configurations
11+
- Production hardening checklist
12+
- Authentication and authorization setup
13+
- Network security best practices
14+
- Container security requirements
15+
16+
---
17+
718
## 🗺 Deployment Options
819

920
MCP Gateway supports multiple deployment strategies:
@@ -19,6 +30,7 @@ MCP Gateway supports multiple deployment strategies:
1930
| [IBM Code Engine](ibm-code-engine.md) | Serverless container build & run on IBM Cloud |
2031
| [AWS](aws.md) | Deploy on ECS Fargate, EKS, or EC2-hosted containers |
2132
| [Azure](azure.md) | Run on Azure Container Apps, App Service, or AKS |
33+
| [**Security Guide**](securing.md) | **Essential security configurations and best practices for production deployments** |
2234

2335
---
2436

@@ -30,6 +42,8 @@ MCP Gateway loads configuration from:
3042
- Environment variables (overrides `.env`)
3143
- CLI flags (e.g., via `run.sh`)
3244

45+
⚠️ **Security Note**: Never store sensitive credentials directly in environment variables. Use a secrets management system in production. See the [Security Guide](securing.md#secrets-management) for details.
46+
3347
---
3448

3549
## 🧪 Health Checks
@@ -54,3 +68,5 @@ The default container image:
5468
* Uses `.env` for all settings
5569

5670
> For Kubernetes, you can mount a ConfigMap or Secret as `.env`.
71+
72+
**Important**: For production deployments, ensure you follow the container hardening guidelines in our [Security Guide](securing.md#container-security).

docs/docs/deployment/securing.md

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
# Securing MCP Gateway
2+
3+
This guide provides essential security configurations and best practices for deploying MCP Gateway in production environments.
4+
5+
## ⚠️ Critical Security Notice
6+
7+
**MCP Gateway is currently in early beta (v0.3.1)** and requires careful security configuration for production use:
8+
9+
- The **Admin UI is development-only** and must be disabled in production
10+
- MCP Gateway is **not a standalone product** - it's an open source component to integrate into your solution
11+
- **No official support** is provided - security is your responsibility
12+
- Expect **breaking changes** between versions until 1.0 release
13+
- Do not use it with insecure MCP servers.
14+
15+
## 🚨 Production Security Checklist
16+
17+
### 1. Disable Development Features
18+
19+
```bash
20+
# Required for production - disable all admin interfaces
21+
MCPGATEWAY_UI_ENABLED=false
22+
MCPGATEWAY_ADMIN_API_ENABLED=false
23+
24+
# Disable unused features
25+
MCPGATEWAY_ENABLE_ROOTS=false # If not using roots
26+
MCPGATEWAY_ENABLE_PROMPTS=false # If not using prompts
27+
MCPGATEWAY_ENABLE_RESOURCES=false # If not using resources
28+
```
29+
30+
### 2. Enable Authentication
31+
32+
```bash
33+
# Configure strong authentication
34+
MCPGATEWAY_AUTH_ENABLED=true
35+
MCPGATEWAY_AUTH_USERNAME=custom-username # Change from default
36+
MCPGATEWAY_AUTH_PASSWORD=strong-password-here # Use secrets manager
37+
```
38+
39+
### 3. Network Security
40+
41+
- [ ] Configure TLS/HTTPS with valid certificates
42+
- [ ] Implement firewall rules and network policies
43+
- [ ] Use internal-only endpoints where possible
44+
- [ ] Configure appropriate CORS policies
45+
- [ ] Set up rate limiting per endpoint/client
46+
47+
### 4. Container Security
48+
49+
```bash
50+
# Run containers with security constraints
51+
docker run \
52+
--read-only \
53+
--user 1001:1001 \
54+
--cap-drop ALL \
55+
--security-opt no-new-privileges \
56+
mcpgateway:latest
57+
```
58+
59+
- [ ] Use minimal base images (UBI Micro)
60+
- [ ] Run as non-root user
61+
- [ ] Enable read-only filesystem
62+
- [ ] Set resource limits (CPU, memory)
63+
- [ ] Scan images for vulnerabilities
64+
65+
### 5. Secrets Management
66+
67+
- [ ] **Never store secrets in environment variables directly**
68+
- [ ] Use a secrets management system (Vault, AWS Secrets Manager, etc.)
69+
- [ ] Rotate credentials regularly
70+
- [ ] Restrict container access to secrets
71+
- [ ] Never commit `.env` files to version control
72+
73+
### 6. MCP Server Validation
74+
75+
Before connecting any MCP server:
76+
77+
- [ ] Verify server authenticity and source code
78+
- [ ] Review server permissions and data access
79+
- [ ] Test in isolated environment first
80+
- [ ] Monitor server behavior for anomalies
81+
- [ ] Implement rate limiting for untrusted servers
82+
83+
### 7. Database Security
84+
85+
- [ ] Use TLS for database connections
86+
- [ ] Configure strong passwords
87+
- [ ] Restrict database access by IP/network
88+
- [ ] Enable audit logging
89+
- [ ] Regular backups with encryption
90+
91+
### 8. Monitoring & Logging
92+
93+
- [ ] Set up structured logging without sensitive data
94+
- [ ] Configure log rotation and secure storage
95+
- [ ] Implement monitoring and alerting
96+
- [ ] Set up anomaly detection
97+
- [ ] Create incident response procedures
98+
99+
### 9. Integration Security
100+
101+
MCP Gateway should be integrated with:
102+
103+
- [ ] API Gateway for auth and rate limiting
104+
- [ ] Web Application Firewall (WAF)
105+
- [ ] Identity and Access Management (IAM)
106+
- [ ] SIEM for security monitoring
107+
- [ ] Load balancer with TLS termination
108+
109+
### 10. Downstream Application Security
110+
111+
Applications consuming MCP Gateway data must:
112+
113+
- [ ] Validate all inputs from the gateway
114+
- [ ] Implement context-appropriate sanitization
115+
- [ ] Use Content Security Policy (CSP) headers
116+
- [ ] Escape data for output context (HTML, JS, SQL)
117+
- [ ] Implement their own authentication/authorization
118+
119+
## 🔐 Environment Variables Reference
120+
121+
### Security-Critical Settings
122+
123+
```bash
124+
# Core Security
125+
MCPGATEWAY_UI_ENABLED=false # Must be false in production
126+
MCPGATEWAY_ADMIN_API_ENABLED=false # Must be false in production
127+
MCPGATEWAY_AUTH_ENABLED=true # Enable authentication
128+
MCPGATEWAY_AUTH_USERNAME=custom-user # Change from default
129+
MCPGATEWAY_AUTH_PASSWORD=<from-secrets> # Use secrets manager
130+
131+
# Feature Flags (disable unused features)
132+
MCPGATEWAY_ENABLE_ROOTS=false
133+
MCPGATEWAY_ENABLE_PROMPTS=false
134+
MCPGATEWAY_ENABLE_RESOURCES=false
135+
136+
# Network Security
137+
MCPGATEWAY_CORS_ALLOWED_ORIGINS=https://your-domain.com
138+
MCPGATEWAY_RATE_LIMIT_ENABLED=true
139+
MCPGATEWAY_RATE_LIMIT_PER_MINUTE=100
140+
141+
# Logging (no sensitive data)
142+
MCPGATEWAY_LOG_LEVEL=INFO # Not DEBUG in production
143+
MCPGATEWAY_LOG_SENSITIVE_DATA=false # Never log sensitive data
144+
```
145+
146+
## 🚀 Deployment Architecture
147+
148+
### Recommended Production Architecture
149+
150+
```
151+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
152+
│ │ │ │ │ │
153+
│ WAF/CDN │────▶│ Load Balancer │────▶│ API Gateway │
154+
│ │ │ (TLS Term) │ │ (Auth/Rate) │
155+
└─────────────────┘ └─────────────────┘ └────────┬────────┘
156+
157+
158+
┌─────────────────┐
159+
│ │
160+
│ MCP Gateway │
161+
│ (Internal) │
162+
└────────┬────────┘
163+
164+
┌───────────────────────────┼───────────────────────────┐
165+
│ │ │
166+
▼ ▼ ▼
167+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
168+
│ │ │ │ │ │
169+
│ Trusted MCP │ │ Database │ │ Redis │
170+
│ Servers │ │ (TLS/Auth) │ │ (TLS/Auth) │
171+
└─────────────────┘ └─────────────────┘ └─────────────────┘
172+
```
173+
174+
## 🔍 Security Validation
175+
176+
### Pre-Production Checklist
177+
178+
1. **Run Security Scans**
179+
```bash
180+
make security-all # Run all security tools
181+
make security-report # Generate security report
182+
make trivy # Scan container vulnerabilities
183+
```
184+
185+
2. **Validate Configuration**
186+
- Review all environment variables
187+
- Confirm admin features disabled
188+
- Verify authentication enabled
189+
- Check TLS configuration
190+
191+
3. **Test Security Controls**
192+
- Attempt unauthorized access
193+
- Verify rate limiting works
194+
- Test input validation
195+
- Check error handling
196+
197+
4. **Review Dependencies**
198+
```bash
199+
make pip-audit # Check Python dependencies
200+
make sbom # Generate software bill of materials
201+
```
202+
203+
## 📚 Additional Resources
204+
205+
- [Security Policy](https://github.com/IBM/mcp-context-forge/blob/main/SECURITY.md) - Full security documentation
206+
- [Deployment Options](index.md) - Various deployment methods
207+
- [Environment Variables](../configuration/environment-variables.md) - Complete configuration reference
208+
209+
## ⚡ Quick Start Security Commands
210+
211+
```bash
212+
# Development (with security checks)
213+
make security-all && make test && make run
214+
215+
# Production build
216+
make docker-prod
217+
218+
# Security audit
219+
make security-report
220+
```
221+
222+
Remember: **Security is a shared responsibility**. MCP Gateway provides *some* security controls, but you must properly configure and integrate it within a comprehensive security architecture.

docs/docs/deployment/tutorials/.pages

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/docs/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ A flexible FastAPI-based gateway and router for **Model Context Protocol (MCP)**
1010

1111
![MCP Gateway](images/mcpgateway.gif)
1212

13+
**⚠️ Important**: MCP Gateway is not a standalone product - it is an open source component with **NO OFFICIAL SUPPORT** from IBM or its affiliates that can be integrated into your own solution architecture. If you choose to use it, you are responsible for evaluating its fit, securing the deployment, and managing its lifecycle. See [SECURITY.md](https://github.com/IBM/mcp-context-forge/blob/main/SECURITY.md) for more details, and the [roadmap](architecture/roadmap.md) for upcoming features.
14+
1315
---
1416

1517
## What it Does

docs/docs/tutorials/.pages

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
nav:
2+
- index.md
3+
- argocd-helm-deployment-ibm-cloud-iks.md
24
- openwebui-tutorial.md
File renamed without changes.

docs/docs/tutorials/index.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# 📚 Tutorials
2+
3+
> Step-by-step guides to help you deploy and integrate MCP Gateway and related components using both **cloud-native** and **local containerized** environments.
4+
5+
---
6+
7+
## 🚀 Cloud Deployment with Argo CD and IBM Cloud Kubernetes Service
8+
9+
This guide walks you through deploying the **MCP Gateway Stack** on **IBM Cloud Kubernetes Service (IKS)** using **Helm** and **Argo CD** for GitOps-based lifecycle management. You'll learn how to:
10+
11+
- Build and push container images to IBM Container Registry
12+
- Provision an IKS cluster with VPC-native networking
13+
- Deploy the full MCP Gateway Helm chart via Argo CD
14+
- Configure services like PostgreSQL, Redis, and TLS
15+
- Connect AI clients like VS Code Copilot and LangChain Agent
16+
17+
👉 [Read the full guide](argocd-helm-deployment-ibm-cloud-iks.md)
18+
19+
---
20+
21+
## 🧠 Local Deployment of OpenWebUI + MCP Tools
22+
23+
This tutorial helps you set up **OpenWebUI** integrated with **Ollama**, **LiteLLM**, **MCPO**, and the **MCP Gateway** in a local containerized environment using Docker. It covers:
24+
25+
- Running LLMs locally via Ollama
26+
- Using LiteLLM as a proxy for unified model access
27+
- Bridging MCP tools through MCPO to OpenWebUI
28+
- Managing MCP servers with the MCP Gateway
29+
- Connecting it all through Docker networks
30+
31+
Perfect for experimenting on your workstation or air-gapped environments.
32+
33+
👉 [View the tutorial](openwebui-tutorial.md)
34+
35+
---
36+
37+
38+
## 📦 Additional Resources
39+
40+
- [MCP Gateway GitHub](https://github.com/ibm/mcp-context-forge)
41+
- [Model Context Protocol Specification](https://modelcontextprotocol.io/)
42+
- [OpenWebUI Documentation](https://docs.openwebui.com/)
43+
44+
Stay tuned for more guides on CI/CD, hybrid federation, observability, and secure API operations.

0 commit comments

Comments
 (0)