Skip to content

Commit 6317622

Browse files
committed
ci: add GitHub Pages deployment workflow and improve documentation
- Add complete GitHub Pages deployment workflow with build and deploy jobs - Enhance check workflow with docs linting validation - Clean up README formatting and improve provider setup documentation - Remove placeholder text from SVG logo
1 parent c09344c commit 6317622

22 files changed

Lines changed: 19580 additions & 10 deletions

.github/workflows/check.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,26 @@ jobs:
3030
- uses: dominikh/[email protected]
3131
with:
3232
install-go: false
33+
34+
docs-check:
35+
runs-on: ubuntu-latest
36+
defaults:
37+
run:
38+
working-directory: docs
39+
40+
steps:
41+
- name: Checkout repository
42+
uses: actions/checkout@v4
43+
44+
- name: Set up Node.js
45+
uses: actions/setup-node@v4
46+
with:
47+
node-version: "24"
48+
cache: "npm"
49+
cache-dependency-path: docs/package-lock.json
50+
51+
- name: Install docs dependencies
52+
run: npm ci
53+
54+
- name: Lint documentation
55+
run: npm run lint

.github/workflows/docs.yaml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Deploy Docs to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
permissions:
12+
contents: read
13+
pages: write
14+
id-token: write
15+
16+
concurrency:
17+
group: "pages"
18+
cancel-in-progress: false
19+
20+
jobs:
21+
build:
22+
runs-on: ubuntu-latest
23+
defaults:
24+
run:
25+
working-directory: docs
26+
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
31+
- name: Set up Node.js
32+
uses: actions/setup-node@v4
33+
with:
34+
node-version: "24"
35+
cache: "npm"
36+
cache-dependency-path: docs/package-lock.json
37+
38+
- name: Install dependencies
39+
run: npm ci
40+
41+
- name: Build documentation
42+
run: npm run build
43+
44+
- name: Setup Pages
45+
uses: actions/configure-pages@v5
46+
47+
- name: Upload to GitHub Pages
48+
uses: actions/upload-pages-artifact@v3
49+
with:
50+
path: docs/build
51+
52+
deploy:
53+
needs: build
54+
runs-on: ubuntu-latest
55+
environment:
56+
name: github-pages
57+
url: ${{ steps.deployment.outputs.page_url }}
58+
steps:
59+
- name: Deploy to GitHub Pages
60+
id: deployment
61+
uses: actions/deploy-pages@v4

.vscode/settings.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"files.trimTrailingWhitespace": true,
3+
"[css]": {
4+
"editor.defaultFormatter": "esbenp.prettier-vscode"
5+
},
6+
"[markdown]": {
7+
"files.trimTrailingWhitespace": false,
8+
"editor.defaultFormatter": "esbenp.prettier-vscode"
9+
},
10+
"[tsx]": {
11+
"editor.defaultFormatter": "esbenp.prettier-vscode"
12+
},
13+
"[typescript]": {
14+
"editor.defaultFormatter": "esbenp.prettier-vscode"
15+
}
16+
}

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
## Overview
88

99
- **Drop-in OAuth 2.1/OIDC gateway for MCP servers — put it in front, no code changes.**
10-
- **Your IdP, your choice**: Google, GitHub, or any OIDC provider — e.g. Okta, Auth0, Azure AD, Keycloak — plus optional password with allow-list.
10+
- **Your IdP, your choice**: Google, GitHub, or any OIDC provider — e.g. Okta, Auth0, Azure AD, Keycloak — plus optional password.
1111
- **Publish local MCP servers safely**: Supports all stdio, SSE, and HTTP transports. For stdio, traffic is converted to `/mcp`. For SSE/HTTP, it’s proxied as-is. Of course, with authentication.
1212
- **Verified across major MCP clients**: Claude, Claude Code, ChatGPT, GitHub Copilot, Cursor, etc. — the proxy smooths client-specific quirks for consistent auth.
1313

@@ -36,15 +36,15 @@ To proxy SSE or HTTP transport, specify a URL; to use the stdio transport, speci
3636

3737
| MCP Client | Status | Notes |
3838
| ----------------- | ------ | ------------------------------------------------ |
39-
| Claude - Web | | |
40-
| Claude - Desktop | | |
41-
| Claude Code | | |
42-
| ChatGPT - Web | | Need to implement `search` and `fetch` tools.(1) |
43-
| ChatGPT - Desktop | | Need to implement `search` and `fetch` tools.(1) |
44-
| GitHub Copilot | | |
45-
| Cursor | | |
39+
| Claude - Web || |
40+
| Claude - Desktop || |
41+
| Claude Code || |
42+
| ChatGPT - Web || Need to implement `search` and `fetch` tools.(1) |
43+
| ChatGPT - Desktop || Need to implement `search` and `fetch` tools.(1) |
44+
| GitHub Copilot || |
45+
| Cursor || |
4646

