MCP 문서 관리

메뉴

MariaDB

MariaDB

MariaDB MCP 서버는 MariaDB 데이터베이스와의 통합을 제공하는 Model Context Protocol(MCP) 서버입니다. 이 서버는 Python으로 구현되어 있으며, 구성 가능한 접근 제어 기능을 갖추고 있어 AI 어시스턴트가 MariaDB 데이터베이스 스키마를 검사하고 SQL 쿼리를 실행할 수 있게 해줍니다.

특징

  • MariaDB 데이터베이스에 대한 읽기 및 쓰기 액세스 제공
  • 구성 가능한 접근 제어로 데이터베이스 보안 강화
  • 스키마 검사 기능
  • SQL 쿼리 실행
  • 테이블 목록 조회 및 테이블 세부 정보 확인
  • 여러 데이터베이스 간 작업 지원
  • Claude Desktop 및 기타 MCP 클라이언트와 통합 가능

구현 방식

MariaDB MCP 서버는 여러 형태로 구현되어 있으며, 주요 구현 방식은 다음과 같습니다:

  1. Python 기반 구현: 기본 구현으로 Python을 사용하여 구성 가능한 접근 제어를 갖춘 MariaDB 데이터베이스 통합 제공

  2. Quarkus 기반 구현: Java 및 Quarkus를 사용한 구현으로, JBang을 통해 쉽게 실행 가능하며 JDBC 드라이버를 활용하여 여러 데이터베이스 시스템과 호환 가능

  3. SQLAlchemy 기반 구현: MCP-Alchemy 프로젝트의 일부로, SQLAlchemy를 사용하여 여러 관계형 데이터베이스 시스템(MariaDB 포함)에 접근 가능

제공 도구

데이터베이스 쿼리 및 조작

  • execute_query: SQL 쿼리 실행
  • 필수 매개변수: SQL 쿼리 문자열
  • 선택적 매개변수: 쿼리 파라미터
  • 반환: 쿼리 결과

  • list_tables: 데이터베이스의 모든 테이블 목록 조회

  • 필수 매개변수 없음
  • 반환: 테이블 목록

  • describe_table: 특정 테이블의 스키마 설명

  • 필수 매개변수: 테이블 이름
  • 반환: 테이블 스키마 정보

스키마 관리

  • list_databases: 사용 가능한 모든 데이터베이스 목록 조회
  • 필수 매개변수 없음
  • 반환: 데이터베이스 목록

  • get_database_info: 특정 데이터베이스에 대한 정보 조회

  • 필수 매개변수: 데이터베이스 이름
  • 반환: 데이터베이스 정보

설치 및 구성 방법

Python 기반 구현

Claude Desktop 구성 파일에 다음과 같이 추가합니다:

{
  "mcpServers": {
    "mariadb": {
      "command": "python",
      "args": ["-m", "mcp_server_mariadb"],
      "env": {
        "MARIADB_HOST": "localhost",
        "MARIADB_PORT": "3306",
        "MARIADB_USER": "username",
        "MARIADB_PASSWORD": "password",
        "MARIADB_DATABASE": "database_name"
      }
    }
  }
}

Quarkus 기반 구현 (JBang 사용)

JBang을 사용하여 MariaDB 서버를 실행할 수 있습니다:

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:mariadb://localhost:3306/test --user root --password mysecretpassword

MCP-Alchemy 기반 구현

Claude Desktop 구성 파일에 다음과 같이 추가합니다:

{
  "mcpServers": {
    "my_mariadb": {
      "command": "uvx",
      "args": ["--from", "mcp-alchemy==2025.5.2.210242", "--with", "pymysql", "--refresh-package", "mcp-alchemy", "mcp-alchemy"],
      "env": {
        "DB_URL": "mariadb+pymysql://user:password@localhost/dbname"
      }
    }
  }
}

환경 변수 설정

