MySQL Server
準備一個 MySQL 測試資料庫。
可以用 Docker 來快速建立測試環境,如果你也習慣用 Docker,可以執行下面的指令來啟動 MySQL 容器:
# 清理背景失敗的容器(強制刪除卡住的容器)
docker rm -f mysql-mcp
# 用 mysql:8.0 啟動容器
docker run -d --name mysql-mcp -e MYSQL_ROOT_PASSWORD=1qaz@wsx -e MYSQL_DATABASE=mcp -p 6033:3306 mysql:8.0 --skip-name-resolve --default-authentication-plugin=mysql_native_password
# 查看容器日誌確認是否 Ready
docker logs -f mysql-mcp
# 直接使用 Docker 內部的 CLI 登入(推薦選項 A)
docker exec -it mysql-mcp mysql -uroot -p1qaz@wsx
# 若仍想用 Windows CMD 的 mysql 連線 (選項 B)
mysql -h 127.0.0.1 -P 6033 -u root -p
# 確認 MySQL 容器運作中
docker ps
# 若未啟動,請先啟動 `docker start mysql-mcp`
# 啟動 phpMyAdmin 容器
# CMD 執行以下指令,透過 `--link` 參數將 phpMyAdmin 連接到 `mysql-mcp` 容器:
docker run -d --name myadmin -p 8080:80 --link mysql-mcp:db phpmyadmin/phpmyadmin
# -p 8080:80: 將網頁介面映射到本機的 `8080` 端口。
# --link mysql-mcp:db :讓 phpMyAdmin 自動把 mysql-mcp 容器當作預設的資料庫主機(db)。
# 確認 phpmyadmin 已成功運行:
# docker ps
# 應該會看到 mysql-mcp 與 myadmin 兩個容器都在 Up 狀態
# 開啟瀏覽器登入: http://localhost:8080
# 在登入畫面輸入:
# - **伺服器 (Server)**:`db` (或保持預設)
# - **使用者名稱 (Username)**:`root`
# - **密碼 (Password)**:`1qaz@wsx` 此指令會建立一個 mysql-mcp 容器,root 密碼設為 1qaz@wsx ,並自動建立一個 mcp 資料庫。
如果你已經有了本地或遠端的 MySQL 環境,可以直接使用。
mcp_config.json
{
"mcpServers": {
"mysql": {
"command": "python",
"args": [
"-m",
"mysql_mcp_server.server"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "1qaz@wsx",
"MYSQL_DATABASE": "class"
}
},
"mssql": {
"command": "python",
"args": [
"-m",
"mssql_mcp_server.server"
],
"env": {
"MSSQL_SERVER": ".\\SQL2022",
"MSSQL_USER": "sa",
"MSSQL_PASSWORD": "1qaz2wsx",
"MSSQL_DATABASE": "class"
},
"disabled": true
}
}
}MCP MySQL 與 MSSQL 服務安裝與使用教學
本文件說明如何透過 mcp_config.json 設定並使用 MySQL 與 MSSQL 的 MCP(Model Context Protocol)服務,以及所需安裝的 Python 套件。
一、MCP 架構概覽
AI 助理(Antigravity)
│
├─ MCP Server: mysql → mysql-mcp-server → MySQL 資料庫
└─ MCP Server: mssql → mssql-mcp-server → SQL Server 資料庫
每個 MCP Server 提供一個工具:
execute_sql— 執行 SQL 查詢並回傳結果
二、環境需求
通用需求
| 工具 | 說明 |
|---|---|
| Python 3.10+ | 執行 MCP Server |
uv / uvx | 套件管理與執行工具(推薦) |
pip | 傳統 Python 套件安裝工具 |
MSSQL 額外需求
IMPORTANT
連接 SQL Server 需要安裝 Microsoft ODBC Driver for SQL Server。
請至 Microsoft 官方下載安裝:
三、安裝 Python 套件
方法 A:使用 uvx(推薦,免手動安裝)
uvx 會自動下載並在隔離環境執行套件,不需要手動 pip install。
只需確保 uv 已安裝:
pip install uv或從官方安裝:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"方法 B:使用 pip 安裝(傳統方式)
:: 安裝 MySQL MCP Server
pip install mysql-mcp-server
:: 安裝 MSSQL MCP Server
pip install mssql-mcp-server建議使用虛擬環境
:: 建立虛擬環境
python -m venv mcp-env
:: 啟動虛擬環境(Windows)
mcp-env\Scripts\activate
:: 安裝套件
pip install mysql-mcp-server mssql-mcp-server四、mcp_config.json 設定說明
以下為完整設定範例,請替換為您實際的資料庫連線資訊:
{
"mcpServers": {
"mysql": {
"command": "uvx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
},
"mssql": {
"command": "uvx",
"args": ["mssql-mcp-server"],
"env": {
"MSSQL_HOST": "127.0.0.1",
"MSSQL_PORT": "1433",
"MSSQL_USER": "sa",
"MSSQL_PASSWORD": "your_password",
"MSSQL_DATABASE": "your_database",
"MSSQL_TRUST_SERVER_CERTIFICATE": "true"
}
}
}
}環境變數說明
MySQL
| 變數名稱 | 說明 | 預設值 |
|---|---|---|
MYSQL_HOST | 資料庫伺服器位址 | 127.0.0.1 |
MYSQL_PORT | 連接埠 | 3306 |
MYSQL_USER | 使用者名稱 | — |
MYSQL_PASSWORD | 密碼 | — |
MYSQL_DATABASE | 預設資料庫名稱 | — |
MSSQL
| 變數名稱 | 說明 | 預設值 |
|---|---|---|
MSSQL_HOST | 資料庫伺服器位址 | 127.0.0.1 |
MSSQL_PORT | 連接埠 | 1433 |
MSSQL_USER | 使用者名稱 | — |
MSSQL_PASSWORD | 密碼 | — |
MSSQL_DATABASE | 預設資料庫名稱 | — |
MSSQL_TRUST_SERVER_CERTIFICATE | 信任自簽憑證(開發環境用) | false |
WARNING
請勿將密碼明文寫入版本控制系統(git)。建議使用系統環境變數或
.env檔案管理機密資訊。
五、MCP 工具使用方式
兩個 MCP Server 都提供同一個工具 execute_sql,使用方式如下:
工具規格
{
"name": "execute_sql",
"description": "Execute an SQL query on the MySQL/MSSQL server",
"parameters": {
"query": {
"type": "string",
"description": "The SQL query to execute",
"required": true
}
}
}在 AI 助理中使用
直接以自然語言告訴 AI 助理即可,例如:
幫我查詢 MySQL 的 users 資料表,列出所有使用者
幫我在 SQL Server 查詢最近 7 天的訂單記錄
六、SQL 查詢範例
MySQL 範例
查詢所有資料表
SHOW TABLES;查詢資料表結構
DESCRIBE users;查詢資料
SELECT * FROM users WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY) LIMIT 10;建立資料表
CREATE TABLE IF NOT EXISTS products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);MSSQL 範例
查詢所有資料表
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';查詢資料表欄位
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Users';查詢資料(含分頁)
SELECT *
FROM Orders
WHERE OrderDate >= DATEADD(DAY, -7, GETDATE())
ORDER BY OrderDate DESC
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY;建立資料表
CREATE TABLE Products (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL,
Price DECIMAL(10, 2),
CreatedAt DATETIME2 DEFAULT GETDATE()
);七、驗證安裝是否成功
設定完成後,重新啟動 AI 助理工具,然後可以執行以下測試:
測試 MySQL 連線
SELECT VERSION();測試 MSSQL 連線
SELECT @@VERSION;八、常見問題排除
❌ 問題:uvx 找不到指令
解決方法: 確認 uv 已正確安裝並加入 PATH。
uv --version❌ 問題:MSSQL 連線失敗,提示 ODBC 錯誤
解決方法: 安裝 Microsoft ODBC Driver 17 或 18 for SQL Server。
下載頁面:https://learn.microsoft.com/zh-tw/sql/connect/odbc/download-odbc-driver-for-sql-server
❌ 問題:MySQL 連線拒絕(Connection Refused)
解決方法:
- 確認 MySQL 服務正在執行:
net start MySQL - 確認防火牆未封鎖 3306 埠
- 確認使用者有遠端連線權限:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
❌ 問題:修改 mcp_config.json 後沒有生效
解決方法: 必須完全重新啟動 AI 助理工具(不只是重新整理頁面),設定才會載入。
九、相關資源
- Model Context Protocol 官方文件
- mysql-mcp-server on PyPI
- mssql-mcp-server on PyPI
- uv 官方文件
- Microsoft ODBC Driver 下載
相關主題與延伸閱讀
- 1. VS Code 環境中使用 MCP MySQL 與 MSSQL 服務:同樣主題但改在 VS Code 環境下設定,內容可互相對照參考。
- 3. GitHub Copilot:了解 Copilot Chat 使用 MCP 伺服器時可能遇到的組織政策限制問題。
- 1. 如何在 Antigravity IDE 使用 Claude code AI Agent:認識 Antigravity IDE 中另一種常用的 AI Agent 設定方式。
- 2. pip 套件管理工具:熟悉 Python 套件安裝方式,有助於理解本篇 MCP Server 套件的安裝步驟。