{
  "markdown": "<div align=\"center\">\n\n![logo](./logo.png)\n\n# MCP Toolbox for Databases\n\n<a href=\"https://trendshift.io/repositories/25495\" target=\"_blank\"><img src=\"https://trendshift.io/api/badge/repositories/25495\" alt=\"googleapis%2Fmcp-toolbox | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/></a>\n\n[![License: Apache\n2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Docs](https://img.shields.io/badge/Docs-MCP_Toolbox-blue)](https://mcp-toolbox.dev/)\n[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?style=flat&logo=discord&logoColor=white)](https://discord.gg/Dmm69peqjh)\n[![Medium](https://img.shields.io/badge/Medium-12100E?style=flat&logo=medium&logoColor=white)](https://medium.com/@mcp_toolbox)\n\n[![Python SDK](https://img.shields.io/pypi/v/toolbox-core?logo=python&logoColor=white&label=Python%20SDK)](https://pypi.org/project/toolbox-core/)\n[![JS/TS SDK](https://img.shields.io/npm/v/@toolbox-sdk/core?logo=javascript&logoColor=white&label=JS%20SDK)](https://www.npmjs.com/package/@toolbox-sdk/core)\n[![Go SDK](https://img.shields.io/github/v/release/googleapis/mcp-toolbox-sdk-go?logo=go&logoColor=white&label=Go%20SDK)](https://pkg.go.dev/github.com/googleapis/mcp-toolbox-sdk-go)\n[![Java SDK](https://img.shields.io/maven-central/v/com.google.cloud.mcp/mcp-toolbox-sdk-java?logo=apache-maven&logoColor=white&label=Java%20SDK)](https://mvnrepository.com/artifact/com.google.cloud.mcp/mcp-toolbox-sdk-java)\n</div>\n\nMCP Toolbox for Databases is an open source Model Context Protocol (MCP) server that connects your AI agents, IDEs, and applications directly to your enterprise databases. \n\n<p align=\"center\">\n<img src=\"docs/en/documentation/introduction/architecture.png\" alt=\"architecture\" width=\"50%\"/>\n</p>\n\nIt serves a **dual purpose**:\n1. **Ready-to-use MCP Server (Build-Time):** Instantly connect Gemini CLI, Google Antigravity, Claude Code, Codex, or other MCP clients to your databases using our *prebuilt generic tools*. Talk to your data, explore schemas, and generate code without writing boilerplate.\n2. **Custom Tools Framework (Run-Time):** A robust framework to build specialized, highly secure AI tools for your production agents. Define structured queries, semantic search, and NL2SQL capabilities safely and easily.\n\n\nThis README provides a brief overview. For comprehensive details, see the [full documentation](https://mcp-toolbox.dev/).\n\n> [!IMPORTANT]  \n> **Repository Name Update:** The `genai-toolbox` repository has been officially renamed to `mcp-toolbox`. To ensure your local environment reflects the new name, you may update your remote:\n> `git remote set-url origin https://github.com/googleapis/mcp-toolbox.git`\n\n> [!NOTE]\n> This solution was originally named “Gen AI Toolbox for Databases” (github.com/googleapis/genai-toolbox) as its initial development predated MCP, but was renamed to align with the MCP compatibility.\n\n<!-- TOC ignore:true -->\n## Table of Contents\n\n- [Why MCP Toolbox?](#why-mcp-toolbox)\n- [Quick Start: Prebuilt Tools](#quick-start-prebuilt-tools)\n- [Quick Start: Custom Tools](#quick-start-custom-tools)\n- [Install & Run the Toolbox server](#install--run-the-toolbox-server)\n- [Connect to Toolbox](#connect-to-toolbox)\n  - [MCP Client](#mcp-client)\n  - [Toolbox SDKs: Integrate with your Application](#toolbox-sdks-integrate-with-your-application)\n- [Additional Features](#additional-features)\n- [Versioning](#versioning)\n- [Contributing](#contributing)\n- [Community](#community)\n\n---\n\n## Why MCP Toolbox?\n\n- **Out-of-the-Box Database Access:** Prebuilt generic tools for instant data exploration (e.g., `list_tables`, `execute_sql`) directly from your IDE or CLI.\n- **Custom Tools Framework:** Build production-ready tools with your own predefined logic, ensuring safety through Restricted Access, Structured Queries, and Semantic Search.\n- **Simplified Development:** Integrate tools into your Agent Development Kit (ADK), LangChain, LlamaIndex, or custom agents in less than 10 lines of code.\n- **Better Performance:** Handles connection pooling, integrated auth (IAM), and end-to-end observability (OpenTelemetry) out of the box.\n- **Enhanced Security**: Integrated authentication for more secure access to your data.\n- **End-to-end Observability**: Out of the box metrics and tracing with built-in support for OpenTelemetry.\n\n---\n\n## Quick Start: Prebuilt Tools\n\nStop context-switching and let your AI assistant become a true co-developer. By connecting your IDE to your databases with MCP Toolbox, you can query your data in plain English, automate schema discovery and management, and generate database-aware code.\n\nYou can use the Toolbox in any MCP-compatible IDE or client (e.g., Gemini CLI, Google Antigravity, Claude Code, Codex, etc.) by configuring the MCP server.\n\n**Prebuilt tools are also conveniently available via the [Google Antigravity MCP Store](https://antigravity.google/docs/mcp) with a simple click-to-install experience.**\n\n1. Add the following to your client's MCP configuration file (usually `mcp.json` or `claude_desktop_config.json`):\n\n    ```json\n    {\n      \"mcpServers\": {\n        \"toolbox-postgres\": {\n          \"command\": \"npx\",\n          \"args\": [\n            \"-y\",\n            \"@toolbox-sdk/server\",\n            \"--prebuilt=postgres\",\n            \"--stdio\"\n          ]\n        }\n      }\n    }\n    ```\n\n2. Set the appropriate environment variables to connect, see the [Prebuilt Tools Reference](https://mcp-toolbox.dev/documentation/configuration/prebuilt-configs/).\n\nWhen you run Toolbox with a `--prebuilt=<database>` flag, you instantly get access to standard tools to interact with that database. You can also specify a specific toolset using the `--prebuilt=<database>/<toolset>` syntax (e.g., `--prebuilt=postgres/data` to only load SQL tools). \n\nSupported databases currently include:\n- **Google Cloud:** AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (formerly known as Dataplex).\n- **Other Databases:** PostgreSQL, MySQL, [MariaDB](https://mcp-toolbox.dev/integrations/mariadb/source/), SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, and more.\n\nFor a full list of available tools and their capabilities across all supported databases, see the [Prebuilt Tools Reference](https://mcp-toolbox.dev/documentation/configuration/prebuilt-configs/).\n\n*See the [Install & Run the Toolbox server](#install--run-the-toolbox-server) section for different execution methods like Docker or binaries.*\n\n\n> [!TIP]\n> For users looking for a managed solution, [Google Cloud MCP Servers](https://cloud.google.com/blog/products/databases/managed-mcp-servers-for-google-cloud-databases) \n> provide a managed MCP experience with prebuilt tools; you can [learn more about the differences here](https://mcp-toolbox.dev/dev/reference/faq/).\n\n---\n\n<a id=\"configuration\"></a>\n## Quick Start: Custom Tools\n\nToolbox can also be used as a framework for customized tools.\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 `--config\ntools.yaml` flag.\n\nYou can find more detailed reference documentation to all resource types in the\n[Resources](https://mcp-toolbox.dev/documentation/configuration/).\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: source\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://mcp-toolbox.dev/documentation/configuration/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: tool\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://mcp-toolbox.dev/documentation/configuration/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\nkind: toolset\nname: my_first_toolset\ntools:\n    - my_first_tool\n    - my_second_tool\n---\nkind: toolset\nname: my_second_toolset\ntools:\n    - my_second_tool\n    - my_third_tool\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\nkind: prompt\nname: code_review\ndescription: \"Asks the LLM to analyze code quality and suggest improvements.\"\nmessages:\n  - content: >\n         Please review the following code for quality, correctness,\n         and potential improvements: \\n\\n{{.code}}\narguments:\n  - name: \"code\"\n    description: \"The code to review\"\n```\n\nFor more details on configuring prompts, see the\n[Prompts](https://mcp-toolbox.dev/documentation/configuration/prompts/).\n\n### Resources\n\nThe `resources` and `resourceTemplates` sections of your `tools.yaml` define read-only\ncontent, files, or parameterized directory trees that can be discovered and retrieved\nby MCP clients:\n\n```yaml\nkind: resource\nname: database_schema_ddl\ntype: text\ndescription: \"Core table definitions and constraints.\"\nmimeType: text/x-sql\ntext: |\n  CREATE TABLE customers (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(255) NOT NULL,\n    email VARCHAR(255) UNIQUE NOT NULL\n  );\n---\nkind: resource\nname: database_schema\ntype: file\ndescription: \"PostgreSQL schema definition.\"\npath: \"./schema.sql\"\n---\nkind: resourceTemplate\nname: server_logs\ntype: file\ndescription: \"Application log files.\"\nuriTemplate: \"file:///var/log/{path}\"\nallowedPaths:\n  - \"/var/log\"\n```\n\nFor more details on configuring resources and resource templates, see\n[Resources](https://mcp-toolbox.dev/documentation/configuration/resources/).\n\n---\n\n## Install & Run the Toolbox server\n\nYou can run Toolbox directly with a [configuration file](#quick-start-custom-tools):\n\n```sh\nnpx @toolbox-sdk/server --config tools.yaml\n```\n\nThis runs the latest version of the Toolbox server with your configuration file.\n\n> [!NOTE]\n> This method is optimized for convenience rather than performance. \n> For a more standard and reliable installation, please use the binary\n> or container image as described in [Install & Run the Toolbox server](#install--run-the-toolbox-server).\n\n### Install Toolbox\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/mcp-toolbox/releases\n\n<details open>\n<summary>Binary</summary>\n\nTo install Toolbox as a binary:\n\n<!-- {x-release-please-start-version} -->\n> <details>\n> <summary>Linux (AMD64)</summary>\n>\n> To install Toolbox as a binary on Linux (AMD64):\n>\n> ```sh\n> # see releases page for other versions\n> export VERSION=1.11.0\n> curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox\n> chmod +x toolbox\n> ```\n>\n> </details>\n> <details>\n> <summary>macOS (Apple Silicon)</summary>\n>\n> To install Toolbox as a binary on macOS (Apple Silicon):\n>\n> ```sh\n> # see releases page for other versions\n> export VERSION=1.11.0\n> curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox\n> chmod +x toolbox\n> ```\n>\n> </details>\n> <details>\n> <summary>macOS (Intel)</summary>\n>\n> To install Toolbox as a binary on macOS (Intel):\n>\n> ```sh\n> # see releases page for other versions\n> export VERSION=1.11.0\n> curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox\n> chmod +x toolbox\n> ```\n>\n> </details>\n> <details>\n> <summary>Windows (Command Prompt)</summary>\n>\n> To install Toolbox as a binary on Windows (Command Prompt):\n>\n> ```cmd\n> :: see releases page for other versions\n> set VERSION=1.11.0\n> curl -o toolbox.exe \"https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe\"\n> ```\n>\n> </details>\n> <details>\n> <summary>Windows (PowerShell)</summary>\n>\n> To install Toolbox as a binary on Windows (PowerShell):\n>\n> ```powershell\n> # see releases page for other versions\n> $VERSION = \"1.11.0\"\n> curl.exe -o toolbox.exe \"https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe\"\n> ```\n>\n> </details>\n> <details>\n> <summary>Windows ARM64 (Command Prompt)</summary>\n>\n> To install Toolbox as a binary on Windows ARM64 (Command Prompt):\n>\n> ```cmd\n> :: see releases page for other versions\n> set VERSION=1.11.0\n> curl -o toolbox.exe \"https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe\"\n> ```\n>\n> </details>\n> <details>\n> <summary>Windows ARM64 (PowerShell)</summary>\n>\n> To install Toolbox as a binary on Windows ARM64 (PowerShell):\n>\n> ```powershell\n> # see releases page for other versions\n> $VERSION = \"1.11.0\"\n> curl.exe -o toolbox.exe \"https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe\"\n> ```\n>\n> </details>\n</details>\n\n<details>\n<summary>Container image</summary>\nYou can also install Toolbox as a container:\n\n```sh\n# see releases page for other versions\nexport VERSION=1.11.0\ndocker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION\n```\n\n</details>\n\n<details>\n<summary>Homebrew</summary>\n\nTo install Toolbox using Homebrew on macOS or Linux:\n\n```sh\nbrew install mcp-toolbox\n```\n\n</details>\n\n<details>\n<summary>Compile from source</summary>\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/mcp-toolbox@v1.11.0\n```\n<!-- {x-release-please-end} -->\n\n</details>\n<details>\n<summary>Gemini CLI</summary>\nCheck out the [Gemini CLI extensions](https://geminicli.com/extensions/) to install prebuilt tools for specific databases like AlloyDB, BigQuery, and Cloud SQL directly into Gemini CLI.\n\n```sh\n# Install Gemini CLI\nnpm install -g @google/gemini-cli\n# Install the extension\ngemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres\n# Run Gemini CLI\ngemini\n```\n\nInteract with your custom tools using natural language through the Gemini CLI.\n\n```sh\n# Install the extension\ngemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox\n```\n</details>\n\n\n### Run Toolbox\n\n[Configure](#quick-start-custom-tools) a `tools.yaml` to define your tools, and then\nexecute `toolbox` to start the server:\n\n<details open>\n<summary>Binary</summary>\n\nTo run Toolbox from binary:\n\n```sh\n./toolbox --config \"tools.yaml\"\n```\n\n> ⓘ Note  \n> Toolbox enables dynamic reloading by default. To disable, use the\n> `--disable-reload` flag.\n\n</details>\n\n<details>\n\n<summary>Container image</summary>\n\nTo run the server after pulling the [container image](#install-toolbox):\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--config \"/app/tools.yaml\"\n```\n\n> ⓘ Note  \n> The `-v` flag mounts your local `tools.yaml` into the container, and `-p` maps\n> the container's port `5000` to your host's port `5000`.\n\n</details>\n\n<details>\n\n<summary>Source</summary>\n\nTo run the server directly from source, navigate to the project root directory\nand run:\n\n```sh\ngo run .\n```\n\n> ⓘ Note  \n> This command runs the project from source, and is more suitable for development\n> and testing. It does **not** compile a binary into your `$GOPATH`. If you want\n> to compile a binary instead, refer the [Developer\n> Documentation](./DEVELOPER.md#building-the-binary).\n\n</details>\n\n<details>\n\n<summary>Homebrew</summary>\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 --config \"tools.yaml\"\n```\n\n</details>\n\n<details>\n<summary>NPM</summary>\n\nTo run Toolbox directly without manually downloading the binary (requires Node.js):\n```sh\nnpx @toolbox-sdk/server --config tools.yaml\n```\n\n</details>\n<details>\n<summary>Gemini CLI</summary>\nAfter installing a [Gemini CLI extensions](https://geminicli.com/extensions/), the prebuilt tools will be available during use.\n\n```sh\n# Run Gemini CLI\ngemini\n\n# List extensions\n/extensions list\n# List MCP servers\n/mcp list\n```\n\n</details>\n\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 [Deploy Toolbox\nsection](https://mcp-toolbox.dev/documentation/deploy-to/)\n\n---\n\n## Connect to Toolbox\n\nOnce your Toolbox server is up and running, you can load tools into your MCP-compatible client or\napplication. \n\n### MCP Client\n\nAdd the following configuration to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"toolbox\": {\n      \"type\": \"http\",\n      \"url\": \"http://127.0.0.1:5000/mcp\",\n    }\n  }\n}\n```\n\nIf you would like to connect to a specific toolset, replace url with \"http://127.0.0.1:5000/mcp/{toolset_name}\".\n\n\n### Toolbox SDKs: Integrate with your Application\n\nToolbox Client SDKs provide the easy-to-use building blocks and advanced features for connecting your custom applications to the MCP Toolbox server. See below the list of Client SDKs for using various frameworks:\n\n<details open>\n  <summary>Python (<a href=\"https://github.com/googleapis/mcp-toolbox-sdk-python\">Github</a>)</summary>\n  <br>\n  <blockquote>\n\n  <details open>\n    <summary>Core</summary>\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  </details>\n  <details>\n    <summary>LangChain / LangGraph</summary>\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  </details>\n  <details>\n    <summary>LlamaIndex</summary>\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  </details>\n</details>\n</blockquote>\n<details>\n  <summary>Javascript/Typescript (<a href=\"https://github.com/googleapis/mcp-toolbox-sdk-js\">Github</a>)</summary>\n  <br>\n  <blockquote>\n\n  <details open>\n    <summary>Core</summary>\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  </details>\n  <details>\n    <summary>LangChain / LangGraph</summary>\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) => 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  </details>\n  <details>\n    <summary>Genkit</summary>\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) => 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  </details>\n  <details>\n    <summary>ADK</summary>\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  </details>\n</details>\n</blockquote>\n<details>\n  <summary>Go (<a href=\"https://github.com/googleapis/mcp-toolbox-sdk-go\">Github</a>)</summary>\n  <br>\n  <blockquote>\n\n  <details>\n    <summary>Core</summary>\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  </details>\n  <details>\n    <summary>LangChain Go</summary>\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, &paramsSchema)\n\n      // Use this tool with LangChainGo\n      langChainTool := llms.Tool{\n        Type: \"function\",\n        Function: &llms.FunctionDefinition{\n          Name:        tool.Name(),\n          Description: tool.Description(),\n          Parameters:  paramsSchema,\n        },\n      }\n    }\n\n    ```\n\n  </details>\n  <details>\n    <summary>Genkit</summary>\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  </details>\n  <details>\n    <summary>Go GenAI</summary>\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, &schema)\n\n      funcDeclaration := &genai.FunctionDeclaration{\n        Name:        tool.Name(),\n        Description: tool.Description(),\n        Parameters:  schema,\n      }\n\n      // Use this tool with Go GenAI\n      genAITool := &genai.Tool{\n        FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},\n      }\n    }\n    ```\n\n  </details>\n  <details>\n    <summary>OpenAI Go</summary>\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, &paramsSchema)\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  </details>\n  <details open>\n    <summary>ADK Go</summary>\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  </details>\n</details>\n</blockquote>\n</details>\n\n---\n\n## Additional Features\n\n### Test tools with the Toolbox UI\n\nTo launch Toolbox's interactive UI, use the `--ui` flag. This allows you to test\ntools and toolsets with features such as authorized parameters. To learn more,\nvisit [Toolbox UI](https://mcp-toolbox.dev/documentation/configuration/toolbox-ui/).\n\n```sh\n./toolbox --ui\n```\n\n### Telemetry\n\nToolbox emits traces and metrics via OpenTelemetry. Use `--telemetry-otlp=<endpoint>` \nto export to any OTLP-compatible backend like Google Cloud Monitoring, Agnost AI, or \nothers. See the [telemetry docs](https://mcp-toolbox.dev/documentation/monitoring/export_telemetry/) for details.\n\n### Generate Agent Skills\n\nThe `skills-generate` command allows you to convert a **toolset** into an **Agent Skill** compatible with the [Agent Skill specification](https://agentskills.io/specification). This is useful for distributing tools as portable skill packages.\n\n```bash\ntoolbox --config tools.yaml skills-generate \\\n  --name \"my-skill\" \\\n  --toolset \"my_toolset\" \\\n  --description \"A skill containing multiple tools\"\n```\n\nOnce generated, you can install the skill into the Gemini CLI:\n\n```bash\ngemini skills install ./skills/my-skill\n```\n\nFor more details, see the [Generate Agent Skills guide](https://mcp-toolbox.dev/documentation/configuration/skills/).\n\nThe repository also ships ready-to-use Agent Skills (e.g. maintainer workflows). See [`skills/`](./skills/README.md) for the catalog and install instructions.\n\n---\n\n## Versioning\n\nMCP Toolbox for Databases follows [Semantic Versioning](https://semver.org/).\n\nThe Public API includes the Toolbox Server (CLI, configuration manifests, and pre-built toolsets) and the Client SDKs.\n\n- **Major versions** are incremented for breaking changes, such as incompatible CLI or manifest changes.\n- **Minor versions** are incremented for new features, including modifications to pre-built toolsets or beta features.\n- **Patch versions** are incremented for backward-compatible bug fixes.\n\nFor more details, see our [Full Versioning Policy](https://mcp-toolbox.dev/reference/versioning/).\n\n---\n\n## Contributing\n\nContributions are welcome. Please, see the [CONTRIBUTING](CONTRIBUTING.md) guide to get started. \n\nFor technical details on setting up a environment for developing on Toolbox itself, see the [DEVELOPER](DEVELOPER.md) guide.\n\nPlease note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See [Contributor Code of Conduct](CODE_OF_CONDUCT.md) for more information.\n\n---\n\n## Community\n\nJoin our [Discord community](https://discord.gg/GQrFB3Ec3W) to connect with our developers!\n",
  "bytes": 33724,
  "sha": "b1c64470d48720f65bf80a2998eed9e12f1c3c6e77d9ff90681a8900ee128986",
  "repo_slug": "googleapis/genai-toolbox",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_googleapis_genai_toolbox_97de6ae5/readme"
}