news 2026/9/10 8:40:12

MCP Toolbox for Databases 实操指南:让 AI 客户端直连企业数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MCP Toolbox for Databases 实操指南:让 AI 客户端直连企业数据库

MCP Toolbox for Databases 实操指南:让 AI 客户端直连企业数据库

【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox

MCP Toolbox for Databases 是一个开源的数据库 MCP 服务器,夹在 IDE、CLI、应用等 MCP 客户端与 PostgreSQL、MySQL、BigQuery 等数据库之间,把数据库能力封装成一组模型可调用的工具。你不用为每个客户端手写连接逻辑,也不必把数据库的完整权限交给智能体。

为什么需要数据库 MCP 服务器

🧩 设想这个场景:团队里三个人分别用不同的 AI 客户端,都要访问同一批数据库。每接一个客户端,就得配一遍连接串、认证方式,凭证散落在各处的配置里;而如果直接把数据库的完整 SQL 权限开放给模型,生产环境跑一条DELETE谁也不敢放心。

MCP Toolbox for Databases 的做法是把连接、认证、连接池、OpenTelemetry 可观测性统一收进一个进程,你只需要声明"允许被调用哪些工具"。它有两种用法:一是直接挂预置工具(比如list_tablesexecute_sql)给 MCP 客户端用;二是把它当框架,在配置文件里定义参数化查询、受限访问的定制工具,给生产环境用。

安装与启动:五分钟跑通第一个工具

当前版本是 1.10.0,四种安装路径任选:brew install mcp-toolbox、拉容器镜像、go install装模块,或直接下二进制。容器方式最省事:

docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:1.10.0

准备一份最小的tools.yaml,三种资源类型:source(数据源)、tool(工具)、toolset(工具分组):

kind: source name: my-pg-source type: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: toolbox_user password: ${POSTGRES_PASSWORD} --- kind: tool name: search-hotels-by-name type: postgres-sql source: my-pg-source description: 按名称搜索酒店 parameters: - name: name type: string description: 酒店名称关键词 statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; --- kind: toolset name: my_first_toolset tools: - search-hotels-by-name

注意密码用了${POSTGRES_PASSWORD}环境变量占位符,凭证不落盘。然后用./toolbox --config "tools.yaml"启动,服务默认监听 5000 端口;MCP 客户端配置里把 url 指到http://127.0.0.1:5000/mcp即可加载全部工具,加上/{toolset名}后缀(如/mcp/my_first_toolset)则只暴露那一个工具集。调试时加--ui参数,浏览器里可以直接跑工具看结果。

如果你只想先看看效果,跳过写配置:--prebuilt=postgres会直接加载 PostgreSQL 的预置工具集,--prebuilt=postgres/data则只加载 SQL 相关的子集。

tools.yaml 怎么写

配置文件就是 source → tool → toolset 的声明:source 定义数据源(连接参数),tool 定义动作(类型、绑定的 source、参数、查询语句),toolset 按业务或客户端把工具分组,方便不同 Agent 各取所需。toolset 也可以按需动态组合,比如给数据分析师只给只读工具,给 DBA 加上锁和活跃查询这类监控工具。

核心能力清单

  • 连接管理:每个 source 底层就是一个连接池或客户端,多个 tool 复用同一个 source,连接参数(如queryParams)集中在 source 上配。
  • 工具定义:预置工具开箱即用,覆盖 PostgreSQL、MySQL、BigQuery、Cloud SQL、Spanner、MongoDB、Redis、Neo4j、Snowflake 等二十余种数据库;定制工具则用statement写参数化查询,配parameters声明入参,模型只能按你给的结构传参。
  • 可观测性:内置 OpenTelemetry,指标和链路追踪不用额外搭。
  • 多语言 SDK:Python(toolbox-core,另有 LangChain、LlamaIndex 适配包)、JS/TS(@toolbox-sdk/core)、Go、Java 四套客户端,加载工具集基本是两行代码:
from toolbox_core import ToolboxClient async with ToolboxClient("http://127.0.0.1:5000") as client: tools = await client.load_toolset("my_first_toolset")

进阶:性能、安全与自定义工具

需求做法
改配置不重启动态重载默认开启,热更新 tools.yaml;--disable-reload关闭
凭证不进文件source 里全部用${ENV_VAR}占位,认证支持 IAM 等集成方式
限制模型能干什么工具只暴露预置的statement,参数化绑定,不让模型拼 SQL
高并发场景连接复用走 source 级连接池,参数见 source 配置文档
自己写工具逻辑参考 工具实现 与 数据源实现 的源码结构

预置工具集的完整清单在 internal/prebuiltconfigs/tools/,每个数据库一个 yaml,照着抄就能改出自己的。

值不值得用

适合:多个 MCP 客户端要访问同一批数据库;需要接入两三种以上数据库类型,想统一管理认证和连接;要让 Agent 碰库但必须把它的权限锁死在几条查询里;需要观察 Agent 实际执行了哪些查询。

用不着:就一个数据库、一个应用,自己的 ORM 已够用;或者你想给模型完全不受限的数据库访问权——这个项目的整个设计就是限制访问,目标相反;纯脚本场景不需要 MCP 协议,直接写客户端代码更直接。

tools.yaml里写一个 source 和一条搜索工具开始,用--ui跑通第一次查询,再挂进你的 IDE 验证 MCP 链路——这三步走完,再考虑扩到更多数据库和更细的权限划分。

【免费下载链接】mcp-toolboxMCP Toolbox for Databases is an open source MCP server for databases.项目地址: https://gitcode.com/GitHub_Trending/ge/mcp-toolbox

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 8:38:48

跨平台框架选型纠结12年:从WebView到自绘引擎,到底怎么选?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 8:38:46

Matlab实现CNN-LSTM-SE时空联合建模

简介:本资源是一份面向深度学习初学者与Matlab用户的多模态时序分类预测实践方案,聚焦于CNN-LSTM融合架构与SE注意力机制的协同建模,适用于时间序列分类、传感器数据分析等多输入单输出任务。压缩包共6个文件:1个核心脚本main.m&a…

作者头像 李华
网站建设 2026/9/10 8:38:07

Spring Boot文档管理系统毕业设计:从需求拆解到答辩全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 8:37:02

C语言数组逆序存放:从基础到指针,一次讲清边界与格式问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 8:34:44

LeNet-5用于肺部X光检测的教学实践与PyTorch实现

简介:本资源是广州大学本科生完成的毕业设计项目,聚焦于基于经典LeNet-5卷积神经网络的肺部医学图像检测任务,面向深度学习初学者、医学影像入门实践者及本科毕设参考者,提供从理论复现到工程落地的完整技术路径。压缩包共2001个文…

作者头像 李华