다음 환경 변수를 사용하여 MariaDB 서버를 구성할 수 있습니다:

  • MARIADB_HOST: MariaDB 서버 호스트 (기본값: localhost)
  • MARIADB_PORT: MariaDB 서버 포트 (기본값: 3306)
  • MARIADB_USER: 데이터베이스 사용자 이름
  • MARIADB_PASSWORD: 데이터베이스 비밀번호
  • MARIADB_DATABASE: 접근할 데이터베이스 이름
  • ALLOW_INSERT_OPERATION: INSERT 작업 허용 여부 (기본값: false)
  • ALLOW_UPDATE_OPERATION: UPDATE 작업 허용 여부 (기본값: false)
  • ALLOW_DELETE_OPERATION: DELETE 작업 허용 여부 (기본값: false)

보안 고려사항

MariaDB MCP 서버는 다양한 보안 기능을 제공합니다:

  1. 구성 가능한 접근 제어: 환경 변수를 통해 데이터베이스 작업(INSERT, UPDATE, DELETE)을 제한할 수 있습니다.

  2. 읽기 전용 모드: 필요한 경우 서버를 읽기 전용 모드로 설정하여 데이터 수정을 방지할 수 있습니다.

  3. 스키마별 권한: 일부 구현에서는 스키마별 권한을 설정하여 각 데이터베이스에 대해 서로 다른 수준의 액세스를 제공할 수 있습니다.

    SCHEMA_INSERT_PERMISSIONS=development:true,test:true,production:false
    SCHEMA_UPDATE_PERMISSIONS=development:true,test:true,production:false
    SCHEMA_DELETE_PERMISSIONS=development:false,test:true,production:false

  4. SSL/TLS 연결: 보안 통신을 위해 SSL/TLS 연결을 구성할 수 있습니다.

멀티 데이터베이스 지원

일부 MariaDB MCP 서버 구현에서는 하나의 연결로 여러 데이터베이스에 액세스할 수 있는 멀티 데이터베이스 모드를 지원합니다. 이를 활성화하려면 MARIADB_DATABASE 환경 변수를 비워두거나 지정하지 않으면 됩니다.

멀티 데이터베이스 모드에서는 쿼리에 스키마 한정자를 사용해야 합니다:

-- 정규화된 테이블 이름 사용
SELECT * FROM database_name.table_name;

-- 또는 USE 문을 사용하여 데이터베이스 전환
USE database_name;
SELECT * FROM table_name;

디버깅

MCP 서버는 stdio를 통해 실행되므로 디버깅이 어려울 수 있습니다. 디버깅을 위해 MCP Inspector를 사용하는 것이 좋습니다.

npx @modelcontextprotocol/inspector python -m mcp_server_mariadb

또는 Quarkus 기반 구현의 경우:

npx @modelcontextprotocol/inspector jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:mariadb://localhost:3306/test --user root --password mysecretpassword

사용 예시

다음은 MariaDB MCP 서버 사용 예시입니다:

테이블 목록 조회

데이터베이스의 모든 테이블을 나열해 주세요.

SQL 쿼리 실행

SELECT first_name, last_name, email FROM customers WHERE city = 'Seoul' ORDER BY last_name;

테이블 스키마 확인

'products' 테이블의 구조를 설명해 주세요.

멀티 데이터베이스 쿼리

USE webstore;
SELECT product_id, name, price FROM products WHERE category = 'electronics' AND price < 100;

VS Code에서 사용하기

VS Code에서 MariaDB MCP 서버를 사용하려면:

  1. .vscode/mcp.json 파일을 생성하거나 편집합니다.
  2. 다음 구성을 추가합니다:
{
  "servers": {
    "mariadb": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "mcp_server_mariadb"],
      "env": {
        "MARIADB_HOST": "localhost",
        "MARIADB_PORT": "3306",
        "MARIADB_USER": "username",
        "MARIADB_PASSWORD": "password",
        "MARIADB_DATABASE": "database_name"
      }
    }
  }
}
  1. 명령 팔레트(Ctrl+Shift+P 또는 Mac에서 Cmd+Shift+P)를 열고 "MCP: Start Server" 명령을 실행하여 목록에서 "mariadb"를 선택합니다.
  2. VS Code에서 에이전트 모드로 전환하여 MariaDB MCP 서버를 사용할 수 있습니다.

연결된 구성 요소