Commit graph rust-sdk/examples/servers/src
Author SHA1 Message Date
4t145
076dc2c2cd
feat: better http server support (#199)
* feat: better http server support

1. allow user get extensions in tool call.
2. allow user serve sse service without initialization.

* fix: fix document test
2025-05-19 18:49:18 +08:00
4t145
787cc015b7
feat(extension): extract http request part into rmcp extension (#163)
* feat(extension): extract http request part into rmcp extension

* perf(extension): insert extension from one entrypoint
2025-05-09 10:36:52 +08:00
4t145
57e14c56e8
feat(transport): support streamable http server (#152)
* feat(transport): support streamable http server

* refactor(transport): add common module for shared transport utilities

* perf(tracing): add more log for streamable http session

* fix(test): fix port conflict in test with js

* fix(transport): fix id generating and session management

1. cancel when deleting
2. use `wrapping` and `saturating` correctly

* chore(naming): rename sse server to streamable http server
2025-05-08 13:57:51 +08:00
Andrew Culberson
6c2e6e22ee
feat(oauth): fixes + cache client credentials (#157)
credentials optimize
2025-05-08 09:18:35 +08:00
jokemanfire
afb8a905e5
chore: add oauth2 support (#130)
1.add oauth2 server and client example
2.add oauth2 impl in sse
3.add auth doc 
Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
2025-04-29 17:52:59 +08:00
Paul Ellenbogen
b1542a6153
fix: fix resource leak (#136)
When a running service is dropped, its connections should be closed and its resources should be
cleaned up.

This changes the default from leaving services running to closing them. Library users who want
their services to remain running should call `waiting` on their running service, in a new task
where necessary.

Co-authored-by: Paul Ellenbogen <pe5@cs.princeton.edu>
2025-04-28 17:56:20 +08:00
Luke Francl
dffae27cf0
docs: update calculator example description (#115)
The example in the README uses "sum" for both `sum` and `sub`. I changed it to "difference". For consistency, I also updated the example code to use the same term.
2025-04-10 20:04:15 +08:00
jokemanfire
36834f37d0
fix(macro): add generics marco types support (#98)
add generic marco support

Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
2025-04-07 10:01:28 +08:00
4t145
68375460df
feat: revision-2025-03-26 without streamable http (#84)
1. Suppot revision 2025-03-26 data types
2. Support meta, progress tokne, and extensions in request/notification,
3. Remove `Message`, use `JsonRpcMessage` directly
2025-04-07 09:47:39 +08:00
Bob Liu
6a648b8827
chore: fix typos (#79) 2025-04-02 01:15:01 +08:00
4t145
2c0cafdde3
feat(tool): allow tool call return a serializable value in json format (#75) (#78) 2025-04-01 15:53:01 +08:00
4t145
923e87af4d
feat: Sse server auto ping (#74)
1. auto ping in sse stream every second to make cursor happy
2. configurable sse keep alive

---------

Co-authored-by: = <=>
2025-04-01 10:54:09 +08:00
Jefry Dewangga
d6fb12b69f
chore: format code correctly (#66) 2025-03-30 23:29:13 +08:00
Sandro Hanea
50fadfb81b
[Example] Small fix on incorrect counter logic and improve prompt handling (#63)
The counter decrement in `get_value` was removed to prevent unintended changes to the counter state. Additionally, `get_prompt` was updated to parse and validate the `message` argument properly, ensuring better error handling and formatting.

Co-authored-by: sandrohanea <me@sandro.rocks>
2025-03-30 00:34:32 +08:00
jokemanfire
0a2f13a1f4
style: fmt the project (#54)
add rustfmt.toml

Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
2025-03-28 23:50:46 +08:00
Wang Ruobiao
59bfb6e748
refactor(sse_server): separate router and server startup (#52)
* feat: expose axum router

* feat: add axum_router example with SSE server implementation

* refactor: simplify SseServer configuration handling in server setup

* docs: add warning to SseServer::new about potential post_path issues with embedded routers
2025-03-28 22:06:50 +08:00
4t145
0be6067326
Move whole rmcp crate to offcial rust sdk (#44)
* get rid of async-trait

* move rmcp to official-rust-sdk

* replace master with main

* update readme, change license

* fix typo

* Update README.md

Co-authored-by: Jefry Dewangga <jefrydco@gmail.com>

* fix typos

---------

Co-authored-by: = <=>
Co-authored-by: Jefry Dewangga <jefrydco@gmail.com>
2025-03-27 17:33:41 -04:00
Ma1oneZhang
31493cfbcc
chore: decrease log level (#41)
Co-authored-by: ziyang zhang <zhangziyang@stu.cdut.edu.cn>
2025-03-20 21:32:34 -07:00
xring
b3d655da31
add an actix-web server sse example (#33)
* add an actix-web server sse example

remove unused import

* fix to apply cargo fmt and cargo clippy to pass the the repo checks
2025-03-19 21:15:45 -07:00
4t145
4597d1f047
Server wasm compatibility (#15)
* add axum sse example

* fix: make the sse axum folder name correct

* feat: add common modules for Axum SSE example

This commit adds supporting modules for the Axum Server-Sent Events (SSE) example:
- Added `counter.rs` with a simple counter router implementation
- Added `jsonrpc_frame_codec.rs` for decoding JSON-RPC frames
- Created a `mod.rs` to expose these modules
- Removed the previous SSE example configuration from Cargo.toml

* refactor: remove main.rs and update Cargo.toml for WASM compatibility

This commit makes two key changes:
1. Removes the main.rs file and make it a example
2. Add a wasi_std_io example

* refactor: simplify WASI I/O handling in example and fmt

Merged AsyncInputStream and AsyncOutputStream into a single WasiFd struct with std_in() and std_out() methods, reducing code duplication and improving clarity of the WASI standard I/O example.

* move examples to root
2025-03-14 11:21:33 -07:00
4t145
c0bd94dd85
Add an axum sse example (#12)
* add axum sse example

* fix: make the sse axum folder name correct

* feat: add common modules for Axum SSE example

This commit adds supporting modules for the Axum Server-Sent Events (SSE) example:
- Added `counter.rs` with a simple counter router implementation
- Added `jsonrpc_frame_codec.rs` for decoding JSON-RPC frames
- Created a `mod.rs` to expose these modules
- Removed the previous SSE example configuration from Cargo.toml

* move examples to root

* nit: remove extra newline here
2025-03-03 20:01:21 -08:00
Kalvin C
6609aa6aa8
chore: move examples out of various places into a top-level dir (#10) 2025-03-03 14:50:34 -05:00