Skip to content

Commit b6e08be

Browse files
jhrozekclaude
authored 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 bc0e5f4 commit b6e08be

4 files changed

Lines changed: 424 additions & 21 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

@@ -297,6 +287,8 @@ For the client-facing OAuth flow, see
297287
[Embedded authorization server](./auth-framework.mdx#embedded-authorization-server).
298288
For Kubernetes setup instructions, see
299289
[Set up embedded authorization server authentication](../guides-k8s/auth-k8s.mdx#set-up-embedded-authorization-server-authentication).
290+
For multi-upstream provider support with vMCP, see
291+
[vMCP embedded authorization server](../guides-vmcp/authentication.mdx#embedded-authorization-server).
300292

301293
## Token exchange in depth
302294

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
@@ -773,6 +773,8 @@ kubectl logs -n toolhive-system -l app.kubernetes.io/name=weather-server-k8s
773773
[Authentication and authorization framework](../concepts/auth-framework.mdx)
774774
- For conceptual background on the embedded authorization server, see
775775
[Embedded authorization server](../concepts/auth-framework.mdx#embedded-authorization-server)
776+
- For multi-upstream provider support with vMCP, see
777+
[vMCP embedded authorization server](../guides-vmcp/authentication.mdx#embedded-authorization-server)
776778
- For a similar configuration pattern using token exchange, see
777779
[Configure token exchange](./token-exchange-k8s.mdx)
778780
- For detailed Cedar policy syntax, see

0 commit comments

Comments
 (0)