Skip to main content
Glama
gistrec

mcp-mysql-client

MySQL MCP

npm CI License: MIT

MySQL MCP는 AI 애플리케이션을 하나의 MySQL 또는 MariaDB 데이터베이스에 연결합니다: 구조를 살펴보고, 자연어로 데이터에 질문하고, 느린 쿼리를 분석하고, 직접 허용한 경우 데이터를 수정할 수 있습니다.

서버는 하나의 데이터베이스에 바인딩됩니다: 구성으로 지정되며, 어떤 도구도 다른 데이터베이스로 이동할 수 없습니다. 기본적으로 읽기 전용만 가능합니다.

  • 도구 6개. 연결 및 권한, 테이블 목록, 테이블 구조, 읽기 쿼리, 쿼리 계획, 변경 쿼리.

  • 쿼리 유형은 서버가 결정합니다. SQL은 연결 전에 파싱됩니다: 읽기 도구의 DELETE는 쓰기 권한이 활성화되어 있어도 거부됩니다.

  • 읽기는 쓸 수 없습니다. 읽기 쿼리는 START TRANSACTION READ ONLY 내에서 실행됩니다 — SQL 파싱을 우회하더라도 MySQL 자체가 쓰기를 거부합니다.

  • 응답이 컨텍스트를 넘치지 않습니다. 행은 스트림으로 읽혀지고 한도에서 중단되며 전체를 가져오지 않습니다; 응답에는 정직한 truncated 표시가 있습니다.

  • 권한은 외부에서만 설정합니다. INSERT, UPDATE, DELETE는 환경 변수로 활성화되며 재시작이 필요합니다 — 대화에서 얻을 수 없습니다. DDL은 항상 사용할 수 없습니다.

데이터만 읽는 쿼리부터 시작하세요:

데이터베이스 구조를 보여주고 지난 주에 추가된 레코드 수를 계산해줘.


빠른 시작

Claude Code:

claude mcp add mysql-myapp \
  -e MYSQL_HOST=db.example.com \
  -e MYSQL_USER=myapp_ro \
  -e MYSQL_PASS='пароль' \
  -e MYSQL_DB=myapp \
  -e MYSQL_SSL=true \
  -- npx -y mcp-mysql-client

또는 .mcp.json / claude_desktop_config.json에서:

{
  "mcpServers": {
    "mysql-myapp": {
      "command": "npx",
      "args": ["-y", "mcp-mysql-client"],
      "env": {
        "MYSQL_HOST": "db.example.com",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "myapp_ro",
        "MYSQL_PASS": "пароль",
        "MYSQL_DB": "myapp",
        "MYSQL_SSL": "true"
      }
    }
  }
}

하나의 서버 — 하나의 데이터베이스. 여러 데이터베이스가 필요하면: 각각의 자격 증명으로 여러 항목을 추가하세요; 이렇게 하면 권한이 격리되고, 테스트 데이터베이스에 연결된 서버는 프로덕션 데이터베이스를 물리적으로 볼 수 없습니다.

Related MCP server: MySQL MCP Server

무엇을 맡길 수 있나

요청

서버가 수행하는 작업

"이 데이터베이스에 무엇이 있나요?"

list_tables — 테이블, 크기, 행 수 추정치

"orders 테이블은 어떻게 구성되어 있나요?"

describe_table — 열, 인덱스, 양방향 외래 키

"7월 주문 수와 금액은 얼마인가요?"

query — 집계가 포함된 SELECT

"이 쿼리가 왜 느린가요?"

explain — 계획, 인덱스, 행 추정치

"어떤 사용자로 연결되어 있고 무엇을 할 수 있나요?"

server_info — 데이터베이스, 사용자, GRANT, 서버 제한

"취소된 주문에 상태를 표시해줘"

executeALLOW_UPDATE_OPERATION=true일 때만

무엇이 변경될 수 있나

기본적으로는 아무것도 없습니다: 서버는 읽기 전용 모드로 시작됩니다. 쓰기는 작업별로 활성화됩니다:

"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"

이때 여전히 불가능한 것:

  • DDLCREATE, ALTER, DROP, TRUNCATE, RENAME — 어떤 설정에서도 불가능합니다.

  • 데이터베이스 변경, SET, CALL, PREPARE, LOAD DATA, 잠금, GRANT 및 다음 쿼리의 의미를 변경하거나 검증되지 않은 텍스트를 실행하는 기타 작업.

  • SELECT ... INTO OUTFILE — 데이터베이스 서버에 파일 쓰기.

  • WHERE 없는 UPDATEDELETE — 호출에서 명시적 확인 allow_full_table=true가 필요합니다.

  • 하나의 호출에 여러 문장 — 정확히 하나만 실행됩니다.

