mcp-use 1.3.11__py3-none-any.whl → 1.3.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mcp-use might be problematic. Click here for more details.

Files changed (101) hide show
  1. mcp_use/__init__.py +1 -1
  2. mcp_use/adapters/.deprecated +0 -0
  3. mcp_use/adapters/__init__.py +18 -7
  4. mcp_use/adapters/base.py +12 -185
  5. mcp_use/adapters/langchain_adapter.py +12 -264
  6. mcp_use/agents/adapters/__init__.py +10 -0
  7. mcp_use/agents/adapters/base.py +193 -0
  8. mcp_use/agents/adapters/langchain_adapter.py +228 -0
  9. mcp_use/agents/base.py +1 -1
  10. mcp_use/agents/managers/__init__.py +19 -0
  11. mcp_use/agents/managers/base.py +36 -0
  12. mcp_use/agents/managers/server_manager.py +131 -0
  13. mcp_use/agents/managers/tools/__init__.py +15 -0
  14. mcp_use/agents/managers/tools/base_tool.py +19 -0
  15. mcp_use/agents/managers/tools/connect_server.py +69 -0
  16. mcp_use/agents/managers/tools/disconnect_server.py +43 -0
  17. mcp_use/agents/managers/tools/get_active_server.py +29 -0
  18. mcp_use/agents/managers/tools/list_servers_tool.py +53 -0
  19. mcp_use/agents/managers/tools/search_tools.py +328 -0
  20. mcp_use/agents/mcpagent.py +88 -47
  21. mcp_use/agents/remote.py +168 -129
  22. mcp_use/auth/.deprecated +0 -0
  23. mcp_use/auth/__init__.py +19 -4
  24. mcp_use/auth/bearer.py +11 -12
  25. mcp_use/auth/oauth.py +11 -620
  26. mcp_use/auth/oauth_callback.py +16 -207
  27. mcp_use/client/__init__.py +1 -0
  28. mcp_use/client/auth/__init__.py +6 -0
  29. mcp_use/client/auth/bearer.py +23 -0
  30. mcp_use/client/auth/oauth.py +629 -0
  31. mcp_use/client/auth/oauth_callback.py +214 -0
  32. mcp_use/client/client.py +356 -0
  33. mcp_use/client/config.py +106 -0
  34. mcp_use/client/connectors/__init__.py +20 -0
  35. mcp_use/client/connectors/base.py +470 -0
  36. mcp_use/client/connectors/http.py +304 -0
  37. mcp_use/client/connectors/sandbox.py +332 -0
  38. mcp_use/client/connectors/stdio.py +109 -0
  39. mcp_use/client/connectors/utils.py +13 -0
  40. mcp_use/client/connectors/websocket.py +257 -0
  41. mcp_use/client/exceptions.py +31 -0
  42. mcp_use/client/middleware/__init__.py +50 -0
  43. mcp_use/client/middleware/logging.py +31 -0
  44. mcp_use/client/middleware/metrics.py +314 -0
  45. mcp_use/client/middleware/middleware.py +266 -0
  46. mcp_use/client/session.py +162 -0
  47. mcp_use/client/task_managers/__init__.py +20 -0
  48. mcp_use/client/task_managers/base.py +145 -0
  49. mcp_use/client/task_managers/sse.py +84 -0
  50. mcp_use/client/task_managers/stdio.py +69 -0
  51. mcp_use/client/task_managers/streamable_http.py +86 -0
  52. mcp_use/client/task_managers/websocket.py +68 -0
  53. mcp_use/client.py +12 -320
  54. mcp_use/config.py +20 -92
  55. mcp_use/connectors/.deprecated +0 -0
  56. mcp_use/connectors/__init__.py +46 -20
  57. mcp_use/connectors/base.py +12 -447
  58. mcp_use/connectors/http.py +13 -288
  59. mcp_use/connectors/sandbox.py +13 -297
  60. mcp_use/connectors/stdio.py +13 -96
  61. mcp_use/connectors/utils.py +15 -8
  62. mcp_use/connectors/websocket.py +13 -252
  63. mcp_use/exceptions.py +33 -18
  64. mcp_use/managers/.deprecated +0 -0
  65. mcp_use/managers/__init__.py +56 -17
  66. mcp_use/managers/base.py +13 -31
  67. mcp_use/managers/server_manager.py +13 -119
  68. mcp_use/managers/tools/__init__.py +45 -15
  69. mcp_use/managers/tools/base_tool.py +5 -16
  70. mcp_use/managers/tools/connect_server.py +5 -67
  71. mcp_use/managers/tools/disconnect_server.py +5 -41
  72. mcp_use/managers/tools/get_active_server.py +5 -26
  73. mcp_use/managers/tools/list_servers_tool.py +5 -51
  74. mcp_use/managers/tools/search_tools.py +17 -321
  75. mcp_use/middleware/.deprecated +0 -0
  76. mcp_use/middleware/__init__.py +89 -0
  77. mcp_use/middleware/logging.py +19 -0
  78. mcp_use/middleware/metrics.py +41 -0
  79. mcp_use/middleware/middleware.py +55 -0
  80. mcp_use/session.py +13 -149
  81. mcp_use/task_managers/.deprecated +0 -0
  82. mcp_use/task_managers/__init__.py +48 -20
  83. mcp_use/task_managers/base.py +13 -140
  84. mcp_use/task_managers/sse.py +13 -79
  85. mcp_use/task_managers/stdio.py +13 -64
  86. mcp_use/task_managers/streamable_http.py +15 -81
  87. mcp_use/task_managers/websocket.py +13 -63
  88. mcp_use/telemetry/events.py +58 -0
  89. mcp_use/telemetry/telemetry.py +71 -1
  90. mcp_use/types/.deprecated +0 -0
  91. mcp_use/types/sandbox.py +13 -18
  92. {mcp_use-1.3.11.dist-info → mcp_use-1.3.13.dist-info}/METADATA +66 -40
  93. mcp_use-1.3.13.dist-info/RECORD +109 -0
  94. mcp_use-1.3.11.dist-info/RECORD +0 -60
  95. mcp_use-1.3.11.dist-info/licenses/LICENSE +0 -21
  96. /mcp_use/{observability → agents/observability}/__init__.py +0 -0
  97. /mcp_use/{observability → agents/observability}/callbacks_manager.py +0 -0
  98. /mcp_use/{observability → agents/observability}/laminar.py +0 -0
  99. /mcp_use/{observability → agents/observability}/langfuse.py +0 -0
  100. {mcp_use-1.3.11.dist-info → mcp_use-1.3.13.dist-info}/WHEEL +0 -0
  101. {mcp_use-1.3.11.dist-info → mcp_use-1.3.13.dist-info}/entry_points.txt +0 -0
