Skip to content

Commit 50f699e

Browse files
jhrozekclaude
andcommitted
Document vMCP embedded auth server and upstream token injection
Closes #642 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent d952a6b commit 50f699e

4 files changed

Lines changed: 426 additions & 15 deletions

File tree

docs/toolhive/concepts/backend-auth.mdx

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -211,20 +211,10 @@ deployments using the ToolHive Operator.
211211
- **Direct upstream redirect:** The embedded authorization server redirects
212212
clients directly to the upstream provider for authentication (for example,
213213
GitHub or Atlassian).
214-
- **Single upstream provider:** Currently supports one upstream identity
215-
provider per configuration.
216-
217-
:::info[Chained authentication not yet supported]
218-
219-
The embedded authorization server redirects clients directly to the upstream
220-
provider. This means the upstream provider must be the service whose API the MCP
221-
server calls. Chained authentication—where a client authenticates with a
222-
corporate IdP like Okta, which then federates to an external provider like
223-
GitHub—is not yet supported. If your deployment requires this pattern, consider
224-
using [token exchange](#same-idp-with-token-exchange) with a federated identity
225-
provider instead.
226-
227-
:::
214+
- **Single upstream provider per MCPServer:** Individual MCPServer resources
215+
support one upstream identity provider per configuration. For multiple
216+
upstream providers with sequential authorization chaining, use a
217+
[VirtualMCPServer with the embedded auth server](../guides-vmcp/authentication.mdx#embedded-authorization-server).
228218

229219
#### Token storage and forwarding
230220

@@ -286,6 +276,8 @@ For the client-facing OAuth flow, see
286276
[Embedded authorization server](./auth-framework.mdx#embedded-authorization-server).
287277
For Kubernetes setup instructions, see
288278
[Set up embedded authorization server authentication](../guides-k8s/auth-k8s.mdx#set-up-embedded-authorization-server-authentication).
279+
For multi-upstream provider support with vMCP, see
280+
[vMCP embedded authorization server](../guides-vmcp/authentication.mdx#embedded-authorization-server).
289281

290282
## Token exchange in depth
291283

docs/toolhive/concepts/vmcp.mdx

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pre-configured tools with sensible defaults.
2222

2323
## Core value propositions
2424

25-
vMCP delivers four key benefits:
25+
vMCP delivers five key benefits:
2626

2727
1. **Reduce complexity**: Many connections become one, dramatically simplifying
2828
configuration
@@ -136,6 +136,16 @@ your identity provider and all backend access is revoked instantly.
136136
This approach provides single sign-on for users, centralized access control, and
137137
a complete audit trail.
138138

139+
vMCP can also run an embedded authorization server that handles the full OAuth
140+
flow with multiple upstream identity providers (such as GitHub, Google, or
141+
Okta). This enables per-user backend authentication: when a user logs in, the
142+
auth server acquires tokens from each upstream provider and injects them into
143+
requests to the appropriate backends. MCP clients register automatically through
144+
Dynamic Client Registration (DCR), so no manual client configuration is needed.
145+
See
146+
[Authentication](../guides-vmcp/authentication.mdx#embedded-authorization-server)
147+
for setup details.
148+
139149
## When to use vMCP
140150

141151
### Good fit

docs/toolhive/guides-k8s/auth-k8s.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,6 +766,8 @@ kubectl logs -n toolhive-system -l app.kubernetes.io/name=weather-server-k8s
766766
[Authentication and authorization framework](../concepts/auth-framework.mdx)
767767
- For conceptual background on the embedded authorization server, see
768768
[Embedded authorization server](../concepts/auth-framework.mdx#embedded-authorization-server)
769+
- For multi-upstream provider support with vMCP, see
770+
[vMCP embedded authorization server](../guides-vmcp/authentication.mdx#embedded-authorization-server)
769771
- For a similar configuration pattern using token exchange, see
770772
[Configure token exchange](./token-exchange-k8s.mdx)
771773
- For detailed Cedar policy syntax, see

0 commit comments

Comments
 (0)