mcp-use 1.3.9__py3-none-any.whl → 1.3.10__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.

@@ -4,5 +4,6 @@ from dotenv import load_dotenv
4
4
  load_dotenv()
5
5
 
6
6
  from . import laminar, langfuse # noqa
7
+ from .callbacks_manager import ObservabilityManager, get_default_manager, create_manager # noqa
7
8
 
8
- __all__ = ["laminar", "langfuse"]
9
+ __all__ = ["laminar", "langfuse", "ObservabilityManager", "get_default_manager", "create_manager"]
@@ -0,0 +1,162 @@
1
+ """
2
+ Observability callbacks manager for MCP-use.
3
+
4
+ This module provides a centralized manager for handling observability callbacks
5
+ from various platforms (Langfuse, Laminar, etc.) in a clean and extensible way.
6
+ """
7
+
8
+ import logging
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+
13
+ class ObservabilityManager:
14
+ """
15
+ Manages observability callbacks for MCP agents.
16
+
17
+ This class provides a centralized way to collect and manage callbacks
18
+ from various observability platforms (Langfuse, Laminar, etc.).
19
+ """
20
+
21
+ def __init__(self, custom_callbacks: list | None = None):
22
+ """
23
+ Initialize the ObservabilityManager.
24
+
25
+ Args:
26
+ custom_callbacks: Optional list of custom callbacks to use instead of defaults.
27
+ """
28
+ self.custom_callbacks = custom_callbacks
29
+ self._available_handlers = []
30
+ self._handler_names = []
31
+ self._initialized = False
32
+
33
+ def _collect_available_handlers(self) -> None:
34
+ """Collect all available observability handlers from configured platforms."""
35
+ if self._initialized:
36
+ return
37
+
38
+ # Import handlers lazily to avoid circular imports
39
+ try:
40
+ from .langfuse import langfuse_handler
41
+
42
+ if langfuse_handler is not None:
43
+ self._available_handlers.append(langfuse_handler)
44
+ self._handler_names.append("Langfuse")
45
+ logger.debug("ObservabilityManager: Langfuse handler available")
46
+ except ImportError:
47
+ logger.debug("ObservabilityManager: Langfuse module not available")
48
+
49
+ try:
50
+ from .laminar import laminar_initialized
51
+
52
+ if laminar_initialized:
53
+ # Laminar is initialized with automatic instrumentation only
54
+ self._handler_names.append("Laminar (auto-instrumentation)")
55
+ logger.debug("ObservabilityManager: Laminar auto-instrumentation active")
56
+ except ImportError:
57
+ logger.debug("ObservabilityManager: Laminar module not available")
58
+
59
+ # Future: Add more platforms here...
60
+
61
+ self._initialized = True
62
+
63
+ def get_callbacks(self) -> list:
64
+ """
65
+ Get the list of callbacks to use.
66
+
67
+ Returns:
68
+ List of callbacks - either custom callbacks if provided,
69
+ or all available observability handlers.
70
+ """
71
+ # If custom callbacks were provided, use those
72
+ if self.custom_callbacks is not None:
73
+ logger.debug(f"ObservabilityManager: Using {len(self.custom_callbacks)} custom callbacks")
74
+ return self.custom_callbacks
75
+
76
+ # Otherwise, collect and return all available handlers
77
+ self._collect_available_handlers()
78
+
79
+ if self._available_handlers:
80
+ logger.debug(f"ObservabilityManager: Using {len(self._available_handlers)} handlers")
81
+ else:
82
+ logger.debug("ObservabilityManager: No callbacks configured")
83
+
84
+ return self._available_handlers
85
+
86
+ def get_handler_names(self) -> list[str]:
87
+ """
88
+ Get the names of available handlers.
89
+
90
+ Returns:
91
+ List of handler names (e.g., ["Langfuse", "Laminar"])
92
+ """
93
+ if self.custom_callbacks is not None:
94
+ # For custom callbacks, try to get their class names
95
+ return [type(cb).__name__ for cb in self.custom_callbacks]
96
+
97
+ self._collect_available_handlers()
98
+ return self._handler_names
99
+
100
+ def has_callbacks(self) -> bool:
101
+ """
102
+ Check if any callbacks are available.
103
+
104
+ Returns:
105
+ True if callbacks are available, False otherwise.
106
+ """
107
+ callbacks = self.get_callbacks()
108
+ return len(callbacks) > 0
109
+
110
+ def add_callback(self, callback) -> None:
111
+ """
112
+ Add a callback to the custom callbacks list.
113
+
114
+ Args:
115
+ callback: The callback to add.
116
+ """
117
+ if self.custom_callbacks is None:
118
+ self.custom_callbacks = []
119
+ self.custom_callbacks.append(callback)
120
+ logger.debug(f"ObservabilityManager: Added custom callback: {type(callback).__name__}")
121
+
122
+ def clear_callbacks(self) -> None:
123
+ """Clear all custom callbacks."""
124
+ self.custom_callbacks = []
125
+ logger.debug("ObservabilityManager: Cleared all custom callbacks")
126
+
127
+ def __repr__(self) -> str:
128
+ """String representation of the ObservabilityManager."""
129
+ handler_names = self.get_handler_names()
130
+ if handler_names:
131
+ return f"ObservabilityManager(handlers={handler_names})"
132
+ return "ObservabilityManager(no handlers)"
133
+
134
+
135
+ # Singleton instance for easy access
136
+ _default_manager = None
137
+
138
+
139
+ def get_default_manager() -> ObservabilityManager:
140
+ """
141
+ Get the default ObservabilityManager instance.
142
+
143
+ Returns:
144
+ The default ObservabilityManager instance (singleton).
145
+ """
146
+ global _default_manager
147
+ if _default_manager is None:
148
+ _default_manager = ObservabilityManager()
149
+ return _default_manager
150
+
151
+
152
+ def create_manager(custom_callbacks: list | None = None) -> ObservabilityManager:
153
+ """
154
+ Create a new ObservabilityManager instance.
155
+
156
+ Args:
157
+ custom_callbacks: Optional list of custom callbacks.
158
+
159
+ Returns:
160
+ A new ObservabilityManager instance.
161
+ """
162
+ return ObservabilityManager(custom_callbacks=custom_callbacks)
@@ -1,3 +1,9 @@
1
+ """
2
+ Laminar observability integration for MCP-use.
3
+
4
+ This module provides automatic instrumentation for Laminar AI observability platform.
5
+ """
6
+
1
7
  import logging
