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 設定並使用 MySQLMSSQL 的 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)

解決方法:

  1. 確認 MySQL 服務正在執行:net start MySQL
  2. 確認防火牆未封鎖 3306 埠
  3. 確認使用者有遠端連線權限:
    GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;

❌ 問題:修改 mcp_config.json 後沒有生效

解決方法: 必須完全重新啟動 AI 助理工具(不只是重新整理頁面),設定才會載入。


九、相關資源


相關主題與延伸閱讀