Skip to content

Commit 40ecbdd

Browse files
authored
docs: restructure navigation and extract configuration examples (#57)
- Change navigation labels from "Tutorial" to "Docs" for clearer semantics - Extract configuration examples from configuration.md into separate examples.md page - Improve documentation organization by moving examples to higher priority (position 3) - Remove Quick Start section from intro.md and add Next Steps with proper links - Fix incorrect environment variable names (TLS_LISTEN, DATA_PATH) - Simplify configuration examples to focus on essential use cases
1 parent 7671a44 commit 40ecbdd

5 files changed

Lines changed: 131 additions & 151 deletions

File tree

docs/docs/configuration.md

Lines changed: 3 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ Complete reference for all MCP Auth Proxy configuration options.
6565
| Option | Environment Variable | Default | Description |
6666
| -------------- | -------------------- | -------- | ---------------------------- |
6767
| `--listen` | `LISTEN` | `:80` | Address to listen on |
68-
| `--listen-tls` | `LISTEN_TLS` | `:443` | Address to listen on for TLS |
69-
| `--data` | `DATA` | `./data` | Path to the data directory |
68+
| `--listen-tls` | `TLS_LISTEN` | `:443` | Address to listen on for TLS |
69+
| `--data` | `DATA_PATH` | `./data` | Path to the data directory |
7070

7171
### Proxy Options
7272

@@ -75,136 +75,4 @@ Complete reference for all MCP Auth Proxy configuration options.
7575
| `--proxy-bearer-token` | `PROXY_BEARER_TOKEN` | - | Bearer token to add to Authorization header when proxying requests |
7676
| `--proxy-headers` | `PROXY_HEADERS` | - | Comma-separated list of headers to add when proxying requests (format: Header1:Value1,Header2:Value2) |
7777

78-
## Environment Variables
79-
80-
All configuration options can be set via environment variables:
81-
82-
```bash
83-
# Core settings
84-
export EXTERNAL_URL="https://{your-domain}"
85-
export NO_AUTO_TLS="false"
86-
export TLS_ACCEPT_TOS="true"
87-
export DATA="./data"
88-
89-
# Authentication
90-
export PASSWORD="your-secure-password"
91-
92-
# Google OAuth
93-
export GOOGLE_CLIENT_ID="your-google-client-id"
94-
export GOOGLE_CLIENT_SECRET="your-google-client-secret"
95-
export GOOGLE_ALLOWED_USERS="[email protected],[email protected]"
96-
97-
# GitHub OAuth
98-
export GITHUB_CLIENT_ID="your-github-client-id"
99-
export GITHUB_CLIENT_SECRET="your-github-client-secret"
100-
export GITHUB_ALLOWED_USERS="username1,username2"
101-
102-
# OIDC
103-
export OIDC_CONFIGURATION_URL="https://provider.com/.well-known/openid-configuration"
104-
export OIDC_CLIENT_ID="your-oidc-client-id"
105-
export OIDC_CLIENT_SECRET="your-oidc-client-secret"
106-
export OIDC_ALLOWED_USERS="[email protected],[email protected]"
107-
108-
./mcp-auth-proxy -- your-mcp-command
109-
```
110-
111-
## Docker Configuration
112-
113-
### Docker Compose
114-
115-
```yaml
116-
version: "3.8"
117-
services:
118-
mcp-auth-proxy:
119-
image: ghcr.io/sigbit/mcp-auth-proxy:latest
120-
ports:
121-
- "80:80"
122-
- "443:443"
123-
environment:
124-
- EXTERNAL_URL=https://{your-domain}
125-
- TLS_ACCEPT_TOS=true
126-
- PASSWORD=your-secure-password
127-
- GOOGLE_CLIENT_ID=your-google-client-id
128-
- GOOGLE_CLIENT_SECRET=your-google-client-secret
129-
130-
volumes:
131-
- ./data:/data
132-
command: ["npx", "-y", "@modelcontextprotocol/server-filesystem", "./"]
133-
restart: unless-stopped
134-
```
135-
136-
### Kubernetes Deployment
137-
138-
```yaml
139-
apiVersion: apps/v1
140-
kind: Deployment
141-
metadata:
142-
name: mcp-auth-proxy
143-
spec:
144-
replicas: 1
145-
selector:
146-
matchLabels:
147-
app: mcp-auth-proxy
148-
template:
149-
metadata:
150-
labels:
151-
app: mcp-auth-proxy
152-
spec:
153-
containers:
154-
- name: mcp-auth-proxy
155-
image: ghcr.io/sigbit/mcp-auth-proxy:latest
156-
ports:
157-
- containerPort: 80
158-
env:
159-
- name: EXTERNAL_URL
160-
value: "https://{your-domain}"
161-
- name: NO_AUTO_TLS
162-
value: "true"
163-
- name: PASSWORD
164-
valueFrom:
165-
secretKeyRef:
166-
name: mcp-auth-proxy-secrets
167-
key: password
168-
volumeMounts:
169-
- name: data
170-
mountPath: /data
171-
args: ["npx", "-y", "@modelcontextprotocol/server-filesystem", "./"]
172-
volumes:
173-
- name: data
174-
persistentVolumeClaim:
175-
claimName: mcp-auth-proxy-data
176-
---
177-
apiVersion: v1
178-
kind: Service
179-
metadata:
180-
name: mcp-auth-proxy
181-
spec:
182-
selector:
183-
app: mcp-auth-proxy
184-
ports:
185-
- port: 80
186-
targetPort: 80
187-
---
188-
apiVersion: networking.k8s.io/v1
189-
kind: Ingress
190-
metadata:
191-
name: mcp-auth-proxy
192-
annotations:
193-
cert-manager.io/cluster-issuer: letsencrypt
194-
spec:
195-
tls:
196-
- hosts:
197-
- { your-domain }
198-
secretName: mcp-auth-proxy-tls
199-
rules:
200-
- host: { your-domain }
201-
http:
202-
paths:
203-
- path: /
204-
pathType: Prefix
205-
backend:
206-
service:
207-
name: mcp-auth-proxy
208-
port:
209-
number: 80
210-
```
78+
For practical configuration examples including environment variables, Docker Compose, and Kubernetes deployments, see the [Configuration Examples](./examples.md) page.

docs/docs/examples.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
sidebar_position: 3
3+
---
4+
5+
# Configuration Examples
6+
7+
This page provides practical configuration examples for different deployment scenarios.
8+
9+
For detailed information about each configuration option, see the [Configuration Reference](./configuration.md).
10+
11+
## Binary Usage
12+
13+
```bash
14+
./mcp-auth-proxy \
15+
--external-url "https://your-domain.com" \
16+
--password "your-secure-password" \
17+
--tls-accept-tos \
18+
-- npx -y @modelcontextprotocol/server-filesystem ./
19+
```
20+
21+
## Docker Configuration
22+
23+
### Docker Compose
24+
25+
```yaml
26+
version: "3.8"
27+
services:
28+
mcp-auth-proxy:
29+
image: ghcr.io/sigbit/mcp-auth-proxy:latest
30+
ports:
31+
- "80:80"
32+
- "443:443"
33+
environment:
34+
- EXTERNAL_URL=https://{your-domain}
35+
- TLS_ACCEPT_TOS=true
36+
- PASSWORD=your-secure-password
37+
- GOOGLE_CLIENT_ID=your-google-client-id
38+
- GOOGLE_CLIENT_SECRET=your-google-client-secret
39+
40+
volumes:
41+
- ./data:/data
42+
command: ["npx", "-y", "@modelcontextprotocol/server-filesystem", "./"]
43+
restart: unless-stopped
44+
```
45+
46+
### Kubernetes Deployment
47+
48+
```yaml
49+
apiVersion: apps/v1
50+
kind: Deployment
51+
metadata:
52+
name: mcp-auth-proxy
53+
spec:
54+
replicas: 1
55+
selector:
56+
matchLabels:
57+
app: mcp-auth-proxy
58+
template:
59+
metadata:
60+
labels:
61+
app: mcp-auth-proxy
62+
spec:
63+
containers:
64+
- name: mcp-auth-proxy
65+
image: ghcr.io/sigbit/mcp-auth-proxy:latest
66+
ports:
67+
- containerPort: 80
68+
env:
69+
- name: EXTERNAL_URL
70+
value: "https://{your-domain}"
71+
- name: NO_AUTO_TLS
72+
value: "true"
73+
- name: PASSWORD
74+
valueFrom:
75+
secretKeyRef:
76+
name: mcp-auth-proxy-secrets
77+
key: password
78+
volumeMounts:
79+
- name: data
80+
mountPath: /data
81+
args: ["npx", "-y", "@modelcontextprotocol/server-filesystem", "./"]
82+
volumes:
83+
- name: data
84+
persistentVolumeClaim:
85+
claimName: mcp-auth-proxy-data
86+
---
87+
apiVersion: v1
88+
kind: Service
89+
metadata:
90+
name: mcp-auth-proxy
91+
spec:
92+
selector:
93+
app: mcp-auth-proxy
94+
ports:
95+
- port: 80
96+
targetPort: 80
97+
---
98+
apiVersion: networking.k8s.io/v1
99+
kind: Ingress
100+
metadata:
101+
name: mcp-auth-proxy
102+
annotations:
103+
cert-manager.io/cluster-issuer: letsencrypt
104+
spec:
105+
tls:
106+
- hosts:
107+
- { your-domain }
108+
secretName: mcp-auth-proxy-tls
109+
rules:
110+
- host: { your-domain }
111+
http:
112+
paths:
113+
- path: /
114+
pathType: Prefix
115+
backend:
116+
service:
117+
name: mcp-auth-proxy
118+
port:
119+
number: 80
120+
```

docs/docs/intro.md

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,8 @@ MCP Auth Proxy sits between MCP clients (like Claude, ChatGPT, GitHub Copilot) a
2525
3. **Authorization**: Access is granted based on configured user allowlists
2626
4. **Proxying**: Authenticated requests are forwarded to your MCP server
2727

28-
## Quick Start
28+
## Next Steps
2929

30-
Get started in minutes with a simple command:
31-
32-
```bash
33-
./mcp-auth-proxy \
34-
--external-url https://{your-domain} \
35-
--tls-accept-tos \
36-
--password changeme \
37-
-- npx -y @modelcontextprotocol/server-filesystem ./
38-
```
39-
40-
Your authenticated MCP endpoint will be available at `https://{your-domain}/mcp`.
30+
- [Quick Start Guide](./quickstart.md) - Get up and running in minutes
31+
- [OAuth Setup](./oauth-setup.md) - Configure secure authentication providers
32+
- [Client Integration](./client-integration.md) - Connect with MCP clients

docs/docusaurus.config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ const config: Config = {
4949
items: [
5050
{
5151
type: "docSidebar",
52-
sidebarId: "tutorialSidebar",
52+
sidebarId: "docsSidebar",
5353
position: "left",
54-
label: "Tutorial",
54+
label: "Docs",
5555
},
5656
{
5757
href: "https://github.com/sigbit/mcp-auth-proxy",
@@ -67,7 +67,7 @@ const config: Config = {
6767
title: "Docs",
6868
items: [
6969
{
70-
label: "Tutorial",
70+
label: "Docs",
7171
to: "/docs/intro",
7272
},
7373
],

docs/sidebars.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
22

33
const sidebars: SidebarsConfig = {
4-
tutorialSidebar: [{ type: "autogenerated", dirName: "." }],
4+
docsSidebar: [{ type: "autogenerated", dirName: "." }],
55
};
66

77
export default sidebars;

0 commit comments

Comments
 (0)