MCP Toolbox for Databases is an open source MCP server for databases. It enables you to develop tools easier, faster, and more securely by handling the complexities such as connection pooling, authentication, and more. This README provides a brief overview. For comprehensive details, see the full documentation. - Why Toolbox? - General Architecture - Getting Started - Installing the server - Runni
Add this skill
npx mdskills install googleapis/genai-toolboxWell-documented MCP server for database access with multiple SDKs and strong architecture
123# MCP Toolbox for Databases45<a href="https://trendshift.io/repositories/13019" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13019" alt="googleapis%2Fgenai-toolbox | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>67[](https://googleapis.github.io/genai-toolbox/)8[](https://discord.gg/Dmm69peqjh)9[](https://medium.com/@mcp_toolbox)10[](https://goreportcard.com/report/github.com/googleapis/genai-toolbox)1112> [!NOTE]13> MCP Toolbox for Databases is currently in beta, and may see breaking14> changes until the first stable release (v1.0).1516MCP Toolbox for Databases is an open source MCP server for databases. It enables17you to develop tools easier, faster, and more securely by handling the complexities18such as connection pooling, authentication, and more.1920This README provides a brief overview. For comprehensive details, see the [full21documentation](https://googleapis.github.io/genai-toolbox/).2223> [!NOTE]24> This solution was originally named “Gen AI Toolbox for Databases” as25> its initial development predated MCP, but was renamed to align with recently26> added MCP compatibility.2728<!-- TOC ignore:true -->29## Table of Contents3031<!-- TOC -->3233- [Why Toolbox?](#why-toolbox)34- [General Architecture](#general-architecture)35- [Getting Started](#getting-started)36 - [Installing the server](#installing-the-server)37 - [Running the server](#running-the-server)38 - [Integrating your application](#integrating-your-application)39 - [Using Toolbox with Gemini CLI Extensions](#using-toolbox-with-gemini-cli-extensions)40- [Configuration](#configuration)41 - [Sources](#sources)42 - [Tools](#tools)43 - [Toolsets](#toolsets)44 - [Prompts](#prompts)45- [Versioning](#versioning)46 - [Pre-1.0.0 Versioning](#pre-100-versioning)47 - [Post-1.0.0 Versioning](#post-100-versioning)48- [Contributing](#contributing)49- [Community](#community)5051<!-- /TOC -->5253## Why Toolbox?5455Toolbox helps you build Gen AI tools that let your agents access data in your56database. Toolbox provides:5758- **Simplified development**: Integrate tools to your agent in less than 1059 lines of code, reuse tools between multiple agents or frameworks, and deploy60 new versions of tools more easily.61- **Better performance**: Best practices such as connection pooling,62 authentication, and more.63- **Enhanced security**: Integrated auth for more secure access to your data64- **End-to-end observability**: Out of the box metrics and tracing with built-in65 support for OpenTelemetry.6667**⚡ Supercharge Your Workflow with an AI Database Assistant ⚡**6869Stop context-switching and let your AI assistant become a true co-developer. By70[connecting your IDE to your databases with MCP Toolbox][connect-ide], you can71delegate complex and time-consuming database tasks, allowing you to build faster72and focus on what matters. This isn't just about code completion; it's about73giving your AI the context it needs to handle the entire development lifecycle.7475Here’s how it will save you time:7677- **Query in Plain English**: Interact with your data using natural language78 right from your IDE. Ask complex questions like, *"How many orders were79 delivered in 2024, and what items were in them?"* without writing any SQL.80- **Automate Database Management**: Simply describe your data needs, and let the81 AI assistant manage your database for you. It can handle generating queries,82 creating tables, adding indexes, and more.83- **Generate Context-Aware Code**: Empower your AI assistant to generate84 application code and tests with a deep understanding of your real-time85 database schema. This accelerates the development cycle by ensuring the86 generated code is directly usable.87- **Slash Development Overhead**: Radically reduce the time spent on manual88 setup and boilerplate. MCP Toolbox helps streamline lengthy database89 configurations, repetitive code, and error-prone schema migrations.9091Learn [how to connect your AI tools (IDEs) to Toolbox using MCP][connect-ide].9293[connect-ide]: https://googleapis.github.io/genai-toolbox/how-to/connect-ide/9495## General Architecture9697Toolbox sits between your application's orchestration framework and your98database, providing a control plane that is used to modify, distribute, or99invoke tools. It simplifies the management of your tools by providing you with a100centralized location to store and update tools, allowing you to share tools101between agents and applications and update those tools without necessarily102redeploying your application.103104<p align="center">105<img src="./docs/en/getting-started/introduction/architecture.png" alt="architecture" width="50%"/>106</p>107108## Getting Started109110### Quickstart: Running Toolbox using NPX111112You can run Toolbox directly with a [configuration file](#configuration):113114```sh115npx @toolbox-sdk/server --tools-file tools.yaml116```117118This runs the latest version of the toolbox server with your configuration file.119120> [!NOTE]121> This method should only be used for non-production use cases such as122> experimentation. For any production use-cases, please consider [Installing the123> server](#installing-the-server) and then [running it](#running-the-server).124125### Installing the server126127For the latest version, check the [releases page][releases] and use the128following instructions for your OS and CPU architecture.129130[releases]: https://github.com/googleapis/genai-toolbox/releases131132<details open>133<summary>Binary</summary>134135To install Toolbox as a binary:136137<!-- {x-release-please-start-version} -->138> <details>139> <summary>Linux (AMD64)</summary>140>141> To install Toolbox as a binary on Linux (AMD64):142>143> ```sh144> # see releases page for other versions145> export VERSION=0.27.0146> curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox147> chmod +x toolbox148> ```149>150> </details>151> <details>152> <summary>macOS (Apple Silicon)</summary>153>154> To install Toolbox as a binary on macOS (Apple Silicon):155>156> ```sh157> # see releases page for other versions158> export VERSION=0.27.0159> curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/arm64/toolbox160> chmod +x toolbox161> ```162>163> </details>164> <details>165> <summary>macOS (Intel)</summary>166>167> To install Toolbox as a binary on macOS (Intel):168>169> ```sh170> # see releases page for other versions171> export VERSION=0.27.0172> curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/amd64/toolbox173> chmod +x toolbox174> ```175>176> </details>177> <details>178> <summary>Windows (Command Prompt)</summary>179>180> To install Toolbox as a binary on Windows (Command Prompt):181>182> ```cmd183> :: see releases page for other versions184> set VERSION=0.27.0185> curl -o toolbox.exe "https://storage.googleapis.com/genai-toolbox/v%VERSION%/windows/amd64/toolbox.exe"186> ```187>188> </details>189> <details>190> <summary>Windows (PowerShell)</summary>191>192> To install Toolbox as a binary on Windows (PowerShell):193>194> ```powershell195> # see releases page for other versions196> $VERSION = "0.27.0"197> curl.exe -o toolbox.exe "https://storage.googleapis.com/genai-toolbox/v$VERSION/windows/amd64/toolbox.exe"198> ```199>200> </details>201</details>202203<details>204<summary>Container image</summary>205You can also install Toolbox as a container:206207```sh208# see releases page for other versions209export VERSION=0.27.0210docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION211```212213</details>214215<details>216<summary>Homebrew</summary>217218To install Toolbox using Homebrew on macOS or Linux:219220```sh221brew install mcp-toolbox222```223224</details>225226<details>227<summary>Compile from source</summary>228229To install from source, ensure you have the latest version of230[Go installed](https://go.dev/doc/install), and then run the following command:231232```sh233go install github.com/googleapis/genai-toolbox@v0.27.0234```235<!-- {x-release-please-end} -->236237</details>238239<details>240<summary>Gemini CLI Extensions</summary>241242To install Gemini CLI Extensions for MCP Toolbox, run the following command:243244```sh245gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox246```247248</details>249250### Running the server251252[Configure](#configuration) a `tools.yaml` to define your tools, and then253execute `toolbox` to start the server:254255<details open>256<summary>Binary</summary>257258To run Toolbox from binary:259260```sh261./toolbox --tools-file "tools.yaml"262```263264> ⓘ Note265> Toolbox enables dynamic reloading by default. To disable, use the266> `--disable-reload` flag.267268</details>269270<details>271272<summary>Container image</summary>273274To run the server after pulling the [container image](#installing-the-server):275276```sh277export VERSION=0.24.0 # Use the version you pulled278docker run -p 5000:5000 \279-v $(pwd)/tools.yaml:/app/tools.yaml \280us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \281--tools-file "/app/tools.yaml"282```283284> ⓘ Note285> The `-v` flag mounts your local `tools.yaml` into the container, and `-p` maps286> the container's port `5000` to your host's port `5000`.287288</details>289290<details>291292<summary>Source</summary>293294To run the server directly from source, navigate to the project root directory295and run:296297```sh298go run .299```300301> ⓘ Note302> This command runs the project from source, and is more suitable for development303> and testing. It does **not** compile a binary into your `$GOPATH`. If you want304> to compile a binary instead, refer the [Developer305> Documentation](./DEVELOPER.md#building-the-binary).306307</details>308309<details>310311<summary>Homebrew</summary>312313If you installed Toolbox using [Homebrew](https://brew.sh/), the `toolbox`314binary is available in your system path. You can start the server with the same315command:316317```sh318toolbox --tools-file "tools.yaml"319```320321</details>322323<details>324<summary>NPM</summary>325326To run Toolbox directly without manually downloading the binary (requires Node.js):327```sh328npx @toolbox-sdk/server --tools-file tools.yaml329```330331</details>332333<details>334335<summary>Gemini CLI</summary>336337Interact with your custom tools using natural language. Check338[gemini-cli-extensions/mcp-toolbox](https://github.com/gemini-cli-extensions/mcp-toolbox)339for more information.340341</details>342343You can use `toolbox help` for a full list of flags! To stop the server, send a344terminate signal (`ctrl+c` on most platforms).345346For more detailed documentation on deploying to different environments, check347out the resources in the [How-to348section](https://googleapis.github.io/genai-toolbox/how-to/)349350### Integrating your application351352Once your server is up and running, you can load the tools into your353application. See below the list of Client SDKs for using various frameworks:354355<details open>356 <summary>Python (<a href="https://github.com/googleapis/mcp-toolbox-sdk-python">Github</a>)</summary>357 <br>358 <blockquote>359360 <details open>361 <summary>Core</summary>3623631. Install [Toolbox Core SDK][toolbox-core]:364365 ```bash366 pip install toolbox-core367 ```3683691. Load tools:370371 ```python372 from toolbox_core import ToolboxClient373374 # update the url to point to your server375 async with ToolboxClient("http://127.0.0.1:5000") as client:376377 # these tools can be passed to your application!378 tools = await client.load_toolset("toolset_name")379 ```380381For more detailed instructions on using the Toolbox Core SDK, see the382[project's README][toolbox-core-readme].383384[toolbox-core]: https://pypi.org/project/toolbox-core/385[toolbox-core-readme]: https://github.com/googleapis/mcp-toolbox-sdk-python/tree/main/packages/toolbox-core/README.md386387 </details>388 <details>389 <summary>LangChain / LangGraph</summary>3903911. Install [Toolbox LangChain SDK][toolbox-langchain]:392393 ```bash394 pip install toolbox-langchain395 ```3963971. Load tools:398399 ```python400 from toolbox_langchain import ToolboxClient401402 # update the url to point to your server403 async with ToolboxClient("http://127.0.0.1:5000") as client:404405 # these tools can be passed to your application!406 tools = client.load_toolset()407 ```408409 For more detailed instructions on using the Toolbox LangChain SDK, see the410 [project's README][toolbox-langchain-readme].411412 [toolbox-langchain]: https://pypi.org/project/toolbox-langchain/413 [toolbox-langchain-readme]: https://github.com/googleapis/mcp-toolbox-sdk-python/blob/main/packages/toolbox-langchain/README.md414415 </details>416 <details>417 <summary>LlamaIndex</summary>4184191. Install [Toolbox Llamaindex SDK][toolbox-llamaindex]:420421 ```bash422 pip install toolbox-llamaindex423 ```4244251. Load tools:426427 ```python428 from toolbox_llamaindex import ToolboxClient429430 # update the url to point to your server431 async with ToolboxClient("http://127.0.0.1:5000") as client:432433 # these tools can be passed to your application!434 tools = client.load_toolset()435 ```436437 For more detailed instructions on using the Toolbox Llamaindex SDK, see the438 [project's README][toolbox-llamaindex-readme].439440 [toolbox-llamaindex]: https://pypi.org/project/toolbox-llamaindex/441 [toolbox-llamaindex-readme]: https://github.com/googleapis/genai-toolbox-llamaindex-python/blob/main/README.md442443 </details>444</details>445</blockquote>446<details>447 <summary>Javascript/Typescript (<a href="https://github.com/googleapis/mcp-toolbox-sdk-js">Github</a>)</summary>448 <br>449 <blockquote>450451 <details open>452 <summary>Core</summary>4534541. Install [Toolbox Core SDK][toolbox-core-js]:455456 ```bash457 npm install @toolbox-sdk/core458 ```4594601. Load tools:461462 ```javascript463 import { ToolboxClient } from '@toolbox-sdk/core';464465 // update the url to point to your server466 const URL = 'http://127.0.0.1:5000';467 let client = new ToolboxClient(URL);468469 // these tools can be passed to your application!470 const tools = await client.loadToolset('toolsetName');471 ```472473 For more detailed instructions on using the Toolbox Core SDK, see the474 [project's README][toolbox-core-js-readme].475476 [toolbox-core-js]: https://www.npmjs.com/package/@toolbox-sdk/core477 [toolbox-core-js-readme]: https://github.com/googleapis/mcp-toolbox-sdk-js/blob/main/packages/toolbox-core/README.md478479 </details>480 <details>481 <summary>LangChain / LangGraph</summary>4824831. Install [Toolbox Core SDK][toolbox-core-js]:484485 ```bash486 npm install @toolbox-sdk/core487 ```4884892. Load tools:490491 ```javascript492 import { ToolboxClient } from '@toolbox-sdk/core';493494 // update the url to point to your server495 const URL = 'http://127.0.0.1:5000';496 let client = new ToolboxClient(URL);497498 // these tools can be passed to your application!499 const toolboxTools = await client.loadToolset('toolsetName');500501 // Define the basics of the tool: name, description, schema and core logic502 const getTool = (toolboxTool) => tool(currTool, {503 name: toolboxTool.getName(),504 description: toolboxTool.getDescription(),505 schema: toolboxTool.getParamSchema()506 });507508 // Use these tools in your Langchain/Langraph applications509 const tools = toolboxTools.map(getTool);510 ```511512 </details>513 <details>514 <summary>Genkit</summary>5155161. Install [Toolbox Core SDK][toolbox-core-js]:517518 ```bash519 npm install @toolbox-sdk/core520 ```5215222. Load tools:523524 ```javascript525 import { ToolboxClient } from '@toolbox-sdk/core';526 import { genkit } from 'genkit';527528 // Initialise genkit529 const ai = genkit({530 plugins: [531 googleAI({532 apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY533 })534 ],535 model: googleAI.model('gemini-2.0-flash'),536 });537538 // update the url to point to your server539 const URL = 'http://127.0.0.1:5000';540 let client = new ToolboxClient(URL);541542 // these tools can be passed to your application!543 const toolboxTools = await client.loadToolset('toolsetName');544545 // Define the basics of the tool: name, description, schema and core logic546 const getTool = (toolboxTool) => ai.defineTool({547 name: toolboxTool.getName(),548 description: toolboxTool.getDescription(),549 schema: toolboxTool.getParamSchema()550 }, toolboxTool)551552 // Use these tools in your Genkit applications553 const tools = toolboxTools.map(getTool);554 ```555556 </details>557 <details>558 <summary>ADK</summary>5595601. Install [Toolbox ADK SDK][toolbox-adk-js]:561562 ```bash563 npm install @toolbox-sdk/adk564 ```5655662. Load tools:567568 ```javascript569 import { ToolboxClient } from '@toolbox-sdk/adk';570571 // update the url to point to your server572 const URL = 'http://127.0.0.1:5000';573 let client = new ToolboxClient(URL);574575 // these tools can be passed to your application!576 const tools = await client.loadToolset('toolsetName');577 ```578579 For more detailed instructions on using the Toolbox ADK SDK, see the580 [project's README][toolbox-adk-js-readme].581582 [toolbox-adk-js]: https://www.npmjs.com/package/@toolbox-sdk/adk583 [toolbox-adk-js-readme]:584 https://github.com/googleapis/mcp-toolbox-sdk-js/blob/main/packages/toolbox-adk/README.md585586 </details>587</details>588</blockquote>589<details>590 <summary>Go (<a href="https://github.com/googleapis/mcp-toolbox-sdk-go">Github</a>)</summary>591 <br>592 <blockquote>593594 <details>595 <summary>Core</summary>5965971. Install [Toolbox Go SDK][toolbox-go]:598599 ```bash600 go get github.com/googleapis/mcp-toolbox-sdk-go601 ```6026032. Load tools:604605 ```go606 package main607608 import (609 "github.com/googleapis/mcp-toolbox-sdk-go/core"610 "context"611 )612613 func main() {614 // Make sure to add the error checks615 // update the url to point to your server616 URL := "http://127.0.0.1:5000";617 ctx := context.Background()618619 client, err := core.NewToolboxClient(URL)620621 // Framework agnostic tools622 tools, err := client.LoadToolset("toolsetName", ctx)623 }624 ```625626 For more detailed instructions on using the Toolbox Go SDK, see the627 [project's README][toolbox-core-go-readme].628629 [toolbox-go]: https://pkg.go.dev/github.com/googleapis/mcp-toolbox-sdk-go/core630 [toolbox-core-go-readme]: https://github.com/googleapis/mcp-toolbox-sdk-go/blob/main/core/README.md631632 </details>633 <details>634 <summary>LangChain Go</summary>6356361. Install [Toolbox Go SDK][toolbox-go]:637638 ```bash639 go get github.com/googleapis/mcp-toolbox-sdk-go640 ```6416422. Load tools:643644 ```go645 package main646647 import (648 "context"649 "encoding/json"650651 "github.com/googleapis/mcp-toolbox-sdk-go/core"652 "github.com/tmc/langchaingo/llms"653 )654655 func main() {656 // Make sure to add the error checks657 // update the url to point to your server658 URL := "http://127.0.0.1:5000"659 ctx := context.Background()660661 client, err := core.NewToolboxClient(URL)662663 // Framework agnostic tool664 tool, err := client.LoadTool("toolName", ctx)665666 // Fetch the tool's input schema667 inputschema, err := tool.InputSchema()668669 var paramsSchema map[string]any670 _ = json.Unmarshal(inputschema, ¶msSchema)671672 // Use this tool with LangChainGo673 langChainTool := llms.Tool{674 Type: "function",675 Function: &llms.FunctionDefinition{676 Name: tool.Name(),677 Description: tool.Description(),678 Parameters: paramsSchema,679 },680 }681 }682683 ```684685 </details>686 <details>687 <summary>Genkit</summary>6886891. Install [Toolbox Go SDK][toolbox-go]:690691 ```bash692 go get github.com/googleapis/mcp-toolbox-sdk-go693 ```6946952. Load tools:696697 ```go698 package main699 import (700 "context"701 "log"702703 "github.com/firebase/genkit/go/genkit"704 "github.com/googleapis/mcp-toolbox-sdk-go/core"705 "github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit"706 )707708 func main() {709 // Make sure to add the error checks710 // Update the url to point to your server711 URL := "http://127.0.0.1:5000"712 ctx := context.Background()713 g := genkit.Init(ctx)714715 client, err := core.NewToolboxClient(URL)716717 // Framework agnostic tool718 tool, err := client.LoadTool("toolName", ctx)719720 // Convert the tool using the tbgenkit package721 // Use this tool with Genkit Go722 genkitTool, err := tbgenkit.ToGenkitTool(tool, g)723 if err != nil {724 log.Fatalf("Failed to convert tool: %v\n", err)725 }726 log.Printf("Successfully converted tool: %s", genkitTool.Name())727 }728 ```729730 </details>731 <details>732 <summary>Go GenAI</summary>7337341. Install [Toolbox Go SDK][toolbox-go]:735736 ```bash737 go get github.com/googleapis/mcp-toolbox-sdk-go738 ```7397402. Load tools:741742 ```go743 package main744745 import (746 "context"747 "encoding/json"748749 "github.com/googleapis/mcp-toolbox-sdk-go/core"750 "google.golang.org/genai"751 )752753 func main() {754 // Make sure to add the error checks755 // Update the url to point to your server756 URL := "http://127.0.0.1:5000"757 ctx := context.Background()758759 client, err := core.NewToolboxClient(URL)760761 // Framework agnostic tool762 tool, err := client.LoadTool("toolName", ctx)763764 // Fetch the tool's input schema765 inputschema, err := tool.InputSchema()766767 var schema *genai.Schema768 _ = json.Unmarshal(inputschema, &schema)769770 funcDeclaration := &genai.FunctionDeclaration{771 Name: tool.Name(),772 Description: tool.Description(),773 Parameters: schema,774 }775776 // Use this tool with Go GenAI777 genAITool := &genai.Tool{778 FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},779 }780 }781 ```782783 </details>784 <details>785 <summary>OpenAI Go</summary>7867871. Install [Toolbox Go SDK][toolbox-go]:788789 ```bash790 go get github.com/googleapis/mcp-toolbox-sdk-go791 ```7927932. Load tools:794795 ```go796 package main797798 import (799 "context"800 "encoding/json"801802 "github.com/googleapis/mcp-toolbox-sdk-go/core"803 openai "github.com/openai/openai-go"804 )805806 func main() {807 // Make sure to add the error checks808 // Update the url to point to your server809 URL := "http://127.0.0.1:5000"810 ctx := context.Background()811812 client, err := core.NewToolboxClient(URL)813814 // Framework agnostic tool815 tool, err := client.LoadTool("toolName", ctx)816817 // Fetch the tool's input schema818 inputschema, err := tool.InputSchema()819820 var paramsSchema openai.FunctionParameters821 _ = json.Unmarshal(inputschema, ¶msSchema)822823 // Use this tool with OpenAI Go824 openAITool := openai.ChatCompletionToolParam{825 Function: openai.FunctionDefinitionParam{826 Name: tool.Name(),827 Description: openai.String(tool.Description()),828 Parameters: paramsSchema,829 },830 }831832 }833 ```834835 </details>836 <details open>837 <summary>ADK Go</summary>8388391. Install [Toolbox Go SDK][toolbox-go]:840841 ```bash842 go get github.com/googleapis/mcp-toolbox-sdk-go843 ```8448451. Load tools:846847 ```go848 package main849850 import (851 "github.com/googleapis/mcp-toolbox-sdk-go/tbadk"852 "context"853 )854855 func main() {856 // Make sure to add the error checks857 // Update the url to point to your server858 URL := "http://127.0.0.1:5000"859 ctx := context.Background()860 client, err := tbadk.NewToolboxClient(URL)861 if err != nil {862 return fmt.Sprintln("Could not start Toolbox Client", err)863 }864865 // Use this tool with ADK Go866 tool, err := client.LoadTool("toolName", ctx)867 if err != nil {868 return fmt.Sprintln("Could not load Toolbox Tool", err)869 }870 }871 ```872873 For more detailed instructions on using the Toolbox Go SDK, see the874 [project's README][toolbox-core-go-readme].875876877 </details>878</details>879</blockquote>880</details>881882### Using Toolbox with Gemini CLI Extensions883884[Gemini CLI extensions][gemini-cli-extensions] provide tools to interact885directly with your data sources from command line. Below is a list of Gemini CLI886extensions that are built on top of **Toolbox**. They allow you to interact with887your data sources through pre-defined or custom tools with natural language.888Click into the link to see detailed instructions on their usage.889890To use **custom** tools with Gemini CLI:891892- [MCP Toolbox](https://github.com/gemini-cli-extensions/mcp-toolbox)893894To use [prebuilt tools][prebuilt] with Gemini CLI:895896- [AlloyDB for PostgreSQL](https://github.com/gemini-cli-extensions/alloydb)897- [AlloyDB for PostgreSQL898 Observability](https://github.com/gemini-cli-extensions/alloydb-observability)899- [BigQuery Data900 Analytics](https://github.com/gemini-cli-extensions/bigquery-data-analytics)901- [BigQuery Conversational902 Analytics](https://github.com/gemini-cli-extensions/bigquery-conversational-analytics)903- [Cloud SQL for904 MySQL](https://github.com/gemini-cli-extensions/cloud-sql-mysql)905- [Cloud SQL for MySQL906 Observability](https://github.com/gemini-cli-extensions/cloud-sql-mysql-observability)907- [Cloud SQL for908 PostgreSQL](https://github.com/gemini-cli-extensions/cloud-sql-postgresql)909- [Cloud SQL for PostgreSQL910 Observability](https://github.com/gemini-cli-extensions/cloud-sql-postgresql-observability)911- [Cloud SQL for SQL912 Server](https://github.com/gemini-cli-extensions/cloud-sql-sqlserver)913- [Cloud SQL for SQL Server914 Observability](https://github.com/gemini-cli-extensions/cloud-sql-sqlserver-observability)915- [Looker](https://github.com/gemini-cli-extensions/looker)916- [Dataplex](https://github.com/gemini-cli-extensions/dataplex)917- [MySQL](https://github.com/gemini-cli-extensions/mysql)918- [PostgreSQL](https://github.com/gemini-cli-extensions/postgres)919- [Spanner](https://github.com/gemini-cli-extensions/spanner)920- [Firestore](https://github.com/gemini-cli-extensions/firestore-native)921- [SQL Server](https://github.com/gemini-cli-extensions/sql-server)922923[prebuilt]: https://googleapis.github.io/genai-toolbox/reference/prebuilt-tools/924[gemini-cli-extensions]:925 https://github.com/google-gemini/gemini-cli/blob/main/docs/extensions/index.md926927## Configuration928929The primary way to configure Toolbox is through the `tools.yaml` file. If you930have multiple files, you can tell toolbox which to load with the `--tools-file931tools.yaml` flag.932933You can find more detailed reference documentation to all resource types in the934[Resources](https://googleapis.github.io/genai-toolbox/resources/).935936### Sources937938The `sources` section of your `tools.yaml` defines what data sources your939Toolbox should have access to. Most tools will have at least one source to940execute against.941942```yaml943kind: sources944name: my-pg-source945type: postgres946host: 127.0.0.1947port: 5432948database: toolbox_db949user: toolbox_user950password: my-password951```952953For more details on configuring different types of sources, see the954[Sources](https://googleapis.github.io/genai-toolbox/resources/sources).955956### Tools957958The `tools` section of a `tools.yaml` define the actions an agent can take: what959type of tool it is, which source(s) it affects, what parameters it uses, etc.960961```yaml962kind: tools963name: search-hotels-by-name964type: postgres-sql965source: my-pg-source966description: Search for hotels based on name.967parameters:968 - name: name969 type: string970 description: The name of the hotel.971statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';972```973974For more details on configuring different types of tools, see the975[Tools](https://googleapis.github.io/genai-toolbox/resources/tools).976977### Toolsets978979The `toolsets` section of your `tools.yaml` allows you to define groups of tools980that you want to be able to load together. This can be useful for defining981different groups based on agent or application.982983```yaml984toolsets:985 my_first_toolset:986 - my_first_tool987 - my_second_tool988 my_second_toolset:989 - my_second_tool990 - my_third_tool991```992993You can load toolsets by name:994995```python996# This will load all tools997all_tools = client.load_toolset()998999# This will only load the tools listed in 'my_second_toolset'1000my_second_toolset = client.load_toolset("my_second_toolset")1001```10021003### Prompts10041005The `prompts` section of a `tools.yaml` defines prompts that can be used for1006interactions with LLMs.10071008```yaml1009prompts:1010 code_review:1011 description: "Asks the LLM to analyze code quality and suggest improvements."1012 messages:1013 - content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"1014 arguments:1015 - name: "code"1016 description: "The code to review"1017```10181019For more details on configuring prompts, see the1020[Prompts](https://googleapis.github.io/genai-toolbox/resources/prompts).10211022## Versioning10231024This project uses [semantic versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`).1025Since the project is in a pre-release stage (version `0.x.y`), we follow the1026standard conventions for initial development:10271028### Pre-1.0.0 Versioning10291030While the major version is `0`, the public API should be considered unstable.1031The version will be incremented as follows:10321033- **`0.MINOR.PATCH`**: The **MINOR** version is incremented when we add1034 new functionality or make breaking, incompatible API changes.1035- **`0.MINOR.PATCH`**: The **PATCH** version is incremented for1036 backward-compatible bug fixes.10371038### Post-1.0.0 Versioning10391040Once the project reaches a stable `1.0.0` release, the version number1041**`MAJOR.MINOR.PATCH`** will follow the more common convention:10421043- **`MAJOR`**: Incremented for incompatible API changes.1044- **`MINOR`**: Incremented for new, backward-compatible functionality.1045- **`PATCH`**: Incremented for backward-compatible bug fixes.10461047The public API that this applies to is the CLI associated with Toolbox, the1048interactions with official SDKs, and the definitions in the `tools.yaml` file.10491050## Contributing10511052Contributions are welcome. Please, see the [CONTRIBUTING](CONTRIBUTING.md)1053to get started.10541055Please note that this project is released with a Contributor Code of Conduct.1056By participating in this project you agree to abide by its terms. See1057[Contributor Code of Conduct](CODE_OF_CONDUCT.md) for more information.10581059## Community10601061Join our [discord community](https://discord.gg/GQrFB3Ec3W) to connect with our developers!1062
Full transparency — inspect the skill content before installing.