You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -408,7 +408,7 @@ MCP server can verify tokens issued by other systems, integrate with external id
408
408
### OAuthProxy
409
409
OAuthProxy enables authentication with OAuth providers that don’t support Dynamic Client Registration (DCR).It accepts any client registration request, handles the DCR on your server side and then uses your pre-registered app credentials upstream.The proxy also forwards callbacks, allowing dynamic redirect URIs to work with providers that require fixed ones.
410
410
411
-
> ⚠️ OAuthProxy support is still in development—please use RemoteAuthProvider for now.
411
+
> ⚠️ OAuthProxy support is still in development, please use RemoteAuthProvider for now.
Copy file name to clipboardExpand all lines: crates/rust-mcp-sdk/README.md
+41-18Lines changed: 41 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,37 +21,35 @@ Leveraging the [rust-mcp-schema](https://github.com/rust-mcp-stack/rust-mcp-sche
21
21
**rust-mcp-sdk** supports all three official versions of the MCP protocol.
22
22
By default, it uses the **2025-06-18** version, but earlier versions can be enabled via Cargo features.
23
23
24
-
25
-
26
-
This project supports following transports:
27
-
-**Stdio** (Standard Input/Output)
28
-
-**Streamable HTTP**
29
-
-**SSE** (Server-Sent Events)
30
-
31
-
32
24
🚀 The **rust-mcp-sdk** includes a lightweight [Axum](https://github.com/tokio-rs/axum) based server that handles all core functionality seamlessly. Switching between `stdio` and `Streamable HTTP` is straightforward, requiring minimal code changes. The server is designed to efficiently handle multiple concurrent client connections and offers built-in support for SSL.
33
25
34
26
35
-
**MCP Streamable HTTP Support**
36
-
- ✅ Streamable HTTP Support for MCP Servers
27
+
**Features**
28
+
- ✅ Stdio, SSE and Streamable HTTP Support
29
+
- ✅ Supports multiple MCP protocol versions
37
30
- ✅ DNS Rebinding Protection
38
31
- ✅ Batch Messages
39
32
- ✅ Streaming & non-streaming JSON response
40
-
- ✅ Streamable HTTP Support for MCP Clients
41
33
- ✅ Resumability
42
-
- ⬜ Oauth Authentication
34
+
- ✅ OAuth Authentication for MCP Servers
35
+
- ✅ [Remote Oauth Provider](crates/rust-mcp-sdk/src/auth/auth_provider/remote_auth_provider.rs) (for any provider with DCR support)
@@ -68,6 +66,12 @@ This project supports following transports:
68
66
-[Development](#development)
69
67
-[License](#license)
70
68
69
+
70
+
## Getting Started
71
+
72
+
If you are looking for a step-by-step tutorial on how to get started with `rust-mcp-sdk` , please see : [Getting Started MCP Server](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/doc/getting-started-mcp-server.md)
73
+
74
+
71
75
## Usage Examples
72
76
73
77
### MCP Server (stdio)
@@ -387,6 +391,26 @@ Creating an MCP client using the `rust-mcp-sdk` with the SSE transport is almost
387
391
👉 see [examples/simple-mcp-client-sse](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/examples/simple-mcp-client-sse) for a complete working example.
388
392
389
393
394
+
## Authentication
395
+
MCP server can verify tokens issued by other systems, integrate with external identity providers, or manage the entire authentication process itself. Each option offers a different balance of simplicity, security, and control.
396
+
397
+
### RemoteAuthProvider
398
+
[RemoteAuthProvider](src/mcp_http/auth/auth_provider/remote_auth_provider.rs) RemoteAuthProvider enables authentication with identity providers that support Dynamic Client Registration (DCR) such as KeyCloak and WorkOS AuthKit, letting MCP clients auto-register and obtain credentials without manual setup.
399
+
400
+
👉 See the [server-oauth-remote](examples/auth/server-oauth-remote) example for how to use RemoteAuthProvider with a DCR-capable remote provider.
401
+
402
+
👉 [rust-mcp-extra](https://crates.io/crates/rust-mcp-extra) also offers drop-in auth providers for common identity platforms, working seamlessly with rust-mcp-sdk:
OAuthProxy enables authentication with OAuth providers that don’t support Dynamic Client Registration (DCR).It accepts any client registration request, handles the DCR on your server side and then uses your pre-registered app credentials upstream.The proxy also forwards callbacks, allowing dynamic redirect URIs to work with providers that require fixed ones.
410
+
411
+
> ⚠️ OAuthProxy support is still in development, please use RemoteAuthProvider for now.
412
+
413
+
390
414
## Macros
391
415
[rust-mcp-sdk](https://github.com/rust-mcp-stack/rust-mcp-sdk) includes several helpful macros that simplify common tasks when building MCP servers and clients. For example, they can automatically generate tool specifications and tool schemas right from your structs, or assist with elicitation requests and responses making them completely type safe.
392
416
@@ -495,10 +519,6 @@ let user_info = UserInfo::from_content_map(result.content)?;
If you are looking for a step-by-step tutorial on how to get started with `rust-mcp-sdk` , please see : [Getting Started MCP Server](https://github.com/rust-mcp-stack/rust-mcp-sdk/tree/main/doc/getting-started-mcp-server.md)
501
-
502
522
## HyperServerOptions
503
523
504
524
HyperServer is a lightweight Axum-based server that streamlines MCP servers by supporting **Streamable HTTP** and **SSE** transports. It supports simultaneous client connections, internal session management, and includes built-in security features like DNS rebinding protection and more.
0 commit comments