{"id":27152364,"url":"https://github.com/googleapis/genai-toolbox","last_synced_at":"2026-02-13T04:23:01.739Z","repository":{"id":276068304,"uuid":"812044182","full_name":"googleapis/genai-toolbox","owner":"googleapis","description":"MCP Toolbox for Databases is an open source MCP server for databases.","archived":false,"fork":false,"pushed_at":"2025-05-14T18:19:34.000Z","size":23200,"stargazers_count":943,"open_issues_count":33,"forks_count":102,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-14T19:28:45.647Z","etag":null,"topics":["databases","genai","llms","mcp"],"latest_commit_sha":null,"homepage":"https://googleapis.github.io/genai-toolbox/getting-started/introduction/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googleapis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-06-07T20:52:54.000Z","updated_at":"2025-05-14T19:10:11.000Z","dependencies_parsed_at":"2025-02-06T05:32:26.742Z","dependency_job_id":"32433122-8a1c-42e1-b877-44f99c12ed14","html_url":"https://github.com/googleapis/genai-toolbox","commit_stats":null,"previous_names":["googleapis/genai-toolbox"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fgenai-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fgenai-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fgenai-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fgenai-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleapis","download_url":"https://codeload.github.com/googleapis/genai-toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414493,"owners_count":22067271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["databases","genai","llms","mcp"],"created_at":"2025-04-08T15:26:09.455Z","updated_at":"2026-02-13T04:23:01.731Z","avatar_url":"https://github.com/googleapis.png","language":"Go","readme":"![logo](./logo.png)\n\n# MCP Toolbox for Databases\n\n\u003ca href=\"https://trendshift.io/repositories/13019\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/13019\" alt=\"googleapis%2Fgenai-toolbox | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\n[![Docs](https://img.shields.io/badge/docs-MCP_Toolbox-blue)](https://googleapis.github.io/genai-toolbox/)\n[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=flat\u0026logo=discord\u0026logoColor=white)](https://discord.gg/Dmm69peqjh)\n[![Medium](https://img.shields.io/badge/Medium-12100E?style=flat\u0026logo=medium\u0026logoColor=white)](https://medium.com/@mcp_toolbox)\n[![Go Report Card](https://goreportcard.com/badge/github.com/googleapis/genai-toolbox)](https://goreportcard.com/report/github.com/googleapis/genai-toolbox)\n\n\u003e [!NOTE]\n\u003e MCP Toolbox for Databases is currently in beta, and may see breaking\n\u003e changes until the first stable release (v1.0).\n\nMCP Toolbox for Databases is an open source MCP server for databases. It enables\nyou to develop tools easier, faster, and more securely by handling the complexities\nsuch as connection pooling, authentication, and more.\n\nThis README provides a brief overview. For comprehensive details, see the [full\ndocumentation](https://googleapis.github.io/genai-toolbox/).\n\n\u003e [!NOTE]\n\u003e This solution was originally named “Gen AI Toolbox for Databases” as\n\u003e its initial development predated MCP, but was renamed to align with recently\n\u003e added MCP compatibility.\n\n\u003c!-- TOC ignore:true --\u003e\n## Table of Contents\n\n\u003c!-- TOC --\u003e\n\n- [Why Toolbox?](#why-toolbox)\n- [General Architecture](#general-architecture)\n- [Getting Started](#getting-started)\n  - [Installing the server](#installing-the-server)\n  - [Running the server](#running-the-server)\n  - [Integrating your application](#integrating-your-application)\n  - [Using Toolbox with Gemini CLI Extensions](#using-toolbox-with-gemini-cli-extensions)\n- [Configuration](#configuration)\n  - [Sources](#sources)\n  - [Tools](#tools)\n  - [Toolsets](#toolsets)\n  - [Prompts](#prompts)\n- [Versioning](#versioning)\n  - [Pre-1.0.0 Versioning](#pre-100-versioning)\n  - [Post-1.0.0 Versioning](#post-100-versioning)\n- [Contributing](#contributing)\n- [Community](#community)\n\n\u003c!-- /TOC --\u003e\n\n## Why Toolbox?\n\nToolbox helps you build Gen AI tools that let your agents access data in your\ndatabase. Toolbox provides:\n\n- **Simplified development**: Integrate tools to your agent in less than 10\n  lines of code, reuse tools between multiple agents or frameworks, and deploy\n  new versions of tools more easily.\n- **Better performance**: Best practices such as connection pooling,\n  authentication, and more.\n- **Enhanced security**: Integrated auth for more secure access to your data\n- **End-to-end observability**: Out of the box metrics and tracing with built-in\n  support for OpenTelemetry.\n\n**⚡ Supercharge Your Workflow with an AI Database Assistant ⚡**\n\nStop context-switching and let your AI assistant become a true co-developer. By\n[connecting your IDE to your databases with MCP Toolbox][connect-ide], you can\ndelegate complex and time-consuming database tasks, allowing you to build faster\nand focus on what matters. This isn't just about code completion; it's about\ngiving your AI the context it needs to handle the entire development lifecycle.\n\nHere’s how it will save you time:\n\n- **Query in Plain English**: Interact with your data using natural language\n  right from your IDE. Ask complex questions like, *\"How many orders were\n  delivered in 2024, and what items were in them?\"* without writing any SQL.\n- **Automate Database Management**: Simply describe your data needs, and let the\n  AI assistant manage your database for you. It can handle generating queries,\n  creating tables, adding indexes, and more.\n- **Generate Context-Aware Code**: Empower your AI assistant to generate\n  application code and tests with a deep understanding of your real-time\n  database schema.  This accelerates the development cycle by ensuring the\n  generated code is directly usable.\n- **Slash Development Overhead**: Radically reduce the time spent on manual\n  setup and boilerplate. MCP Toolbox helps streamline lengthy database\n  configurations, repetitive code, and error-prone schema migrations.\n\nLearn [how to connect your AI tools (IDEs) to Toolbox using MCP][connect-ide].\n\n[connect-ide]: https://googleapis.github.io/genai-toolbox/how-to/connect-ide/\n\n## General Architecture\n\nToolbox sits between your application's orchestration framework and your\ndatabase, providing a control plane that is used to modify, distribute, or\ninvoke tools. It simplifies the management of your tools by providing you with a\ncentralized location to store and update tools, allowing you to share tools\nbetween agents and applications and update those tools without necessarily\nredeploying your application.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"./docs/en/getting-started/introduction/architecture.png\" alt=\"architecture\" width=\"50%\"/\u003e\n\u003c/p\u003e\n\n## Getting Started\n\n### Quickstart: Running Toolbox using NPX\n\nYou can run Toolbox directly with a [configuration file](#configuration):\n\n```sh\nnpx @toolbox-sdk/server --tools-file tools.yaml\n```\n\nThis runs the latest version of the toolbox server with your configuration file.\n\n\u003e [!NOTE]\n\u003e This method should only be used for non-production use cases such as\n\u003e experimentation. For any production use-cases, please consider [Installing the\n\u003e server](#installing-the-server) and then [running it](#running-the-server).\n\n### Installing the server\n\nFor the latest version, check the [releases page][releases] and use the\nfollowing instructions for your OS and CPU architecture.\n\n[releases]: https://github.com/googleapis/genai-toolbox/releases\n\n\u003cdetails open\u003e\n\u003csummary\u003eBinary\u003c/summary\u003e\n\nTo install Toolbox as a binary:\n\n\u003c!-- {x-release-please-start-version} --\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003eLinux (AMD64)\u003c/summary\u003e\n\u003e\n\u003e To install Toolbox as a binary on Linux (AMD64):\n\u003e\n\u003e ```sh\n\u003e # see releases page for other versions\n\u003e export VERSION=0.27.0\n\u003e curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox\n\u003e chmod +x toolbox\n\u003e ```\n\u003e\n\u003e \u003c/details\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003emacOS (Apple Silicon)\u003c/summary\u003e\n\u003e\n\u003e To install Toolbox as a binary on macOS (Apple Silicon):\n\u003e\n\u003e ```sh\n\u003e # see releases page for other versions\n\u003e export VERSION=0.27.0\n\u003e curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/arm64/toolbox\n\u003e chmod +x toolbox\n\u003e ```\n\u003e\n\u003e \u003c/details\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003emacOS (Intel)\u003c/summary\u003e\n\u003e\n\u003e To install Toolbox as a binary on macOS (Intel):\n\u003e\n\u003e ```sh\n\u003e # see releases page for other versions\n\u003e export VERSION=0.27.0\n\u003e curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/darwin/amd64/toolbox\n\u003e chmod +x toolbox\n\u003e ```\n\u003e\n\u003e \u003c/details\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003eWindows (Command Prompt)\u003c/summary\u003e\n\u003e\n\u003e To install Toolbox as a binary on Windows (Command Prompt):\n\u003e\n\u003e ```cmd\n\u003e :: see releases page for other versions\n\u003e set VERSION=0.27.0\n\u003e curl -o toolbox.exe \"https://storage.googleapis.com/genai-toolbox/v%VERSION%/windows/amd64/toolbox.exe\"\n\u003e ```\n\u003e\n\u003e \u003c/details\u003e\n\u003e \u003cdetails\u003e\n\u003e \u003csummary\u003eWindows (PowerShell)\u003c/summary\u003e\n\u003e\n\u003e To install Toolbox as a binary on Windows (PowerShell):\n\u003e\n\u003e ```powershell\n\u003e # see releases page for other versions\n\u003e $VERSION = \"0.27.0\"\n\u003e curl.exe -o toolbox.exe \"https://storage.googleapis.com/genai-toolbox/v$VERSION/windows/amd64/toolbox.exe\"\n\u003e ```\n\u003e\n\u003e \u003c/details\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eContainer image\u003c/summary\u003e\nYou can also install Toolbox as a container:\n\n```sh\n# see releases page for other versions\nexport VERSION=0.27.0\ndocker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHomebrew\u003c/summary\u003e\n\nTo install Toolbox using Homebrew on macOS or Linux:\n\n```sh\nbrew install mcp-toolbox\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eCompile from source\u003c/summary\u003e\n\nTo install from source, ensure you have the latest version of\n[Go installed](https://go.dev/doc/install), and then run the following command:\n\n```sh\ngo install github.com/googleapis/genai-toolbox@v0.27.0\n```\n\u003c!-- {x-release-please-end} --\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eGemini CLI Extensions\u003c/summary\u003e\n\nTo install Gemini CLI Extensions for MCP Toolbox, run the following command:\n\n```sh\ngemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox\n```\n\n\u003c/details\u003e\n\n### Running the server\n\n[Configure](#configuration) a `tools.yaml` to define your tools, and then\nexecute `toolbox` to start the server:\n\n\u003cdetails open\u003e\n\u003csummary\u003eBinary\u003c/summary\u003e\n\nTo run Toolbox from binary:\n\n```sh\n./toolbox --tools-file \"tools.yaml\"\n```\n\n\u003e ⓘ Note  \n\u003e Toolbox enables dynamic reloading by default. To disable, use the\n\u003e `--disable-reload` flag.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eContainer image\u003c/summary\u003e\n\nTo run the server after pulling the [container image](#installing-the-server):\n\n```sh\nexport VERSION=0.24.0 # Use the version you pulled\ndocker run -p 5000:5000 \\\n-v $(pwd)/tools.yaml:/app/tools.yaml \\\nus-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \\\n--tools-file \"/app/tools.yaml\"\n```\n\n\u003e ⓘ Note  \n\u003e The `-v` flag mounts your local `tools.yaml` into the container, and `-p` maps\n\u003e the container's port `5000` to your host's port `5000`.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eSource\u003c/summary\u003e\n\nTo run the server directly from source, navigate to the project root directory\nand run:\n\n```sh\ngo run .\n```\n\n\u003e ⓘ Note  \n\u003e This command runs the project from source, and is more suitable for development\n\u003e and testing. It does **not** compile a binary into your `$GOPATH`. If you want\n\u003e to compile a binary instead, refer the [Developer\n\u003e Documentation](./DEVELOPER.md#building-the-binary).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eHomebrew\u003c/summary\u003e\n\nIf you installed Toolbox using [Homebrew](https://brew.sh/), the `toolbox`\nbinary is available in your system path. You can start the server with the same\ncommand:\n\n```sh\ntoolbox --tools-file \"tools.yaml\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eNPM\u003c/summary\u003e\n\nTo run Toolbox directly without manually downloading the binary (requires Node.js):\n```sh\nnpx @toolbox-sdk/server --tools-file tools.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eGemini CLI\u003c/summary\u003e\n\nInteract with your custom tools using natural language. Check\n[gemini-cli-extensions/mcp-toolbox](https://github.com/gemini-cli-extensions/mcp-toolbox)\nfor more information.\n\n\u003c/details\u003e\n\nYou can use `toolbox help` for a full list of flags! To stop the server, send a\nterminate signal (`ctrl+c` on most platforms).\n\nFor more detailed documentation on deploying to different environments, check\nout the resources in the [How-to\nsection](https://googleapis.github.io/genai-toolbox/how-to/)\n\n### Integrating your application\n\nOnce your server is up and running, you can load the tools into your\napplication. See below the list of Client SDKs for using various frameworks:\n\n\u003cdetails open\u003e\n  \u003csummary\u003ePython (\u003ca href=\"https://github.com/googleapis/mcp-toolbox-sdk-python\"\u003eGithub\u003c/a\u003e)\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cblockquote\u003e\n\n  \u003cdetails open\u003e\n    \u003csummary\u003eCore\u003c/summary\u003e\n\n1. Install [Toolbox Core SDK][toolbox-core]:\n\n    ```bash\n    pip install toolbox-core\n    ```\n\n1. Load tools:\n\n    ```python\n    from toolbox_core import ToolboxClient\n\n    # update the url to point to your server\n    async with ToolboxClient(\"http://127.0.0.1:5000\") as client:\n\n        # these tools can be passed to your application!\n        tools = await client.load_toolset(\"toolset_name\")\n    ```\n\nFor more detailed instructions on using the Toolbox Core SDK, see the\n[project's README][toolbox-core-readme].\n\n[toolbox-core]: https://pypi.org/project/toolbox-core/\n[toolbox-core-readme]: https://github.com/googleapis/mcp-toolbox-sdk-python/tree/main/packages/toolbox-core/README.md\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eLangChain / LangGraph\u003c/summary\u003e\n\n1. Install [Toolbox LangChain SDK][toolbox-langchain]:\n\n    ```bash\n    pip install toolbox-langchain\n    ```\n\n1. Load tools:\n\n    ```python\n    from toolbox_langchain import ToolboxClient\n\n    # update the url to point to your server\n    async with ToolboxClient(\"http://127.0.0.1:5000\") as client:\n\n        # these tools can be passed to your application!\n        tools = client.load_toolset()\n    ```\n\n    For more detailed instructions on using the Toolbox LangChain SDK, see the\n    [project's README][toolbox-langchain-readme].\n\n    [toolbox-langchain]: https://pypi.org/project/toolbox-langchain/\n    [toolbox-langchain-readme]: https://github.com/googleapis/mcp-toolbox-sdk-python/blob/main/packages/toolbox-langchain/README.md\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eLlamaIndex\u003c/summary\u003e\n\n1. Install [Toolbox Llamaindex SDK][toolbox-llamaindex]:\n\n    ```bash\n    pip install toolbox-llamaindex\n    ```\n\n1. Load tools:\n\n    ```python\n    from toolbox_llamaindex import ToolboxClient\n\n    # update the url to point to your server\n    async with ToolboxClient(\"http://127.0.0.1:5000\") as client:\n\n        # these tools can be passed to your application!\n        tools = client.load_toolset()\n    ```\n\n    For more detailed instructions on using the Toolbox Llamaindex SDK, see the\n    [project's README][toolbox-llamaindex-readme].\n\n    [toolbox-llamaindex]: https://pypi.org/project/toolbox-llamaindex/\n    [toolbox-llamaindex-readme]: https://github.com/googleapis/genai-toolbox-llamaindex-python/blob/main/README.md\n\n  \u003c/details\u003e\n\u003c/details\u003e\n\u003c/blockquote\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eJavascript/Typescript (\u003ca href=\"https://github.com/googleapis/mcp-toolbox-sdk-js\"\u003eGithub\u003c/a\u003e)\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cblockquote\u003e\n\n  \u003cdetails open\u003e\n    \u003csummary\u003eCore\u003c/summary\u003e\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk/core\n    ```\n\n1. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk/core';\n\n    // update the url to point to your server\n    const URL = 'http://127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    // these tools can be passed to your application!\n    const tools = await client.loadToolset('toolsetName');\n    ```\n\n    For more detailed instructions on using the Toolbox Core SDK, see the\n    [project's README][toolbox-core-js-readme].\n\n    [toolbox-core-js]: https://www.npmjs.com/package/@toolbox-sdk/core\n    [toolbox-core-js-readme]: https://github.com/googleapis/mcp-toolbox-sdk-js/blob/main/packages/toolbox-core/README.md\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eLangChain / LangGraph\u003c/summary\u003e\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk/core\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk/core';\n\n    // update the url to point to your server\n    const URL = 'http://127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    // these tools can be passed to your application!\n    const toolboxTools = await client.loadToolset('toolsetName');\n\n    // Define the basics of the tool: name, description, schema and core logic\n    const getTool = (toolboxTool) =\u003e tool(currTool, {\n        name: toolboxTool.getName(),\n        description: toolboxTool.getDescription(),\n        schema: toolboxTool.getParamSchema()\n    });\n\n    // Use these tools in your Langchain/Langraph applications\n    const tools = toolboxTools.map(getTool);\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eGenkit\u003c/summary\u003e\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk/core\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk/core';\n    import { genkit } from 'genkit';\n\n    // Initialise genkit\n    const ai = genkit({\n        plugins: [\n            googleAI({\n                apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY\n            })\n        ],\n        model: googleAI.model('gemini-2.0-flash'),\n    });\n\n    // update the url to point to your server\n    const URL = 'http://127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    // these tools can be passed to your application!\n    const toolboxTools = await client.loadToolset('toolsetName');\n\n    // Define the basics of the tool: name, description, schema and core logic\n    const getTool = (toolboxTool) =\u003e ai.defineTool({\n        name: toolboxTool.getName(),\n        description: toolboxTool.getDescription(),\n        schema: toolboxTool.getParamSchema()\n    }, toolboxTool)\n\n    // Use these tools in your Genkit applications\n    const tools = toolboxTools.map(getTool);\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eADK\u003c/summary\u003e\n\n1. Install [Toolbox ADK SDK][toolbox-adk-js]:\n\n    ```bash\n    npm install @toolbox-sdk/adk\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk/adk';\n\n    // update the url to point to your server\n    const URL = 'http://127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    // these tools can be passed to your application!\n    const tools = await client.loadToolset('toolsetName');\n    ```\n\n    For more detailed instructions on using the Toolbox ADK SDK, see the\n    [project's README][toolbox-adk-js-readme].\n\n    [toolbox-adk-js]: https://www.npmjs.com/package/@toolbox-sdk/adk\n    [toolbox-adk-js-readme]:\n       https://github.com/googleapis/mcp-toolbox-sdk-js/blob/main/packages/toolbox-adk/README.md\n\n  \u003c/details\u003e\n\u003c/details\u003e\n\u003c/blockquote\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eGo (\u003ca href=\"https://github.com/googleapis/mcp-toolbox-sdk-go\"\u003eGithub\u003c/a\u003e)\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cblockquote\u003e\n\n  \u003cdetails\u003e\n    \u003csummary\u003eCore\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"github.com/googleapis/mcp-toolbox-sdk-go/core\"\n      \"context\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // update the url to point to your server\n      URL := \"http://127.0.0.1:5000\";\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      // Framework agnostic tools\n      tools, err := client.LoadToolset(\"toolsetName\", ctx)\n    }\n    ```\n\n    For more detailed instructions on using the Toolbox Go SDK, see the\n    [project's README][toolbox-core-go-readme].\n\n    [toolbox-go]: https://pkg.go.dev/github.com/googleapis/mcp-toolbox-sdk-go/core\n    [toolbox-core-go-readme]: https://github.com/googleapis/mcp-toolbox-sdk-go/blob/main/core/README.md\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eLangChain Go\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding/json\"\n\n      \"github.com/googleapis/mcp-toolbox-sdk-go/core\"\n      \"github.com/tmc/langchaingo/llms\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // update the url to point to your server\n      URL := \"http://127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      // Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      // Fetch the tool's input schema\n      inputschema, err := tool.InputSchema()\n\n      var paramsSchema map[string]any\n      _ = json.Unmarshal(inputschema, \u0026paramsSchema)\n\n      // Use this tool with LangChainGo\n      langChainTool := llms.Tool{\n        Type: \"function\",\n        Function: \u0026llms.FunctionDefinition{\n          Name:        tool.Name(),\n          Description: tool.Description(),\n          Parameters:  paramsSchema,\n        },\n      }\n    }\n\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eGenkit\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n    import (\n      \"context\"\n      \"log\"\n\n      \"github.com/firebase/genkit/go/genkit\"\n      \"github.com/googleapis/mcp-toolbox-sdk-go/core\"\n      \"github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // Update the url to point to your server\n      URL := \"http://127.0.0.1:5000\"\n      ctx := context.Background()\n      g := genkit.Init(ctx)\n\n      client, err := core.NewToolboxClient(URL)\n\n      // Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      // Convert the tool using the tbgenkit package\n      // Use this tool with Genkit Go\n      genkitTool, err := tbgenkit.ToGenkitTool(tool, g)\n      if err != nil {\n        log.Fatalf(\"Failed to convert tool: %v\\n\", err)\n      }\n      log.Printf(\"Successfully converted tool: %s\", genkitTool.Name())\n    }\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eGo GenAI\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding/json\"\n\n      \"github.com/googleapis/mcp-toolbox-sdk-go/core\"\n      \"google.golang.org/genai\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // Update the url to point to your server\n      URL := \"http://127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      // Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      // Fetch the tool's input schema\n      inputschema, err := tool.InputSchema()\n\n      var schema *genai.Schema\n      _ = json.Unmarshal(inputschema, \u0026schema)\n\n      funcDeclaration := \u0026genai.FunctionDeclaration{\n        Name:        tool.Name(),\n        Description: tool.Description(),\n        Parameters:  schema,\n      }\n\n      // Use this tool with Go GenAI\n      genAITool := \u0026genai.Tool{\n        FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},\n      }\n    }\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails\u003e\n    \u003csummary\u003eOpenAI Go\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding/json\"\n\n      \"github.com/googleapis/mcp-toolbox-sdk-go/core\"\n      openai \"github.com/openai/openai-go\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // Update the url to point to your server\n      URL := \"http://127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      // Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      // Fetch the tool's input schema\n      inputschema, err := tool.InputSchema()\n\n      var paramsSchema openai.FunctionParameters\n      _ = json.Unmarshal(inputschema, \u0026paramsSchema)\n\n      // Use this tool with OpenAI Go\n      openAITool := openai.ChatCompletionToolParam{\n        Function: openai.FunctionDefinitionParam{\n          Name:        tool.Name(),\n          Description: openai.String(tool.Description()),\n          Parameters:  paramsSchema,\n        },\n      }\n\n    }\n    ```\n\n  \u003c/details\u003e\n  \u003cdetails open\u003e\n    \u003csummary\u003eADK Go\u003c/summary\u003e\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com/googleapis/mcp-toolbox-sdk-go\n    ```\n\n1. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"github.com/googleapis/mcp-toolbox-sdk-go/tbadk\"\n      \"context\"\n    )\n\n    func main() {\n      // Make sure to add the error checks\n      // Update the url to point to your server\n      URL := \"http://127.0.0.1:5000\"\n      ctx := context.Background()\n      client, err := tbadk.NewToolboxClient(URL)\n      if err != nil {\n        return fmt.Sprintln(\"Could not start Toolbox Client\", err)\n      }\n\n      // Use this tool with ADK Go\n      tool, err := client.LoadTool(\"toolName\", ctx)\n      if err != nil {\n        return fmt.Sprintln(\"Could not load Toolbox Tool\", err)\n      }\n    }\n    ```\n\n    For more detailed instructions on using the Toolbox Go SDK, see the\n    [project's README][toolbox-core-go-readme].\n\n\n  \u003c/details\u003e\n\u003c/details\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\n### Using Toolbox with Gemini CLI Extensions\n\n[Gemini CLI extensions][gemini-cli-extensions] provide tools to interact\ndirectly with your data sources from command line. Below is a list of Gemini CLI\nextensions that are built on top of **Toolbox**. They allow you to interact with\nyour data sources through pre-defined or custom tools with natural language.\nClick into the link to see detailed instructions on their usage.\n\nTo use **custom** tools with Gemini CLI:\n\n- [MCP Toolbox](https://github.com/gemini-cli-extensions/mcp-toolbox)\n\nTo use [prebuilt tools][prebuilt] with Gemini CLI:\n\n- [AlloyDB for PostgreSQL](https://github.com/gemini-cli-extensions/alloydb)\n- [AlloyDB for PostgreSQL\n  Observability](https://github.com/gemini-cli-extensions/alloydb-observability)\n- [BigQuery Data\n  Analytics](https://github.com/gemini-cli-extensions/bigquery-data-analytics)\n- [BigQuery Conversational\n  Analytics](https://github.com/gemini-cli-extensions/bigquery-conversational-analytics)\n- [Cloud SQL for\n  MySQL](https://github.com/gemini-cli-extensions/cloud-sql-mysql)\n- [Cloud SQL for MySQL\n  Observability](https://github.com/gemini-cli-extensions/cloud-sql-mysql-observability)\n- [Cloud SQL for\n  PostgreSQL](https://github.com/gemini-cli-extensions/cloud-sql-postgresql)\n- [Cloud SQL for PostgreSQL\n  Observability](https://github.com/gemini-cli-extensions/cloud-sql-postgresql-observability)\n- [Cloud SQL for SQL\n  Server](https://github.com/gemini-cli-extensions/cloud-sql-sqlserver)\n- [Cloud SQL for SQL Server\n  Observability](https://github.com/gemini-cli-extensions/cloud-sql-sqlserver-observability)\n- [Looker](https://github.com/gemini-cli-extensions/looker)\n- [Dataplex](https://github.com/gemini-cli-extensions/dataplex)\n- [MySQL](https://github.com/gemini-cli-extensions/mysql)\n- [PostgreSQL](https://github.com/gemini-cli-extensions/postgres)\n- [Spanner](https://github.com/gemini-cli-extensions/spanner)\n- [Firestore](https://github.com/gemini-cli-extensions/firestore-native)\n- [SQL Server](https://github.com/gemini-cli-extensions/sql-server)\n\n[prebuilt]: https://googleapis.github.io/genai-toolbox/reference/prebuilt-tools/\n[gemini-cli-extensions]:\n    https://github.com/google-gemini/gemini-cli/blob/main/docs/extensions/index.md\n\n## Configuration\n\nThe primary way to configure Toolbox is through the `tools.yaml` file. If you\nhave multiple files, you can tell toolbox which to load with the `--tools-file\ntools.yaml` flag.\n\nYou can find more detailed reference documentation to all resource types in the\n[Resources](https://googleapis.github.io/genai-toolbox/resources/).\n\n### Sources\n\nThe `sources` section of your `tools.yaml` defines what data sources your\nToolbox should have access to. Most tools will have at least one source to\nexecute against.\n\n```yaml\nkind: sources\nname: my-pg-source\ntype: postgres\nhost: 127.0.0.1\nport: 5432\ndatabase: toolbox_db\nuser: toolbox_user\npassword: my-password\n```\n\nFor more details on configuring different types of sources, see the\n[Sources](https://googleapis.github.io/genai-toolbox/resources/sources).\n\n### Tools\n\nThe `tools` section of a `tools.yaml` define the actions an agent can take: what\ntype of tool it is, which source(s) it affects, what parameters it uses, etc.\n\n```yaml\nkind: tools\nname: search-hotels-by-name\ntype: postgres-sql\nsource: my-pg-source\ndescription: Search for hotels based on name.\nparameters:\n  - name: name\n    type: string\n    description: The name of the hotel.\nstatement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';\n```\n\nFor more details on configuring different types of tools, see the\n[Tools](https://googleapis.github.io/genai-toolbox/resources/tools).\n\n### Toolsets\n\nThe `toolsets` section of your `tools.yaml` allows you to define groups of tools\nthat you want to be able to load together. This can be useful for defining\ndifferent groups based on agent or application.\n\n```yaml\ntoolsets:\n    my_first_toolset:\n        - my_first_tool\n        - my_second_tool\n    my_second_toolset:\n        - my_second_tool\n        - my_third_tool\n```\n\nYou can load toolsets by name:\n\n```python\n# This will load all tools\nall_tools = client.load_toolset()\n\n# This will only load the tools listed in 'my_second_toolset'\nmy_second_toolset = client.load_toolset(\"my_second_toolset\")\n```\n\n### Prompts\n\nThe `prompts` section of a `tools.yaml` defines prompts that can be used for\ninteractions with LLMs.\n\n```yaml\nprompts:\n  code_review:\n    description: \"Asks the LLM to analyze code quality and suggest improvements.\"\n    messages:\n      - content: \"Please review the following code for quality, correctness, and potential improvements: \\n\\n{{.code}}\"\n    arguments:\n      - name: \"code\"\n        description: \"The code to review\"\n```\n\nFor more details on configuring prompts, see the\n[Prompts](https://googleapis.github.io/genai-toolbox/resources/prompts).\n\n## Versioning\n\nThis project uses [semantic versioning](https://semver.org/) (`MAJOR.MINOR.PATCH`).\nSince the project is in a pre-release stage (version `0.x.y`), we follow the\nstandard conventions for initial  development:\n\n### Pre-1.0.0 Versioning\n\nWhile the major version is `0`, the public API should be considered unstable.\nThe version will be incremented  as follows:\n\n- **`0.MINOR.PATCH`**: The **MINOR** version is incremented when we add\n  new functionality or make breaking, incompatible API changes.\n- **`0.MINOR.PATCH`**: The **PATCH** version is incremented for\n  backward-compatible bug fixes.\n\n### Post-1.0.0 Versioning\n\nOnce the project reaches a stable `1.0.0` release, the version number\n**`MAJOR.MINOR.PATCH`** will follow the more common convention:\n\n- **`MAJOR`**: Incremented for incompatible API changes.\n- **`MINOR`**: Incremented for new, backward-compatible functionality.\n- **`PATCH`**: Incremented for backward-compatible bug fixes.\n\nThe public API that this applies to is the CLI associated with Toolbox, the\ninteractions with official SDKs, and the definitions in the `tools.yaml` file.\n\n## Contributing\n\nContributions are welcome. Please, see the [CONTRIBUTING](CONTRIBUTING.md)\nto get started.\n\nPlease note that this project is released with a Contributor Code of Conduct.\nBy participating in this project you agree to abide by its terms. See\n[Contributor Code of Conduct](CODE_OF_CONDUCT.md) for more information.\n\n## Community\n\nJoin our [discord community](https://discord.gg/GQrFB3Ec3W) to connect with our developers!\n","funding_links":[],"categories":["MCP Servers \u0026 Tools","Databases","Database \u0026 Messaging MCP Servers","Official Servers","🛠️ Developer Tools","📚 Projects (1974 total)","Production-Ready Servers","Go","MCP 服务器精选列表","پیاده‌سازی‌های سرور","📦 Other","Repos","Databases (3)","A01_文本生成_文本对话","官方 MCP 服务器列表","Cloud Services","Agent Integration \u0026 Deployment Tools","MCP Ecosystem","UIs","App","MCP","MCP Servers"],"sub_categories":["Data \u0026 APIs","Multi-Database Tools","🟩 Development Tools 🛠️","MCP Servers","🗄️ 数据库交互","🗄️ \u003ca name=\"databases\"\u003e\u003c/a\u003eپایگاه‌های داده","How to Submit","大语言对话模型及数据","MCP Server Framework","Servers","CHUI(Chat-based User Interface) or CHUBACA(Chat-Based Client:)","Databases"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleapis%2Fgenai-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogleapis%2Fgenai-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogleapis%2Fgenai-toolbox/lists"}