Skip to main content
Import from @mcp-use/client/react:
Use McpClientProvider for multi-server apps. Use standalone useMcp only for a single server.

Provider setup

Connection states

OAuth does not auto-start by default (preventAutoAuth: true). Show a sign-in button when state === "pending_auth". Mixed auth is reported separately from the connection state. A mixed-auth server remains ready because its public operations are usable, while authorization describes the optional OAuth state:
The hook detects mixed auth from RFC 9728 protected-resource metadata after an anonymous connection. Set detectMixedAuth: false to disable this best-effort discovery. With the default explicit browser flow, a wire-level OAuth challenge from a protected operation prepares the auth action; call authenticate() and retry that operation. Tool-level isError results do not trigger OAuth.

OAuth callback

Create a route (default: /oauth/callback):
Override with defaultCallbackUrl on the provider or callbackUrl per server.

Proxy fallback

When direct browser connections fail (CORS / FastMCP), retry through a proxy:
MCP traffic and OAuth use separate proxy URLs so resource identity stays the upstream MCP URL.

Persistence

Built-in providers persist only non-secret connection settings. Supply bearer tokens, request headers, and proxy headers again at runtime after a reload. Browser OAuth tokens remain persistent by default and are encrypted with AES-256-GCM using a non-extractable origin key stored in IndexedDB.

Standalone useMcp

For one server without the provider:

Types

  • McpServerConfig — server options passed to addServer (replaces deprecated McpServerOptions).
  • displayName — your label for the server in UI.
  • serverInfo.name — name returned by the server at init.
  • authorization — optional mixed-auth metadata with mode, authenticated, resource, and scopesSupported.
Sampling, elicitation, and notifications are queued on each McpServer (pendingSamplingRequests, pendingElicitationRequests, notifications). See Sampling and Elicitation.

Reference

React client API reference — provider props, hook return values, and storage types.