Back to MCP directory
verified_userVerifieddnsLocal runtime

genai-toolbox

MCP Toolbox for Databases是一个开源数据库MCP服务器,专注于企业级和生产质量,简化工具开发,提供连接池、认证等复杂功能。

article

README

🚀 Toolbox 项目文档

Toolbox 是一个综合性平台,用于管理工具和数据源。它支持多种交互方式,还提供了灵活的配置选项。用户只需通过 tools.yaml 文件,就能轻松定义数据源、工具及其参数。

🚀 快速开始

Toolbox 是一个用于管理工具和数据源的综合性平台,支持多种交互方式,并提供灵活的配置选项。你可以按照以下步骤快速启动项目:

# 克隆仓库
git clone https://github.com/your-repository.git
cd your-repository

# 安装依赖
pip install -r requirements.txt

# 启动服务
python main.py

在启动 Toolbox 之前,建议配置以下环境变量:

export TOOLBOX_HOME=~/toolbox-config
export DB_URL=postgresql://user:password@localhost:5432/database

✨ 主要特性

  • 数据源管理:支持多种数据库类型,如 PostgreSQL 和 MySQL。
  • 工具定义:允许用户自定义 SQL 查询和其他类型的工具操作。
  • 工具集管理:通过 toolsets 功能,用户可以将多个工具组合在一起使用。

📦 安装指南

快速安装

# 克隆仓库
git clone https://github.com/your-repository.git
cd your-repository

# 安装依赖
pip install -r requirements.txt

# 启动服务
python main.py

配置环境变量

在启动 Toolbox 之前,建议配置以下环境变量:

export TOOLBOX_HOME=~/toolbox-config
export DB_URL=postgresql://user:password@localhost:5432/database

💻 使用示例

基础用法

数据源配置(sources.yaml)

sources:
  my-pg-source:
    kind: postgres
    host: 127.0.0.1
    port: 5432
    database: toolbox_db
    user: toolbox_user
    password: my-password

工具配置(tools.yaml)

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.yaml)

toolsets:
  my_first_toolset:
    - my_first_tool
    - my_second_tool
  my_second_toolset:
    - my_second_tool
    - my_third_tool

📚 详细文档

配置详解

数据源配置

sources.yaml 文件中,用户可以定义多个数据源。每个数据源都有一个唯一标识符和相关连接参数。

示例:

sources:
  pg_source1:
    kind: postgres
    host: 127.0.0.1
    port: 5432
    database: testdb
    user: admin
    password: secret

工具配置

tools.yaml 文件中,用户可以定义多个工具。每个工具都有一个唯一标识符、类型、关联的数据源以及执行的具体操作。

示例:

tools:
  get_user_info:
    kind: postgres-sql
    source: pg_source1
    description: 获取用户信息。
    parameters:
      - name: user_id
        type: integer
        description: 用户ID。
    statement: SELECT * FROM users WHERE id = $1;

工具集配置

通过 toolsets.yaml 文件,用户可以将多个工具组合在一起,形成一个工具组。这使得在实际应用中可以更方便地管理和使用工具。

示例:

toolsets:
  user_management_toolset:
    - get_user_info
    - update_user_profile
  data_analysis_toolset:
    - fetch_data
    - analyze_results

版本控制

该项目遵循语义化版本控制(Semantic Versioning),格式为 MAJOR.MINOR.PATCH。具体含义如下:

  • MAJOR:当主要功能发生变化或向下不兼容时,增加主版本号。
  • MINOR:添加新功能或改进现有功能而不破坏向后兼容性时,增加次版本号。
  • PATCH:修复已知问题和漏洞时,增加补丁版本号。

贡献指南

如何贡献代码

  1. Fork 仓库
  2. 创建功能分支
  3. 提交代码
  4. 提交 Pull Request

示例提交信息格式:

feat: 新增工具配置功能
fix: 修复数据源连接问题
docs: 更新文档说明

如何报告问题

请通过以下渠道报告任何问题或提出反馈:

附录

常见问题解答(FAQ)

  1. 如何配置环境变量?
  • 按照文档中的“配置环境变量”部分进行操作。
  1. 支持哪些数据库类型?
  • 当前支持 PostgreSQL 和 MySQL,未来计划增加更多类型。
  1. 如何定义新的工具?
  • tools.yaml 文件中添加新的工具条目,并确保其语法正确。

联系方式

感谢您使用 Toolbox!如需进一步帮助,请随时联系我们的支持团队。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client