MySQL 권한은 이 위에 별도의 제한입니다. ALLOW_UPDATE_OPERATION 허용은 GRANT UPDATE가 없는 사용자에게 아무것도 추가하지 않습니다. 권장 사례: root가 아닌 최소 권한을 가진 별도의 사용자.

환경 변수

변수

기본값

용도

MYSQL_HOST

127.0.0.1

서버 호스트

MYSQL_PORT

3306

포트

MYSQL_SOCKET_PATH

host/port 대신 Unix 소켓

MYSQL_USER

사용자 (필수)

MYSQL_PASS

비밀번호 (MYSQL_PASSWORD의 동의어)

MYSQL_PASS_FILE

변수 대신 파일에서 비밀번호 읽기

MYSQL_DB

데이터베이스 (필수, MYSQL_DATABASE의 동의어)

MYSQL_SSL

false

TLS 요구

MYSQL_SSL_CA

루트 인증서 경로; 자체로 TLS 활성화

MYSQL_SSL_REJECT_UNAUTHORIZED

true

서버 인증서 확인

ALLOW_INSERT_OPERATION

false

INSERT 허용

ALLOW_UPDATE_OPERATION

false

UPDATE 허용

ALLOW_DELETE_OPERATION

false

DELETE 허용

MYSQL_MAX_ROWS

1000

단일 응답의 행 상한

MYSQL_TIMEOUT_MS

30000

쿼리 타임아웃

MYSQL_CONNECT_TIMEOUT_MS

10000

연결 타임아웃

MYSQL_POOL_SIZE

3

풀의 연결 수

MYSQL_MAX_RETRIES

2

연결 끊김 및 교착 상태 시 재시도

MYSQL_READ_ONLY_TX

true

읽기 전용 트랜잭션에서 읽기 실행

ASKADS_TELEMETRY

0은 익명 실행 통계를 비활성화

MCP 클라이언트 구성의 비밀번호는 평문으로 저장됩니다. MYSQL_PASS_FILE을 사용하면 필요한 권한으로 파일에 보관할 수 있습니다.

@benborla29/mcp-server-mysql에서 전환

변수 이름이 동일하므로 실행 명령에서 패키지만 교체하면 됩니다:

-  "args": ["-y", "@benborla29/mcp-server-mysql"]
+  "args": ["-y", "mcp-mysql-client"]

동작에서 변경되는 사항:

  • MYSQL_DB 필수 — 서버는 항상 하나의 데이터베이스에 바인딩됩니다;

  • 응답은 MYSQL_MAX_ROWS로 제한되고 truncated로 표시됩니다;

  • 쓰기 권한이 활성화되어 있어도 DDL은 사용할 수 없습니다;

  • WHERE 없는 UPDATE/DELETE는 호출에서 확인이 필요합니다;

  • 도구 세트가 다릅니다: query, execute, explain, list_tables, describe_table, server_info.

진단

먼저 — server_info: 서버가 무엇에 연결되어 있는지, MySQL 사용자의 권한, 활성화된 제한 사항을 보여줍니다.

증상

원인

errno 1045

잘못된 MYSQL_USER / MYSQL_PASS

errno 1044

사용자는 있지만 데이터베이스 권한이 없음

errno 1142

작업 또는 테이블에 대한 GRANT 부족 — ALLOW_*는 여기서 도움이 되지 않음

errno 3159

서버가 TLS 요구: MYSQL_SSL=true

ECONNREFUSED / ETIMEDOUT

호스트, 포트, 방화벽 또는 VPN 미연결

ER_NOT_SUPPORTED_AUTH_MODE

caching_sha2_password에 TLS 필요

서버가 연결되지 않음

구성 오류가 대화에서 바로 표시됨: 서버는 자격 증명 없이도 시작되고 무엇이 부족한지 설명함

기술 문서

  • 도구 — 매개변수 및 응답

  • 개발 — 빌드, 테스트, 실시간 검증

  • 게시 — npm 및 MCP 레지스트리 릴리스

  • CLAUDE.md — AI 에이전트를 위한 리포지토리 구조

라이선스

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI agents to safely explore and interact with MySQL databases through dynamic tool generation from stored procedures. It provides database discovery capabilities and intelligent procedure categorization while enforcing security restrictions to prevent data modification.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to query and manage MySQL databases through a structured MCP interface, supporting SQL execution, table inspection, and database operations.
    9
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A robust MCP server for interacting with MySQL databases through AI agents, providing tools for schema analysis, query execution, and dynamic connection management with read-only security.
    61
    MIT

View all related MCP servers

Related MCP Connectors

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

View all MCP Connectors

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/gistrec/mcp-mysql-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server