@@ -46,7 +46,8 @@ def list_databases():
46
46
47
47
@mcp .tool ()
48
48
def list_tables (database : str , like : str = None ):
49
- """List available ClickHouse tables in a database"""
49
+ """List available ClickHouse tables in a database, including schema, comment,
50
+ row count, and column count."""
50
51
logger .info (f"Listing tables in database '{ database } '" )
51
52
client = create_clickhouse_client ()
52
53
query = f"SHOW TABLES FROM { quote_identifier (database )} "
@@ -87,6 +88,12 @@ def get_table_info(table):
87
88
column_dict ['comment' ] = None
88
89
columns .append (column_dict )
89
90
91
+ # Get row count and column count from the table
92
+ row_count_query = f"SELECT count() FROM { quote_identifier (database )} .{ quote_identifier (table )} "
93
+ row_count_result = client .query (row_count_query )
94
+ row_count = row_count_result .result_rows [0 ][0 ] if row_count_result .result_rows else 0
95
+ column_count = len (columns )
96
+
90
97
create_table_query = f"SHOW CREATE TABLE { database } .`{ table } `"
91
98
create_table_result = client .command (create_table_query )
92
99
@@ -96,6 +103,8 @@ def get_table_info(table):
96
103
"comment" : table_comments .get (table ),
97
104
"columns" : columns ,
98
105
"create_table_query" : create_table_result ,
106
+ "row_count" : row_count ,
107
+ "column_count" : column_count ,
99
108
}
100
109
101
110
tables = []
0 commit comments