Skip to main content
Glama

MySQL ReadOnly MCP Server

by zhaojw-php
setup-claude-desktop.sh4.32 kB
#!/bin/bash # Claude Desktop 自动配置脚本 # 适用于 macOS 和 Linux set -e echo "🚀 MySQL MCP Server - Claude Desktop 配置向导" # 检查 Node.js if ! command -v node &> /dev/null; then echo "❌ 错误: 未找到 Node.js,请先安装 Node.js" echo "📥 下载地址: https://nodejs.org/" exit 1 fi # 获取项目路径 PROJECT_PATH=$(pwd) DIST_PATH="$PROJECT_PATH/dist/index.js" echo "📂 项目路径: $PROJECT_PATH" echo "📦 构建文件: $DIST_PATH" # 检查构建文件是否存在 if [ ! -f "$DIST_PATH" ]; then echo "🔨 构建项目..." npm run build fi # 获取操作系统 OS="$(uname -s)" case "$OS" in Darwin*) CONFIG_DIR="$HOME/Library/Application Support/Claude";; Linux*) CONFIG_DIR="$HOME/.config/Claude";; *) echo "❌ 不支持的操作系统: $OS"; exit 1;; esac CONFIG_FILE="$CONFIG_DIR/claude_desktop_config.json" echo "📁 配置目录: $CONFIG_DIR" echo "📄 配置文件: $CONFIG_FILE" # 创建配置目录 mkdir -p "$CONFIG_DIR" # 获取数据库配置 echo "" echo "📊 请输入数据库连接信息:" read -p "MySQL 主机 (默认: localhost): " MYSQL_HOST MYSQL_HOST=${MYSQL_HOST:-localhost} read -p "MySQL 端口 (默认: 3306): " MYSQL_PORT MYSQL_PORT=${MYSQL_PORT:-3306} read -p "MySQL 用户名: " MYSQL_USER if [ -z "$MYSQL_USER" ]; then echo "❌ 用户名不能为空" exit 1 fi read -s -p "MySQL 密码: " MYSQL_PASSWORD echo if [ -z "$MYSQL_PASSWORD" ]; then echo "❌ 密码不能为空" exit 1 fi read -p "数据库名称 (可选): " MYSQL_DATABASE # 创建配置 if [ -f "$CONFIG_FILE" ]; then echo "📋 备份现有配置文件..." cp "$CONFIG_FILE" "$CONFIG_FILE.backup.$(date +%Y%m%d_%H%M%S)" fi # 创建新的配置 echo "🔧 创建 Claude Desktop 配置..." # 使用 jq 创建 JSON,或使用 Python 作为后备 if command -v jq &> /dev/null; then # 使用 jq if [ -f "$CONFIG_FILE" ]; then CONFIG_JSON=$(cat "$CONFIG_FILE") else CONFIG_JSON='{"mcpServers": {}}' fi NEW_CONFIG=$(echo "$CONFIG_JSON" | jq --arg host "$MYSQL_HOST" \ --arg port "$MYSQL_PORT" \ --arg user "$MYSQL_USER" \ --arg pass "$MYSQL_PASSWORD" \ --arg db "$MYSQL_DATABASE" \ --arg path "$DIST_PATH" \ '.mcpServers["mysql-readonly"] = { "command": "node", "args": [$path], "env": { "MYSQL_HOST": $host, "MYSQL_PORT": $port, "MYSQL_USER": $user, "MYSQL_PASSWORD": $pass, "MYSQL_DATABASE": $db } }') echo "$NEW_CONFIG" > "$CONFIG_FILE" else # 使用 Python python3 -c " import json import os config_path = '$CONFIG_FILE' dist_path = '$DIST_PATH' config = {'mcpServers': {}} if os.path.exists(config_path): with open(config_path, 'r') as f: config = json.load(f) config['mcpServers']['mysql-readonly'] = { 'command': 'node', 'args': [dist_path], 'env': { 'MYSQL_HOST': '$MYSQL_HOST', 'MYSQL_PORT': '$MYSQL_PORT', 'MYSQL_USER': '$MYSQL_USER', 'MYSQL_PASSWORD': '$MYSQL_PASSWORD', 'MYSQL_DATABASE': '$MYSQL_DATABASE' } } with open(config_path, 'w') as f: json.dump(config, f, indent=2) " fi echo "" echo "✅ 配置完成!" echo "" echo "📋 配置摘要:" echo " - 配置文件: $CONFIG_FILE" echo " - 数据库主机: $MYSQL_HOST:$MYSQL_PORT" echo " - 用户名: $MYSQL_USER" echo " - 数据库: ${MYSQL_DATABASE:-未指定}" echo "" echo "🔄 请重启 Claude Desktop 以加载新的配置" echo "" echo "🧪 测试方法:" echo " 1. 重启 Claude Desktop" echo " 2. 在对话中询问: '列出数据库中的所有表'" echo "" echo "🔍 如有问题,请检查 Claude Desktop 的日志文件"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhaojw-php/mysql-readonly-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server