feat(turbomcp): full rmcp parity with TurboMcpClientHandler, auto-updating tools, and integration tests#1463
Closed
nicholasjpaterno wants to merge 3 commits into0xPlaygrounds:mainfrom
Closed
Conversation
Author
|
Addresses #750 finally 😅 |
3fcdfa7 to
5d27860
Compare
Author
|
TurboMCP is now the fastest MCP library available! https://x.com/RealEpistates/status/2029559190587396451 |
Add TurboMCP as a feature-gated MCP client integration, matching the existing rmcp integration pattern with full feature parity. - TurboMcpTool and TurboMcpToolCaller trait for type-erased transport - Content block handling (text, image, audio, resource, tool use/result) - AgentBuilder methods: turbomcp_tool(), turbomcp_tools() - ToolServer::turbomcp_tool() method - 17 comprehensive tests with MockToolCaller - Example demonstrating OpenAI agent with TurboMCP tools
… full rmcp parity - Extract inline turbomcp module to tool/turbomcp.rs with module docs - Add TurboMcpClientHandler<T> for ToolServer auto-registration with notifications/tools/list_changed support via ToolRefreshHandler - Add TurboMcpClientError with ConnectionError, ToolFetchError, ToolServerError variants preserving original error types - Fix resource content rendering to include MIME type and content body - Add partial-registration rollback in connect() on failure - Expand example to full lifecycle: in-process server + ToolServer + TurboMcpClientHandler auto-updating pattern - Add 4 integration tests using channel transport (real protocol path) - Add 2 new resource rendering tests (with/without MIME type) - Bump turbomcp dependency to 3.0.11 - Add [patch.crates-io] for local development
5d27860 to
44d897d
Compare
Contributor
|
Hey there, we appreciate your effort in this contribution, but after further discussion with the team, we have decided that at the moment, adding We appreciate your understanding, and sorry for any time wasted on your part 🙏 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TurboMcpClientHandler<T>for automatic tool registration withToolServer, includingnotifications/tools/list_changedauto-refresh (matching rmcp'sMcpClientHandler)tool/turbomcp.rswith full module documentationTurboMcpClientErrorwith 3 typed variants preserving original errorsToolServer+ auto-updating handlernotify_client(),trigger_tool_list_changed(),has_tool_list_changed_handler())Changes
Cargo.toml[patch.crates-io]for local turbomcp developmentrig-core/Cargo.tomlchannelfeature to server dev-deprig-core/src/tool/turbomcp.rsTurboMcpClientHandler,ToolRefreshHandler,TurboMcpClientError,TurboMcpTool,TurboMcpToolCaller, 23 testsrig-core/src/tool/mod.rsrig-core/examples/turbomcp.rsParity with rmcp
McpTool/TurboMcpTool(ToolDyn adapter)McpClientHandler/TurboMcpClientHandler(auto-updating)McpClientError/TurboMcpClientError(typed errors)ToolServerintegrationAgentBuildermethodsTurboMcpToolCallertrait)ServerSink)Test plan
cargo test -p rig-core --lib --features turbomcp— 23 turbomcp tests pass (19 unit + 4 integration)cargo check -p rig-core --features turbomcp --example turbomcp— compiles clean