mcp_quick_data_analysis
Analyze table statistics quickly with row counts, column distributions, and top values. Input a table name and optional sample size to generate insights via MCPQL.
Instructions
Quick statistical analysis of a table including row count, column distributions, and top values
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sample_size | No | Sample size for statistics calculation | |
| table_name | Yes | Fully qualified table name (schema.table), e.g. "dbo.Users" or "sales.OrderItems" |
Implementation Reference
- src/tools/dataOperations.ts:297-363 (handler)Core implementation of the mcp_quick_data_analysis tool handler. Performs quick table analysis by fetching column metadata, row count, and data preview using parallel SQL queries.export const mcp_quick_data_analysis = async (args: { table_name: string; limit?: number }): Promise<ToolResult<{ preview_data: any[]; column_count: number; row_count: number; columns_info: any[]; }>> => { const { table_name, limit = 100 } = args; console.log('Executing mcp_quick_data_analysis with:', args); try { const pool = getPool(); const normalizedTableName = normalizeSqlObjectName(table_name); // Get table column information const columnsQuery = ` SELECT c.name AS column_name, t.name AS data_type, c.max_length, c.precision, c.scale, c.is_nullable, c.is_identity FROM sys.columns c INNER JOIN sys.types t ON c.user_type_id = t.user_type_id WHERE c.object_id = OBJECT_ID(@table_name) ORDER BY c.column_id; `; // Get row count const countQuery = ` SELECT COUNT(*) AS row_count FROM ${normalizedTableName} `; // Get preview data const previewQuery = ` SELECT TOP ${limit} * FROM ${normalizedTableName} ORDER BY (SELECT NULL) `; // Execute all queries in parallel const [columnsResult, countResult, previewResult] = await Promise.all([ pool.request().input('table_name', normalizedTableName).query(columnsQuery), pool.request().query(countQuery), pool.request().query(previewQuery) ]); return { success: true, data: { preview_data: previewResult.recordset, column_count: columnsResult.recordset.length, row_count: countResult.recordset[0]?.row_count || 0, columns_info: columnsResult.recordset } }; } catch (error: any) { console.error(`Error in mcp_quick_data_analysis: ${error.message}`); return { success: false, error: error.message }; } };
- src/tools.ts:118-136 (registration)MCP tool registration entry defining the name, description, and JSON input schema for mcp_quick_data_analysis in the MCP_MSQL_TOOLS array used by the server.{ name: "mcp_quick_data_analysis", description: "Quick statistical analysis of a table including row count, column distributions, and top values", inputSchema: { type: "object", properties: { table_name: { type: "string", description: "Fully qualified table name (schema.table), e.g. \"dbo.Users\" or \"sales.OrderItems\"" }, sample_size: { type: "number", description: "Sample size for statistics calculation", default: 1000 } }, required: ["table_name"] } },
- src/tools/index.ts:20-27 (registration)Export statement registering and re-exporting the mcp_quick_data_analysis handler from dataOperations.ts for use in consolidated tool handlers.export { mcp_preview_data, // Data preview with filters mcp_preview_data_enhanced, // Para compatibilidad con server.ts mcp_get_column_stats, // Column statistics mcp_get_column_stats_enhanced, // Para compatibilidad con server.ts mcp_quick_data_analysis, // Quick table analysis mcp_get_sample_values // Sample values from column } from './dataOperations.js';
- src/server.ts:103-104 (registration)Server dispatch case that maps tool calls to the mcp_quick_data_analysis handler function.case 'mcp_quick_data_analysis': result = await toolHandlers.mcp_quick_data_analysis(input as any);