docs(mcp): mTLS credentials count toward connection sharing; OAuth token path is per profile
The multiplex guide now says client_cert/client_key are part of the "same credentials" test and states the OAuth rule as its own sentence; the MCP config reference names the per-profile token directory and the never-shared-across-profiles rule next to the OAuth behaviour list. Co-authored-by: ly6751 <99090550+ly6751@users.noreply.github.com>
This commit is contained in:
@@ -333,9 +333,10 @@ mcp_servers:
|
||||
Behavior:
|
||||
- Hermes uses the MCP SDK's OAuth 2.1 PKCE flow (metadata discovery, client identification, token exchange, and refresh)
|
||||
- On first connect, a browser window opens for authorization
|
||||
- Tokens are persisted to `~/.hermes/mcp-tokens/<server>.json` and reused across sessions
|
||||
- Tokens are persisted to `~/.hermes/mcp-tokens/<server>.json` (a named profile uses `~/.hermes/profiles/<name>/mcp-tokens/`) and reused across sessions
|
||||
- Token refresh is automatic; re-authorization only happens when refresh fails
|
||||
- Only applies to HTTP/StreamableHTTP transport (`url`-based servers)
|
||||
- Under a [multiplexed gateway](/user-guide/multi-profile-gateways), an OAuth connection is never shared across profiles: each profile authenticates with its own token and opens its own connection, even when the `mcp_servers` entries are identical
|
||||
|
||||
### Device-code login (RFC 8628)
|
||||
|
||||
|
||||
@@ -327,9 +327,11 @@ profile B receives B's value for such a name, or nothing if B has none, never th
|
||||
default profile's. MCP servers are connected **per profile**: two profiles that
|
||||
both name a server `github` with their own token get two connections and each
|
||||
sees only its own tools; profiles whose `mcp_servers` entry is identical (same
|
||||
route *and* credentials) share one connection — except `auth: oauth` servers, which are
|
||||
never shared: each profile holds its own token and opens its own connection — and an owner's `/reload-mcp`
|
||||
re-registers the sharing profiles' tools without them reloading. Terminal settings
|
||||
route *and* credentials, including mTLS `client_cert`/`client_key`) share one
|
||||
connection, and an owner's `/reload-mcp`
|
||||
re-registers the sharing profiles' tools without them reloading. `auth: oauth`
|
||||
servers are never shared across profiles: each profile holds its own token under
|
||||
its own `mcp-tokens/` and opens its own connection. Terminal settings
|
||||
(`terminal.backend`, `terminal.cwd`, `terminal.docker_volumes`,
|
||||
`terminal.docker_shared_container_key`, SSH targets, …) are likewise resolved
|
||||
per profile on every routed turn: a profile that omits a terminal key gets the
|
||||
|
||||
Reference in New Issue
Block a user