MySQL MCP Server

MIT License
20
  • Linux
  • Apple
# -*- coding:utf-8 -*- import json from typing import List from mcp.types import TextContent from mysql_mcp_server.helper.db_conn_helper import DatabaseManager from mysql_mcp_server.helper.logger_helper import logger from mysql_mcp_server.helper.tool_decorator import tool @tool() def execute_create_table(query: str) -> List[TextContent]: """ MySQL 데이터베이스에서 새로운 테이블을 생성하는 기능을 제공합니다. 함수는 주어진 MySQL 쿼리문을 실행하여 테이블을 생성하며, 데이터베이스 연결 쿼리 실행 과정을 안전하게 관리합니다. 테이블 생성 쿼리는 반드시 필요한 규칙을 준수해야 하며, 이를 통해 데이터베이스의 구조적 무결성을 유지합니다. Args: query: MySQL 테이블 생성 문자열 - 테이블 정의 반드시 칼럼에 대한 comment를 포함해야 하며, comment는 해당 칼럼이 어떤 데이터를 저장하는지, 어떤 역할을 하는지 상세히 설명해야 합니다. - : `id INT NOT NULL AUTO_INCREMENT COMMENT '고유 식별자로 사용되는 자동 증가 정수 값'` - 칼럼 comment는 반드시 한글로 작성해야 합니다. """ conn = DatabaseManager.get_instance().get_connection() try: with conn.cursor() as cursor: logger.info(f"[execute_create_table] query: {query}") if query.strip().upper().startswith("CREATE TABLE"): cursor.execute(query) conn.commit() response_data = {"success": True, "affected_rows": cursor.rowcount} else: response_data = {"success": False, "error": "Invalid query"} except Exception as e: response_data = {"success": False, "error": str(e)} result_text = json.dumps(response_data, ensure_ascii=False, indent=2) return [TextContent(type="text", text=result_text)]