🚀 MariaDB / MySQL 數據庫訪問 MCP 服務器
該 MCP 服務器提供對 MariaDB / MySQL 數據庫的訪問。它允許你:
- 列出可用的數據庫
- 列出數據庫中的表
- 描述表結構
- 執行 SQL 查詢
🚀 快速開始
本 MCP 服務器可讓你輕鬆訪問 MariaDB / MySQL 數據庫,執行各類常見的數據庫操作。
✨ 主要特性
- 默認只讀訪問:支持 SELECT、SHOW、DESCRIBE 和 EXPLAIN 操作。
- 查詢驗證:防止 SQL 注入,並阻止任何數據修改嘗試。
- 查詢超時:避免長時間運行的查詢消耗資源。
- 行限制:防止返回過多數據。
📦 安裝指南
選項 1:從源代碼構建
git clone https://github.com/bretoreta/mariadb-mcp-server.git
cd mariadb-mcp-server
pnpm install
pnpm run build
2. 配置環境變量
服務器需要以下環境變量:
- MARIADB_HOST:數據庫服務器主機名
- MARIADB_PORT:數據庫服務器端口(默認:3306)
- MARIADB_USER:數據庫用戶名
- MARIADB_PASSWORD:數據庫密碼
- MARIADB_DATABASE:默認數據庫名稱(可選)
- MARIADB_ALLOW_INSERT:false
- MARIADB_ALLOW_UPDATE:false
- MARIADB_ALLOW_DELETE:false
- MARIADB_TIMEOUT_MS:10000
- MARIADB_ROW_LIMIT:1000
3. 添加到 MCP 設置
將以下配置添加到你的 MCP 設置文件中:
如果你是從源代碼構建的:
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/path/to/mariadb-mcp-server/dist/index.js"],
"env": {
"MARIADB_HOST": "your-host",
"MARIADB_PORT": "3306",
"MARIADB_USER": "your-user",
"MARIADB_PASSWORD": "your-password",
"MARIADB_DATABASE": "your-default-database",
"MARIADB_ALLOW_INSERT": "false",
"MARIADB_ALLOW_UPDATE": "false",
"MARIADB_ALLOW_DELETE": "false",
"MARIADB_TIMEOUT_MS": "10000",
"MARIADB_ROW_LIMIT": "1000"
},
"disabled": false,
"autoApprove": []
}
}
}
💻 使用示例
基礎用法
list_databases
列出 MariaDB / MySQL 服務器上所有可訪問的數據庫。
參數:無
示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "list_databases"
}
}
list_tables
列出指定數據庫中的所有表。
參數:
database(可選):數據庫名稱(若未指定,則使用默認數據庫)
示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "list_tables",
"database": "my_database_name"
}
}
describe_table
顯示特定表的結構。
參數:
database(可選):數據庫名稱(若未指定,則使用默認數據庫)
table(必需):表名稱
示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "describe_table",
"database": "my_database_name",
"table": "my_table_name"
}
}
execute_query
執行 SQL 查詢。
參數:
query(必需):SQL 查詢語句
database(可選):數據庫名稱(若未指定,則使用默認數據庫)
示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"sessionId": "session_id from /sse call",
"name": "execute_query",
"query": "SELECT * FROM my_table LIMIT 10"
}
}
📚 詳細文檔
測試
服務器會自動測試 MariaDB,以驗證其與你的 MariaDB 設置的功能兼容性。
故障排除
如果你遇到問題:
- 檢查服務器日誌以查看錯誤消息。
- 驗證你的 MariaDB 憑證和連接詳細信息。
- 確保你的 MariaDB 用戶具有適當的權限。
- 檢查你的查詢是否為只讀且格式正確。
靈感來源
https://github.com/rjsalgado/mariadb-mcp-server
📄 許可證
本項目採用 MIT 許可證 - 有關詳細信息,請參閱 LICENSE 文件。