项目简介
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供访问 MariaDB 和 MySQL 数据库的能力。通过此 MCP 服务器,LLM 可以安全、可控地查询数据库信息和执行预定义的 SQL 查询,从而增强 LLM 的上下文理解和数据处理能力。
主要功能点
- 数据库和表信息查询: 支持列出数据库服务器上的可用数据库,以及特定数据库中的表信息。
- 表结构描述: 能够获取指定表的详细结构信息,包括字段名、数据类型等。
- SQL 查询执行: 允许执行预定义的 SELECT, SHOW, DESCRIBE, EXPLAIN 等只读 SQL 查询,并返回查询结果。
- 安全性: 默认只提供只读访问权限,防止数据修改操作。具备 SQL 注入防御、查询超时和行数限制等安全特性。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm 包管理器。
- 安装 MCP 服务器: 可以通过 npm 全局安装或本地安装。
- 全局安装 (推荐): 打开终端,运行 'npm install -g mariadb-mcp-server'
- 本地安装: 在你的项目目录下,运行 'npm install mariadb-mcp-server'
服务器配置
MCP 客户端需要配置以下信息以连接到此服务器。请将以下 JSON 配置添加到你的 MCP 客户端的服务器配置文件中(例如 'mcp-config.json')。
{ "mcpServers": { "mariadb": { // 服务器名称,可以自定义 "command": "npx", // 启动命令,如果全局安装则使用 npx "args": ["mariadb-mcp-server"], // 启动参数,指定 MCP 服务器程序 "env": { // 环境变量配置,用于数据库连接 "MARIADB_HOST": "你的数据库主机地址", "MARIADB_PORT": "3306", // 数据库端口,默认为 3306 "MARIADB_USER": "你的数据库用户名", "MARIADB_PASSWORD": "你的数据库密码", "MARIADB_DATABASE": "默认数据库名 (可选)", // 可选,设置默认连接的数据库 "MARIADB_ALLOW_INSERT": "false", // 是否允许 INSERT 操作,默认为 false "MARIADB_ALLOW_UPDATE": "false", // 是否允许 UPDATE 操作,默认为 false "MARIADB_ALLOW_DELETE": "false", // 是否允许 DELETE 操作,默认为 false "MARIADB_TIMEOUT_MS": "10000", // 查询超时时间 (毫秒),默认为 10000 "MARIADB_ROW_LIMIT": "1000" // 查询结果行数限制,默认为 1000 }, "disabled": false, // 是否禁用此服务器,默认为 false "autoApprove": [] // 自动批准的工具列表,默认为空 } } }
注意: 请将上述配置中的占位符 (例如 '"你的数据库主机地址"', '"你的数据库用户名"', '"你的数据库密码"') 替换为你的实际数据库连接信息。
基本使用方法
配置完成后,LLM 客户端可以通过 MCP 协议调用以下工具来访问数据库:
- 'list_databases': 列出所有数据库。无需参数。
- 'list_tables': 列出指定数据库中的表。参数: 'database' (数据库名,可选)。
- 'describe_table': 描述指定表的结构。参数: 'database' (数据库名,可选), 'table' (表名,必填)。
- 'execute_query': 执行 SQL 查询。参数: 'database' (数据库名,可选), 'query' (SQL 查询语句,必填)。
工具调用时需要指定 'server_name' 为 '"mariadb"' (或你在配置中自定义的名称)。具体的请求参数和响应格式请参考 MCP 协议文档。
信息
分类
数据库与文件