qlty_columnSummary
Analyze table columns to generate statistical summaries including data distribution, value counts, and quality metrics for database tables.
Instructions
Get the column summary statistics for a table.
Arguments: database_name - name of the database table_name - table name to analyze
Returns: ResponseType: formatted response with query results + metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| database_name | Yes | ||
| table_name | Yes |
Implementation Reference
- The handler function executing the tool logic: queries TD_ColumnSummary for column statistics on the given table, formats results to JSON, adds metadata, and returns formatted response.def handle_qlty_columnSummary(conn: TeradataConnection, database_name: str | None, table_name: str, *args, **kwargs): """ Get the column summary statistics for a table. Arguments: database_name - name of the database table_name - table name to analyze Returns: ResponseType: formatted response with query results + metadata """ logger.debug(f"Tool: handle_qlty_columnSummary: Args: table_name: {database_name}.{table_name}") if database_name is not None: table_name = f"{database_name}.{table_name}" with conn.cursor() as cur: rows = cur.execute(f"select * from TD_ColumnSummary ( on {table_name} as InputTable using TargetColumns ('[:]')) as dt") data = rows_to_json(cur.description, rows.fetchall()) metadata = { "tool_name": "qlty_columnSummary", "database_name": database_name, "table_name": table_name, "rows": len(data) } logger.debug(f"Tool: handle_qlty_columnSummary: Metadata: {metadata}") return create_response(data, metadata)
- src/teradata_mcp_server/app.py:273-281 (registration)Dynamic registration of handle_* functions as MCP tools: strips 'handle_' to derive tool_name='qlty_columnSummary', wraps handler, and registers with MCP including auto-generated schema from function signature and docstring as description.for name, func in all_functions.items(): if not (inspect.isfunction(func) and name.startswith("handle_")): continue tool_name = name[len("handle_"):] if not any(re.match(p, tool_name) for p in config.get('tool', [])): continue wrapped = make_tool_wrapper(func) mcp.tool(name=tool_name, description=wrapped.__doc__)(wrapped) logger.info(f"Created tool: {tool_name}")
- src/teradata_mcp_server/tools/module_loader.py:20-32 (registration)ModuleLoader.MODULE_MAP defines the 'qlty' module path, enabling dynamic import and exposure of its handler functions including handle_qlty_columnSummary.# Map tool prefixes to their corresponding module paths MODULE_MAP = { 'base': 'teradata_mcp_server.tools.base', 'dba': 'teradata_mcp_server.tools.dba', 'fs': 'teradata_mcp_server.tools.fs', 'qlty': 'teradata_mcp_server.tools.qlty', 'rag': 'teradata_mcp_server.tools.rag', 'sql_opt': 'teradata_mcp_server.tools.sql_opt', 'sec': 'teradata_mcp_server.tools.sec', 'tmpl': 'teradata_mcp_server.tools.tmpl', 'plot': 'teradata_mcp_server.tools.plot', 'tdvs': 'teradata_mcp_server.tools.tdvs' }