ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

workbuddy 中配置 MySQL-mcp:TaoToken 统一 Key 接入与 settings.json 骨架

workbuddy 中配置 MySQL-mcp:TaoToken 统一 Key 接入与 settings.json 骨架 1. 为什么要在 workbuddy 里折腾 MySQL-mcpworkbuddy 是本地 AI 工具里比较适合接数据库 MCP 的一类客户端MySQL-mcp 则是把 MySQL 查询能力包装成 MCP 协议服务的开源项目。两者接上之后你在 workbuddy 里用自然语言就能让 AI 去查表、看字段、跑统计不用来回切 Navicat 和终端。适合的人群很明确本地做数据分析、后端开发、AIops 尝鲜的工程师尤其是已经在用 workbuddy 管多个 MCP 服务的人。我试过把 MySQL-mcp 直接塞进 workbuddy一开始卡在鉴权上——每个 MCP 服务都要单独配 Key服务一多管理就乱。后来换成 TaoToken 统一 Key 接入所有走 API 通道的 MCP 服务共用一个 Keysettings.json 里只维护一份凭证省事不少。这篇就把整个配置过程拆开写从 MySQL 容器到 workbuddy 的 settings.json 骨架再到验证查询能不能通一步步来。核心检索词先摆出来workbuddy 配置 MySQL-mcp、TaoToken 统一 Key、settings.json 骨架、MCP 接入数据库。下面按实操顺序走。2. 前置准备MySQL 容器与 TaoToken Key2.1 起一个测试用 MySQL 8 容器本地测试别直接连生产库先起个容器。目录结构先建好mkdir -p data conf logs然后跑容器端口映射 3306root 密码自己定一个docker run -d \ --name mysql8 \ -p 3306:3306 \ --restart always \ -e MYSQL_ROOT_PASSWORDRoot123456 \ -v ./data:/var/lib/mysql \ -v ./conf/my.cnf:/etc/mysql/conf.d/my.cnf \ -v ./logs:/var/log/mysql \ mysql:8.0conf/my.cnf参考配置如下字符集和时区是关键不配的话中文和日期查询容易出乱码[mysqld] port3306 server-id1 character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci default-time-zone08:00 log-error/var/log/mysql/error.log max_connections5000 innodb_buffer_pool_size1G innodb_file_per_table1 [client] default-character-setutf8mb4 [mysql] default-character-setutf8mb4容器起来后用docker exec -it mysql8 mysql -uroot -p进去建个测试库比如test_db塞两张表方便后面验证。2.2 拿 TaoToken 统一 KeyTaoToken 在这里的角色是统一 API 通道MySQL-mcp 如果需要走远程模型或统一鉴权就用它的 Key。先去控制台拿 Key接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_docAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_keys注意Key 只存本地配置文件别提交到 Git 仓库。settings.json 里用环境变量引用更稳。拿 Key 的入口在 console模型对话入口在 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_chat 后面验证模型连通性会用到。3. 可复制配置MySQL-mcp 服务与 settings.json 骨架3.1 拉取并配置 MySQL-mcp选 v2.0.9 版本稳定git clone -b v2.0.9 https://github.com/benborla/mcp-server-mysql.git cd mcp-server-mysql改.env重点是数据库连接和远程 MCP 开关MYSQL_HOST127.0.0.1 MYSQL_PORT3306 MYSQL_USERroot MYSQL_PASSRoot123456 MYSQL_DB ALLOW_INSERT_OPERATIONtrue ALLOW_UPDATE_OPERATIONtrue ALLOW_DELETE_OPERATIONtrue ALLOW_DDL_OPERATIONtrue SCHEMA_INSERT_PERMISSIONStest_db:true,staging_db:false SCHEMA_UPDATE_PERMISSIONStest_db:true,staging_db:false SCHEMA_DELETE_PERMISSIONStest_db:false,staging_db:false SCHEMA_DDL_PERMISSIONStest_db:true,staging_db:false MULTI_DB_WRITE_MODEtrue MYSQL_SSLfalse MYSQL_SSL_REJECT_UNAUTHORIZEDtrue MYSQL_POOL_SIZE10 MYSQL_QUERY_TIMEOUT30000 MYSQL_CACHE_TTL60000 MYSQL_RATE_LIMIT100 MYSQL_MAX_QUERY_COMPLEXITY1000 ENABLE_LOGGINGtrue MYSQL_LOG_LEVELinfo MYSQL_METRICS_ENABLEDfalse IS_REMOTE_MCPtrue PORT3000 REMOTE_SECRET_KEY1234567890LIS_REMOTE_MCPtrue和REMOTE_SECRET_KEY是 workbuddy 走 HTTP 方式连接的前提PORT3000对应后面的 URL。3.2 启动 MCP 服务cd ./mcp-server-mysql npm install npm run build nohup node dist/index.js ./mysql-mcp.log 21 看日志确认监听tail -f ./mysql-mcp.log出现MCP server listening on port 3000之类字样就对了。3.3 workbuddy 的 settings.json 骨架这是本篇的核心。workbuddy 里自定义连接器把 MySQL-mcp 和 TaoToken 统一 Key 都写进去{ mcpServers: { mysql-mcp: { type: http, url: http://127.0.0.1:3000/mcp, headers: { Authorization: Bearer 1234567890L }, disabled: false } }, apiProviders: { taotoken: { baseUrl: https://taotoken.net/api, apiKey: ${TAOTOKEN_API_KEY}, models: [claude-3-5-sonnet, gpt-4o] } } }字段说明用表格对照更清楚字段作用取值示例mcpServers.mysql-mcp.type连接方式httpmcpServers.mysql-mcp.urlMCP 服务地址http://127.0.0.1:3000/mcpheaders.Authorization远程 MCP 密钥Bearer 1234567890LapiProviders.taotoken.baseUrl统一 API 通道https://taotoken.net/apiapiProviders.taotoken.apiKey统一 Key环境变量引用提示apiKey用${TAOTOKEN_API_KEY}引用环境变量别硬编码。启动 workbuddy 前先export TAOTOKEN_API_KEY你的Key。保存后回到 MCP 列表需要手动点信任否则连接器是灰的。4. 验证请求确认 MySQL-mcp 连通并返回查询结果4.1 先验证 MCP 服务本身不经过 workbuddy直接用 curl 打一下 MCP 端点确认服务活着curl -X POST http://127.0.0.1:3000/mcp \ -H Authorization: Bearer 1234567890L \ -H Content-Type: application/json \ -d {jsonrpc:2.0,method:tools/list,id:1}返回里应该能看到mysql_query、list_tables之类的工具列表。如果返回 401说明REMOTE_SECRET_KEY和请求头里的 Bearer 不一致。4.2 在 workbuddy 里跑一次真实查询启动 workbuddy确认连接器已信任。新建一个专家输入自然语言帮我查一下 test_db 里有哪些表然后统计 users 表的行数正常的话workbuddy 会调用 MySQL-mcp 的list_tables和mysql_query返回类似test_db 下的表users, orders, products users 表当前行数128如果这一步返回的是模型回答但没走 MCP检查 settings.json 里disabled是不是 false以及连接器有没有点信任。4.3 验证 TaoToken 通道如果 MySQL-mcp 需要调用模型做 SQL 生成走的是 TaoToken 通道。用模型对话入口测一下 Key 是否有效curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:claude-3-5-sonnet,messages:[{role:user,content:ping}]}返回正常 JSON 就说明统一 Key 通了。长期做编码和 Agent 的话可以考虑 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_plan5. 本篇常见错排查配置过程中踩的坑集中列一下对着查能省不少时间。连接被拒curl报Connection refused多半是 MCP 服务没起来。ps aux | grep node看进程在不在不在就重新nohup启动检查mysql-mcp.log有没有报错。401 UnauthorizedREMOTE_SECRET_KEY和 settings.json 里的 Bearer 值不一致。两边改成一样的重启 MCP 服务。MySQL 连接失败.env里MYSQL_HOST写127.0.0.1而不是localhost容器端口映射确认是3306:3306。用docker exec进去能连上说明容器没问题问题在 MCP 的.env。workbuddy 里连接器灰色没点信任。保存 settings.json 后回 MCP 列表手动启用。查询返回空MYSQL_DB留空是多库模式查询时要带库名比如test_db.users。单库模式就把MYSQL_DBtest_db填上。中文乱码my.cnf里character-set-serverutf8mb4没配或者建库时没指定字符集。重建库时加DEFAULT CHARSETutf8mb4。权限报错写操作被拒检查ALLOW_INSERT_OPERATION等开关以及SCHEMA_*_PERMISSIONS里对应库是不是 true。生产库建议全关写权限。6. 后续接入与统一 Key 维护MySQL-mcp 跑通之后workbuddy 里再加别的 MCP 服务settings.json 的mcpServers直接追加就行TaoToken 的apiProviders不用动统一 Key 一份管所有。接入文档和 API Keys 入口放这儿配新服务时对着看接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_doc_endAPI Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_keys_end控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmysql_mcp_console下一篇打算接 Redis 的 MCP思路一样本地服务 统一 Key settings.json 骨架。这套配置骨架你直接复制改字段就能用重点是IS_REMOTE_MCP、REMOTE_SECRET_KEY和Authorization三处保持一致其余按库名和权限微调。
返回列表