다음을 통해 공유


Azure MCP Server용 Azure Database for MySQL 도구 개요

Azure MCP Server를 사용하면 자연어 프롬프트를 사용하여 Azure Database for MySQL 서버, 데이터베이스 및 테이블을 관리할 수 있습니다. 복잡한 구문 없이 MySQL 리소스 관리를 간소화합니다.

Azure Database for MySQL은 MySQL 커뮤니티 버전에서 제공하는 완전히 관리되는 관계형 데이터베이스 서비스입니다. Azure에서 MySQL 데이터베이스를 호스트하는 데 사용합니다. 예측 가능한 성능과 동적 확장성으로 중요 업무용 워크로드를 처리합니다.

비고

도구 매개 변수: Azure MCP Server 도구는 작업을 완료하는 데 필요한 데이터에 대한 매개 변수를 정의합니다. 이러한 매개 변수 중 일부는 각 도구와 관련이 있으며 아래에 설명되어 있습니다. 다른 매개 변수는 전역이며 모든 도구에서 공유됩니다. 자세한 내용은 도구 매개 변수를 참조하세요.

데이터베이스: 모든 데이터베이스 나열

지정된 Azure Database for MySQL 유연한 서버 인스턴스에서 사용할 수 있는 모든 데이터베이스를 나열합니다. 이 명령은 데이터베이스 구조에 대한 가시성을 제공하고 연결 및 쿼리 작업에 대한 데이터베이스를 식별하는 데 도움이 됩니다.

프롬프트 예제는 다음과 같습니다.

  • 데이터베이스 나열: "사용자 'dbadmin'이 있는 리소스 그룹 'database-rg'의 서버 'my-mysql-server'에 있는 모든 데이터베이스 나열"
  • 데이터베이스 표시: "사용자 'appuser'를 사용하여 리소스 그룹 'prod-rg'의 MySQL 서버 'prod-mysql-server'에 있는 모든 데이터베이스 표시"
  • 이름으로 필터링: "'test'로 시작하는 사용자 '개발자'가 있는 리소스 그룹 'dev-rg'의 서버 'dev-mysql-server'에 데이터베이스 나열"
  • 리소스 그룹의 목록: "리소스 그룹 'analytics-rg'의 서버 'analytics-mysql-server'에 사용자 'analyst'로 데이터베이스 나열"
  • 사용자가 액세스할 수 있는 데이터베이스 표시: "리소스 그룹 'reporting-rg'의 서버 'report-mysql-server'에서 사용자가 'readonly'로 액세스할 수 있는 데이터베이스 나열"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

데이터베이스: 쿼리

Azure Database for MySQL 유연한 서버의 데이터베이스에 대해 안전한 읽기 전용 SQL SELECT 쿼리를 실행합니다. 이 도구를 사용하여 테이블 데이터를 수정하지 않고 탐색하거나 검색할 수 있습니다.

모범 사례:

  • 필요한 열만 나열합니다(사용하지 마세요 SELECT *).
  • 결과 범위를 좁히려면 WHERE 필터를 추가합니다.
  • 페이징에 LIMIT/OFFSET을 사용합니다.
  • 결정적 결과에는 ORDER BY를 사용합니다.
  • 불필요한 중요한 데이터를 반환하지 않습니다.

허용:

  • 단일 SELECT 문만 허용됩니다.

허용되지 않음:

  • SELECT가 아닌 문(INSERT, UPDATE, DELETE, REPLACE, MERGE, TRUNCATE, ALTER, CREATE, DROP).
  • 다중 문입니다.
  • 쓰기 작업을 숨기는 주석입니다.
  • 트랜잭션 제어 문(BEGIN, COMMIT, ROLLBACK).
  • INTO OUTFILE 및 기타 파괴적인 키워드.

Example:
SELECT ID, name, status FROM customers WHERE status = 'Active' ORDER BY name LIMIT 50;

