Skip to content

chore: upgrade rmcp to v0.17.0 and reqwest to v0.13 - #140

Merged
its-mash merged 3 commits into
mainfrom
chore/upgrade-rmcp-0.17.0
Mar 4, 2026
Merged

chore: upgrade rmcp to v0.17.0 and reqwest to v0.13#140
its-mash merged 3 commits into
mainfrom
chore/upgrade-rmcp-0.17.0

Conversation

@its-mash

@its-mash its-mash commented Mar 3, 2026

Copy link
Copy Markdown
Member

Summary

  • Upgrade rmcp from v0.15.0 to v0.17.0 (release notes)
  • Upgrade reqwest from v0.12 to v0.13 (required by rmcp 0.17)
  • Remove [patch.crates-io] git override for SSE channel replacement fix (resolved upstream in rmcp 0.17)
  • Adapt to new fields: StoredCredentials.token_received_at, StreamableHttpServerConfig.json_response
  • Add reqwest form feature (now opt-in in reqwest 0.13) and rename rustls-tlsrustls

Key upstream changes (v0.16 + v0.17)

  • MCP-Protocol-Version header sending/validation
  • OAuth token_endpoint_auth_method support
  • Custom HTTP headers in StreamableHttpClient
  • json_response option for stateless server mode
  • Token expiry tracking via token_received_at
  • reqwest upgraded to 0.13, rand to 0.10

Test plan

  • cargo clippy --workspace -- -D warnings — zero warnings
  • cargo test --workspace --lib — 32 unit tests pass
  • cargo test -p tests — 33 integration tests pass (including 16 streamable HTTP tests)
  • pnpm test:ts — 182 TypeScript tests pass
  • pnpm test:e2e — 12/13 specs pass (1 flaky gateway.wdio.ts — also fails on main)
  • pnpm lint — 0 errors (pre-existing warnings only)
  • Pre-commit hooks pass (fmt + clippy + eslint + typecheck)

its-mash added 3 commits March 3, 2026 15:42
The has_active_tokens field and clients_with_tokens in-memory set tracked
whether clients had been issued tokens to show Active/Inactive status badges
in the UI. This status was unreliable (in-memory only, lost on restart) and
not needed. Removes the status badges from the clients page, the tracking
state from the gateway, and the field from both gateway and Tauri response
structs.

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
- Update rmcp from v0.15.0 to v0.17.0
- Update reqwest from v0.12 to v0.13 (required by rmcp 0.17)
- Add reqwest "form" feature (now optional in reqwest 0.13)
- Rename reqwest "rustls-tls" feature to "rustls" (reqwest 0.13 rename)
- Remove [patch.crates-io] for SSE channel fix (resolved upstream)
- Add new StoredCredentials.token_received_at field (rmcp 0.17)
- Add new StreamableHttpServerConfig.json_response field (rmcp 0.17)

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
Since build_token_response already recalculates expires_in as remaining
time from stored expires_at, setting token_received_at=now at load time
makes rmcp's expiry math correct (remaining = expires_in - 0), enabling
client-side token refresh before expiry instead of waiting for a 401.

Signed-off-by: Mohammod Al Amin Ashik <maa.ashik00@gmail.com>
@its-mash
its-mash merged commit c78a33b into main Mar 4, 2026
13 checks passed
@its-mash
its-mash deleted the chore/upgrade-rmcp-0.17.0 branch March 4, 2026 09:18
@its-mash
its-mash restored the chore/upgrade-rmcp-0.17.0 branch April 17, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant