MariaDB MCP服务器

MariaDB MCP服务器是一个优化后的数据库查询服务,通过Model Context Protocol(MCP)提供高效、安全的MariaDB/MySQL查询功能,适用于需要低令牌消耗和快速响应的开发环境。

  • by Ophecy
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ophecy/mariadb-mcp-server

使用说明

MariaDB MCP服务器

🚀 模型上下文协议(MCP)服务器,优化用于以最小的令牌消耗查询本地MariaDB/MySQL实例。

✨ 特点

  • 🔍 4 MCP工具 :list_databases、list_tables、describe_table、query_database
  • 🛡️ 安全 :自动阻止破坏性请求(删除、删除等)
  • ⚡ 超优化 :紧凑的输出格式(与JSON相比,节省了75-95%的令牌)
  • 🔌 兼容 :适用于Warp、Claude Desktop和任何MCP客户端
  • 📊 格式清晰 :带分隔符的纯文本输出 \n 和 |

📦 安装

先决条件

  • Node.js 18+
  • MariaDB或MySQL已安装并可访问
  • 非客户端MCP(Warp、Claude Desktop等)

步骤

git clone https://github.com/Ophecy/mariadb-mcp-server.git
cd mariadb-mcp-server
npm install

⚙️ 配置

1.环境变量

创建文件 .env :

cp .env.example .env

编辑 .env 使用您的标识符:

DB_HOST=localhost
DB_PORT=3306
DB_USER=votre_utilisateur
DB_PASSWORD=votre_mot_de_passe
DB_NAME=nom_base_defaut  # optionnel

2.配置扭曲

添加到您的配置Warp(~/.config/warp/mcp_config.json 或等效物):

{
  "mcpServers": {
    "mariadb": {
      "command": "node",
      "args": ["/chemin/absolu/vers/mariadb-mcp-server/index.js"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "3306",
        "DB_USER": "votre_utilisateur",
        "DB_PASSWORD": "votre_mot_de_passe",
        "DB_NAME": "nom_base_defaut"
      }
    }
  }
}

3.配置克劳德桌面

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或同等产品:

{
  "mcpServers": {
    "mariadb": {
      "command": "node",
      "args": ["/chemin/absolu/vers/mariadb-mcp-server/index.js"],
      "env": {
        "DB_HOST": "localhost",
        "DB_PORT": "3306",
        "DB_USER": "votre_utilisateur",
        "DB_PASSWORD": "votre_mot_de_passe"
      }
    }
  }
}

重新启动MCP客户端 配置之后。

🔧 可用工具

list_databases

列出所有可用的数据库。

输出示例:

backend65_test
conversion_queue
converter
dev1

list_tables

列出数据库中的所有表。

设置 :

  • database (可选):数据库名称

输出示例:

users
products
orders

describe_table

显示表的完整结构。

设置 :

  • table (必填):表名
  • database (可选):数据库名称

输出示例:

id | int(11) | NO | PRI | - | auto_increment
name | varchar(255) | NO | - | - | -
email | varchar(255) | YES | UNI | - | -

query_database

执行自定义SQL SELECT查询。

设置 :

  • query (必需):SQL查询(仅限选择、显示、描述)

输出示例:

id | name | email
1 | Alice | alice@example.com
2 | Bob | bob@example.com

🛡️ 安全

综合保护 :服务器自动阻止破坏性请求:

  • ❌ 删除、删除、截断
  • ❌ 改变,创造
  • ❌ 插入、更新

✅ 只允许读取请求 (选择、显示、描述)

🧪 测试手册

要测试命令行服务器:

DB_USER=votre_user DB_PASSWORD=votre_pass node index.js

📊 优化代币

此服务器使用超紧凑的输出格式:

数据类型 JSON格式 优化格式 经济性
简单列表 ["a","b","c"] a\nb\nc ~93%
桌子 [{"col":"val"}] col|val ~75%
结构 JSON缩进 管道分隔 ~80%

影响 :大幅降低API成本和响应时间!🚀

🗺️ 路线图和未来发展

1.1版(法院判决)

  • []支持安全远程连接(SSH隧道)
  • []大型查询的自动分页
  • []选项 --limit 限制结果的数量
  • []缓存表模式以减少查询
  • []支持只读事务

版本1.2(中期)

  • []具有明确确认的可选写入模式
  • []导出结果(CSV、JSON)
  • []使用统计和监测
  • []支持多路同时连接
  • []用于查看结果的web界面

2.0版本(长期)

  • []支持PostgreSQL和SQLite
  • []从自然语言自动生成SQL查询
  • []模式优化分析和建议
  • []自动检测表之间的关系
  • []查询性能的“解释”模式
  • []基础快照用于比较

探索的想法

  • []vscode插件
  • []支持物化观点
  • []每个表的粒度权限系统
  • []已执行请求的审核日志
  • []存储过程支持(只读)

🤝 贡献

欢迎捐款!

  1. 分叉项目
  2. 创建分支(git checkout -b feature/amelioration)
  3. 提交您的更改(git commit -m 'Ajout fonctionnalité')
  4. 向分支推(git push origin feature/amelioration)
  5. 打开拉取请求

📝 许可证

MIT许可证-查看文件 许可证 更多详情。

🙏 致谢

📧 联系

如有任何问题或建议,请打开 问题.