Skip to content

Commit 61c3361

Browse files
committed
add section with auth examples
1 parent 98f478a commit 61c3361

File tree

1 file changed

+125
-28
lines changed

1 file changed

+125
-28
lines changed

docs/toolhive/guides-ui/run-mcp-servers.md

Lines changed: 125 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -110,46 +110,143 @@ images or source packages.
110110
### Remote MCP server
111111

112112
On the **MCP Servers** page, click **Add an MCP server**, then choose **Add a
113-
remote MCP server** in the drop-down menu. Or if this is your first MCP server,
114-
on the introductory screen.
113+
remote MCP server** in the drop-down menu.
115114

116115
On the configuration form, enter:
117116

118117
1. A unique **name** for the MCP server. [Required]
119-
120-
2. The server **url** of the MCP server. [Required]
121-
122-
3. The **transport protocol** that the MCP server uses. [Required] ToolHive
123-
supports server-sent events (SSE), and Streamable HTTP (default value) for
118+
2. The **URL** of the remote MCP server. [Required]
119+
3. The **transport protocol** that the MCP server uses. [Required]\
120+
ToolHive supports server-sent events (SSE) and Streamable HTTP (default) for
124121
real-time communication. The protocol must match what the MCP server
125122
supports.
126-
127-
4. The authorization method (default **None**, simple transparent forwarding).
128-
ToolHive supports OAuth2/OIDC, and dynamic client registration.
129-
130-
Selecting **OAuth2** authentication method:
131-
- The **authorize URL** where users are redirected to authenticate and
132-
authorize your MCP. [Required]
133-
- The **token URL** where your application exchanges the authorization code
134-
for access tokens. [Required]
135-
- The **client ID** for your application registered with the OAuth provider.
136-
[Required]
137-
- The **client secret** key that proves your application's identity.
123+
4. **Authorization method**: Choose how ToolHive should authenticate with the
124+
remote server.\
125+
The default is **None**, when no client credentials are provided, ToolHive
126+
can automatically register an OAuth client with the authorization server:
127+
- Discover OAuth/OIDC endpoints
128+
- Register a new OAuth client
129+
- Obtain and manage client credentials
130+
- Handle token lifecycle automatically
131+
132+
ToolHive also supports OAuth2 and OIDC authentication with dynamic client
133+
registration.
134+
135+
**OAuth2 authentication options:**
136+
- **Authorize URL**: The URL where users are redirected to authenticate and
137+
authorize access to the MCP server. [Required]
138+
- **Token URL**: The URL where your application exchanges the authorization
139+
code for access tokens. [Required]
140+
- **Client ID**: Your application's identifier registered with the OAuth
141+
provider. [Required]
142+
- **Client secret**: The secret key that proves your application's identity.
138143
[Optional]
139-
- The **scopes** list of permissions your app is requesting. [Optional]
144+
- **Scopes**: List of permissions your application is requesting. [Optional]
140145

141-
Selecting **OIDC** authentication method:
142-
- The base **issuer URL** of the OIDC provider. [Required]
143-
- The **client ID** for your application registered with the OIDC provider.
144-
[Required]
145-
- The **client secret** key that proves your application's identity.
146+
**OIDC authentication options:**
147+
- **Issuer URL**: The base URL of the OIDC provider. [Required]
148+
- **Client ID**: Your application's identifier registered with the OIDC
149+
provider. [Required]
150+
- **Client secret**: The secret key that proves your application's identity.
146151
[Optional]
147-
- The **PKCE** Proof Key for Code Exchange (RFC 7636), automatically enables
148-
PKCE flow without client_secret. [Optional]
152+
- **PKCE**: Enable Proof Key for Code Exchange (RFC 7636) for enhanced
153+
security without requiring a client secret. [Optional]
149154

150155
5. The **callback port** for the authentication redirect. [Required]
151156