mcp_use/client.py CHANGED
@@ -1,326 +1,18 @@
1
- """
2
- Client for managing MCP servers and sessions.
3
-
4
- This module provides a high-level client that manages MCP servers, connectors,
5
- and sessions from configuration.
6
- """
7
-
8
- import json
1
+ # mcp_use/client.py
9
2
  import warnings
10
- from typing import Any
11
-
12
- from mcp.client.session import ElicitationFnT, LoggingFnT, MessageHandlerFnT, SamplingFnT
13
-
14
- from mcp_use.types.sandbox import SandboxOptions
15
-
16
- from .config import create_connector_from_config, load_config_file
17
- from .logging import logger
18
- from .session import MCPSession
19
-
20
-
21
- class MCPClient:
22
- """Client for managing MCP servers and sessions.
23
-
24
- This class provides a unified interface for working with MCP servers,
25
- handling configuration, connector creation, and session management.
26
- """
27
-
28
- def __init__(
29
- self,
30
- config: str | dict[str, Any] | None = None,
31
- allowed_servers: list[str] | None = None,
32
- sandbox: bool = False,
33
- sandbox_options: SandboxOptions | None = None,
34
- sampling_callback: SamplingFnT | None = None,
35
- elicitation_callback: ElicitationFnT | None = None,
36
- message_handler: MessageHandlerFnT | None = None,
37
- logging_callback: LoggingFnT | None = None,
38
- ) -> None:
39
- """Initialize a new MCP client.
40
-
41
- Args:
42
- config: Either a dict containing configuration or a path to a JSON config file.
43
- If None, an empty configuration is used.
44
- sandbox: Whether to use sandboxed execution mode for running MCP servers.
45
- sandbox_options: Optional sandbox configuration options.
46
- sampling_callback: Optional sampling callback function.
47
- """
48
- self.config: dict[str, Any] = {}
49
- self.allowed_servers: list[str] = allowed_servers
50
- self.sandbox = sandbox
51
- self.sandbox_options = sandbox_options
52
- self.sessions: dict[str, MCPSession] = {}
53
- self.active_sessions: list[str] = []
54
- self.sampling_callback = sampling_callback
55
- self.elicitation_callback = elicitation_callback
56
- self.message_handler = message_handler
57
- self.logging_callback = logging_callback
58
- # Load configuration if provided
59
- if config is not None:
60
- if isinstance(config, str):
61
- self.config = load_config_file(config)
62
- else:
63
- self.config = config
64
-
65
- @classmethod
66
- def from_dict(
67
- cls,
68
- config: dict[str, Any],
69
- sandbox: bool = False,
70
- sandbox_options: SandboxOptions | None = None,
71
- sampling_callback: SamplingFnT | None = None,
72
- elicitation_callback: ElicitationFnT | None = None,
73
- message_handler: MessageHandlerFnT | None = None,
74
- logging_callback: LoggingFnT | None = None,
75
- ) -> "MCPClient":
76
- """Create a MCPClient from a dictionary.
77
-
78
- Args:
79
- config: The configuration dictionary.
80
- sandbox: Whether to use sandboxed execution mode for running MCP servers.
81
- sandbox_options: Optional sandbox configuration options.
82
- sampling_callback: Optional sampling callback function.
83
- elicitation_callback: Optional elicitation callback function.
84
- """
85
- return cls(
86
- config=config,
87
- sandbox=sandbox,
88
- sandbox_options=sandbox_options,
89
- sampling_callback=sampling_callback,
90
- elicitation_callback=elicitation_callback,
91
- message_handler=message_handler,
92
- logging_callback=logging_callback,
93
- )
94
-
95
- @classmethod
96
- def from_config_file(
97
- cls,
98
- filepath: str,
99
- sandbox: bool = False,
100
- sandbox_options: SandboxOptions | None = None,
101
- sampling_callback: SamplingFnT | None = None,
102
- elicitation_callback: ElicitationFnT | None = None,
103
- message_handler: MessageHandlerFnT | None = None,
104
- logging_callback: LoggingFnT | None = None,
105
- ) -> "MCPClient":
106
- """Create a MCPClient from a configuration file.
107
-
108
- Args:
109
- filepath: The path to the configuration file.
110
- sandbox: Whether to use sandboxed execution mode for running MCP servers.
111
- sandbox_options: Optional sandbox configuration options.
112
- sampling_callback: Optional sampling callback function.
113
- elicitation_callback: Optional elicitation callback function.
114
- """
115
- return cls(
116
- config=load_config_file(filepath),
117
- sandbox=sandbox,
118
- sandbox_options=sandbox_options,
119
- sampling_callback=sampling_callback,
120
- elicitation_callback=elicitation_callback,
121
- message_handler=message_handler,
122
- logging_callback=logging_callback,
123
- )
124
-
125
- def add_server(
126
- self,
127
- name: str,
128
- server_config: dict[str, Any],
129
- ) -> None:
130
- """Add a server configuration.
131
-
132
- Args:
133
- name: The name to identify this server.
134
- server_config: The server configuration.
135
- """
136
- if "mcpServers" not in self.config:
137
- self.config["mcpServers"] = {}
138
-
139
- self.config["mcpServers"][name] = server_config
140
-
141
- def remove_server(self, name: str) -> None:
142
- """Remove a server configuration.
143
-
144
- Args:
145
- name: The name of the server to remove.
146
- """
147
- if "mcpServers" in self.config and name in self.config["mcpServers"]:
148
- del self.config["mcpServers"][name]
149
-
150
- # If we removed an active session, remove it from active_sessions
151
- if name in self.active_sessions:
152
- self.active_sessions.remove(name)
153
-
154
- def get_server_names(self) -> list[str]:
155
- """Get the list of configured server names.
156
-
157
- Returns:
158
- List of server names.
159
- """
160
- return list(self.config.get("mcpServers", {}).keys())
161
-
162
- def save_config(self, filepath: str) -> None:
163
- """Save the current configuration to a file.
164
-
165
- Args:
166
- filepath: The path to save the configuration to.
167
- """
168
- with open(filepath, "w") as f:
169
- json.dump(self.config, f, indent=2)
170
-
171
- async def create_session(self, server_name: str, auto_initialize: bool = True) -> MCPSession:
172
- """Create a session for the specified server.
173
-
174
- Args:
175
- server_name: The name of the server to create a session for.
176
- auto_initialize: Whether to automatically initialize the session.
177
-
178
- Returns:
179
- The created MCPSession.
180
-
181
- Raises:
182
- ValueError: If the specified server doesn't exist.
183
- """
184
- # Get server config
185
- servers = self.config.get("mcpServers", {})
186
- if not servers:
187
- warnings.warn("No MCP servers defined in config", UserWarning, stacklevel=2)
188
- return None
189
-
190
- if server_name not in servers:
191
- raise ValueError(f"Server '{server_name}' not found in config")
192
-
193
- server_config = servers[server_name]
194
-
195
- # Create connector with options and client-level auth
196
- connector = create_connector_from_config(
197
- server_config,
198
- sandbox=self.sandbox,
199
- sandbox_options=self.sandbox_options,
200
- sampling_callback=self.sampling_callback,
201
- elicitation_callback=self.elicitation_callback,
202
- message_handler=self.message_handler,
203
- logging_callback=self.logging_callback,
204
- )
205
-
206
- # Create the session
207
- session = MCPSession(connector)
208
- if auto_initialize:
209
- await session.initialize()
210
- self.sessions[server_name] = session
211
-
212
- # Add to active sessions
213
- if server_name not in self.active_sessions:
214
- self.active_sessions.append(server_name)
215
-
216
- return session
217
-
218
- async def create_all_sessions(
219
- self,
220
- auto_initialize: bool = True,
221
- ) -> dict[str, MCPSession]:
222
- """Create sessions for all configured servers.
223
-
224
- Args:
225
- auto_initialize: Whether to automatically initialize the sessions.
226
-
227
- Returns:
228
- Dictionary mapping server names to their MCPSession instances.
229
-
230
- Warns:
231
- UserWarning: If no servers are configured.
232
- """
233
- # Get server config
234
- servers = self.config.get("mcpServers", {})
235
- if not servers:
236
- warnings.warn("No MCP servers defined in config", UserWarning, stacklevel=2)
237
- return {}
238
-
239
- # Create sessions only for allowed servers if applicable else create for all servers
240
- for name in servers:
241
- if self.allowed_servers is None or name in self.allowed_servers:
242
- await self.create_session(name, auto_initialize)
243
-
244
- return self.sessions
245
-
246
- def get_session(self, server_name: str) -> MCPSession:
247
- """Get an existing session.
248
-
249
- Args:
250
- server_name: The name of the server to get the session for.
251
- If None, uses the first active session.
252
-
253
- Returns:
254
- The MCPSession for the specified server.
255
-
256
- Raises:
257
- ValueError: If no active sessions exist or the specified session doesn't exist.
258
- """
259
- if server_name not in self.sessions:
260
- raise ValueError(f"No session exists for server '{server_name}'")
261
-
262
- return self.sessions[server_name]
263
-
264
- def get_all_active_sessions(self) -> dict[str, MCPSession]:
265
- """Get all active sessions.
266
-
267
- Returns:
268
- Dictionary mapping server names to their MCPSession instances.
269
- """
270
- return {name: self.sessions[name] for name in self.active_sessions if name in self.sessions}
271
-
272
- async def close_session(self, server_name: str) -> None:
273
- """Close a session.
274
-
275
- Args:
276
- server_name: The name of the server to close the session for.
277
- If None, uses the first active session.
278
-
279
- Raises:
280
- ValueError: If no active sessions exist or the specified session doesn't exist.
281
- """
282
- # Check if the session exists
283
- if server_name not in self.sessions:
284
- logger.warning(f"No session exists for server '{server_name}', nothing to close")
285
- return
286
-
287
- # Get the session
288
- session = self.sessions[server_name]
289
-
290
- try:
291
- # Disconnect from the session
292
- logger.debug(f"Closing session for server '{server_name}'")
293
- await session.disconnect()
294
- except Exception as e:
295
- logger.error(f"Error closing session for server '{server_name}': {e}")
296
- finally:
297
- # Remove the session regardless of whether disconnect succeeded
298
- del self.sessions[server_name]
299
3
 
