MCP Toolbox教程:16.5k星Google开源数据库MCP服务器,Agent直连企业数据库

📌 项目:googleapis/mcp-toolbox | 星数:16.5k(2026-09-24) | 协议:Apache-2.0 | 语言:Go | GitHub

一句话定位:"Google开源的数据库MCP服务器——让AI Agent安全直连企业数据库,SQL工具化、权限可控。" MCP Toolbox for Databases是Google出品的开源MCP服务器,将数据库操作封装为Agent可调用的工具,支持声明式工具定义、权限控制和多数据库后端。

🏗️ 双用途架构

MCP Toolbox服务双用途:

支持PostgreSQL、MySQL、SQLite、Spanner、AlloyDB等数据库。和 Supabase 提供完整后端不同,MCP Toolbox专注数据库层的MCP暴露。

🔧 声明式工具定义

通过YAML声明数据库工具:

# tools.yaml
sources:
  my-pg:
    kind: postgres
    host: localhost
    port: 5432
    database: mydb
    user: agent_user
    password: env(PG_PASSWORD)

tools:
  search_users:
    kind: postgres-sql
    source: my-pg
    description: "按名字搜索用户"
    parameters:
      - name: name
        type: string
        description: "用户名"
    statement: "SELECT * FROM users WHERE name LIKE $1"

Agent只能调用声明的工具,不能执行任意SQL——这是安全核心。

🚀 快速开始

# Docker启动
docker run -p 5000:5000 \
  -v ./tools.yaml:/app/tools.yaml \
  us-docker.pkg.dev/mcp-toolbox/toolbox/toolbox

# Python SDK使用
from toolbox_core import ToolboxClient

client = ToolboxClient("http://localhost:5000")
tools = client.load_toolset("search_users")
# tools可直接接入Agent框架

支持Python、JS/TS、Go、Java四种语言SDK。

⚖️ 优缺点

✅ 优点⚠️ 不足
Google出品,工程质量高Go运行时,Python用户需Docker或二进制
双用途:即用MCP服务器+构建时配置配置YAML有一定学习成本
声明式工具定义,权限可控复杂查询场景可能需自定义工具
多语言SDK(Python/JS/Go/Java)
Apache-2.0协议,企业友好

📚 常见问题

支持哪些数据库?

PostgreSQL、MySQL、SQLite、Cloud Spanner、AlloyDB、MS SQL Server等。通过Source Kind扩展机制可支持更多数据库。

如何保证Agent不执行恶意SQL?

MCP Toolbox只暴露声明式定义的工具,Agent不能执行任意SQL。每个工具的SQL语句在YAML中固定,Agent只能传入参数。

和直接用MCP连接数据库有什么区别?

MCP Toolbox提供了工具层抽象:参数化查询、权限控制、多数据库统一接口。直接用MCP连接数据库需要自己实现安全控制。