MySQL MCP Server
MySQL MCP Server
MySQL Model Context Protocol(MCP) 서버는 로컬 환경의 MySQL 데이터베이스에 연결하여 대규모 언어 모델(LLM)이 SQL 쿼리를 실행할 수 있도록 하는 도구입니다.
요구사항
Node.js : 20.0.0 이상
MySQL : 5.7 이상의 MySQL 또는 MariaDB 서버
Related MCP server: YugabyteDB MCP Server
기능
MySQL 쿼리 실행 : LLM에서 SQL 쿼리를 직접 실행
데이터베이스 정보 검색 : 데이터베이스 목록, 테이블 목록, 테이블 구조 확인
MCP 준수 : Model Context Protocol을 지원하고 LLM과 통합 가능
stdio 통신 : 표준 입출력을 사용하여 LLM과 통신, 포트 바인딩 없음
연결 정보 저장 : 데이터베이스 연결 정보를 로컬로 저장하고 재사용
설치 및 사용 방법
NPX에서 임시 실행
npx -y https://github.com/yuki777/mysql-mcp-server --host 127.0.0.1 --port 13306 --user root옵션
옵션 | 설명 | 기본값 |
| MySQL 호스트 | localhost |
| MySQL 포트 | 13306 |
| MySQL 사용자 | 루트 |
| MySQL 암호 | (빈 문자) |
| 기본 데이터베이스 | (선택 사항) |
| 설정 파일 경로 | (선택 사항) |
| 서버 시작 시 자동으로 데이터베이스에 연결 | false |
| MCP 서버 포트(stdio 모드에서는 사용되지 않음) | 3000 |
| MCP 서버 호스트(stdio 모드에서는 사용되지 않음) | localhost |
| 쿼리 시간 초과(밀리초) | 30000 |
| 최대 결과 행 수 | 1000 |
| 디버그 모드 | false |
연결 정보 저장 및 재사용
MySQL MCP Server는 성공적으로 연결된 데이터베이스의 정보를 로컬로 저장합니다. 이렇게하면 다음에 .mysql-mcp-connections.json 때 연결 정보를 자동으로 다시 사용할 수 있습니다.
연결 정보에는 다음이 포함됩니다.
호스트 이름
포트 번호
사용자 이름
비밀번호
데이터베이스 이름(설정된 경우)
구성 파일 사용
구성 파일(JSON 형식)을 사용하여 연결 정보를 설정할 수도 있습니다.
{
"server": {
"port": 3000,
"host": "localhost"
},
"mysql": {
"host": "localhost",
"port": 13306,
"user": "root",
"password": "yourpassword",
"database": "mydb"
},
"debug": false,
"queryTimeout": 30000,
"maxResultSize": 1000
}구성 파일을 사용하는 경우 :
npx -y https://github.com/yuki777/mysql-mcp-server -c ./mysql-mcp-config.json통신 방식
MySQL MCP Server는 MCP(Model Context Protocol)에 준거한 「stdio」모드로 동작합니다.
포트 충돌 방지 : 특정 포트를 사용하지 않기 때문에 포트 충돌 문제가 발생하지 않습니다.
향상된 보안: 네트워크 통신을 사용하지 않으므로 네트워크 수준 공격 위험을 줄입니다.
간단한 프로세스 간 통신 : LLM과의 통신 단순화
주의점
stdio 모드에서는 JSON 형식의 메시지를 교환합니다.
한 줄에 하나의 JSON 메시지를 보내야합니다.
오류 정보와 연결 로그는 표준 오류(stderr)로 출력됩니다.
제공되는 MCP 도구
데이터베이스 연결 관리
도구 이름 | 설명 | 필수 매개변수 |
connect_database | 데이터베이스에 연결 | host, port, user |
disconnect_database | 현재 데이터베이스 연결을 끊습니다. | 없음 |
get_connection_status | 데이터베이스 연결 상태를 가져옵니다. | 없음 |
SQL 쿼리 작업
도구 이름 | 설명 | 필수 매개변수 |
execute_query | MySQL 쿼리를 실행합니다. | query: SQL문 |
get_databases | 사용 가능한 데이터베이스 목록을 가져옵니다. | 없음 |
get_tables | 지정된 데이터베이스의 테이블 목록을 가져옵니다. | database (선택 사항) |
describe_table | 지정된 테이블의 구조를 가져옵니다. | 테이블 |
연결 관리 기능
MySQL MCP Server를 사용하면 서버 시작과 데이터베이스 연결을 분리할 수 있습니다.
연결 정보 없이 부팅 : 서버는 데이터베이스 연결 정보 없이 부팅 가능
여러 데이터베이스에 연결 : 서버를 시작한 후 다른 데이터베이스로 연결을 전환할 수 있습니다.
간단한 설치 :
npx -y https://github.com/yuki777/mysql-mcp-server에서만 실행 가능
연결 관리 사용 방법
자동 연결 없이 서버 시작 :
npx -y https://github.com/yuki777/mysql-mcp-server연결 도구를 사용하여 데이터베이스에 연결 :
{ "type": "tool_call", "request_id": "req_1", "tool": "connect_database", "arguments": { "host": "localhost", "port": 3306, "user": "root", "password": "your_password", "database": "your_db" } }연결 상태 확인 :
{ "type": "tool_call", "request_id": "req_2", "tool": "get_connection_status", "arguments": {} }연결 끊기 :
{ "type": "tool_call", "request_id": "req_3", "tool": "disconnect_database", "arguments": {} }
테스트 스크립트
리포지토리에는 test-connection-management.js 라는 테스트 스크립트가 포함되어 있습니다.이 스크립트를 사용하여 연결 관리 기능을 테스트 할 수 있습니다.
node test-connection-management.js개발자 정보
개발 환경 설정
# リポジトリのクローン
git clone [repository-url]
cd mysql-mcp-server
# 依存関係のインストール
npm install
# 開発モードでの実行
npm run dev빌드
npm run build라이센스
ISC
기여
버그 리포트, 기능 요청, 풀 요청을 환영합니다.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/yuki777/mysql-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server