项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 客户端提供访问 MariaDB 和 MySQL 数据库的能力。通过此 MCP 服务器,LLM 可以安全、可控地查询数据库信息和执行预定义的 SQL 查询,从而增强 LLM 的上下文理解和数据处理能力。

主要功能点

  • 数据库和表信息查询: 支持列出数据库服务器上的可用数据库,以及特定数据库中的表信息。
  • 表结构描述: 能够获取指定表的详细结构信息,包括字段名、数据类型等。
  • SQL 查询执行: 允许执行预定义的 SELECT, SHOW, DESCRIBE, EXPLAIN 等只读 SQL 查询,并返回查询结果。
  • 安全性: 默认只提供只读访问权限,防止数据修改操作。具备 SQL 注入防御、查询超时和行数限制等安全特性。

安装步骤

  1. 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm 包管理器。
  2. 安装 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 协议文档。

信息

分类

数据库与文件