fastmcp/tests/server
nate nowack 2a2080c6c7
add independent client groups (#4904)
* feat(client): add experimental independent client groups

🤖 Generated with Pi

* refactor(client): narrow client group naming policy

🤖 Generated with Pi

* fix(client): avoid repeated discovery for unknown tools

🤖 Generated with Pi

* feat(client): expose client group tool routes

🤖 Generated with Pi

* docs(client): compare client and session groups

🤖 Generated with Pi

* docs(client): clarify modern session group gap

🤖 Generated with OpenAI Codex

* refactor(client): align client group call signatures with Client

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* docs(client): cross-link client groups from multi-server config docs

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* refactor(client): promote client group out of experimental

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* fix(client): harden client group invariants

Immutable membership, race-free group entry, and per-route connection checks so one dead server does not fail calls routed to healthy servers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* test(client): satisfy ty on immutable membership test

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* perf(client): connect group clients concurrently

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

* fix(client): refresh group catalog past client response caches

Explicit group.list_tools() now defaults to cache_mode='refresh' via a new cache_mode parameter on Client.list_tools, so a cache-hinted server cannot leave the documented refresh mechanism serving a stale catalog. Lazy cold-start discovery still allows cache hits.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DrQJXPeMepQgJay5xF91yE

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 21:21:48 -05:00
..
auth Bound CIMD cache growth (#4852) 2026-08-26 18:11:13 -04:00
http Remove obsolete Docket memory fixtures (#4912) 2026-08-27 11:08:04 -05:00
middleware fix(middleware): align response limits with output schemas (#4931) 2026-08-27 18:00:48 -05:00
mount Remove obsolete Docket memory fixtures (#4912) 2026-08-27 11:08:04 -05:00
providers Fix proxy forwarding of MCP transport headers (#4853) 2026-08-18 12:36:24 -04:00
telemetry feat: Add telemetry interop mode for FastMCP (#4046) 2026-07-27 16:05:29 -04:00
transforms fix: support Unicode tokens in BM25 search (#4889) 2026-08-24 14:14:47 -05:00
versioning Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
__init__.py restore 1.x code 2025-04-09 11:54:42 -04:00
test_app_state.py Update docs and test 2025-06-20 13:06:48 -04:00
test_auth_integration.py Migrate to MCP SDK v2.0.0b2 (httpx2) (#4503) 2026-07-18 15:12:47 -04:00
test_auth_integration_errors.py Migrate to MCP SDK v2.0.0b2 (httpx2) (#4503) 2026-07-18 15:12:47 -04:00
test_cache_hints.py Add server-level cache hints (SEP-2549) (#4464) 2026-07-08 09:10:41 -04:00
test_call_arguments.py Support CallArgument and Depends bindings from uncalled-for 0.4.0 (#4802) 2026-08-13 22:19:17 -05:00
test_completions.py Let a server answer argument-completion requests (#4582) 2026-07-21 12:26:24 -04:00
test_context.py Baseline tools-call-sampling; fix removal leftovers flagged by ruff 2026-07-26 15:07:24 -04:00
test_dependencies.py Remove obsolete Docket memory fixtures (#4912) 2026-08-27 11:08:04 -05:00
test_dependencies_advanced.py Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
test_event_store.py Serialize the event store's stream list read-modify-write (#4758) 2026-08-06 20:09:36 -04:00
test_extensions.py Implement SEP-2663 tasks extension: TasksExtension, poll-based task lifecycle 2026-07-21 23:00:38 -04:00
test_fastapi_testclient_compat.py fix: FastAPI TestClient compatibility and lifespan re-initialization (#3736) 2026-04-06 19:53:27 -04:00
test_file_server.py Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
test_icons.py Audit mode="legacy" pins in server tests and top-level stragglers 2026-07-20 16:00:27 -04:00
test_input_validation.py Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
test_legacy_httpx_errors.py Preserve legacy httpx compatibility without importing it (#4766) 2026-08-05 18:09:16 -04:00
test_log_level.py Allow pre-bound HTTP sockets (#4222) 2026-05-23 10:08:49 -04:00
test_logging.py Refactor server.py into mixins (#2939) 2026-01-19 11:36:00 -05:00
test_mrtr_guards.py Remove obsolete Docket memory fixtures (#4912) 2026-08-27 11:08:04 -05:00
test_mrtr_guards_components.py Format the split guard-components test module 2026-07-26 17:03:04 -04:00
test_pagination.py add independent client groups (#4904) 2026-08-27 21:21:48 -05:00
test_protocol_eras.py Move to the stable MCP Python SDK 2.0.0 (#4655) 2026-07-28 16:31:49 -04:00
test_providers.py Migrate to MCP Python SDK v2 (#4437) 2026-07-06 17:36:45 -04:00
test_server.py Repoint tests and examples off removed deprecations 2026-07-07 07:53:11 -04:00
test_server_docket.py Remove obsolete Docket memory fixtures (#4912) 2026-08-27 11:08:04 -05:00
test_server_lifespan.py Update ty ignore comments for 0.0.25 compatibility (#3614) 2026-03-24 20:26:26 -04:00
test_server_safety.py fix: reject self-mount to prevent infinite recursion (#3925) 2026-04-14 12:10:19 -04:00
test_session_provider.py Add stateless session state (UserSession / SessionId) (#4604) 2026-07-23 19:21:00 -04:00
test_session_visibility.py Audit mode="legacy" pins in server tests and top-level stragglers 2026-07-20 16:00:27 -04:00
test_sessions.py Add stateless session state (UserSession / SessionId) (#4604) 2026-07-23 19:21:00 -04:00
test_streamable_http_no_redirect.py Migrate to MCP SDK v2.0.0b2 (httpx2) (#4503) 2026-07-18 15:12:47 -04:00
test_tool_annotations.py Implement SEP-2663 tasks extension: TasksExtension, poll-based task lifecycle 2026-07-21 23:00:38 -04:00
test_tool_transformation.py Migrate to MCP SDK v2.0.0b2 (httpx2) (#4503) 2026-07-18 15:12:47 -04:00
test_transport.py Forward-port HTTP host guard compatibility (#4474) 2026-07-08 20:55:56 -04:00