|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +## [0.2.0](https://github.com/modelcontextprotocol/rust-sdk/compare/rmcp-v0.1.5...rmcp-v0.2.0) - 2025-07-02 |
| 11 | + |
| 12 | +### Added |
| 13 | + |
| 14 | +- mark boxed http body as sync ([#291](https://github.com/modelcontextprotocol/rust-sdk/pull/291)) |
| 15 | +- add progress notification handling and related structures ([#282](https://github.com/modelcontextprotocol/rust-sdk/pull/282)) |
| 16 | +- allow failable service creation in streamable HTTP tower service ([#244](https://github.com/modelcontextprotocol/rust-sdk/pull/244)) |
| 17 | +- provide more context information ([#236](https://github.com/modelcontextprotocol/rust-sdk/pull/236)) |
| 18 | +- stateless mode of streamable http client ([#233](https://github.com/modelcontextprotocol/rust-sdk/pull/233)) |
| 19 | +- add cancellation_token method to `RunningService` ([#218](https://github.com/modelcontextprotocol/rust-sdk/pull/218)) |
| 20 | +- better http server support ([#199](https://github.com/modelcontextprotocol/rust-sdk/pull/199)) |
| 21 | +- throw initialize error detail ([#192](https://github.com/modelcontextprotocol/rust-sdk/pull/192)) |
| 22 | +- sse client optionally skip the endpoint event ([#187](https://github.com/modelcontextprotocol/rust-sdk/pull/187)) |
| 23 | +- *(server)* add annotation to tool macro ([#184](https://github.com/modelcontextprotocol/rust-sdk/pull/184)) |
| 24 | +- *(model)* add json schema generation support for all model types ([#176](https://github.com/modelcontextprotocol/rust-sdk/pull/176)) |
| 25 | +- *(openapi)* add OpenAPI v3 compatibility and test for nullable field schema workaround ([#135](https://github.com/modelcontextprotocol/rust-sdk/pull/135)) ([#137](https://github.com/modelcontextprotocol/rust-sdk/pull/137)) |
| 26 | +- *(extension)* extract http request part into rmcp extension ([#163](https://github.com/modelcontextprotocol/rust-sdk/pull/163)) |
| 27 | +- *(transport)* support streamable http server ([#152](https://github.com/modelcontextprotocol/rust-sdk/pull/152)) |
| 28 | +- *(oauth)* fixes + cache client credentials ([#157](https://github.com/modelcontextprotocol/rust-sdk/pull/157)) |
| 29 | +- allow use of reqwest without ring provider ([#155](https://github.com/modelcontextprotocol/rust-sdk/pull/155)) |
| 30 | +- extensions to context ([#102](https://github.com/modelcontextprotocol/rust-sdk/pull/102)) |
| 31 | +- revision-2025-03-26 without streamable http ([#84](https://github.com/modelcontextprotocol/rust-sdk/pull/84)) |
| 32 | +- *(tool)* allow tool call return a serializable value in json format ([#75](https://github.com/modelcontextprotocol/rust-sdk/pull/75)) ([#78](https://github.com/modelcontextprotocol/rust-sdk/pull/78)) |
| 33 | +- Sse server auto ping ([#74](https://github.com/modelcontextprotocol/rust-sdk/pull/74)) |
| 34 | +- *(transport)* Sse client transport trait ([#67](https://github.com/modelcontextprotocol/rust-sdk/pull/67)) |
| 35 | + |
| 36 | +### Fixed |
| 37 | + |
| 38 | +- let users decide what to wrap in child process command ([#279](https://github.com/modelcontextprotocol/rust-sdk/pull/279)) |
| 39 | +- cancellable initialization process ([#280](https://github.com/modelcontextprotocol/rust-sdk/pull/280)) |
| 40 | +- inject part into extension when handing init req ([#275](https://github.com/modelcontextprotocol/rust-sdk/pull/275)) |
| 41 | +- streamable http server close request channel on response([#266](https://github.com/modelcontextprotocol/rust-sdk/pull/266)) ([#270](https://github.com/modelcontextprotocol/rust-sdk/pull/270)) |
| 42 | +- streamable http client close on response ([#268](https://github.com/modelcontextprotocol/rust-sdk/pull/268)) |
| 43 | +- expose TokioChildWrapper::id() in TokioChildProcess and TokioChildProcessOut ([#254](https://github.com/modelcontextprotocol/rust-sdk/pull/254)) |
| 44 | +- add compatibility handling for non-standard notifications in async_rw ([#247](https://github.com/modelcontextprotocol/rust-sdk/pull/247)) |
| 45 | +- allow SSE server router to be nested ([#240](https://github.com/modelcontextprotocol/rust-sdk/pull/240)) |
| 46 | +- error for status in post method of streamable http client ([#238](https://github.com/modelcontextprotocol/rust-sdk/pull/238)) |
| 47 | +- disable wasmbind in chrono for wasm32-unknown-unknown ([#234](https://github.com/modelcontextprotocol/rust-sdk/pull/234)) |
| 48 | +- *(examples)* add clients in examples's readme ([#225](https://github.com/modelcontextprotocol/rust-sdk/pull/225)) |
| 49 | +- generic ServerHandler ([#223](https://github.com/modelcontextprotocol/rust-sdk/pull/223)) |
| 50 | +- comment error ([#215](https://github.com/modelcontextprotocol/rust-sdk/pull/215)) |
| 51 | +- resolve the server 406 error in API calls ([#203](https://github.com/modelcontextprotocol/rust-sdk/pull/203)) |
| 52 | +- sse endpoint build follow js's `new URL(url, base)` ([#197](https://github.com/modelcontextprotocol/rust-sdk/pull/197)) |
| 53 | +- more friendly interface to get service error ([#190](https://github.com/modelcontextprotocol/rust-sdk/pull/190)) |
| 54 | +- cleanup zombie processes for child process client ([#156](https://github.com/modelcontextprotocol/rust-sdk/pull/156)) |
| 55 | +- *(schemar)* use self-defined settings ([#180](https://github.com/modelcontextprotocol/rust-sdk/pull/180)) |
| 56 | +- *(transport-sse-server)* cleanup on connection drop ([#165](https://github.com/modelcontextprotocol/rust-sdk/pull/165)) |
| 57 | +- *(test)* skip serialize tool's annotation if empty ([#160](https://github.com/modelcontextprotocol/rust-sdk/pull/160)) |
| 58 | +- fix resource leak ([#136](https://github.com/modelcontextprotocol/rust-sdk/pull/136)) |
| 59 | +- *(handler)* do call handler methods when initialize server ([#118](https://github.com/modelcontextprotocol/rust-sdk/pull/118)) |
| 60 | +- *(server)* schemars compilation errors ([#104](https://github.com/modelcontextprotocol/rust-sdk/pull/104)) |
| 61 | +- *(test)* fix test introduced by #97 ([#101](https://github.com/modelcontextprotocol/rust-sdk/pull/101)) |
| 62 | +- *(macro)* add generics marco types support ([#98](https://github.com/modelcontextprotocol/rust-sdk/pull/98)) |
| 63 | +- *(typo)* nit language corrections ([#90](https://github.com/modelcontextprotocol/rust-sdk/pull/90)) |
| 64 | +- *(typo)* s/marcos/macros/ ([#85](https://github.com/modelcontextprotocol/rust-sdk/pull/85)) |
| 65 | +- *(client)* add error enum while deal client info ([#76](https://github.com/modelcontextprotocol/rust-sdk/pull/76)) |
| 66 | +- *(notification)* fix wrongly error report in notification ([#70](https://github.com/modelcontextprotocol/rust-sdk/pull/70)) |
| 67 | +- *(test)* fix tool deserialization error ([#68](https://github.com/modelcontextprotocol/rust-sdk/pull/68)) |
| 68 | +- *(server)* add error enum while deal server info ([#51](https://github.com/modelcontextprotocol/rust-sdk/pull/51)) |
| 69 | + |
| 70 | +### Other |
| 71 | + |
| 72 | +- add simpling example and test ([#289](https://github.com/modelcontextprotocol/rust-sdk/pull/289)) |
| 73 | +- add update for test_message_schema ([#286](https://github.com/modelcontextprotocol/rust-sdk/pull/286)) |
| 74 | +- add notion clear in model.rs ([#284](https://github.com/modelcontextprotocol/rust-sdk/pull/284)) |
| 75 | +- cov settings, and fix serveral building warnings ([#281](https://github.com/modelcontextprotocol/rust-sdk/pull/281)) |
| 76 | +- refactor tool macros and router implementation ([#261](https://github.com/modelcontextprotocol/rust-sdk/pull/261)) |
| 77 | +- fix regression in URL joining ([#265](https://github.com/modelcontextprotocol/rust-sdk/pull/265)) |
| 78 | +- remove erroneous definitions_path ([#264](https://github.com/modelcontextprotocol/rust-sdk/pull/264)) |
| 79 | +- allow using a TokioCommandWrap for TokioChildProcess::new closes #243 ([#245](https://github.com/modelcontextprotocol/rust-sdk/pull/245)) |
| 80 | +- Fix typo ([#249](https://github.com/modelcontextprotocol/rust-sdk/pull/249)) |
| 81 | +- provide http server as tower service ([#228](https://github.com/modelcontextprotocol/rust-sdk/pull/228)) |
| 82 | +- *(deps)* update sse-stream requirement from 0.1.4 to 0.2.0 ([#230](https://github.com/modelcontextprotocol/rust-sdk/pull/230)) |
| 83 | +- Server info is only retrieved once during initialization ([#214](https://github.com/modelcontextprotocol/rust-sdk/pull/214)) |
| 84 | +- *(deps)* update base64 requirement from 0.21 to 0.22 ([#209](https://github.com/modelcontextprotocol/rust-sdk/pull/209)) |
| 85 | +- revert badge ([#202](https://github.com/modelcontextprotocol/rust-sdk/pull/202)) |
| 86 | +- use hierarchical readme for publishing ([#198](https://github.com/modelcontextprotocol/rust-sdk/pull/198)) |
| 87 | +- Ci/coverage badge ([#191](https://github.com/modelcontextprotocol/rust-sdk/pull/191)) |
| 88 | +- fix error introduced by merge, and reorganize feature ([#185](https://github.com/modelcontextprotocol/rust-sdk/pull/185)) |
| 89 | +- Transport trait and worker transport, and streamable http client with those new features. ([#167](https://github.com/modelcontextprotocol/rust-sdk/pull/167)) |
| 90 | +- add oauth2 support ([#130](https://github.com/modelcontextprotocol/rust-sdk/pull/130)) |
| 91 | +- remove un-used tower.rs ([#125](https://github.com/modelcontextprotocol/rust-sdk/pull/125)) |
| 92 | +- update calculator example description ([#115](https://github.com/modelcontextprotocol/rust-sdk/pull/115)) |
| 93 | +- fix the url ([#120](https://github.com/modelcontextprotocol/rust-sdk/pull/120)) |
| 94 | +- add a simple chat client for example ([#119](https://github.com/modelcontextprotocol/rust-sdk/pull/119)) |
| 95 | +- add an overview to `rmcp/src/lib.rs` ([#116](https://github.com/modelcontextprotocol/rust-sdk/pull/116)) |
| 96 | +- *(context)* test context request handling and refactor for reusable client-server tests ([#97](https://github.com/modelcontextprotocol/rust-sdk/pull/97)) |
| 97 | +- *(logging)* Add tests for logging ([#96](https://github.com/modelcontextprotocol/rust-sdk/pull/96)) |
| 98 | +- Adopt Devcontainer for Development Environment ([#81](https://github.com/modelcontextprotocol/rust-sdk/pull/81)) |
| 99 | +- fix typos ([#79](https://github.com/modelcontextprotocol/rust-sdk/pull/79)) |
| 100 | +- format and fix typo ([#72](https://github.com/modelcontextprotocol/rust-sdk/pull/72)) |
| 101 | +- add documentation generation job ([#59](https://github.com/modelcontextprotocol/rust-sdk/pull/59)) |
| 102 | +- add test with js server ([#65](https://github.com/modelcontextprotocol/rust-sdk/pull/65)) |
| 103 | +- fmt the project ([#54](https://github.com/modelcontextprotocol/rust-sdk/pull/54)) |
| 104 | +- *(sse_server)* separate router and server startup ([#52](https://github.com/modelcontextprotocol/rust-sdk/pull/52)) |
| 105 | +- fix broken link ([#53](https://github.com/modelcontextprotocol/rust-sdk/pull/53)) |
| 106 | +- fix the branch name for git dependency ([#46](https://github.com/modelcontextprotocol/rust-sdk/pull/46)) |
| 107 | +- Move whole rmcp crate to offcial rust sdk ([#44](https://github.com/modelcontextprotocol/rust-sdk/pull/44)) |
| 108 | +- Initial commit |
0 commit comments