2
8
  import os
3
9
 
@@ -6,6 +12,9 @@ logger = logging.getLogger(__name__)
6
12
  # Check if Laminar is disabled via environment variable
7
13
  _laminar_disabled = os.getenv("MCP_USE_LAMINAR", "").lower() == "false"
8
14
 
15
+ # Track if Laminar is initialized for other modules to check
16
+ laminar_initialized = False
17
+
9
18
  # Only initialize if not disabled and API key is present
10
19
  if _laminar_disabled:
11
20
  logger.debug("Laminar tracing disabled via MCP_USE_LAMINAR environment variable")
@@ -13,9 +22,21 @@ elif not os.getenv("LAMINAR_PROJECT_API_KEY"):
13
22
  logger.debug("Laminar API key not found - tracing disabled. Set LAMINAR_PROJECT_API_KEY to enable")
14
23
  else:
15
24
  try:
16
- from lmnr import Laminar
25
+ from lmnr import Instruments, Laminar
26
+
27
+ # Initialize Laminar with LangChain instrumentation
28
+ logger.debug("Laminar: Initializing automatic instrumentation for LangChain")
29
+
30
+ # Initialize with specific instruments
31
+ instruments = {Instruments.LANGCHAIN, Instruments.OPENAI}
32
+ logger.debug(f"Laminar: Enabling instruments: {[i.name for i in instruments]}")
33
+
34
+ Laminar.initialize(project_api_key=os.getenv("LAMINAR_PROJECT_API_KEY"), instruments=instruments)
35
+
36
+ laminar_initialized = True
37
+ logger.debug("Laminar observability initialized successfully with LangChain instrumentation")
17
38
 
18
- Laminar.initialize(project_api_key=os.getenv("LAMINAR_PROJECT_API_KEY"))
19
- logger.debug("Laminar observability initialized successfully")
20
39
  except ImportError:
21
40
  logger.debug("Laminar package not installed - tracing disabled. Install with: pip install lmnr")
