1010from clickhouse_connect .driver .binding import format_query_value
1111from dotenv import load_dotenv
1212from fastmcp import FastMCP
13+ from fastmcp .tools import Tool
1314from fastmcp .prompts import Prompt
1415from dataclasses import dataclass , field , asdict , is_dataclass
1516
@@ -321,9 +322,9 @@ def _init_chdb_client():
321322
322323# Register tools based on configuration
323324if os .getenv ("CLICKHOUSE_ENABLED" , "true" ).lower () == "true" :
324- mcp .add_tool (list_databases )
325- mcp .add_tool (list_tables )
326- mcp .add_tool (run_select_query )
325+ mcp .add_tool (Tool . from_function ( list_databases ) )
326+ mcp .add_tool (Tool . from_function ( list_tables ) )
327+ mcp .add_tool (Tool . from_function ( run_select_query ) )
327328 logger .info ("ClickHouse tools registered" )
328329
329330
@@ -332,7 +333,7 @@ def _init_chdb_client():
332333 if _chdb_client :
333334 atexit .register (lambda : _chdb_client .close ())
334335
335- mcp .add_tool (run_chdb_select_query )
336+ mcp .add_tool (Tool . from_function ( run_chdb_select_query ) )
336337 chdb_prompt = Prompt .from_function (
337338 chdb_initial_prompt ,
338339 name = "chdb_initial_prompt" ,
0 commit comments