프롬프트 예제는 다음과 같습니다.

  • 쿼리 실행: "사용자 'appuser'를 사용하여 리소스 그룹 'sales-rg'의 서버 'prod-mysql-server'에 있는 데이터베이스 'salesdb'에서 쿼리 'SELECT ID, 이름 FROM customers WHERE status = 'Active' ORDER BY name LIMIT 50'을 실행합니다."
  • 개수 행: "쿼리 SELECT COUNT(*) FROM orders WHERE status = 'completed' on database 'salesdb' on server 'prod-mysql-server' in resource group 'sales-rg' with user 'analyst'"
  • 필터링된 쿼리: "쿼리 'SELECT name FROM users WHERE created_at > '2025-01-01' ORDER BY created_at LIMIT 25' 서버의 'app-mysql-server' 서버 'app-mysql-server' 리소스 그룹 'app-rg'에서 사용자 'developer'와 함께 실행"
  • 상위 제품: "쿼리 'SELECT product_id, SUM(quantity) AS TOTAL FROM sales WHERE sale_date >= '2025-01-01' GROUP BY product_id ORDER BY total DESC LIMIT 10' 서버 'analytics-mysql-server'의 서버 'analytics-mysql-server'에서 'analytics-rg' 사용자 'analyst'의 데이터베이스 'analytics-mysql-server'
  • 고유 값: "리소스 그룹 'inventory-rg'의 서버 'inventory-mysql-server'에서 데이터베이스 '인벤토리'에서 'SELECT DISTINCT Category FROM products LIMIT 20' 쿼리를 실행합니다.'
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.
Database 필수 액세스할 MySQL 데이터베이스입니다.
쿼리 필수 MySQL 데이터베이스에 대해 실행할 SQL 쿼리입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

서버: 구성 가져오기

지정된 Azure Database for MySQL 유연한 서버 인스턴스에 대한 포괄적인 구성 세부 정보를 검색합니다. 이 명령은 서버 설정, 성능 매개 변수, 보안 구성 및 데이터베이스 관리 및 최적화에 필수적인 운영 특성에 대한 인사이트를 제공합니다. 구성 데이터를 JSON 형식(예: , ServerName, Location, VersionSKUStorageSizeGBBackupRetentionDays 속성)GeoRedundantBackup으로 반환합니다.

프롬프트 예제는 다음과 같습니다.

  • 서버 구성 가져오기: "사용자 'dbadmin'을 사용하여 리소스 그룹 'database-rg'에서 서버 'prod-mysql-server'에 대한 구성 세부 정보를 가져옵니다."
  • 버전 및 SKU 표시: "사용자 'developer'가 있는 리소스 그룹 'app-rg'에서 서버 'app-mysql-server'에 대한 MySQL 엔진 버전 및 SKU 표시"
  • 백업 보존 가져오기: "사용자 'backup-admin'이 있는 리소스 그룹 'backup-rg'의 서버 'backup-mysql-server'에 대한 백업 보존 기간은 어떻게 됩니까?"
  • 스토리지 할당 표시: "사용자 'analyst'를 사용하여 리소스 그룹 'analytics-rg'에서 서버 'analytics-mysql-server'에 대한 스토리지 할당 표시"
  • 전체 구성 가져오기: "사용자 'sysadmin'을 사용하여 리소스 그룹 'prod-rg'에서 서버 'prod-mysql-server'에 대한 전체 구성 가져오기"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

서버: 리소스 그룹의 모든 인스턴스 나열

지정된 리소스 그룹 내의 모든 Azure Database for MySQL 유연한 서버 인스턴스를 나열합니다. 이 명령은 이름 및 현재 상태를 포함하여 사용 가능한 MySQL 서버 리소스의 인벤토리를 제공하므로 서버를 효율적으로 관리하고 리소스를 계획할 수 있습니다.

