mcp-use 1.3.12__py3-none-any.whl → 1.4.0__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.
- mcp_use/__init__.py +1 -1
- mcp_use/adapters/.deprecated +0 -0
- mcp_use/adapters/__init__.py +18 -7
- mcp_use/adapters/base.py +12 -185
- mcp_use/adapters/langchain_adapter.py +12 -219
- mcp_use/agents/adapters/__init__.py +17 -0
- mcp_use/agents/adapters/anthropic.py +93 -0
- mcp_use/agents/adapters/base.py +316 -0
- mcp_use/agents/adapters/google.py +103 -0
- mcp_use/agents/adapters/langchain_adapter.py +212 -0
- mcp_use/agents/adapters/openai.py +111 -0
- mcp_use/agents/base.py +1 -1
- mcp_use/agents/managers/__init__.py +19 -0
- mcp_use/agents/managers/base.py +36 -0
- mcp_use/agents/managers/server_manager.py +131 -0
- mcp_use/agents/managers/tools/__init__.py +15 -0
- mcp_use/agents/managers/tools/base_tool.py +19 -0
- mcp_use/agents/managers/tools/connect_server.py +69 -0
- mcp_use/agents/managers/tools/disconnect_server.py +43 -0
- mcp_use/agents/managers/tools/get_active_server.py +29 -0
- mcp_use/agents/managers/tools/list_servers_tool.py +53 -0
- mcp_use/agents/managers/tools/search_tools.py +328 -0
- mcp_use/agents/mcpagent.py +386 -485
- mcp_use/agents/prompts/system_prompt_builder.py +1 -1
- mcp_use/agents/remote.py +15 -2
- mcp_use/auth/.deprecated +0 -0
- mcp_use/auth/__init__.py +19 -4
- mcp_use/auth/bearer.py +11 -12
- mcp_use/auth/oauth.py +11 -620
- mcp_use/auth/oauth_callback.py +16 -207
- mcp_use/client/__init__.py +1 -0
- mcp_use/client/auth/__init__.py +6 -0
- mcp_use/client/auth/bearer.py +23 -0
- mcp_use/client/auth/oauth.py +629 -0
- mcp_use/client/auth/oauth_callback.py +215 -0
- mcp_use/client/client.py +356 -0
- mcp_use/client/config.py +106 -0
- mcp_use/client/connectors/__init__.py +20 -0
- mcp_use/client/connectors/base.py +470 -0
- mcp_use/client/connectors/http.py +304 -0
- mcp_use/client/connectors/sandbox.py +332 -0
- mcp_use/client/connectors/stdio.py +109 -0
- mcp_use/client/connectors/utils.py +13 -0
- mcp_use/client/connectors/websocket.py +257 -0
- mcp_use/client/exceptions.py +31 -0
- mcp_use/client/middleware/__init__.py +50 -0
- mcp_use/client/middleware/logging.py +31 -0
- mcp_use/client/middleware/metrics.py +314 -0
- mcp_use/client/middleware/middleware.py +266 -0
- mcp_use/client/session.py +162 -0
- mcp_use/client/task_managers/__init__.py +20 -0
- mcp_use/client/task_managers/base.py +145 -0
- mcp_use/client/task_managers/sse.py +84 -0
- mcp_use/client/task_managers/stdio.py +69 -0
- mcp_use/client/task_managers/streamable_http.py +86 -0
- mcp_use/client/task_managers/websocket.py +68 -0
- mcp_use/client.py +12 -344
- mcp_use/config.py +20 -97
- mcp_use/connectors/.deprecated +0 -0
- mcp_use/connectors/__init__.py +46 -20
- mcp_use/connectors/base.py +12 -455
- mcp_use/connectors/http.py +13 -300
- mcp_use/connectors/sandbox.py +13 -306
- mcp_use/connectors/stdio.py +13 -104
- mcp_use/connectors/utils.py +15 -8
- mcp_use/connectors/websocket.py +13 -252
- mcp_use/exceptions.py +33 -18
- mcp_use/logging.py +1 -1
- mcp_use/managers/.deprecated +0 -0
- mcp_use/managers/__init__.py +56 -17
- mcp_use/managers/base.py +13 -31
- mcp_use/managers/server_manager.py +13 -119
- mcp_use/managers/tools/__init__.py +45 -15
- mcp_use/managers/tools/base_tool.py +5 -16
- mcp_use/managers/tools/connect_server.py +5 -67
- mcp_use/managers/tools/disconnect_server.py +5 -41
- mcp_use/managers/tools/get_active_server.py +5 -26
- mcp_use/managers/tools/list_servers_tool.py +5 -51
- mcp_use/managers/tools/search_tools.py +17 -321
- mcp_use/middleware/.deprecated +0 -0
- mcp_use/middleware/__init__.py +89 -50
- mcp_use/middleware/logging.py +14 -26
- mcp_use/middleware/metrics.py +30 -303
- mcp_use/middleware/middleware.py +39 -246
- mcp_use/session.py +13 -149
- mcp_use/task_managers/.deprecated +0 -0
- mcp_use/task_managers/__init__.py +48 -20
- mcp_use/task_managers/base.py +13 -140
- mcp_use/task_managers/sse.py +13 -79
- mcp_use/task_managers/stdio.py +13 -64
- mcp_use/task_managers/streamable_http.py +15 -81
- mcp_use/task_managers/websocket.py +13 -63
- mcp_use/telemetry/events.py +58 -0
- mcp_use/telemetry/telemetry.py +71 -1
- mcp_use/telemetry/utils.py +1 -1
- mcp_use/types/.deprecated +0 -0
- mcp_use/types/sandbox.py +13 -18
- {mcp_use-1.3.12.dist-info → mcp_use-1.4.0.dist-info}/METADATA +68 -43
- mcp_use-1.4.0.dist-info/RECORD +111 -0
- mcp_use/cli.py +0 -581
- mcp_use-1.3.12.dist-info/RECORD +0 -64
- mcp_use-1.3.12.dist-info/licenses/LICENSE +0 -21
- /mcp_use/{observability → agents/observability}/__init__.py +0 -0
- /mcp_use/{observability → agents/observability}/callbacks_manager.py +0 -0
- /mcp_use/{observability → agents/observability}/laminar.py +0 -0
- /mcp_use/{observability → agents/observability}/langfuse.py +0 -0
- {mcp_use-1.3.12.dist-info → mcp_use-1.4.0.dist-info}/WHEEL +0 -0
- {mcp_use-1.3.12.dist-info → mcp_use-1.4.0.dist-info}/entry_points.txt +0 -0
|
@@ -1,68 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# mcp_use/task_managers/websocket.py
|
|
2
|
+
import warnings
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
"""
|
|
4
|
+
from typing_extensions import deprecated
|
|
6
5
|
|
|
7
|
-
from
|
|
6
|
+
from mcp_use.client.task_managers.websocket import WebSocketConnectionManager as _WebSocketConnectionManager
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
warnings.warn(
|
|
9
|
+
"mcp_use.task_managers.websocket is deprecated. "
|
|
10
|
+
"Use mcp_use.client.task_managers.websocket. "
|
|
11
|
+
"This import will be removed in version 1.4.0",
|
|
12
|
+
DeprecationWarning,
|
|
13
|
+
stacklevel=2,
|
|
14
|
+
)
|
|
10
15
|
|
|
11
|
-
from ..logging import logger
|
|
12
|
-
from .base import ConnectionManager
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
class WebSocketConnectionManager(
|
|
16
|
-
"""Connection manager for WebSocket-based MCP connections.
|
|
17
|
-
|
|
18
|
-
This class handles the lifecycle of WebSocket connections, ensuring proper
|
|
19
|
-
connection establishment and cleanup.
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
def __init__(
|
|
23
|
-
self,
|
|
24
|
-
url: str,
|
|
25
|
-
headers: dict[str, str] | None = None,
|
|
26
|
-
):
|
|
27
|
-
"""Initialize a new WebSocket connection manager.
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
url: The WebSocket URL to connect to
|
|
31
|
-
headers: Optional HTTP headers
|
|
32
|
-
"""
|
|
33
|
-
super().__init__()
|
|
34
|
-
self.url = url
|
|
35
|
-
self.headers = headers or {}
|
|
36
|
-
|
|
37
|
-
async def _establish_connection(self) -> tuple[Any, Any]:
|
|
38
|
-
"""Establish a WebSocket connection.
|
|
39
|
-
|
|
40
|
-
Returns:
|
|
41
|
-
The established WebSocket connection
|
|
42
|
-
|
|
43
|
-
Raises:
|
|
44
|
-
Exception: If connection cannot be established
|
|
45
|
-
"""
|
|
46
|
-
logger.debug(f"Connecting to WebSocket: {self.url}")
|
|
47
|
-
# Create the context manager
|
|
48
|
-
# Note: The current MCP websocket_client implementation doesn't support headers
|
|
49
|
-
# If headers need to be passed, this would need to be updated when MCP supports it
|
|
50
|
-
self._ws_ctx = websocket_client(self.url)
|
|
51
|
-
|
|
52
|
-
# Enter the context manager
|
|
53
|
-
read_stream, write_stream = await self._ws_ctx.__aenter__()
|
|
54
|
-
|
|
55
|
-
# Return the streams
|
|
56
|
-
return (read_stream, write_stream)
|
|
57
|
-
|
|
58
|
-
async def _close_connection(self) -> None:
|
|
59
|
-
"""Close the WebSocket connection."""
|
|
60
|
-
if self._ws_ctx:
|
|
61
|
-
# Exit the context manager
|
|
62
|
-
try:
|
|
63
|
-
logger.debug("Closing WebSocket connection")
|
|
64
|
-
await self._ws_ctx.__aexit__(None, None, None)
|
|
65
|
-
except Exception as e:
|
|
66
|
-
logger.warning(f"Error closing WebSocket connection: {e}")
|
|
67
|
-
finally:
|
|
68
|
-
self._ws_ctx = None
|
|
17
|
+
@deprecated("Use mcp_use.client.task_managers.websocket.WebSocketConnectionManager")
|
|
18
|
+
class WebSocketConnectionManager(_WebSocketConnectionManager): ...
|
mcp_use/telemetry/events.py
CHANGED
|
@@ -91,3 +91,61 @@ class MCPAgentExecutionEvent(BaseTelemetryEvent):
|
|
|
91
91
|
"error_type": self.error_type,
|
|
92
92
|
"conversation_history_length": self.conversation_history_length,
|
|
93
93
|
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@dataclass
|
|
97
|
+
class FeatureUsageEvent(BaseTelemetryEvent):
|
|
98
|
+
"""Event for tracking feature usage across the library"""
|
|
99
|
+
|
|
100
|
+
feature_name: str
|
|
101
|
+
class_name: str
|
|
102
|
+
method_name: str
|
|
103
|
+
success: bool
|
|
104
|
+
execution_time_ms: int | None = None
|
|
105
|
+
error_type: str | None = None
|
|
106
|
+
additional_properties: dict[str, Any] | None = None
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def name(self) -> str:
|
|
110
|
+
return "feature_usage"
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def properties(self) -> dict[str, Any]:
|
|
114
|
+
props = {
|
|
115
|
+
"feature_name": self.feature_name,
|
|
116
|
+
"class_name": self.class_name,
|
|
117
|
+
"method_name": self.method_name,
|
|
118
|
+
"success": self.success,
|
|
119
|
+
"execution_time_ms": self.execution_time_ms,
|
|
120
|
+
"error_type": self.error_type,
|
|
121
|
+
}
|
|
122
|
+
if self.additional_properties:
|
|
123
|
+
props.update(self.additional_properties)
|
|
124
|
+
return props
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@dataclass
|
|
128
|
+
class CLICommandEvent(BaseTelemetryEvent):
|
|
129
|
+
"""Event for tracking CLI command usage"""
|
|
130
|
+
|
|
131
|
+
command: str
|
|
132
|
+
success: bool
|
|
133
|
+
execution_time_ms: int | None = None
|
|
134
|
+
error_type: str | None = None
|
|
135
|
+
additional_properties: dict[str, Any] | None = None
|
|
136
|
+
|
|
137
|
+
@property
|
|
138
|
+
def name(self) -> str:
|
|
139
|
+
return "cli_command"
|
|
140
|
+
|
|
141
|
+
@property
|
|
142
|
+
def properties(self) -> dict[str, Any]:
|
|
143
|
+
props = {
|
|
144
|
+
"command": self.command,
|
|
145
|
+
"success": self.success,
|
|
146
|
+
"execution_time_ms": self.execution_time_ms,
|
|
147
|
+
"error_type": self.error_type,
|
|
148
|
+
}
|
|
149
|
+
if self.additional_properties:
|
|
150
|
+
props.update(self.additional_properties)
|
|
151
|
+
return props
|
mcp_use/telemetry/telemetry.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
3
|
import platform
|
|
4
|
+
import time
|
|
4
5
|
import uuid
|
|
5
6
|
from collections.abc import Callable
|
|
6
7
|
from functools import wraps
|
|
@@ -11,7 +12,7 @@ from posthog import Posthog
|
|
|
11
12
|
from scarf import ScarfEventLogger
|
|
12
13
|
|
|
13
14
|
from mcp_use.logging import MCP_USE_DEBUG
|
|
14
|
-
from mcp_use.telemetry.events import BaseTelemetryEvent, MCPAgentExecutionEvent
|
|
15
|
+
from mcp_use.telemetry.events import BaseTelemetryEvent, FeatureUsageEvent, MCPAgentExecutionEvent
|
|
15
16
|
from mcp_use.telemetry.utils import get_package_version
|
|
16
17
|
from mcp_use.utils import singleton
|
|
17
18
|
|
|
@@ -30,6 +31,52 @@ def requires_telemetry(func: Callable) -> Callable:
|
|
|
30
31
|
return wrapper
|
|
31
32
|
|
|
32
33
|
|
|
34
|
+
def telemetry(feature_name: str, additional_properties: dict[str, Any] | None = None):
|
|
35
|
+
"""Decorator to automatically track feature usage"""
|
|
36
|
+
|
|
37
|
+
def decorator(func: Callable) -> Callable:
|
|
38
|
+
@wraps(func)
|
|
39
|
+
def wrapper(self, *args, **kwargs):
|
|
40
|
+
start_time = time.time()
|
|
41
|
+
success = True
|
|
42
|
+
error_type = None
|
|
43
|
+
|
|
44
|
+
try:
|
|
45
|
+
result = func(self, *args, **kwargs)
|
|
46
|
+
return result
|
|
47
|
+
except Exception as e:
|
|
48
|
+
success = False
|
|
49
|
+
error_type = type(e).__name__
|
|
50
|
+
raise
|
|
51
|
+
finally:
|
|
52
|
+
execution_time_ms = int((time.time() - start_time) * 1000)
|
|
53
|
+
|
|
54
|
+
# Get telemetry instance (try common patterns)
|
|
55
|
+
telemetry = None
|
|
56
|
+
if hasattr(self, "telemetry"):
|
|
57
|
+
telemetry = self.telemetry
|
|
58
|
+
elif hasattr(self, "_telemetry"):
|
|
59
|
+
telemetry = self._telemetry
|
|
60
|
+
else:
|
|
61
|
+
# Fallback to singleton instance
|
|
62
|
+
telemetry = Telemetry()
|
|
63
|
+
|
|
64
|
+
if telemetry:
|
|
65
|
+
telemetry.telemetry(
|
|
66
|
+
feature_name=feature_name,
|
|
67
|
+
class_name=self.__class__.__name__,
|
|
68
|
+
method_name=func.__name__,
|
|
69
|
+
success=success,
|
|
70
|
+
execution_time_ms=execution_time_ms,
|
|
71
|
+
error_type=error_type,
|
|
72
|
+
additional_properties=additional_properties,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
return wrapper
|
|
76
|
+
|
|
77
|
+
return decorator
|
|
78
|
+
|
|
79
|
+
|
|
33
80
|
def get_cache_home() -> Path:
|
|
34
81
|
"""Get platform-appropriate cache directory."""
|
|
35
82
|
# XDG_CACHE_HOME for Linux and manually set envs
|
|
@@ -272,6 +319,29 @@ class Telemetry:
|
|
|
272
319
|
)
|
|
273
320
|
self.capture(event)
|
|
274
321
|
|
|
322
|
+
@requires_telemetry
|
|
323
|
+
def telemetry(
|
|
324
|
+
self,
|
|
325
|
+
feature_name: str,
|
|
326
|
+
class_name: str,
|
|
327
|
+
method_name: str,
|
|
328
|
+
success: bool,
|
|
329
|
+
execution_time_ms: int | None = None,
|
|
330
|
+
error_type: str | None = None,
|
|
331
|
+
additional_properties: dict[str, Any] | None = None,
|
|
332
|
+
) -> None:
|
|
333
|
+
"""Track feature usage across the library"""
|
|
334
|
+
event = FeatureUsageEvent(
|
|
335
|
+
feature_name=feature_name,
|
|
336
|
+
class_name=class_name,
|
|
337
|
+
method_name=method_name,
|
|
338
|
+
success=success,
|
|
339
|
+
execution_time_ms=execution_time_ms,
|
|
340
|
+
error_type=error_type,
|
|
341
|
+
additional_properties=additional_properties,
|
|
342
|
+
)
|
|
343
|
+
self.capture(event)
|
|
344
|
+
|
|
275
345
|
@requires_telemetry
|
|
276
346
|
def flush(self) -> None:
|
|
277
347
|
"""Flush any queued telemetry events"""
|
mcp_use/telemetry/utils.py
CHANGED
|
File without changes
|
mcp_use/types/sandbox.py
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
# mcp_use/types/sandbox.py
|
|
2
|
+
import warnings
|
|
2
3
|
|
|
3
|
-
from
|
|
4
|
+
from typing_extensions import deprecated
|
|
4
5
|
|
|
6
|
+
from mcp_use.client.connectors.sandbox import SandboxOptions as _SandboxOptions
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
"
|
|
8
|
+
warnings.warn(
|
|
9
|
+
"mcp_use.types.sandbox is deprecated. "
|
|
10
|
+
"Use mcp_use.client.connectors.sandbox. "
|
|
11
|
+
"This import will be removed in version 1.4.0",
|
|
12
|
+
DeprecationWarning,
|
|
13
|
+
stacklevel=2,
|
|
14
|
+
)
|
|
8
15
|
|
|
9
|
-
This type defines the configuration options available when running
|
|
10
|
-
MCP servers in a sandboxed environment (e.g., using E2B).
|
|
11
|
-
"""
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
If not provided, will use E2B_API_KEY environment variable."""
|
|
16
|
-
|
|
17
|
-
sandbox_template_id: NotRequired[str]
|
|
18
|
-
"""Template ID for the sandbox environment.
|
|
19
|
-
Default: 'base'"""
|
|
20
|
-
|
|
21
|
-
supergateway_command: NotRequired[str]
|
|
22
|
-
"""Command to run supergateway.
|
|
23
|
-
Default: 'npx -y supergateway'"""
|
|
17
|
+
@deprecated("Use mcp_use.client.connectors.sandbox.SandboxOptions")
|
|
18
|
+
class SandboxOptions(_SandboxOptions): ...
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-use
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.4.0
|
|
4
4
|
Summary: MCP Library for LLMs
|
|
5
|
-
Author-email: Pietro Zullo <pietro.zullo@gmail.com>
|
|
5
|
+
Author-email: "mcp-use, Inc." <dev@mcp-use.io>, Pietro Zullo <pietro.zullo@gmail.com>
|
|
6
6
|
License: MIT
|
|
7
|
-
License-File: LICENSE
|
|
8
7
|
Classifier: Development Status :: 3 - Alpha
|
|
9
8
|
Classifier: Intended Audience :: Developers
|
|
10
9
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -17,7 +16,8 @@ Requires-Python: >=3.11
|
|
|
17
16
|
Requires-Dist: aiohttp>=3.9.0
|
|
18
17
|
Requires-Dist: authlib>=1.6.3
|
|
19
18
|
Requires-Dist: jsonschema-pydantic>=0.1.0
|
|
20
|
-
Requires-Dist: langchain>=
|
|
19
|
+
Requires-Dist: langchain-core>=1.0.0
|
|
20
|
+
Requires-Dist: langchain>=1.0.0
|
|
21
21
|
Requires-Dist: mcp>=1.10.0
|
|
22
22
|
Requires-Dist: posthog>=4.8.0
|
|
23
23
|
Requires-Dist: pydantic-core==2.33.2
|
|
@@ -54,8 +54,7 @@ Description-Content-Type: text/markdown
|
|
|
54
54
|
</picture>
|
|
55
55
|
</div>
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
<h1 align="center">🚀 Create MCP Clients and Agents</h1>
|
|
57
|
+
<h1 align="center">🚀 mcp-use for Python</h1>
|
|
59
58
|
<p align="center">
|
|
60
59
|
<a href="https://github.com/pietrozullo/mcp-use/stargazers" alt="GitHub stars">
|
|
61
60
|
<img src="https://img.shields.io/github/stars/pietrozullo/mcp-use?style=social" /></a>
|
|
@@ -63,37 +62,42 @@ Description-Content-Type: text/markdown
|
|
|
63
62
|
<img src="https://static.pepy.tech/badge/mcp-use" /></a>
|
|
64
63
|
<a href="https://pypi.org/project/mcp_use/" alt="PyPI Version">
|
|
65
64
|
<img src="https://img.shields.io/pypi/v/mcp_use.svg"/></a>
|
|
66
|
-
<a href="https://github.com/mcp-use/mcp-use-ts" alt="TypeScript">
|
|
67
|
-
<img src="https://img.shields.io/badge/TypeScript-mcp--use-3178C6?logo=typescript&logoColor=white" /></a>
|
|
68
65
|
<a href="https://github.com/pietrozullo/mcp-use/blob/main/LICENSE" alt="License">
|
|
69
66
|
<img src="https://img.shields.io/github/license/pietrozullo/mcp-use" /></a>
|
|
70
67
|
<a href="https://docs.mcp-use.com" alt="Documentation">
|
|
71
68
|
<img src="https://img.shields.io/badge/docs-mcp--use.com-blue" /></a>
|
|
72
|
-
<a href="https://mcp-use.com" alt="Website">
|
|
73
|
-
<img src="https://img.shields.io/badge/website-mcp--use.com-blue" /></a>
|
|
74
|
-
</p>
|
|
75
|
-
<p align="center">
|
|
76
|
-
<a href="https://x.com/pietrozullo" alt="Twitter Follow - Pietro">
|
|
77
|
-
<img src="https://img.shields.io/twitter/follow/Pietro?style=social" /></a>
|
|
78
|
-
<a href="https://x.com/pederzh" alt="Twitter Follow - Luigi">
|
|
79
|
-
<img src="https://img.shields.io/twitter/follow/Luigi?style=social" /></a>
|
|
80
69
|
<a href="https://discord.gg/XkNkSkMz3V" alt="Discord">
|
|
81
70
|
<img src="https://dcbadge.limes.pink/api/server/XkNkSkMz3V?style=flat" /></a>
|
|
82
71
|
</p>
|
|
83
72
|
</div>
|
|
84
73
|
|
|
85
|
-
|
|
74
|
+
> **📦 Part of the [mcp-use Monorepo](../../README.md)** - This is the Python implementation. Also available in [TypeScript](../typescript/README.md).
|
|
75
|
+
|
|
76
|
+
🌐 **mcp-use for Python** is the complete way to connect **any LLM to any MCP server** and build custom MCP agents with tool access.
|
|
77
|
+
|
|
78
|
+
💡 Let your Python applications leverage the power of the Model Context Protocol with support for agents, clients, and advanced features.
|
|
79
|
+
|
|
80
|
+
## 🏗️ What's Included
|
|
81
|
+
|
|
82
|
+
mcp-use for Python provides three main capabilities:
|
|
83
|
+
|
|
84
|
+
- **🤖 MCP Agent** - Build AI agents that can use tools and reason across multiple steps
|
|
85
|
+
- **🔌 MCP Client** - Connect directly to MCP servers for programmatic tool access
|
|
86
|
+
- **🛠️ MCP Server** - _Coming soon!_ For now, use the [TypeScript version](../typescript/README.md#%EF%B8%8F-mcp-server-framework)
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
---
|
|
88
89
|
|
|
89
|
-
|
|
90
|
-
- Visit the [mcp-use docs](https://docs.mcp-use.com/) to get started with mcp-use library
|
|
91
|
-
- For the TypeScript version, visit [mcp-use-ts](https://github.com/mcp-use/mcp-use-ts)
|
|
90
|
+
## 📖 Quick Links
|
|
92
91
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
- **[Main Repository](../../README.md)** - Overview of the entire mcp-use ecosystem
|
|
93
|
+
- **[TypeScript Version](../typescript/README.md)** - TypeScript implementation with server framework
|
|
94
|
+
- **[Documentation](https://docs.mcp-use.com)** - Complete online documentation
|
|
95
|
+
- **[Examples](./examples/)** - Python code examples
|
|
96
|
+
|
|
97
|
+
| Supports | |
|
|
98
|
+
| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| **Primitives** | [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) |
|
|
100
|
+
| **Transports** | [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) [](https://github.com/pietrozullo/mcp-use/actions/workflows/ci.yml) |
|
|
97
101
|
|
|
98
102
|
## Features
|
|
99
103
|
|
|
@@ -140,7 +144,13 @@ Description-Content-Type: text/markdown
|
|
|
140
144
|
</tr>
|
|
141
145
|
</table>
|
|
142
146
|
|
|
143
|
-
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
# 🤖 MCP Agent
|
|
150
|
+
|
|
151
|
+
The **MCP Agent** is an AI-powered agent that can use tools from MCP servers to accomplish complex tasks. It reasons across multiple steps, selecting and executing tools as needed.
|
|
152
|
+
|
|
153
|
+
## Quick Start
|
|
144
154
|
|
|
145
155
|
With pip:
|
|
146
156
|
|
|
@@ -250,7 +260,7 @@ For other settings, models, and more, check out the documentation.
|
|
|
250
260
|
|
|
251
261
|
## Streaming Agent Output
|
|
252
262
|
|
|
253
|
-
|
|
263
|
+
mcp-use supports asynchronous streaming of agent output using the `stream` method on `MCPAgent`. This allows you to receive incremental results, tool actions, and intermediate steps as they are generated by the agent, enabling real-time feedback and progress reporting.
|
|
254
264
|
|
|
255
265
|
### How to use
|
|
256
266
|
|
|
@@ -423,7 +433,7 @@ if __name__ == "__main__":
|
|
|
423
433
|
|
|
424
434
|
## HTTP Connection Example
|
|
425
435
|
|
|
426
|
-
|
|
436
|
+
mcp-use supports HTTP connections, allowing you to connect to MCP servers running on specific HTTP ports. This feature is particularly useful for integrating with web-based MCP servers.
|
|
427
437
|
|
|
428
438
|
Here's an example of how to use the HTTP connection feature:
|
|
429
439
|
|
|
@@ -472,7 +482,7 @@ This example demonstrates how to connect to an MCP server running on a specific
|
|
|
472
482
|
|
|
473
483
|
# Multi-Server Support
|
|
474
484
|
|
|
475
|
-
|
|
485
|
+
mcp-use allows configuring and connecting to multiple MCP servers simultaneously using the `MCPClient`. This enables complex workflows that require tools from different servers, such as web browsing combined with file operations or 3D modeling.
|
|
476
486
|
|
|
477
487
|
## Configuration
|
|
478
488
|
|
|
@@ -554,7 +564,7 @@ if __name__ == "__main__":
|
|
|
554
564
|
|
|
555
565
|
# Tool Access Control
|
|
556
566
|
|
|
557
|
-
|
|
567
|
+
mcp-use allows you to restrict which tools are available to the agent, providing better security and control over agent capabilities:
|
|
558
568
|
|
|
559
569
|
```python
|
|
560
570
|
import asyncio
|
|
@@ -587,7 +597,7 @@ if __name__ == "__main__":
|
|
|
587
597
|
|
|
588
598
|
# Sandboxed Execution
|
|
589
599
|
|
|
590
|
-
|
|
600
|
+
mcp-use supports running MCP servers in a sandboxed environment using E2B's cloud infrastructure. This allows you to run MCP servers without having to install dependencies locally, making it easier to use tools that might have complex setups or system requirements.
|
|
591
601
|
|
|
592
602
|
## Installation
|
|
593
603
|
|
|
@@ -675,7 +685,13 @@ The `SandboxOptions` type provides configuration for the sandbox environment:
|
|
|
675
685
|
- **Consistent environment**: Ensure consistent behavior across different systems
|
|
676
686
|
- **Resource efficiency**: Offload resource-intensive tasks to cloud infrastructure
|
|
677
687
|
|
|
678
|
-
|
|
688
|
+
---
|
|
689
|
+
|
|
690
|
+
# 🔌 MCP Client
|
|
691
|
+
|
|
692
|
+
The **MCP Client** allows you to connect directly to MCP servers and call tools programmatically without an AI agent. This is useful when you know exactly which tools to call and don't need AI reasoning.
|
|
693
|
+
|
|
694
|
+
## Direct Tool Calls (Without LLM)
|
|
679
695
|
|
|
680
696
|
You can call MCP server tools directly without an LLM when you need programmatic control:
|
|
681
697
|
|
|
@@ -752,9 +768,26 @@ if __name__ == "__main__":
|
|
|
752
768
|
|
|
753
769
|
```
|
|
754
770
|
|
|
771
|
+
---
|
|
772
|
+
|
|
773
|
+
# 🛠️ MCP Server
|
|
774
|
+
|
|
775
|
+
**Coming Soon!** Python support for creating MCP servers is under development.
|
|
776
|
+
|
|
777
|
+
In the meantime, you can create MCP servers using our [TypeScript implementation](../typescript/README.md#%EF%B8%8F-mcp-server-framework), which offers:
|
|
778
|
+
|
|
779
|
+
- Complete server framework with tools, resources, and prompts
|
|
780
|
+
- Built-in inspector for debugging
|
|
781
|
+
- React-based UI widgets for interactive experiences
|
|
782
|
+
- Hot reload development workflow
|
|
783
|
+
|
|
784
|
+
Python agents and clients can connect to TypeScript servers seamlessly - the MCP protocol is language-agnostic.
|
|
785
|
+
|
|
786
|
+
---
|
|
787
|
+
|
|
755
788
|
# Debugging
|
|
756
789
|
|
|
757
|
-
|
|
790
|
+
mcp-use provides a built-in debug mode that increases log verbosity and helps diagnose issues in your agent implementation.
|
|
758
791
|
|
|
759
792
|
## Enabling Debug Mode
|
|
760
793
|
|
|
@@ -815,14 +848,6 @@ This is useful when you only need to see the agent's steps and decision-making p
|
|
|
815
848
|
|
|
816
849
|
We love contributions! Feel free to open issues for bugs or feature requests. Look at [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
817
850
|
|
|
818
|
-
## Contributors
|
|
819
|
-
|
|
820
|
-
Thanks to all our amazing contributors!
|
|
821
|
-
|
|
822
|
-
<a href="https://github.com/mcp-use/mcp-use/graphs/contributors">
|
|
823
|
-
<img src="https://contrib.rocks/image?repo=mcp-use/mcp-use" />
|
|
824
|
-
</a>
|
|
825
|
-
|
|
826
851
|
## Top Starred Dependents
|
|
827
852
|
|
|
828
853
|
<!-- gh-dependents-info-used-by-start -->
|
|
@@ -888,12 +913,12 @@ MIT
|
|
|
888
913
|
|
|
889
914
|
# Citation
|
|
890
915
|
|
|
891
|
-
If you use
|
|
916
|
+
If you use mcp-use in your research or project, please cite:
|
|
892
917
|
|
|
893
918
|
```bibtex
|
|
894
919
|
@software{mcp_use2025,
|
|
895
920
|
author = {Zullo, Pietro},
|
|
896
|
-
title = {
|
|
921
|
+
title = {mcp-use: MCP Library for Python},
|
|
897
922
|
year = {2025},
|
|
898
923
|
publisher = {GitHub},
|
|
899
924
|
url = {https://github.com/pietrozullo/mcp-use}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
mcp_use/__init__.py,sha256=0LfDNKkzNXXOx9B4-SsMIuwkj9Cm-8JVPmC9yb5cFnw,1277
|
|
2
|
+
mcp_use/client.py,sha256=m-nwSnO147tBXji0KmXULJ2B1Uy7cGidnutRTnASmjU,426
|
|
3
|
+
mcp_use/config.py,sha256=RNYKUJPEpLGZQFg-ahwsYf1B7xXZM1gUA-_57FngAJc,760
|
|
4
|
+
mcp_use/exceptions.py,sha256=YAbLz1S_4aQiNGWgh80lk0lwgF3L109P-cjbV_QW-WQ,1260
|
|
5
|
+
mcp_use/logging.py,sha256=y0BEx1bofSehRqGIe6oTRtHDqTb_KnmAxcH6V1oR6Do,4976
|
|
6
|
+
mcp_use/session.py,sha256=2exxHhIfXcf6UFndiwmi-db3Wvh_Dqeh89iiSIcFtYY,438
|
|
7
|
+
mcp_use/utils.py,sha256=QavJcVq2WxUUUCCpPCUeOB5bqIS0FFmpK-RAZkGc6aA,720
|
|
8
|
+
mcp_use/adapters/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
mcp_use/adapters/__init__.py,sha256=p0J4T9vTeNPXVEcNJUV7WQJB8Bd8lWwbxZ9KT4kDxjQ,604
|
|
10
|
+
mcp_use/adapters/base.py,sha256=Cc-stCnM6j0JtQeR1j1sqQX0ZtHjWUFdRNKsHiQv6mQ,444
|
|
11
|
+
mcp_use/adapters/langchain_adapter.py,sha256=LDlCvqnWDNmY1YxNKYX9PafNZl9o8LMXwp3W4XQaJLY,541
|
|
12
|
+
mcp_use/agents/__init__.py,sha256=FzkntihbAqzixWdWe99zIrrcIfd4N3YWltNniutG9VA,267
|
|
13
|
+
mcp_use/agents/base.py,sha256=3hlKEnSq89yMdd6tBN_FPfx-aPj7En0yNqE7EqTQpVQ,1604
|
|
14
|
+
mcp_use/agents/mcpagent.py,sha256=tiPFeN5oFwch3ULD8Ggcn4cl3v5tFknC4VtgJebDkzU,49586
|
|
15
|
+
mcp_use/agents/remote.py,sha256=wBzkU7rgkA1EBMSfedyLsA01Rz4I2AXPwo-z607Uy2Q,16511
|
|
16
|
+
mcp_use/agents/adapters/__init__.py,sha256=VIxigHnP0ZBUTFV3bQlxnYNgXhawkuoY7OtYe6dZiqw,582
|
|
17
|
+
mcp_use/agents/adapters/anthropic.py,sha256=EZ8XEArYaXacmqCKC4aEhiHNI-rfEBP3Y9GPHt08Uow,3753
|
|
18
|
+
mcp_use/agents/adapters/base.py,sha256=37GjE3WiBfatoT5AnXXPkbxa18WROdP6-MQBKTLbv5k,12398
|
|
19
|
+
mcp_use/agents/adapters/google.py,sha256=YCBrYJFbqnKBxMrzmk0tGUQcBT3knAH5zEzLQ7O2nTU,4284
|
|
20
|
+
mcp_use/agents/adapters/langchain_adapter.py,sha256=eu4_71VE7cURj493FtZRGwiWBZFtWCPeC3AHlPSzys0,8865
|
|
21
|
+
mcp_use/agents/adapters/openai.py,sha256=pItLuNbuzrGydmxEzxidNkTNITCleQInUwYxdmHD1C8,4236
|
|
22
|
+
mcp_use/agents/managers/__init__.py,sha256=FRTuJw5kYtY1Eo7wN9Aeqeqo1euiR5slvrx5Fl_SGvk,383
|
|
23
|
+
mcp_use/agents/managers/base.py,sha256=fJA4ct6GIcACOzmCSQGga1HoHYjsauaMHZsXehCPQNA,1138
|
|
24
|
+
mcp_use/agents/managers/server_manager.py,sha256=MdsttZ3zl0sMUslZTfZ6xNZkDNTIK9_TggDKT-LY5mw,5485
|
|
25
|
+
mcp_use/agents/managers/tools/__init__.py,sha256=zcpm4HXsp8NUMRJeyT6DdB8cgIMDs46pBfoTD-odhGU,437
|
|
26
|
+
mcp_use/agents/managers/tools/base_tool.py,sha256=Jbbp7SwmHKDk8jT_6yVIv7iNsn6KaV_PljWuhhLcbXg,509
|
|
27
|
+
mcp_use/agents/managers/tools/connect_server.py,sha256=Mf_1w4svnRXljzBMv_3p1dyQr_O53yn4cRuydqJ9fFQ,2992
|
|
28
|
+
mcp_use/agents/managers/tools/disconnect_server.py,sha256=hhrMSxFnU3k1ByE7Uqbfkjuwo0o95xCz39mXjkvrI0Y,1650
|
|
29
|
+
mcp_use/agents/managers/tools/get_active_server.py,sha256=_fWKq44EHBMu9eMV7exYw7L1SZZQf3L19fw4hAX594E,993
|
|
30
|
+
mcp_use/agents/managers/tools/list_servers_tool.py,sha256=bi_naHOetXnn6ZhHqwU3NgWUebXwp2CaifZZfD3J0E0,2065
|
|
31
|
+
mcp_use/agents/managers/tools/search_tools.py,sha256=Rht0NZJ9W8mi5PzXgs3mALuGscMDYB3ylpm9LoAMdkE,12945
|
|
32
|
+
mcp_use/agents/observability/__init__.py,sha256=qJR51lpW6lVvhgNnUHBXYN6FKn4kDKbGVHUhPzrx324,348
|
|
33
|
+
mcp_use/agents/observability/callbacks_manager.py,sha256=6jIcE6ofiLRxoi4fECaTlpnllTEFQdwB0IZ0ZkY0WAQ,5324
|
|
34
|
+
mcp_use/agents/observability/laminar.py,sha256=eBY23B8rxQOW5ggHeGB0ZCpCSMnK4rC8fBOvDdbuoq4,1613
|
|
35
|
+
mcp_use/agents/observability/langfuse.py,sha256=kOF05cbSEir7r3fibx_q6TfKzqmbjKLV7uNxBote9XY,2677
|
|
36
|
+
mcp_use/agents/prompts/system_prompt_builder.py,sha256=1Nt4JA_WZFuTiA-cz5EA9_pUHBzLIO1yR2_pMvaa_-U,4123
|
|
37
|
+
mcp_use/agents/prompts/templates.py,sha256=Yd-3NILgHXTrBUw9WE11gt0-QrlvN1pykeEpg3LY4HU,1545
|
|
38
|
+
mcp_use/auth/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
+
mcp_use/auth/__init__.py,sha256=5ZetbbZDfGI4vli6tgHt-XTAEZh7fqn_eHdF0Rirsf4,516
|
|
40
|
+
mcp_use/auth/bearer.py,sha256=iZQgutjUS8GzarNQOFa_s3Wq-Rl71nzKG-FhYHWC2n4,422
|
|
41
|
+
mcp_use/auth/oauth.py,sha256=ztdXsd7F5xMJiHOeJiCCUiZSV2cKW5k4s2rhxXUCIwo,392
|
|
42
|
+
mcp_use/auth/oauth_callback.py,sha256=6kLYBL9M-CoOZ_HX6ezgcVCbRk1RBnBXpCNaamCFazk,726
|
|
43
|
+
mcp_use/client/__init__.py,sha256=KJzHv7qafMFqE38TGAowled4Ka3dWvqq80GEQfx99JI,30
|
|
44
|
+
mcp_use/client/client.py,sha256=TKDoKKusVkRqZzqh_B2xBMsHLOLbFgic3I4t2ZJEqJg,13072
|
|
45
|
+
mcp_use/client/config.py,sha256=bnPXOno47VfEGGdDeOwyJZlr7gXw1KInABoRhiZ4_fw,3837
|
|
46
|
+
mcp_use/client/exceptions.py,sha256=PuzPj_Ov4oYJ8ny8BC6S1b9RRy39gtRotDhIaMulxQE,468
|
|
47
|
+
mcp_use/client/session.py,sha256=DPud5dMil3lJq9pUQq4z9IpWCy_xRmpzKeCVLVzNKp8,5031
|
|
48
|
+
mcp_use/client/auth/__init__.py,sha256=TBNMvgRDp-lC3n2f0UB6kZUZlJ35SYRBVDt3hadpvXI,138
|
|
49
|
+
mcp_use/client/auth/bearer.py,sha256=wgG3_TZDNoqo7hnezLHqOZpsWFOAXTxFbIg6t1qemQ8,678
|
|
50
|
+
mcp_use/client/auth/oauth.py,sha256=HU1sxo74L-0Gf-VbK4FmSrZKoxkJg4bW50emUakYBoE,27801
|
|
51
|
+
mcp_use/client/auth/oauth_callback.py,sha256=BRdVnbt1SENvsrudBFUB_XYhRb1G30Qjf8x5Vw1xZzo,7558
|
|
52
|
+
mcp_use/client/connectors/__init__.py,sha256=cUF4yT0bNr8qeLkSzg28SHueiV5qDaHEB1l1GZ2K0dc,536
|
|
53
|
+
mcp_use/client/connectors/base.py,sha256=R5NbN_NGuJnT82cGMweOaAdA5g6mZnsN4KyqG0_XffE,18687
|
|
54
|
+
mcp_use/client/connectors/http.py,sha256=LFk8QLx4GBYWe7lYWHXfC8HH97lOSFAJRuhW7XlkLY8,13742
|
|
55
|
+
mcp_use/client/connectors/sandbox.py,sha256=ukCGi50ZplmKViW8WagoyoznuugMETlgvilGGR9LcP0,12827
|
|
56
|
+
mcp_use/client/connectors/stdio.py,sha256=Iy3mQ08T0DI-ufArM7F2kavy8rCsrk96P-UJiaUQjUM,4129
|
|
57
|
+
mcp_use/client/connectors/utils.py,sha256=zQ8GdNQx0Twz3by90BoU1RsWPf9wODGof4K3-NxPXeA,366
|
|
58
|
+
mcp_use/client/connectors/websocket.py,sha256=-fcXsLJtJ5xVa46AiXdpj_Echbzet_1XZoSbi8lwEf0,10169
|
|
59
|
+
mcp_use/client/middleware/__init__.py,sha256=p9cTU5ZdeHys7RnhRh-y2-kc5OjPj3cL_Yk3kbl5Vqw,1354
|
|
60
|
+
mcp_use/client/middleware/logging.py,sha256=Q-sDUFHZkmgxZxF8CWOal9CsOOs4EBlITxIQO3CkqHc,1184
|
|
61
|
+
mcp_use/client/middleware/metrics.py,sha256=NnsP0n1Ta-hnCxPFvdlQAFi5D1BCGvkl1MepaGd5-Vo,13203
|
|
62
|
+
mcp_use/client/middleware/middleware.py,sha256=08H79bufrA3pS0DN3SRbMbfUh6NO7iCdHokkSBvvrfg,9770
|
|
63
|
+
mcp_use/client/task_managers/__init__.py,sha256=LkXOjiDq5JcyB2tNJuSzyjbxZTl1Ordr_NKKD77Nb7g,557
|
|
64
|
+
mcp_use/client/task_managers/base.py,sha256=1Yu4QUWBdOqDzIS0QNh1l_sQpWvqMFPYPWmmHkq6d6Q,4654
|
|
65
|
+
mcp_use/client/task_managers/sse.py,sha256=H2cqSXUjtUZ-_9bX-7lh_0wfuS03ZtxNrVtSZ2RMyGY,2597
|
|
66
|
+
mcp_use/client/task_managers/stdio.py,sha256=qKKr1rqISrJLVbFLdVaYwovm5vUqBkpdCmebkrkueHw,2164
|
|
67
|
+
mcp_use/client/task_managers/streamable_http.py,sha256=BxgFLAnRUPDKijjSMcqWVfWiBinUexBMb4SdzzyPBvM,2889
|
|
68
|
+
mcp_use/client/task_managers/websocket.py,sha256=MCe_TS2xu42YK_RbSZLoEsKs7L1WpR7sdaBz5rXuc1M,2188
|
|
69
|
+
mcp_use/connectors/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
+
mcp_use/connectors/__init__.py,sha256=AILLEsQuwi1P9hjSn7Gbh6g-2ab3mXQEAZapbLXVmSE,1219
|
|
71
|
+
mcp_use/connectors/base.py,sha256=n-d0yHA6trrADzaUHZA6zk_p5yauBpKqTDZ5-I1GJEA,471
|
|
72
|
+
mcp_use/connectors/http.py,sha256=tfxHsuBZRu76HdMUQFrRiQpYug9bo5x77RM9iI08BOI,471
|
|
73
|
+
mcp_use/connectors/sandbox.py,sha256=Rz8m6r3RCO-meJNhafGj7eD86SnLQQeVYgNtyfZB3nI,501
|
|
74
|
+
mcp_use/connectors/stdio.py,sha256=ls5OBl3OUW0kkXag0_z-530LKgll6xt8uS8jvwqJ_vQ,481
|
|
75
|
+
mcp_use/connectors/utils.py,sha256=mE5jRP3rV2KIt_LvBxg42zqihvcXpz_n2UJa4gV9eSk,567
|
|
76
|
+
mcp_use/connectors/websocket.py,sha256=Q5B69AfXyA_mZc8s1kZZzCbTurjZLAaEutm1pMIYN2E,521
|
|
77
|
+
mcp_use/errors/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
78
|
+
mcp_use/errors/error_formatting.py,sha256=17lhj5goGHuTbJ5oLCUXyJ2SuIbzsuSM1Wk8LPeqY9k,911
|
|
79
|
+
mcp_use/managers/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
+
mcp_use/managers/__init__.py,sha256=N5iDLaNOXEowp9Cp7YsuWtIoFoR2YhpKlpTXcptxD6I,1700
|
|
81
|
+
mcp_use/managers/base.py,sha256=5oHTD29MHrgfbqC6b1Za6ndGf4cnOdboFfyr90QRo18,481
|
|
82
|
+
mcp_use/managers/server_manager.py,sha256=TbWcxoOTV3IN8FPRBDyvpYYTJWR42acBQ1MpxS5a-wg,511
|
|
83
|
+
mcp_use/managers/tools/__init__.py,sha256=AlBiKWRNkbf0neyMj95TSvC0zGO1ECncMdi6EahkWfY,1318
|
|
84
|
+
mcp_use/managers/tools/base_tool.py,sha256=sohFFzlfKA9bUZ-CtuZytf7EW1z4GM7MoIUV9FxO32Y,280
|
|
85
|
+
mcp_use/managers/tools/connect_server.py,sha256=OvKWKhgqotnTnmU2CcmzhTmc6CkbIfRCztV_zZsg218,315
|
|
86
|
+
mcp_use/managers/tools/disconnect_server.py,sha256=f-ThxEhVvba8SnsFIxt4MeGCufBoB1Itidjhq53_nD0,339
|
|
87
|
+
mcp_use/managers/tools/get_active_server.py,sha256=6msUfr-uabkFbB3lPKu8hcs_nO9EF6JIlLu-GnUQ0cE,334
|
|
88
|
+
mcp_use/managers/tools/list_servers_tool.py,sha256=xFuDD5B4RgxuwRBuXVn0CoR6h6cx87wsU-acD8b1SrU,314
|
|
89
|
+
mcp_use/managers/tools/search_tools.py,sha256=kYtRuUIawugATYuLXDS2sIpyv2bJrLiKLQO3U3L1AFA,763
|
|
90
|
+
mcp_use/middleware/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
|
+
mcp_use/middleware/__init__.py,sha256=imBkKYNUT5pZvt9AkU6JoUSREGxLhhU6wQleA5mTNiE,2668
|
|
92
|
+
mcp_use/middleware/logging.py,sha256=T2B4WxEcnSfNQiG9s97swkfPAAUNsDbqcRhlmsKhdO8,589
|
|
93
|
+
mcp_use/middleware/metrics.py,sha256=ky7jokRD30QM0Gl1IulFwzcsFPCXiSuRFs_8UGz1Vr8,1301
|
|
94
|
+
mcp_use/middleware/middleware.py,sha256=5o-le09nko9nlhWGkNab_0OSVBn5jxVKf-NjrHrTTmA,1615
|
|
95
|
+
mcp_use/task_managers/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
|
+
mcp_use/task_managers/__init__.py,sha256=wLyZgkCRooIDTcX871cr-jHVm-e5kutIThxz17eSNf0,1482
|
|
97
|
+
mcp_use/task_managers/base.py,sha256=cAP6PA_RMjA1rw-2-tnpya96HbKWkEkQibmgkeZfNUA,506
|
|
98
|
+
mcp_use/task_managers/sse.py,sha256=2W3o737M96ZFVhB2pxd-SrJ4mrmTaKDm_OdklseEy3Y,516
|
|
99
|
+
mcp_use/task_managers/stdio.py,sha256=JS6jAzsPEuzriuQ-Sib4WW1rsUgxMYZkUwN6BVhiFt4,536
|
|
100
|
+
mcp_use/task_managers/streamable_http.py,sha256=NiyYHZ5fLgqYNvFEoWLzLQw9AByscnPWBG4k-whLfZ8,640
|
|
101
|
+
mcp_use/task_managers/websocket.py,sha256=cis-KJFccCi55rvk-FVlKFtncGNnm8QiNcpwzuaBEM8,576
|
|
102
|
+
mcp_use/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
+
mcp_use/telemetry/events.py,sha256=4u-PWeg03jozG9rLunDB7JHtFmmesgu3J8aRAq93qAU,4706
|
|
104
|
+
mcp_use/telemetry/telemetry.py,sha256=uCOGRDNTyDfyvBGypGUpTk9-IGOe2P7CbUQjPlnkQ9Y,14082
|
|
105
|
+
mcp_use/telemetry/utils.py,sha256=_nPJU7e1XZeUWcWKmumbhNcC2OEAU1wvNXJe3CNgHEY,1764
|
|
106
|
+
mcp_use/types/.deprecated,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
|
+
mcp_use/types/sandbox.py,sha256=gaZaLE-i6rftaIF-OYyMDc1W6Il-g4MpFbCD1IdyBPg,481
|
|
108
|
+
mcp_use-1.4.0.dist-info/METADATA,sha256=pnimjYDLE5DteEtiB0eIH5QuyQTbILh7etAlnLrdOc4,35394
|
|
109
|
+
mcp_use-1.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
110
|
+
mcp_use-1.4.0.dist-info/entry_points.txt,sha256=3jzEN6xbVsMErm_cxlHpCzvM97gFgjvtOEEspUp1vK8,45
|
|
111
|
+
mcp_use-1.4.0.dist-info/RECORD,,
|