47-
- *1: https://platform.openai.com/docs/mcp
47+
- \*1: https://platform.openai.com/docs/mcp
4848

4949
## 🚀 Usage
5050

@@ -97,17 +97,20 @@ docker run --rm --net=host \
9797
### Provider Setup
9898

9999
#### Google OAuth Setup
100+
100101
1. Go to the [Google Cloud Console](https://console.cloud.google.com/)
101102
2. Create a new project or select an existing one
102103
3. Create OAuth consent screen
103104
4. Credentials → Create credentials → OAuth client ID (Web application)
104105
5. Add authorized redirect URI: `{EXTERNAL_URL}/.auth/google/callback`
105106

106107
#### GitHub OAuth Setup
108+
107109
1. Go to the [Register new OAuth App](https://github.com/settings/applications/new)
108110
2. Set Authorization callback URL: `{EXTERNAL_URL}/.auth/github/callback`
109111

110112
#### OIDC Provider Setup
113+
111114
1. Configure your OIDC provider (e.g., Keycloak, Auth0, Azure AD, etc.)
112115
2. Create a new client application
113116
3. Set redirect URI: `{EXTERNAL_URL}/.auth/oidc/callback`

docs/.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/build
6+
7+
# Generated files
8+
.docusaurus
9+
.cache-loader
10+
11+
# Misc
12+
.DS_Store
13+
.env.local
14+
.env.development.local
15+
.env.test.local
16+
.env.production.local
17+
18+
npm-debug.log*
19+
yarn-debug.log*
20+
yarn-error.log*

docs/.prettierrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

docs/docs/client-integration.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
sidebar_position: 4
3+
---
4+
5+
# MCP Client Integration
6+
7+
Learn how to connect various MCP clients to your authenticated MCP server.
8+
9+
## Supported Clients
10+
11+
MCP Auth Proxy has been verified to work with all major MCP clients:
12+
13+
| MCP Client | Status | Notes |
14+
| ----------------- | ------ | ----------------------------------------------- |
15+
| Claude (Web) || Full compatibility |
16+
| Claude (Desktop) || Full compatibility |
17+
| Claude Code || Full compatibility |
18+
| ChatGPT (Web) || Requires `search` and `fetch` tools [¹](#notes) |
19+
| ChatGPT (Desktop) || Requires `search` and `fetch` tools [¹](#notes) |
20+
| GitHub Copilot || Full compatibility |
21+
| Cursor || Full compatibility |
22+
23+
## Claude Integration
24+
25+
### Claude Desktop & Web
26+
27+
1. Go to Claude Settings → Connectors
28+
2. Add custom connector
29+
3. Enter URL: `https://{your-domain}/mcp`
30+
4. You'll be redirected to authenticate
31+
32+
### Claude Code
33+
34+
Configure in `.mcp.json`:
35+
36+
```json
37+
{
38+
"mcpServers": {
39+
"my-protected-server": {
40+
"url": "https://{your-domain}/mcp"
41+
}
42+
}
43+
}
44+
```
45+
46+
## ChatGPT Integration
47+
48+
### Prerequisites
49+
50+
ChatGPT requires your MCP server to implement `search` and `fetch` tools.
51+
52+
### Configuration
53+
54+
1. Go to ChatGPT Settings → Connectors
55+
2. Create
56+
3. Fill in the form:
57+
- **MCP Server URL**: `https://{your-domain}/mcp`
58+
- **Authentication**: OAuth
59+
4. Complete authentication flow
60+
61+
## GitHub Copilot Integration
62+
63+
### VS Code Extension
64+
65+
Configure in `.vscode/mcp.json`:
66+
67+
```json
68+
{
69+
"servers": {
70+
"my-protected-server": {
71+
"url": "https://{your-domain}/mcp",
72+
"type": "http"
73+
}
74+
},
75+
"inputs": []
76+
}
77+
```
78+
79+
## Cursor Integration
80+
81+
### Configuration
82+
83+
Configure in Cursor settings:
84+
85+
```json
86+
{
87+
"mcpServers": {
88+
"my-protected-server": {
89+
"url": "https://{your-domain}/mcp"
90+
}
91+
}
92+
}
93+
```

0 commit comments

Comments
 (0)