自从看了个别大佬搞AIops,很冲动,所以我也开始折腾起来了,就以MySQL-mcp开始试试手,走走大佬走过的路。

概要

workbuddy和MySQL通过mcp交互。

技术细节

目前只记录整个部署配置过程
1、部署测试的MySQL容器
1.1、docker run命令

mkdir -p data conf logs
docker run -d \
--name mysql8 \
-p 3306:3306 \
--restart always \
-e MYSQL_ROOT_PASSWORD='Root@123456' \
-v ./data:/var/lib/mysql \
-v ./conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v ./logs:/var/log/mysql \
mysql:8.0

1.2、mysql参考配置文件如下,仅供参考

[mysqld]

# 基础配置
port=3306
server-id=1

# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 时区
default-time-zone='+08:00'

# 日志
log-error=/var/log/mysql/error.log

# 性能参数
max_connections=5000

# InnoDB
innodb_buffer_pool_size=1G
innodb_file_per_table=1

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

2、使用git clone mysql-mcp的代码仓库

# 我选择的是2.0.9版本
git clone -b v2.0.9 https://github.com/benborla/mcp-server-mysql.git

3、进入代码仓目录,修改.env文件中MySQL相关的配置

cd ./mcp-server-mysql/
vim .env
##修改以下配置,标注“这里”的地方
MYSQL_HOST=127.0.0.1	###这里
# MYSQL_SOCKET_PATH=/tmp/mysql.sock
MYSQL_PORT=3306	###这里
MYSQL_USER=root	###这里
MYSQL_PASS=Root@123456	###这里
MYSQL_DB=

# Leave MYSQL_DB empty for multi-DB mode
# Set MYSQL_DB to a specific database name for single-DB mode

# Global write operation permissions (default to false for safety)
ALLOW_INSERT_OPERATION=true
ALLOW_UPDATE_OPERATION=true
ALLOW_DELETE_OPERATION=true
ALLOW_DDL_OPERATION=true

# Schema-specific permissions
# Format: "schema1:true,schema2:false"
SCHEMA_INSERT_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_UPDATE_PERMISSIONS=test_db:true,staging_db:false
SCHEMA_DELETE_PERMISSIONS=test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=test_db:true,staging_db:false

# Multi-DB mode settings
# Set to true ONLY if you want to allow write operations in multi-DB mode without
# schema-specific permissions (not recommended)
MULTI_DB_WRITE_MODE=true

# SSL configuration
MYSQL_SSL=false
MYSQL_SSL_REJECT_UNAUTHORIZED=true

# Performance settings
MYSQL_POOL_SIZE=10
MYSQL_QUERY_TIMEOUT=30000
MYSQL_CACHE_TTL=60000

# Security settings
MYSQL_RATE_LIMIT=100
MYSQL_MAX_QUERY_COMPLEXITY=1000

# Monitoring settings
ENABLE_LOGGING=true
MYSQL_LOG_LEVEL=info
MYSQL_METRICS_ENABLED=false

# Remote MCP configuration
IS_REMOTE_MCP=true	###这里
PORT=3000
REMOTE_SECRET_KEY=1234567890L		###这里

4、启动MySQL的mcp服务

#node.js的部署省略了。

cd ./mcp-server-mysql/ && npm install && npm run build
nohup node dist/index.js  > ./mysql-mcp.log 2>./mysql-mcp.log &

5、在workbuddy中自定义连接器
5.1、配置mcp内容,如下

{
  "mcpServers": {
    "mysql-mcp": {
      "type": "http",
      "url": "http://127.0.0.1:3000/mcp",
      "headers": {
        "Authorization": "Bearer 1234567890L"
      },
      "disabled": false
    }
  }
}

5.2、点击保存后,返回mcp列表,启用的前提是得信任。
在这里插入图片描述
6、workbuddy中创建专家,输入以下自然语言。
在这里插入图片描述
7、测试一下这位专家的功能
在这里插入图片描述

小结

这篇文章是记录我的测试过程,如果哪里有问题,烦请指教。
下一篇打算搞搞使用googleapis/mcp-toolbox连接redis。

更多推荐