Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 3.07 KB

File metadata and controls

64 lines (43 loc) · 3.07 KB
title
Client

Client overview

The SDK provides a high-level Client class that connects to MCP servers over different transports:

  • StdioClientTransport – for local processes you spawn.
  • StreamableHTTPClientTransport – for remote HTTP servers.
  • SSEClientTransport – for legacy HTTP+SSE servers (deprecated).

Runnable client examples live under:

Connecting and basic operations

A typical flow:

  1. Construct a Client with name, version and capabilities.
  2. Create a transport and call client.connect(transport).
  3. Use high-level helpers:
    • listTools, callTool
    • listPrompts, getPrompt
    • listResources, readResource

See simpleStreamableHttp.ts for an interactive CLI client that exercises these methods and shows how to handle notifications, elicitation and tasks.

Transports and backwards compatibility

To support both modern Streamable HTTP and legacy SSE servers, use a client that:

  1. Tries StreamableHTTPClientTransport.
  2. Falls back to SSEClientTransport on a 4xx response.

Runnable example:

OAuth client authentication helpers

For OAuth-secured MCP servers, the client auth module exposes:

  • ClientCredentialsProvider
  • PrivateKeyJwtProvider
  • StaticPrivateKeyJwtProvider

Examples:

These examples show how to:

  • Perform dynamic client registration if needed.
  • Acquire access tokens.
  • Attach OAuth credentials to Streamable HTTP requests.