datarobot-genai 0.1.64__py3-none-any.whl → 0.1.66__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.
@@ -184,13 +184,17 @@ class DataRobotMCPServer:
184
184
  prompts = asyncio.run(self._mcp._list_prompts_mcp())
185
185
  resources = asyncio.run(self._mcp._list_resources_mcp())
186
186
 
187
- self._logger.info(f"Registered tools: {len(tools)}")
187
+ tools_count = len(tools)
188
+ prompts_count = len(prompts)
189
+ resources_count = len(resources)
190
+
191
+ self._logger.info(f"Registered tools: {tools_count}")
188
192
  for tool in tools:
189
193
  self._logger.info(f" > {tool.name}")
190
- self._logger.info(f"Registered prompts: {len(prompts)}")
194
+ self._logger.info(f"Registered prompts: {prompts_count}")
191
195
  for prompt in prompts:
192
196
  self._logger.info(f" > {prompt.name}")
193
- self._logger.info(f"Registered resources: {len(resources)}")
197
+ self._logger.info(f"Registered resources: {resources_count}")
194
198
  for resource in resources:
195
199
  self._logger.info(f" > {resource.name}")
196
200
 
@@ -209,6 +213,9 @@ class DataRobotMCPServer:
209
213
  self._mcp,
210
214
  self._mcp_transport,
211
215
  port=self._config.mcp_server_port,
216
+ tools_count=tools_count,
217
+ prompts_count=prompts_count,
218
+ resources_count=resources_count,
212
219
  )
213
220
 
214
221
  if self._mcp_transport == "stdio":
@@ -54,6 +54,9 @@ def log_server_custom_banner(
54
54
  host: str | None = None,
55
55
  port: int | None = None,
56
56
  path: str | None = None,
57
+ tools_count: int | None = None,
58
+ prompts_count: int | None = None,
59
+ resources_count: int | None = None,
57
60
  ) -> None:
58
61
  """
59
62
  Create and log a formatted banner with server information and logo.
@@ -64,13 +67,20 @@ def log_server_custom_banner(
64
67
  host: Host address (for HTTP transports)
65
68
  port: Port number (for HTTP transports)
66
69
  path: Server path (for HTTP transports)
70
+ tools_count: Number of tools registered
71
+ prompts_count: Number of prompts registered
72
+ resources_count: Number of resources registered
67
73
  """
68
74
  # Create the logo text
69
75
  # Use Text with no_wrap and markup disabled to preserve ANSI escape codes
70
76
  logo_text = Text.from_ansi(DR_LOGO_ASCII, no_wrap=True)
71
77
 
72
78
  # Create the main title
73
- title_text = Text(f"DataRobot MCP Server {datarobot_genai_version}", style="bold green")
79
+ title_text = Text(f"DataRobot MCP Server {datarobot_genai_version}", style="dim green")
80
+ stats_text = Text(
81
+ f"{tools_count} tools, {prompts_count} prompts, {resources_count} resources",
82
+ style="bold green",
83
+ )
74
84
 
75
85
  # Create the information table
76
86
  info_table = Table.grid(padding=(0, 1))