152-
Click **Install server** to run the MCP server.
157+
Click **Install server** to connect to the remote MCP server.
158+
159+
#### Configuration and authentication examples
160+
161+
##### Remote MCP server with no client credentials
162+
163+
This example shows how to connect to a remote MCP server using automatic OAuth
164+
client registration, where ToolHive handles all the authentication setup for
165+
you.
166+
167+
1. On the **MCP Servers** page, click **Add an MCP server**.
168+
2. Select **Add a remote MCP server** from the drop-down menu.
169+
3. Fill in the configuration form:
170+
- **Server name**: `notion-mcp-server`
171+
- **URL**: `https://mcp.notion.com/mcp`
172+
- **Transport protocol**: Select **Streamable HTTP**
173+
- **Authorization method**: Select **None**
174+
- **Callback port**: `45673` (or any available port on your system)
175+
4. Click **Install server** to start the automatic registration flow.
176+
5. ToolHive automatically discovers the OAuth endpoints, registers a new client,
177+
and handles the authentication process.
178+
6. Your browser opens for authentication, and after successful authorization,
179+
the remote MCP server appears in your server list with a "Running" status.
180+
181+
This is the simplest way to connect to a remote MCP server that supports
182+
automatic client registration, as it requires minimal configuration from you.
183+
184+
##### Remote MCP server with OAuth2 authentication
185+
186+
This example shows how to connect to a remote MCP server that requires OAuth2
187+
authentication, such as a GitHub MCP server.
188+
189+
1. On the **MCP Servers** page, click **Add an MCP server**.
190+
2. Select **Add a remote MCP server** from the drop-down menu.
191+
3. Fill in the configuration form:
192+
- **Server name**: `github-remote-oauth`
193+
- **URL**: `https://api.githubcopilot.com/mcp/`
194+
- **Transport protocol**: Select **Streamable HTTP**
195+
- **Authorization method**: Select **OAuth2**
196+
- **Authorize URL**: `https://github.com/login/oauth/authorize`
197+
- **Token URL**: `https://github.com/login/oauth/access_token`
198+
- **Client ID**: Your GitHub OAuth app client ID (e.g.,
199+
`Og44jirLIaUgSiTDNGA3`)
200+
- **Client secret**: Your GitHub OAuth app client secret
201+
- **Scopes**: `public_repo` (comma-separated list of required permissions)
202+
- **Callback port**: `45673` (or any available port on your system)
203+
4. Click **Install server** to start the authentication flow.
204+
5. ToolHive opens your browser to authenticate with GitHub and authorize the
205+
application.
206+
6. After successful authentication, the remote MCP server appears in your server
207+
list with a "Running" status.
208+
209+
**NOTE**: If you don't have a GitHub OAuth app yet, you need to create one
210+
first:
211+
212+
1. Go to [GitHub Developer Settings](https://github.com/settings/developers)
213+
2. Click **New OAuth App**
214+
3. Fill in the application details:
215+
- **Application name**: Choose a descriptive name (e.g., "ToolHive GitHub
216+
MCP")
217+
- **Homepage URL**: Your application's homepage or `http://localhost`
218+
- **Authorization callback URL**: `http://localhost:45673/callback` (match
219+
the callback port in ToolHive UI)
220+
4. Click **Register application**
221+
5. Copy the **Client ID** and generate a **Client secret** to use in ToolHive UI
222+
223+
##### Remote MCP server with OIDC authentication
224+
225+
This example shows how to connect to a remote MCP server using OpenID Connect
226+
(OIDC) authentication with GitHub as the identity provider.
227+
228+
1. On the **MCP Servers** page, click **Add an MCP server**.
229+
2. Select **Add a remote MCP server** from the drop-down menu.
230+
3. Fill in the configuration form:
231+
- **Server name**: `github-remote-oidc`
232+
- **URL**: `https://api.githubcopilot.com/mcp/`
233+
- **Transport protocol**: Select **Streamable HTTP**
234+
- **Authorization method**: Select **OIDC**
235+
- **Issuer URL**: `https://github.com/login/oauth`
236+
- **Client ID**: Your GitHub OAuth app client ID (e.g.,
237+
`Og44jirLIaUgSiTDNGA3`)
238+
- **Client secret**: Your GitHub OAuth app client secret (optional for PKCE)
239+
- **PKCE**: Enable this option for enhanced security without requiring a
240+
client secret
241+
- **Callback port**: `45673` (or any available port on your system)
242+
4. Click **Install server** to start the authentication flow.
243+
5. ToolHive opens your browser to authenticate with GitHub using OIDC.
244+
6. After successful authentication, the remote MCP server appears in your server
245+
list with a "Running" status.
246+
247+
**NOTE**: For OIDC authentication with GitHub, you can use the same OAuth app
248+
created in the previous example. The OIDC flow provides additional security
249+
features and standardized token handling compared to traditional OAuth2.
153250

154251
### Local custom MCP server
155252

0 commit comments

Comments
 (0)