mcpField
D
database-mcp-mariadb

database-mcp-mariadb

本地服务
github.com/arifulislamat数据库52 周前更新

关于 database-mcp-mariadb

database-mcp-mariadb 为 MCP 客户端提供对 MariaDB 数据库的结构化访问。它提供 SQL 执行和架构探索工具,并默认启用只读模式、行数上限、超时及日志密钥保护。

主要功能

  1. 01执行 SQL 查询
  2. 02发现表、列、索引和键
  3. 03默认强制只读模式
  4. 04限制结果行数和语句时长
  5. 05在聊天提示词之外提供凭据

适用场景

  1. 01检查 MariaDB 架构
  2. 02通过 AI 客户端运行只读数据库查询
  3. 03限制查询结果和执行时间
  4. 04通过环境变量或 YAML 配置连接

MCP 相关

提供 `execute_sql` 和 `search_objects` 两个 MCP 工具,用于查询 MariaDB 和探索数据库对象。连接设置在启动时提供,不通过工具调用传入。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
npm@database-mcp/mariadb0.5.0
pypidatabase-mcp-mariadb0.2.0
cargodatabase-mcp-rs-mariadb0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

database-mcp

CI License: MIT npm PyPI crates.io Node >= 22

为 AI 客户端提供安全、结构化 SQL 数据库访问能力的 MCP 服务。

每种数据库引擎都提供一个可安装的软件包,支持 TypeScript(npm)、Python(PyPI)和 Rust(crates.io)。每个软件包都提供相同的精简工具集:execute_sql 和 search_objects,并默认启用安全限制:只读模式、行数上限和语句超时。

软件包

引擎TypeScript(npm)Python(PyPI)Rust(crates.io)
SQLite@database-mcp/sqlite npmdatabase-mcp-sqlite PyPIdatabase-mcp-rs-sqlite crates.io
libSQL@database-mcp/libsql npmdatabase-mcp-libsql PyPIdatabase-mcp-rs-libsql crates.io
MySQL@database-mcp/mysql npmdatabase-mcp-mysql PyPIdatabase-mcp-rs-mysql crates.io
MariaDB@database-mcp/mariadb npmdatabase-mcp-mariadb PyPIdatabase-mcp-rs-mariadb crates.io
Postgres@database-mcp/postgres npmdatabase-mcp-postgres PyPIdatabase-mcp-rs-postgres crates.io

这三种语言的实现均已发布,并在 CI 中针对真实数据库通过相同的语言无关一致性测试套件,因此无论使用哪种语言,行为都完全一致。每种引擎也都已列入 MCP Registry,并提供三种安装选项:npm、PyPI 和 cargo。

Rust crate 命名为 database-mcp-rs-<engine>,因为 crates.io 上的简短名称已被占用;不过,每个 crate 安装的命令仍为 database-mcp-<engine>。Go 支持计划中。

设计原则

  • 仅提供两个工具。 精简的工具接口可保持模型上下文窗口整洁。search_objects 会逐步披露架构:不带参数调用可列出表;指定表名调用可获取列、索引和外键。
  • 默认安全。 只读模式通过两层机制强制执行:保守的 SQL 防护,以及数据库自身的会话级只读设置。行数设有上限(默认 1000),语句设有超时时间(默认 30s)。
  • 启动时配置,不通过聊天配置。 连接详情通过标志、YAML 配置文件或环境变量提供。工具调用中绝不接受凭据。
  • 日志中绝不出现机密信息。 密码使用不可打印的机密类型存储,记录日志前会清理 DSN,并通过脱敏过滤器保护日志边界。

快速开始

选择对应数据库引擎的软件包;每个 README 都包含完整的配置选项。通过 npm 使用 SQLite:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@database-mcp/sqlite", "--dsn", "/absolute/path/to/database.db"]
    }
  }
}

或者通过 PyPI 使用:指定 "command": "uvx" 和 "args": ["database-mcp-sqlite", "--dsn", "/absolute/path/to/database.db"]。

也可以使用原生二进制文件,无需 Node 或 Python 运行时:运行 cargo install database-mcp-rs-sqlite,然后指定 "command": "database-mcp-sqlite",并使用相同的 args(去掉软件包名称)。

这三种方式的标志、环境变量和 YAML 配置完全相同。

网络数据库引擎通过环境变量(MYSQL_*、 MARIADB_*、POSTGRES_*/DATABASE_URL、LIBSQL_URL/LIBSQL_AUTH_TOKEN)、 *_FILE 挂载的机密,或通过 --config 指定的 YAML 文件获取凭据。绝不通过聊天提示词获取。

贡献

参阅 CONTRIBUTING.md。简而言之:符合性测试套件定义了完成标准。只有在所有受影响的服务上通过 conformance/run.mjs,更改才能合并。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。