Skip to main content
Glama
kami2k1

MCP MySQL Server

by kami2k1
table_analysis_tool.py2.44 kB
from typing import Dict, Any from .base_tool import BaseTool from src.database.query_executor import query_executor import logging logger = logging.getLogger(__name__) class TableAnalysisTool(BaseTool): def __init__(self): super().__init__( name="analyze_table", description="Analyze table structure including columns, indexes, foreign keys, and basic statistics" ) def execute(self, **kwargs) -> Dict[str, Any]: try: table_name = kwargs.get('table_name') # Validate required parameters if not table_name: return self.format_response(False, error="table_name is required") # Get table columns columns = query_executor.get_table_columns(table_name) if not columns: return self.format_response(False, error=f"Table '{table_name}' not found") # Get table indexes indexes = query_executor.get_table_indexes(table_name) # Get foreign keys foreign_keys = query_executor.get_foreign_keys(table_name) # Get table statistics stats = query_executor.get_table_stats(table_name) # Organize indexes by name indexes_grouped = {} for index in indexes: index_name = index['index_name'] if index_name not in indexes_grouped: indexes_grouped[index_name] = { 'name': index_name, 'unique': index['non_unique'] == 0, 'type': index['index_type'], 'columns': [] } indexes_grouped[index_name]['columns'].append(index['column_name']) analysis_result = { 'table_name': table_name, 'columns': columns, 'indexes': list(indexes_grouped.values()), 'foreign_keys': foreign_keys, 'statistics': stats } logger.info(f"Table analysis completed for: {table_name}") return self.format_response(True, analysis_result) except Exception as e: logger.error(f"Table analysis failed: {str(e)}") return self.format_response(False, error=str(e))

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/kami2k1/MCP-MYSQL'

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