프롬프트 예제는 다음과 같습니다.

  • 서버 나열: "사용자 'dbadmin'을 사용하여 리소스 그룹 'database-rg'의 모든 MySQL 유연한 서버 인스턴스 나열"
  • 리소스 그룹의 서버 나열: "사용자 'sysadmin'을 사용하여 리소스 그룹 'prod-rg'에 MySQL 서버 나열"
  • 지역별로 필터링: "사용자 'operator'를 사용하여 리소스 그룹 'eastus-rg'의 지역 'eastus'에 MySQL 서버 표시"
  • 서버 상태 표시: "사용자 'monitor'를 사용하여 리소스 그룹 'monitoring-rg'의 현재 상태와 함께 서버를 나열합니다."
  • 이름으로 서버 찾기: "사용자 'developer'가 있는 리소스 그룹 'prod-rg'에서 'prod-mysql-server'라는 서버 찾기"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

서버: get 매개 변수

Azure Database for MySQL 유연한 서버에서 단일 서버 구성 매개 변수의 현재 값을 검색합니다. 이 서버 명령을 사용하여 설정을 변경하기 전에 , max_connections또는 wait_timeout등의 설정을 slow_query_log검사합니다.

프롬프트 예제는 다음과 같습니다.

  • 매개 변수 값 가져오기: "'dbadmin'이 있는 리소스 그룹 'database-rg'에서 서버 'prod-mysql-server'에 대한 매개 변수 'max_connections' 값 가져오기"
  • slow_query_log 확인: "'analytics-mysql-server' 서버에서 'analytics-mysql-server' slow_query_log 매개 변수 'analytics-rg' 사용자 'analyst'로 매개 변수 가져오기"
  • wait_timeout 가져오기: "리소스 그룹 'app-rg'에서 서버 'app-mysql-server'에 대한 'wait_timeout' 매개 변수 값을 사용자 'developer'와 함께 표시합니다."
  • 버퍼 풀 크기 표시: "사용자 'sysadmin'이 있는 리소스 그룹 'prod-rg'에서 서버 'prod-mysql-server'에 대한 매개 변수 'innodb_buffer_pool_size' 가져오기"
  • 변경 전 매개 변수 검색: "업데이트 전에 사용자 'dba'를 사용하여 리소스 그룹 'performance-rg'의 서버 'perf-mysql-server'에서 'max_allowed_packet' 매개 변수 검색"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.
Parameter 필수 액세스할 MySQL 매개 변수입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

서버: set 매개 변수

MySQL 서버 구성 매개 변수를 새 값으로 설정하거나 업데이트합니다. 이 명령을 사용하여 성능, 보안 또는 운영 동작을 최적화합니다. 이 명령을 사용하면 매개 변수 변경 내용이 서버의 현재 상태 및 제약 조건과 호환되는지 확인하기 위해 유효성 검사를 통해 미세 조정된 구성 관리를 수행할 수 있습니다.

프롬프트 예제는 다음과 같습니다.

  • 매개 변수 설정: "'dbadmin'이 있는 리소스 그룹 'database-rg'의 서버 'prod-mysql-server'에서 'max_connections' 매개 변수를 '500' 값으로 설정합니다."
  • 느린 쿼리 로그 사용: "'slow_query_log' 매개 변수를 'dba'를 사용하여 리소스 그룹 'analytics-rg'의 서버 'analytics-mysql-server'에서 'ON' 값으로 설정"
  • 시간 제한 조정: "'wait_timeout' 매개 변수를 'sysadmin'이 있는 리소스 그룹 'app-rg'의 서버 'app-mysql-server'에서 '300' 값으로 설정합니다."
  • 버퍼 풀 늘리기: "사용자 'dba'를 사용하여 리소스 그룹 'prod-rg'의 서버 'prod-mysql-server'에서 'innodb_buffer_pool_size' 매개 변수를 '2G' 값으로 설정합니다."
  • 허용되는 최대 패킷 변경: "'max_allowed_packet' 매개 변수를 'dbadmin'을 사용하여 리소스 그룹 'performance-rg'의 서버 'perf-mysql-server'에서 '64M' 값으로 설정합니다."
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.
Parameter 필수 액세스할 MySQL 매개 변수입니다.
필수 MySQL 매개 변수에 대해 설정할 값입니다.

도구 주석 힌트:

파괴: ✅ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ❌ | 비밀: ❌ | 로컬 필수: ❌

테이블: 데이터베이스의 모든 테이블 나열

