详细介绍
Genai Toolbox 是一个开源数据库MCP服务器工具箱,专为企业级和生产环境设计。它通过内置的连接池管理、身份验证机制和工具集管理功能,简化了数据库访问和工具开发流程,使开发者能够更高效、安全地构建数据库操作工具。
核心功能
Genai Toolbox 提供了多项核心功能,帮助开发者快速构建和管理数据库工具:
- 简化开发流程:通过内置工具集管理和自动连接池优化,减少重复编码工作。
- 高性能执行:利用最佳实践(如连接池管理)提升数据库操作效率。
- 增强安全性:集成身份验证机制,确保数据访问的安全性。
- 全面监控支持:支持 OpenTelemetry,便于跟踪和分析工具性能。
此外,Genai Toolbox 还支持多种数据库类型,如 PostgreSQL 和 MySQL,并允许用户自定义 SQL 查询和其他类型的工具操作。
安装方法
Genai Toolbox 提供了多种安装方式,包括使用 Go 安装、Docker 镜像部署等。
go install github.com/googleapis/genai-toolbox@latestdocker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:v0.4.0安装完成后,可以通过配置 `tools.yaml` 文件来定义工具和数据源。
使用方法
Genai Toolbox 的使用流程包括配置数据源、定义工具、加载工具集以及集成到应用程序中。
首先,配置数据源,例如 PostgreSQL 数据源:
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password然后,定义工具,例如搜索酒店的 SQL 工具:
tools:
search-hotels-by-name:
kind: postgres-sql
source: my-pg-source
description: 搜索基于名称的酒店。
parameters:
- name: name
type: string
description: 酒店名称。
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';接着,定义工具集,将多个工具组合在一起:
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool最后,启动服务并集成到应用程序中:
./toolbox --tools_file 'tools.yaml'from toolbox_core import ToolboxClient
client = ToolboxClient('http://127.0.0.1:5000')使用场景
Genai Toolbox 适用于需要频繁访问数据库的应用程序,特别是在涉及生成式AI工具的场景中。例如,可以用于:
- 酒店预订系统中的酒店搜索功能
- 用户管理系统中的用户信息查询和更新
- 数据分析平台中的数据提取和处理
注意事项
在使用 Genai Toolbox 时,需要注意以下几点:
- 当前版本仍处于 Beta 阶段,可能存在兼容性问题。
- 某些高级功能可能需要额外配置。
- 建议在生产环境中使用前进行充分测试。
此外,如果需要更新已有的工具定义,可以直接修改 `tools.yaml` 文件并重启服务。
使用示例
以下是一个完整的使用示例,展示如何通过 Genai Toolbox 搜索酒店:
client.load_toolset('my_second_toolset')client.invoke_tool('search-hotels-by-name', {'name': 'Grand Hotel'})该示例将加载指定的工具集,并调用 `search-hotels-by-name` 工具,传入酒店名称参数,返回匹配的酒店列表。
另一个示例展示如何加载特定工具集以满足特定需求:
client.load_toolset('my_second_toolset')该命令将成功加载指定的工具集,以便后续调用其中的工具。
Genai Toolbox 提供了丰富的命令行工具,例如:
toolbox --helptoolbox --version这些命令可以帮助用户查看可用命令和当前版本信息。
Genai Toolbox 是一个功能强大且灵活的工具箱,适用于各种数据库操作场景,能够显著提升开发效率和系统性能。