mbxai 0.4.0__py3-none-any.whl → 0.5.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.
- mbxai/__init__.py +1 -1
- mbxai/mcp/client.py +28 -10
- mbxai/mcp/server.py +1 -1
- {mbxai-0.4.0.dist-info → mbxai-0.5.0.dist-info}/METADATA +1 -1
- {mbxai-0.4.0.dist-info → mbxai-0.5.0.dist-info}/RECORD +7 -7
- {mbxai-0.4.0.dist-info → mbxai-0.5.0.dist-info}/WHEEL +0 -0
- {mbxai-0.4.0.dist-info → mbxai-0.5.0.dist-info}/licenses/LICENSE +0 -0
mbxai/__init__.py
CHANGED
mbxai/mcp/client.py
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
from typing import Any, TypeVar, Callable
|
4
4
|
import httpx
|
5
|
+
import logging
|
5
6
|
from pydantic import BaseModel, Field
|
6
7
|
|
7
8
|
from ..tools import ToolClient, Tool
|
8
9
|
from ..openrouter import OpenRouterClient
|
9
10
|
|
11
|
+
logger = logging.getLogger(__name__)
|
10
12
|
|
11
13
|
T = TypeVar("T", bound=BaseModel)
|
12
14
|
|
@@ -101,16 +103,32 @@ class MCPClient(ToolClient):
|
|
101
103
|
|
102
104
|
# Fetch tools from the server
|
103
105
|
response = await self._http_client.get(f"{base_url}/tools")
|
104
|
-
|
106
|
+
response_data = response.json()
|
107
|
+
|
108
|
+
# Extract tools array from response
|
109
|
+
tools_data = response_data.get("tools", [])
|
110
|
+
logger.info(f"Received {len(tools_data)} tools from server {name}")
|
105
111
|
|
106
112
|
# Register each tool
|
107
|
-
for tool_data in tools_data:
|
108
|
-
|
109
|
-
tool = MCPTool(**tool_data)
|
110
|
-
|
111
|
-
# Create the tool function
|
112
|
-
tool_function = self._create_tool_function(tool)
|
113
|
+
for idx, tool_data in enumerate(tools_data):
|
114
|
+
logger.debug(f"Processing tool {idx}: {tool_data}")
|
113
115
|
|
114
|
-
#
|
115
|
-
|
116
|
-
|
116
|
+
# Ensure tool_data is a dictionary
|
117
|
+
if not isinstance(tool_data, dict):
|
118
|
+
logger.error(f"Invalid tool data type: {type(tool_data)}. Expected dict, got {tool_data}")
|
119
|
+
continue
|
120
|
+
|
121
|
+
try:
|
122
|
+
# Create MCPTool instance with proper dictionary unpacking
|
123
|
+
tool = MCPTool(**tool_data)
|
124
|
+
|
125
|
+
# Create the tool function
|
126
|
+
tool_function = self._create_tool_function(tool)
|
127
|
+
|
128
|
+
# Register the tool with ToolClient
|
129
|
+
self._tools[tool.name] = tool
|
130
|
+
tool.function = tool_function
|
131
|
+
logger.info(f"Successfully registered tool: {tool.name}")
|
132
|
+
except Exception as e:
|
133
|
+
logger.error(f"Failed to register tool: {str(e)}")
|
134
|
+
logger.error(f"Tool data that caused the error: {tool_data}")
|
mbxai/mcp/server.py
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
mbxai/__init__.py,sha256=
|
1
|
+
mbxai/__init__.py,sha256=wVJ8x7MtN4VeN_VyyppKqGepPR_Ko096DeXHM7znB7E,47
|
2
2
|
mbxai/core.py,sha256=WMvmU9TTa7M_m-qWsUew4xH8Ul6xseCZ2iBCXJTW-Bs,196
|
3
3
|
mbxai/mcp/__init__.py,sha256=_ek9iYdYqW5saKetj4qDci11jxesQDiHPJRpHMKkxgU,175
|
4
|
-
mbxai/mcp/client.py,sha256=
|
4
|
+
mbxai/mcp/client.py,sha256=N5w_cTEF9vMwnBoGvvenYSX8YswAogJBEd312sHyrPM,5324
|
5
5
|
mbxai/mcp/example.py,sha256=oaol7AvvZnX86JWNz64KvPjab5gg1VjVN3G8eFSzuaE,2350
|
6
|
-
mbxai/mcp/server.py,sha256=
|
6
|
+
mbxai/mcp/server.py,sha256=QCRIoHw0eJjrYFpnD1dFngjKHcb3v6_qWAUT2sF8-dk,3462
|
7
7
|
mbxai/openrouter/__init__.py,sha256=Ito9Qp_B6q-RLGAQcYyTJVWwR2YAZvNqE-HIYXxhtD8,298
|
8
8
|
mbxai/openrouter/client.py,sha256=NPccB7Slou5tSc8DvXvItLdoDMgU0pcxW1lKcRKQXp0,8865
|
9
9
|
mbxai/openrouter/config.py,sha256=MTX_YHsFrM7JYqovJSkEF6JzVyIdajeI5Dja2CALH58,2874
|
@@ -12,7 +12,7 @@ mbxai/tools/__init__.py,sha256=QUFaXhDm-UKcuAtT1rbKzhBkvyRBVokcQIOf9cxIuwc,160
|
|
12
12
|
mbxai/tools/client.py,sha256=PDkDTvpwAs8-F8CcF6wjjq2Z-VhYpjA9RXTK64Rwa3Y,5418
|
13
13
|
mbxai/tools/example.py,sha256=1HgKK39zzUuwFbnp3f0ThyWVfA_8P28PZcTwaUw5K78,2232
|
14
14
|
mbxai/tools/types.py,sha256=ZHnmiDXpH6wZhiZ-Tj9PiPMJaW1aiDAq5It2gpiwNp0,831
|
15
|
-
mbxai-0.
|
16
|
-
mbxai-0.
|
17
|
-
mbxai-0.
|
18
|
-
mbxai-0.
|
15
|
+
mbxai-0.5.0.dist-info/METADATA,sha256=TtjY0FTk9MG12PhtlNggSDNa5VIvp1nSOGa9oLf6pKc,4107
|
16
|
+
mbxai-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
17
|
+
mbxai-0.5.0.dist-info/licenses/LICENSE,sha256=hEyhc4FxwYo3NQ40yNgZ7STqwVk-1_XcTXOnAPbGJAw,1069
|
18
|
+
mbxai-0.5.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|