Azure Database for MySQL 유연한 서버 인스턴스에서 지정된 데이터베이스 내의 모든 테이블을 열거합니다. 이 명령은 테이블 개체의 전체 인벤토리를 제공하여 개발 작업에 대한 데이터베이스 탐색, 스키마 분석 및 데이터 아키텍처 이해를 용이하게 합니다.

프롬프트 예제는 다음과 같습니다.

  • 테이블 나열: "사용자 'appuser'가 있는 리소스 그룹 'sales-rg'의 서버 'prod-mysql-server'에 있는 데이터베이스 'salesdb'의 모든 테이블 나열"
  • 테이블 표시: "사용자 'developer'가 있는 리소스 그룹 'inventory-rg'의 서버 'inventory-mysql-server'의 데이터베이스 '인벤토리'에 있는 테이블은 무엇인가요?"
  • 필터 테이블: "사용자 'developer'가 있는 리소스 그룹 'app-rg'의 서버 'app-mysql-server'에 있는 데이터베이스 'appdb'에서 'tmp_'으로 시작하는 테이블 나열"
  • 개수 테이블: "사용자 '분석가'가 있는 리소스 그룹 'analytics-rg'의 서버 'analytics-mysql-server'의 데이터베이스 '분석'에 있는 테이블은 몇 개입니까?"
  • 테이블 찾기: "사용자가 'readonly'인 리소스 그룹 'sales-rg'의 서버 'sales-mysql-server'에서 데이터베이스 'salesdb'에서 테이블 'orders' 찾기"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.
Database 필수 액세스할 MySQL 데이터베이스입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌

테이블: 테이블 스키마 가져오기

Azure Database for MySQL 유연한 서버 데이터베이스 내의 특정 테이블에 대한 자세한 스키마 정보를 검색합니다. 이 명령은 열 정의, 데이터 형식, 제약 조건, 인덱스 및 관계를 포함한 포괄적인 메타데이터를 제공합니다. 이 정보는 테이블 구조를 이해하고 애플리케이션 개발을 지원하는 데 필수적입니다.

프롬프트 예제는 다음과 같습니다.

  • 테이블 스키마 가져오기: "사용자 'developer'가 있는 리소스 그룹 'sales-rg'의 서버 'sales-mysql-server'에 있는 데이터베이스 'salesdb'에 테이블 'orders'에 대한 스키마 표시"
  • 열 목록 가져오기: "사용자 'appuser'가 있는 리소스 그룹 'crm-rg'의 서버 'crm-mysql-server'에 있는 데이터베이스 'crm'의 테이블 'customers'에 대한 열 및 데이터 형식 나열"
  • 인덱스 정보 표시: "사용자 'analyst'가 있는 리소스 그룹 'billing-rg'의 서버 'billing-mysql-server'에서 데이터베이스 '청구'에 테이블 '트랜잭션'에 대한 인덱스 표시"
  • 기본 키 찾기: "사용자 '개발자'가 있는 리소스 그룹 'auth-rg'의 서버 'auth-mysql-server'에 있는 데이터베이스 'auth'의 테이블 '사용자'에 대한 기본 키는 무엇인가요?"
  • 전체 정의 표시: "사용자가 'readonly'인 리소스 그룹 'inventory-rg'의 서버 'inventory-mysql-server'에 있는 데이터베이스 '인벤토리'에서 테이블 'inventory_items'에 대한 전체 테이블 정의 가져오기"
매개 변수 필수 또는 선택 사항 Description
리소스 그룹 필수 Azure 리소스 그룹의 이름입니다. Azure 리소스에 대한 논리적 컨테이너입니다.
User 필수 MySQL 서버에 액세스할 사용자 이름입니다.
서버 필수 액세스할 MySQL 서버입니다.
Database 필수 액세스할 MySQL 데이터베이스입니다.
테이블 필수 액세스할 MySQL 테이블입니다.

도구 주석 힌트:

파괴: ❌ | Idempotent: ✅ | 오픈 월드: ❌ | 읽기 전용: ✅ | 비밀: ❌ | 로컬 필수: ❌