You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -187,17 +187,18 @@ Each write fires `tools/list_changed` per-peer via the existing `MCPNotifier::no
187
187
- Server-level composition loads **all available** features for each effective `server_id` (not FS-partial tool subsets).
188
188
- Fixed pre-existing DashMap deadlock in `SessionRootsRegistry::record_resolution` (`get` guard must not overlap `insert` on the same map).
189
189
190
-
### Phase 2 — `mcpmux_list_servers` read tool
190
+
### Phase 2 — `mcpmux_list_servers` read tool ✅
191
191
192
-
**Effort:** 1 evening
192
+
**Effort:** 1 evening
193
+
**Completed:** May 19, 2026
193
194
194
-
-Add`ListServersTool`unit struct + `MetaTool` impl in `meta_tools/tools.rs`.
195
-
-Implementation: load `ServerFeature::list_for_space(caller_space_id)`, group by `server_id`, compute `tool_count = features.iter().filter(|f| f.feature_type == Tool).count()`, derive `status` per server by checking `binding`, `session_overrides.enabled`, `session_overrides.disabled` in order.
196
-
-JSON schema: empty `properties` (no args).
197
-
-Register in `build_default_registry` alongside the existing reads.
198
-
- Integration test: connect a fake session, call `mcpmux_list_servers`, assert response shape includes `status` enum values for both bound and unbound servers.
195
+
-[x]`ListServersTool` in `meta_tools/tools.rs` — groups `ServerFeature::list_for_space` by `server_id`, counts tools, derives status
0 commit comments