@@ -107,6 +117,7 @@ def log_server_custom_banner(
107
117
  Align.center(logo_text),
108
118
  "",
109
119
  Align.center(title_text),
120
+ Align.center(stats_text),
110
121
  "",
111
122
  "",
112
123
  Align.center(info_table),
@@ -51,7 +51,7 @@ async def list_tools_by_tags(tags: list[str] | None = None, match_all: bool = Fa
51
51
  -------
52
52
  A formatted string listing tools that match the tag criteria.
53
53
  """
54
- tools = await mcp._list_tools_mcp(tags=tags, match_all=match_all)
54
+ tools = await mcp.list_tools(tags=tags, match_all=match_all)
55
55
 
56
56
  if not tools:
57
57
  if tags:
@@ -95,7 +95,7 @@ async def get_tool_info_by_name(tool_name: str) -> str:
95
95
  -------
96
96
  A formatted string with detailed information about the tool.
97
97
  """
98
- all_tools = await mcp._list_tools_mcp()
98
+ all_tools = await mcp.list_tools()
99
99
 
100
100
  for tool in all_tools:
101
101
  if tool.name == tool_name:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datarobot-genai
3
- Version: 0.1.64
3
+ Version: 0.1.66
4
4
  Summary: Generic helpers for GenAI
5
5
  Project-URL: Homepage, https://github.com/datarobot-oss/datarobot-genai
6
6
  Author: DataRobot, Inc.
@@ -32,7 +32,7 @@ Requires-Dist: aiohttp<4.0.0,>=3.9.0; extra == 'drmcp'
32
32
  Requires-Dist: aiosignal<2.0.0,>=1.3.1; extra == 'drmcp'
33
33
  Requires-Dist: boto3<2.0.0,>=1.34.0; extra == 'drmcp'
34
34
  Requires-Dist: datarobot-asgi-middleware<1.0.0,>=0.2.0; extra == 'drmcp'
35
- Requires-Dist: fastmcp==2.13.0.2; extra == 'drmcp'
35
+ Requires-Dist: fastmcp<3.0.0,>=2.13.0.2; extra == 'drmcp'
36
36
  Requires-Dist: httpx<1.0.0,>=0.28.1; extra == 'drmcp'
37
37
  Requires-Dist: opentelemetry-api<2.0.0,>=1.22.0; extra == 'drmcp'
38
38
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<2.0.0,>=1.22.0; extra == 'drmcp'
@@ -31,12 +31,12 @@ datarobot_genai/drmcp/core/config.py,sha256=D7bSi40Yc5J71_JxmpfppG83snbIJW9iz1J7
31
31
  datarobot_genai/drmcp/core/config_utils.py,sha256=U-aieWw7MyP03cGDFIp97JH99ZUfr3vD9uuTzBzxn7w,6428
32
32
  datarobot_genai/drmcp/core/constants.py,sha256=lUwoW_PTrbaBGqRJifKqCn3EoFacoEgdO-CpoFVrUoU,739
33
33
  datarobot_genai/drmcp/core/credentials.py,sha256=PYEUDNMVw1BoMzZKLkPVTypNkVevEPtmk3scKnE-zYg,6706
34
- datarobot_genai/drmcp/core/dr_mcp_server.py,sha256=KBF-8gJcWNaUAtoXJoVq_SKguNbSfGxPsNbYMEmzkBY,12555
35
- datarobot_genai/drmcp/core/dr_mcp_server_logo.py,sha256=vFsPHn8l_a6bNB_18se6ZjmItmA3l6PuCmRcJJ7Qb0g,4262
34
+ datarobot_genai/drmcp/core/dr_mcp_server.py,sha256=7mu5UXHQmKNbIpNoQE0lPJaUI7AZa03avfHZRRtpjNI,12841
35
+ datarobot_genai/drmcp/core/dr_mcp_server_logo.py,sha256=Npkn-cPPBv261kiiaNwfeS_y4a2WXlbiMS2dP80uDj8,4708
36
36
  datarobot_genai/drmcp/core/exceptions.py,sha256=eqsGI-lxybgvWL5w4BFhbm3XzH1eU5tetwjnhJxelpc,905
37
37
  datarobot_genai/drmcp/core/logging.py,sha256=Y_hig4eBWiXGaVV7B_3wBcaYVRNH4ydptbEQhrP9-mY,3414
38
38
  datarobot_genai/drmcp/core/mcp_instance.py,sha256=wMsP39xqTmNBYqd49olEQb5UHTSsxj6BOIoIElorRB0,19235
39
- datarobot_genai/drmcp/core/mcp_server_tools.py,sha256=OyTDhvm38t8gzaMrSVn-SQOWtoaEugKtbZIhCmGkR6w,4288
39
+ datarobot_genai/drmcp/core/mcp_server_tools.py,sha256=odNZKozfx0VV38SLZHw9lY0C0JM_JnRI06W3BBXnyE4,4278
40
40
  datarobot_genai/drmcp/core/routes.py,sha256=zW4Ukr9f_odF-_oXq_WlTaCH5P4mb7gBSFp67IiuAoo,17208
41
41
  datarobot_genai/drmcp/core/routes_utils.py,sha256=vSseXWlplMSnRgoJgtP_rHxWSAVYcx_tpTv4lyTpQoc,944
42
42
  datarobot_genai/drmcp/core/server_life_cycle.py,sha256=WKGJWGxalvqxupzJ2y67Kklc_9PgpZT0uyjlv_sr5wc,3419
@@ -93,9 +93,9 @@ datarobot_genai/nat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
93
93
  datarobot_genai/nat/agent.py,sha256=siBLDWAff2-JwZ8Q3iNpM_e4_IoSwG9IvY0hyEjNenw,10292
94
94
  datarobot_genai/nat/datarobot_llm_clients.py,sha256=IZq_kooUL8QyDTkpEreszLQk9vCzg6-FbTjIkXR9wc0,7203
95
95
  datarobot_genai/nat/datarobot_llm_providers.py,sha256=lOVaL_0Fl6-7GFYl3HmfqttqKpKt-2w8o92P3T7B6cU,3683
96
- datarobot_genai-0.1.64.dist-info/METADATA,sha256=xx80UKcDU-NjYz1wE6vHRUx_nJpEhX01MUi7tLU5wNs,5911
97
- datarobot_genai-0.1.64.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
98
- datarobot_genai-0.1.64.dist-info/entry_points.txt,sha256=CZhmZcSyt_RBltgLN_b9xasJD6J5SaDc_z7K0wuOY9Y,150
99
- datarobot_genai-0.1.64.dist-info/licenses/AUTHORS,sha256=isJGUXdjq1U7XZ_B_9AH8Qf0u4eX0XyQifJZ_Sxm4sA,80
100
- datarobot_genai-0.1.64.dist-info/licenses/LICENSE,sha256=U2_VkLIktQoa60Nf6Tbt7E4RMlfhFSjWjcJJfVC-YCE,11341
101
- datarobot_genai-0.1.64.dist-info/RECORD,,
96
+ datarobot_genai-0.1.66.dist-info/METADATA,sha256=kXxTNk_FrtbQd3U9vv_a6ghOoHT94eCcS7BYj8MAtzM,5918
97
+ datarobot_genai-0.1.66.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
98
+ datarobot_genai-0.1.66.dist-info/entry_points.txt,sha256=CZhmZcSyt_RBltgLN_b9xasJD6J5SaDc_z7K0wuOY9Y,150
99
+ datarobot_genai-0.1.66.dist-info/licenses/AUTHORS,sha256=isJGUXdjq1U7XZ_B_9AH8Qf0u4eX0XyQifJZ_Sxm4sA,80
100
+ datarobot_genai-0.1.66.dist-info/licenses/LICENSE,sha256=U2_VkLIktQoa60Nf6Tbt7E4RMlfhFSjWjcJJfVC-YCE,11341
101
+ datarobot_genai-0.1.66.dist-info/RECORD,,