300
- # Remove from active_sessions
301
- if server_name in self.active_sessions:
302
- self.active_sessions.remove(server_name)
4
+ from typing_extensions import deprecated
303
5
 
304
- async def close_all_sessions(self) -> None:
305
- """Close all active sessions.
6
+ from mcp_use.client.client import MCPClient as _MCPClient
306
7
 
307
- This method ensures all sessions are closed even if some fail.
308
- """
309
- # Get a list of all session names first to avoid modification during iteration
310
- server_names = list(self.sessions.keys())
311
- errors = []
8
+ warnings.warn(
9
+ "mcp_use.client.MCPClient is deprecated. "
10
+ "Use mcp_use.client.client.MCPClient. "
11
+ "This import will be removed in version 1.4.0",
12
+ DeprecationWarning,
13
+ stacklevel=2,
14
+ )
312
15
 
313
- for server_name in server_names:
314
- try:
315
- logger.debug(f"Closing session for server '{server_name}'")
316
- await self.close_session(server_name)
317
- except Exception as e:
318
- error_msg = f"Failed to close session for server '{server_name}': {e}"
319
- logger.error(error_msg)
320
- errors.append(error_msg)
321
16
 
322
- # Log summary if there were errors
323
- if errors:
324
- logger.error(f"Encountered {len(errors)} errors while closing sessions")
325
- else:
326
- logger.debug("All sessions closed successfully")
17
+ @deprecated("Use mcp_use.client.client.MCPClient")
18
+ class MCPClient(_MCPClient): ...
mcp_use/config.py CHANGED
@@ -1,99 +1,27 @@
1
- """
2
- Configuration loader for MCP session.
1
+ # mcp_use/config.py
2
+ import warnings
3
3
 
4
- This module provides functionality to load MCP configuration from JSON files.
5
- """
4
+ from typing_extensions import deprecated
6
5
 
