역링크
MariaDB
MariaDB
MariaDB MCP 서버는 MariaDB 데이터베이스와의 통합을 제공하는 Model Context Protocol(MCP) 서버입니다. 이 서버는 Python으로 구현되어 있으며, 구성 가능한 접근 제어 기능을 갖추고 있어 AI 어시스턴트가 MariaDB 데이터베이스 스키마를 검사하고 SQL 쿼리를 실행할 수 있게 해줍니다.
특징
- MariaDB 데이터베이스에 대한 읽기 및 쓰기 액세스 제공
- 구성 가능한 접근 제어로 데이터베이스 보안 강화
- 스키마 검사 기능
- SQL 쿼리 실행
- 테이블 목록 조회 및 테이블 세부 정보 확인
- 여러 데이터베이스 간 작업 지원
- Claude Desktop 및 기타 MCP 클라이언트와 통합 가능
구현 방식
MariaDB MCP 서버는 여러 형태로 구현되어 있으며, 주요 구현 방식은 다음과 같습니다:
-
Python 기반 구현: 기본 구현으로 Python을 사용하여 구성 가능한 접근 제어를 갖춘 MariaDB 데이터베이스 통합 제공
-
Quarkus 기반 구현: Java 및 Quarkus를 사용한 구현으로, JBang을 통해 쉽게 실행 가능하며 JDBC 드라이버를 활용하여 여러 데이터베이스 시스템과 호환 가능
-
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 서버는 다양한 보안 기능을 제공합니다:
-
구성 가능한 접근 제어: 환경 변수를 통해 데이터베이스 작업(INSERT, UPDATE, DELETE)을 제한할 수 있습니다.
-
읽기 전용 모드: 필요한 경우 서버를 읽기 전용 모드로 설정하여 데이터 수정을 방지할 수 있습니다.
-
스키마별 권한: 일부 구현에서는 스키마별 권한을 설정하여 각 데이터베이스에 대해 서로 다른 수준의 액세스를 제공할 수 있습니다.
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 -
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 서버를 사용하려면:
.vscode/mcp.json파일을 생성하거나 편집합니다.- 다음 구성을 추가합니다:
{
"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"
}
}
}
}
- 명령 팔레트(Ctrl+Shift+P 또는 Mac에서 Cmd+Shift+P)를 열고 "MCP: Start Server" 명령을 실행하여 목록에서 "mariadb"를 선택합니다.
- VS Code에서 에이전트 모드로 전환하여 MariaDB MCP 서버를 사용할 수 있습니다.