使用说明
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插件
- []支持物化观点
- []每个表的粒度权限系统
- []已执行请求的审核日志
- []存储过程支持(只读)
🤝 贡献
欢迎捐款!
- 分叉项目
- 创建分支(
git checkout -b feature/amelioration) - 提交您的更改(
git commit -m 'Ajout fonctionnalité') - 向分支推(
git push origin feature/amelioration) - 打开拉取请求
📝 许可证
MIT许可证-查看文件 许可证 更多详情。
🙏 致谢
📧 联系
如有任何问题或建议,请打开 问题.