7
- import json
8
- from typing import Any
6
+ from mcp_use.client.config import (
7
+ create_connector_from_config as _create_connector_from_config,
8
+ )
9
+ from mcp_use.client.config import (
10
+ load_config_file as _load_config_file,
11
+ )
9
12
 
10
- from mcp.client.session import ElicitationFnT, LoggingFnT, MessageHandlerFnT, SamplingFnT
13
+ warnings.warn(
14
+ "mcp_use.config is deprecated. Use mcp_use.client.config. This import will be removed in version 1.4.0",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
11
18
 
12
- from mcp_use.types.sandbox import SandboxOptions
13
19
 
14
- from .connectors import BaseConnector, HttpConnector, SandboxConnector, StdioConnector, WebSocketConnector
15
- from .connectors.utils import is_stdio_server
20
+ @deprecated("Use mcp_use.client.config.load_config_file")
21
+ def load_config_file(*args, **kwargs):
22
+ return _load_config_file(*args, **kwargs)
16
23
 
17
24
 
18
- def load_config_file(filepath: str) -> dict[str, Any]:
19
- """Load a configuration file.
20
-
21
- Args:
22
- filepath: Path to the configuration file
23
-
24
- Returns:
25
- The parsed configuration
26
- """
27
- with open(filepath) as f:
28
- return json.load(f)
29
-
30
-
31
- def create_connector_from_config(
32
- server_config: dict[str, Any],
33
- sandbox: bool = False,
34
- sandbox_options: SandboxOptions | None = None,
35
- sampling_callback: SamplingFnT | None = None,
36
- elicitation_callback: ElicitationFnT | None = None,
37
- message_handler: MessageHandlerFnT | None = None,
38
- logging_callback: LoggingFnT | None = None,
39
- ) -> BaseConnector:
40
- """Create a connector based on server configuration.
41
- This function can be called with just the server_config parameter:
42
- create_connector_from_config(server_config)
43
- Args:
44
- server_config: The server configuration section
45
- sandbox: Whether to use sandboxed execution mode for running MCP servers.
46
- sandbox_options: Optional sandbox configuration options.
47
- sampling_callback: Optional sampling callback function.
48
- Returns:
49
- A configured connector instance
50
- """
51
-
52
- # Stdio connector (command-based)
53
- if is_stdio_server(server_config) and not sandbox:
54
- return StdioConnector(
55
- command=server_config["command"],
56
- args=server_config["args"],
57
- env=server_config.get("env", None),
58
- sampling_callback=sampling_callback,
59
- elicitation_callback=elicitation_callback,
60
- message_handler=message_handler,
61
- logging_callback=logging_callback,
62
- )
63
-
64
- # Sandboxed connector
65
- elif is_stdio_server(server_config) and sandbox:
66
- return SandboxConnector(
67
- command=server_config["command"],
68
- args=server_config["args"],
69
- env=server_config.get("env", None),
70
- e2b_options=sandbox_options,
71
- sampling_callback=sampling_callback,
72
- elicitation_callback=elicitation_callback,
73
- message_handler=message_handler,
74
- logging_callback=logging_callback,
75
- )
76
-
77
- # HTTP connector
78
- elif "url" in server_config:
79
- return HttpConnector(
80
- base_url=server_config["url"],
81
- headers=server_config.get("headers", None),
82
- auth=server_config.get("auth", {}),
83
- timeout=server_config.get("timeout", 5),
84
- sse_read_timeout=server_config.get("sse_read_timeout", 60 * 5),
85
- sampling_callback=sampling_callback,
86
- elicitation_callback=elicitation_callback,
87
- message_handler=message_handler,
88
- logging_callback=logging_callback,
89
- )
90
-
91
- # WebSocket connector
92
- elif "ws_url" in server_config:
93
- return WebSocketConnector(
94
- url=server_config["ws_url"],
95
- headers=server_config.get("headers", None),
96
- auth=server_config.get("auth", {}),
97
- )
98
-
99
- raise ValueError("Cannot determine connector type from config")
25
+ @deprecated("Use mcp_use.client.config.create_connector_from_config")
26
+ def create_connector_from_config(*args, **kwargs):
27
+ return _create_connector_from_config(*args, **kwargs)
File without changes
@@ -1,20 +1,46 @@
1
- """
2
- Connectors for various MCP transports.
3
-
4
- This module provides interfaces for connecting to MCP implementations
5
- through different transport mechanisms.
6
- """
7
-
8
- from .base import BaseConnector # noqa: F401
9
- from .http import HttpConnector # noqa: F401
10
- from .sandbox import SandboxConnector # noqa: F401
11
- from .stdio import StdioConnector # noqa: F401
12
- from .websocket import WebSocketConnector # noqa: F401
13
-
14
- __all__ = [
15
- "BaseConnector",
16
- "StdioConnector",
17
- "HttpConnector",
18
- "WebSocketConnector",
19
- "SandboxConnector",
20
- ]
1
+ # mcp_use/connectors/__init__.py
2
+ import warnings
3
+
4
+ from typing_extensions import deprecated
5
+
6
+ from mcp_use.client.connectors import (
7
+ BaseConnector as _BaseConnector,
8
+ )
9
+ from mcp_use.client.connectors import (
10
+ HttpConnector as _HttpConnector,
11
+ )
12
+ from mcp_use.client.connectors import (
13
+ SandboxConnector as _SandboxConnector,
14
+ )
15
+ from mcp_use.client.connectors import (
16
+ StdioConnector as _StdioConnector,
17
+ )
18
+ from mcp_use.client.connectors import (
19
+ WebSocketConnector as _WebSocketConnector,
20
+ )
21
+
22
+ warnings.warn(
23
+ "mcp_use.connectors is deprecated. Use mcp_use.client.connectors. This import will be removed in version 1.4.0",
24
+ DeprecationWarning,
25
+ stacklevel=2,
26
+ )
27
+
28
+
29
+ @deprecated("Use mcp_use.client.connectors.BaseConnector")
30
+ class BaseConnector(_BaseConnector): ...
31
+
32
+
33
+ @deprecated("Use mcp_use.client.connectors.StdioConnector")
34
+ class StdioConnector(_StdioConnector): ...
35
+
36
+
37
+ @deprecated("Use mcp_use.client.connectors.HttpConnector")
38
+ class HttpConnector(_HttpConnector): ...
39
+
40
+
41
+ @deprecated("Use mcp_use.client.connectors.WebSocketConnector")
42
+ class WebSocketConnector(_WebSocketConnector): ...
43
+
44
+
45
+ @deprecated("Use mcp_use.client.connectors.SandboxConnector")
46
+ class SandboxConnector(_SandboxConnector): ...