41
+ except Exception as e:
42
+ logger.error(f"Failed to initialize Laminar: {e}")
@@ -20,15 +20,39 @@ elif not os.getenv("LANGFUSE_PUBLIC_KEY") or not os.getenv("LANGFUSE_SECRET_KEY"
20
20
  else:
21
21
  try:
22
22
  from langfuse import Langfuse
23
- from langfuse.langchain import CallbackHandler
23
+ from langfuse.langchain import CallbackHandler as LangfuseCallbackHandler
24
+
25
+ # Create a custom CallbackHandler wrapper to add logging
26
+ class LoggingCallbackHandler(LangfuseCallbackHandler):
27
+ """Custom Langfuse CallbackHandler that logs intercepted requests."""
28
+
29
+ def on_llm_start(self, *args, **kwargs):
30
+ """Log when an LLM request is intercepted."""
31
+ logger.debug(f"Langfuse: LLM start args: {args}, kwargs: {kwargs}")
32
+ return super().on_llm_start(*args, **kwargs)
33
+
34
+ def on_chain_start(self, *args, **kwargs):
35
+ """Log when a chain request is intercepted."""
36
+ logger.debug(f"Langfuse: Chain start args: {args}, kwargs: {kwargs}")
37
+ return super().on_chain_start(*args, **kwargs)
38
+
39
+ def on_tool_start(self, *args, **kwargs):
40
+ """Log when a tool request is intercepted."""
41
+ logger.debug(f"Langfuse: Tool start args: {args}, kwargs: {kwargs}")
42
+ return super().on_tool_start(*args, **kwargs)
43
+
44
+ def on_retriever_start(self, *args, **kwargs):
45
+ """Log when a retriever request is intercepted."""
46
+ logger.debug(f"Langfuse: Retriever start args: {args}, kwargs: {kwargs}")
47
+ return super().on_retriever_start(*args, **kwargs)
24
48
 
25
49
  langfuse = Langfuse(
26
50
  public_key=os.getenv("LANGFUSE_PUBLIC_KEY"),
27
51
  secret_key=os.getenv("LANGFUSE_SECRET_KEY"),
28
52
  host=os.getenv("LANGFUSE_HOST", "https://cloud.langfuse.com"),
29
53
  )
30
- langfuse_handler = CallbackHandler()
31
- logger.debug("Langfuse observability initialized successfully")
54
+ langfuse_handler = LoggingCallbackHandler()
55
+ logger.debug("Langfuse observability initialized successfully with logging enabled")
32
56
  except ImportError:
33
57
  logger.debug("Langfuse package not installed - tracing disabled. Install with: pip install langfuse")
34
58
  langfuse = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-use
3
- Version: 1.3.9
3
+ Version: 1.3.10
4
4
  Summary: MCP Library for LLMs
5
5
  Author-email: Pietro Zullo <pietro.zullo@gmail.com>
6
6
  License: MIT
@@ -52,13 +52,14 @@ Description-Content-Type: text/markdown
52
52
  </picture>
53
53
  </div>
54
54
 
55
- <br>
56
-
57
- # Create MCP Clients and Agents
55
+ <div align="center">
56
+ <h2>🎉 <strong>We're LIVE on Product Hunt!</strong> 🎉</h2>
57
+ <p><strong>Support us today and help us reach #1!</strong></p>
58
+ <a href="https://www.producthunt.com/products/mcp-use?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-mcp&#0045;use" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1002629&theme=neutral&t=1754609432704" alt="mcp&#0045;use - Open&#0032;source&#0032;SDK&#0032;and&#0032;infra&#0032;for&#0032;MCP&#0032;servers&#0032;&#0038;&#0032;agents | Product Hunt" style="width: 220px; height: 54px;" width="250" height="54" /></a>
59
+ <p>👆 <em>Click to upvote and leave a comment!</em></p>
60
+ </div>
58
61
 
59
- <p align="center">
60
- <a href="https://www.producthunt.com/products/mcp-use?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-mcp&#0045;use" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1002629&theme=neutral&t=1754609432704" alt="mcp&#0045;use - Open&#0032;source&#0032;SDK&#0032;and&#0032;infra&#0032;for&#0032;MCP&#0032;servers&#0032;&#0038;&#0032;agents | Product Hunt" style="width: 150px; height: 32px;" width="150" height="32" /></a>
61
- </p>
62
+ <h1 align="center">🚀 Create MCP Clients and Agents</h1>
62
63
  <p align="center">
63
64
  <a href="https://github.com/pietrozullo/mcp-use/stargazers" alt="GitHub stars">
64
65
  <img src="https://img.shields.io/github/stars/pietrozullo/mcp-use?style=social" /></a>
@@ -154,7 +155,7 @@ pip install mcp-use
154
155
  Or install from source:
155
156
 
156
157
  ```bash
157
- git clone https://github.com/pietrozullo/mcp-use.git
158
+ git clone https://github.com/mcp-use/mcp-use.git
158
159
  cd mcp-use
159
160
  pip install -e .
160
161
  ```
@@ -837,23 +838,23 @@ Thanks to all our amazing contributors!
837
838
  </tr>
838
839
  <tr>
839
840
  <td><img src="https://avatars.githubusercontent.com/u/38653995?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/patchy631/ai-engineering-hub"><strong>patchy631/ai-engineering-hub</strong></a></td>
840
- <td>⭐ 15920</td>
841
+ <td>⭐ 17384</td>
841
842
  </tr>
842
843
  <tr>
843
844
  <td><img src="https://avatars.githubusercontent.com/u/170207473?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/tavily-ai/meeting-prep-agent"><strong>tavily-ai/meeting-prep-agent</strong></a></td>
844
- <td>⭐ 129</td>
845
+ <td>⭐ 131</td>
845
846
  </tr>
846
847
  <tr>
847
848
  <td><img src="https://avatars.githubusercontent.com/u/164294848?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/buildfastwithai/gen-ai-experiments"><strong>buildfastwithai/gen-ai-experiments</strong></a></td>
848
- <td>⭐ 93</td>
849
+ <td>⭐ 100</td>
849
850
  </tr>
850
851
  <tr>
851
852
  <td><img src="https://avatars.githubusercontent.com/u/187057607?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/hud-evals/hud-python"><strong>hud-evals/hud-python</strong></a></td>
852
- <td>⭐ 76</td>
853
+ <td>⭐ 78</td>
853
854
  </tr>
854
855
  <tr>
855
856
  <td><img src="https://avatars.githubusercontent.com/u/20041231?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/krishnaik06/MCP-CRASH-Course"><strong>krishnaik06/MCP-CRASH-Course</strong></a></td>
856
- <td>⭐ 61</td>
857
+ <td>⭐ 64</td>
857
858
  </tr>
858
859
  <tr>
859
860
  <td><img src="https://avatars.githubusercontent.com/u/54944174?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/larksuite/lark-samples"><strong>larksuite/lark-samples</strong></a></td>
@@ -869,7 +870,7 @@ Thanks to all our amazing contributors!
869
870
  </tr>
870
871
  <tr>
871
872
  <td><img src="https://avatars.githubusercontent.com/u/201161342?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/autometa-dev/whatsapp-mcp-voice-agent"><strong>autometa-dev/whatsapp-mcp-voice-agent</strong></a></td>
872
- <td>⭐ 22</td>
873
+ <td>⭐ 23</td>
873
874
  </tr>
874
875
  <tr>
875
876
  <td><img src="https://avatars.githubusercontent.com/u/100749943?s=40&v=4" width="20" height="20" style="vertical-align: middle; margin-right: 8px;"> <a href="https://github.com/Deniscartin/mcp-cli"><strong>Deniscartin/mcp-cli</strong></a></td>
@@ -1,7 +1,8 @@
1
- mcp_use/__init__.py,sha256=vyjxKmfVDtkbJ6sthDEH_m-uJGXxkYdUBMwBpCt72zA,1021
1
+ mcp_use/__init__.py,sha256=AEo6p1F4mSHLO3yKVWZbkr3OFuQwTxSYLGrFQkYb4io,1271
2
+ mcp_use/cli.py,sha256=d3_RqN-lca7igS-aZQIdNQidBOILVihyldywcf8GR-c,15602
2
3
  mcp_use/client.py,sha256=4WnFrbBBa3YX3brfBgZrhb_OgAT8mMfVzLUHwnnKi8o,11701
3
4
  mcp_use/config.py,sha256=yRgUPCMUzkFqROyccG2wjuhGxneCcbgnrHWHQ6z_hoc,3487
4
- mcp_use/logging.py,sha256=CRtkPwR-bkXK_kQ0QOL86RikMWOHzEOi7A8VRHkNsZw,4270
5
+ mcp_use/logging.py,sha256=bwZEDM3DZDVDVWmFlHCHEDAODix4_y8VSreRk-nRWuo,4971
5
6
  mcp_use/session.py,sha256=DpH_z0a3xYemV9yWzlrf-IPZtpR27CI2S-gAm2jbCAc,4700
6
7
  mcp_use/utils.py,sha256=QavJcVq2WxUUUCCpPCUeOB5bqIS0FFmpK-RAZkGc6aA,720
7
8
  mcp_use/adapters/__init__.py,sha256=-xCrgPThuX7x0PHGFDdjb7M-mgw6QV3sKu5PM7ShnRg,275
@@ -9,8 +10,8 @@ mcp_use/adapters/base.py,sha256=8XB3xWZ6nJPhhmHwVtHT8-HO0D_9nnxzOkbVDP-fI3k,6940
9
10
  mcp_use/adapters/langchain_adapter.py,sha256=zGEVMXLj_jpSXUMHOh5u-fxkkrK2zpSibOSGCy_VMr0,11033
10
11
  mcp_use/agents/__init__.py,sha256=FzkntihbAqzixWdWe99zIrrcIfd4N3YWltNniutG9VA,267
11
12
  mcp_use/agents/base.py,sha256=EN-dRbwOi9vIqofFg3jmi5yT2VKlwEr9Cwi1DZgB3eE,1591
12
- mcp_use/agents/mcpagent.py,sha256=Vh4VOxxh-6sJwK1tTtJgUWZcp1bd3hb_JnATc7x9sKk,46698
13
- mcp_use/agents/remote.py,sha256=peSw3aixybneTWgrGlSZedUvo_FuISSiWqFgySZSwEM,13011
13
+ mcp_use/agents/mcpagent.py,sha256=cdlGG4-TOzRr4gbzFW0kpirc7AqmRr7rhQCoaDDnpuk,50931
14
+ mcp_use/agents/remote.py,sha256=7wRGX4ucppWvZdSsxJ3TtrPXYrrwGf9oD5j0UtSYitI,14005
14
15
  mcp_use/agents/prompts/system_prompt_builder.py,sha256=E86STmxcl2Ic763_114awNqFB2RyLrQlbvgRmJajQjI,4116
15
16
  mcp_use/agents/prompts/templates.py,sha256=acg2Q-_uQDL-3q5ZUwwwFrP7wqqf-SEyq0XWDDHt69s,1906
16
17
  mcp_use/connectors/__init__.py,sha256=cUF4yT0bNr8qeLkSzg28SHueiV5qDaHEB1l1GZ2K0dc,536
@@ -23,7 +24,8 @@ mcp_use/connectors/websocket.py,sha256=G7ZeLJNPVl9AG6kCmiNJz1N2Ing_QxT7pSswigTKi
23
24
  mcp_use/errors/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
24
25
  mcp_use/errors/error_formatting.py,sha256=17lhj5goGHuTbJ5oLCUXyJ2SuIbzsuSM1Wk8LPeqY9k,911
25
26
  mcp_use/managers/__init__.py,sha256=FRTuJw5kYtY1Eo7wN9Aeqeqo1euiR5slvrx5Fl_SGvk,383
26
- mcp_use/managers/server_manager.py,sha256=eWxiuP0yL3HWSyCWdHqNZ1isZfa3IZDWVEjWSfYOs_A,5253
27
+ mcp_use/managers/base.py,sha256=fJA4ct6GIcACOzmCSQGga1HoHYjsauaMHZsXehCPQNA,1138
28
+ mcp_use/managers/server_manager.py,sha256=uO18wHUKFq3-YVg_S_SlQDbNF2H978BR28C2YU4X86A,5308
27
29
  mcp_use/managers/tools/__init__.py,sha256=zcpm4HXsp8NUMRJeyT6DdB8cgIMDs46pBfoTD-odhGU,437
28
30
  mcp_use/managers/tools/base_tool.py,sha256=Jbbp7SwmHKDk8jT_6yVIv7iNsn6KaV_PljWuhhLcbXg,509
29
31
  mcp_use/managers/tools/connect_server.py,sha256=-PlqgJDSMzairK90aDg1WTDjpqrFMoTiyekwoPDWNrw,2964
@@ -31,9 +33,10 @@ mcp_use/managers/tools/disconnect_server.py,sha256=dLa5PH-QZ30Dw3n5lzqilyHA8PuQ6
31
33
  mcp_use/managers/tools/get_active_server.py,sha256=tCaib76gYU3L5G82tEOTq4Io2cuCXWjOjPselb-92i8,964
32
34
  mcp_use/managers/tools/list_servers_tool.py,sha256=P_Z96Ab8ELLyo3GQfTMfyemTPJwt0VR1s_iMnWE1GCg,2037
33
35
  mcp_use/managers/tools/search_tools.py,sha256=4vso7ln-AfG6lQAMq9FA_CyeVtSEDYEWlHtdHtfnLps,12911
34
- mcp_use/observability/__init__.py,sha256=kTUcP0d6L5_3ktfldhdAk-3AWckzVHs7ztG-R6cye64,186
35
- mcp_use/observability/laminar.py,sha256=WWjmVXP55yCfAlqlayeuJmym1gdrv8is7UyrIp4Tbn0,839
36
- mcp_use/observability/langfuse.py,sha256=9vgJgnGtVpv_CbCyJqyRkzq2ELqPfYFIUGnpSbm2RCo,1334
36
+ mcp_use/observability/__init__.py,sha256=qJR51lpW6lVvhgNnUHBXYN6FKn4kDKbGVHUhPzrx324,348
37
+ mcp_use/observability/callbacks_manager.py,sha256=6jIcE6ofiLRxoi4fECaTlpnllTEFQdwB0IZ0ZkY0WAQ,5324
38
+ mcp_use/observability/laminar.py,sha256=eBY23B8rxQOW5ggHeGB0ZCpCSMnK4rC8fBOvDdbuoq4,1613
39
+ mcp_use/observability/langfuse.py,sha256=kOF05cbSEir7r3fibx_q6TfKzqmbjKLV7uNxBote9XY,2677
37
40
  mcp_use/task_managers/__init__.py,sha256=LkXOjiDq5JcyB2tNJuSzyjbxZTl1Ordr_NKKD77Nb7g,557
38
41
  mcp_use/task_managers/base.py,sha256=mvLFTVyOfvBWFmkx5l8DZVZUezbhsRARDDfMS2AuFLE,5031
39
42
  mcp_use/task_managers/sse.py,sha256=nLKt99OiqoJxFT62zCeNwSZUmdPPg4SD7M1pCEPOa3c,2391
@@ -45,7 +48,8 @@ mcp_use/telemetry/events.py,sha256=K5xqbmkum30r4gM2PWtTiUWGF8oZzGZw2DYwco1RfOQ,3
45
48
  mcp_use/telemetry/telemetry.py,sha256=oM_QAbZwOStKkeccvEfKmJLKhL2neFkPn5yM5rL2qHc,11711
46
49
  mcp_use/telemetry/utils.py,sha256=kDVTqt2oSeWNJbnTOlXOehr2yFO0PMyx2UGkrWkfJiw,1769
47
50
  mcp_use/types/sandbox.py,sha256=opJ9r56F1FvaqVvPovfAj5jZbsOexgwYx5wLgSlN8_U,712
48
- mcp_use-1.3.9.dist-info/METADATA,sha256=U-uwkjLkdcK1IkliQ6UGY_jKRUJEgN1K_2xQEHTB9Yk,34122
49
- mcp_use-1.3.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
50
- mcp_use-1.3.9.dist-info/licenses/LICENSE,sha256=7Pw7dbwJSBw8zH-WE03JnR5uXvitRtaGTP9QWPcexcs,1068
51
- mcp_use-1.3.9.dist-info/RECORD,,
51
+ mcp_use-1.3.10.dist-info/METADATA,sha256=Gs4nltO9zcPhcQVsPKp7yX9FpJRAzGEsgatc0s-yQqw,34338
52
+ mcp_use-1.3.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
53
+ mcp_use-1.3.10.dist-info/entry_points.txt,sha256=3jzEN6xbVsMErm_cxlHpCzvM97gFgjvtOEEspUp1vK8,45
54
+ mcp_use-1.3.10.dist-info/licenses/LICENSE,sha256=7Pw7dbwJSBw8zH-WE03JnR5uXvitRtaGTP9QWPcexcs,1068
55
+ mcp_use-1.3.10.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mcp-use = mcp_use.cli:main