Skip to main content
Glama

mcp_quick_data_analysis

Perform quick statistical analysis on database tables to get row counts, column distributions, and top values for data exploration.

Instructions

Quick statistical analysis of a table including row count, column distributions, and top values

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
table_nameYesFully qualified table name (schema.table), e.g. "dbo.Users" or "sales.OrderItems"
sample_sizeNoSample size for statistics calculation

Implementation Reference

  • Core handler function that performs quick data analysis: fetches column metadata, row count, and data preview using parallel SQL queries on sys.columns and the table.
    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 };
      }
    };
  • Input schema definition for the mcp_quick_data_analysis tool, specifying table_name (required) and optional sample_size.
    {
      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"]
      }
    },
  • Export statement registering the mcp_quick_data_analysis handler from dataOperations for use in other modules.
    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 invokes the mcp_quick_data_analysis tool handler via toolHandlers.
    case 'mcp_quick_data_analysis':
        result = await toolHandlers.mcp_quick_data_analysis(input as any);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hendrickcastro/MCPQL'

If you have feedback or need assistance with the MCP directory API, please join our Discord server