[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4899":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":47,"readmeContent":48,"aiSummary":49,"trendingCount":16,"starSnapshotCount":16,"syncStatus":50,"lastSyncTime":51,"discoverSource":52},4899,"mcp-toolbox","googleapis\u002Fmcp-toolbox","googleapis","MCP Toolbox for Databases is an open source MCP server for databases.","https:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fintroduction\u002F",null,"Go",15586,1596,94,137,0,23,111,434,121,119.61,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"agent","agents","ai","bigquery","clickhouse","cockroachdb","database","elasticsearch","firestore","genai","llm","mcp","mongodb","mysql","oracle","postgresql","redis","server","spanner","tidb","2026-06-12 04:00:23","\u003Cdiv align=\"center\">\n\n![logo](.\u002Flogo.png)\n\n# MCP Toolbox for Databases\n\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F13019\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F13019\" alt=\"googleapis%2Fmcp-toolbox | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\n[![Go Report Card](https:\u002F\u002Fgoreportcard.com\u002Fbadge\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox)\n[![License: Apache\n2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n[![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-MCP_Toolbox-blue)](https:\u002F\u002Fmcp-toolbox.dev\u002F)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-%235865F2.svg?style=flat&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FDmm69peqjh)\n[![Medium](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMedium-12100E?style=flat&logo=medium&logoColor=white)](https:\u002F\u002Fmedium.com\u002F@mcp_toolbox)\n\n[![Python SDK](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Ftoolbox-core?logo=python&logoColor=white&label=Python%20SDK)](https:\u002F\u002Fpypi.org\u002Fproject\u002Ftoolbox-core\u002F)\n[![JS\u002FTS SDK](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@toolbox-sdk\u002Fcore?logo=javascript&logoColor=white&label=JS%20SDK)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@toolbox-sdk\u002Fcore)\n[![Go SDK](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go?logo=go&logoColor=white&label=Go%20SDK)](https:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go)\n[![Java SDK](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fcom.google.cloud.mcp\u002Fmcp-toolbox-sdk-java?logo=apache-maven&logoColor=white&label=Java%20SDK)](https:\u002F\u002Fmvnrepository.com\u002Fartifact\u002Fcom.google.cloud.mcp\u002Fmcp-toolbox-sdk-java)\n\u003C\u002Fdiv>\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\u003Cp align=\"center\">\n\u003Cimg src=\"docs\u002Fen\u002Fdocumentation\u002Fintroduction\u002Farchitecture.png\" alt=\"architecture\" width=\"50%\"\u002F>\n\u003C\u002Fp>\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:\u002F\u002Fmcp-toolbox.dev\u002F).\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:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox.git`\n\n> [!NOTE]\n> This solution was originally named “Gen AI Toolbox for Databases” (github.com\u002Fgoogleapis\u002Fgenai-toolbox) as its initial development predated MCP, but was renamed to align with the MCP compatibility.\n\n\u003C!-- 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:\u002F\u002Fantigravity.google\u002Fdocs\u002Fmcp) 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\u002Fserver\",\n            \"--prebuilt=postgres\"\n          ]\n        }\n      }\n    }\n    ```\n\n2. Set the appropriate environment variables to connect, see the [Prebuilt Tools Reference](https:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Fprebuilt-configs\u002F).\n\nWhen you run Toolbox with a `--prebuilt=\u003Cdatabase>` flag, you instantly get access to standard tools to interact with that database. \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, 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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Fprebuilt-configs\u002F).\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:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdatabases\u002Fmanaged-mcp-servers-for-google-cloud-databases) \n> provide a managed MCP experience with prebuilt tools; you can [learn more about the differences here](https:\u002F\u002Fmcp-toolbox.dev\u002Fdev\u002Freference\u002Ffaq\u002F).\n\n---\n\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002F).\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Fsources\u002F).\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Ftools\u002F).\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Fprompts\u002F).\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\u002Fserver --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:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox\u002Freleases\n\n\u003Cdetails open>\n\u003Csummary>Binary\u003C\u002Fsummary>\n\nTo install Toolbox as a binary:\n\n\u003C!-- {x-release-please-start-version} -->\n> \u003Cdetails>\n> \u003Csummary>Linux (AMD64)\u003C\u002Fsummary>\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.1.0\n> curl -L -o toolbox https:\u002F\u002Fstorage.googleapis.com\u002Fmcp-toolbox-for-databases\u002Fv$VERSION\u002Flinux\u002Famd64\u002Ftoolbox\n> chmod +x toolbox\n> ```\n>\n> \u003C\u002Fdetails>\n> \u003Cdetails>\n> \u003Csummary>macOS (Apple Silicon)\u003C\u002Fsummary>\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.1.0\n> curl -L -o toolbox https:\u002F\u002Fstorage.googleapis.com\u002Fmcp-toolbox-for-databases\u002Fv$VERSION\u002Fdarwin\u002Farm64\u002Ftoolbox\n> chmod +x toolbox\n> ```\n>\n> \u003C\u002Fdetails>\n> \u003Cdetails>\n> \u003Csummary>macOS (Intel)\u003C\u002Fsummary>\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.1.0\n> curl -L -o toolbox https:\u002F\u002Fstorage.googleapis.com\u002Fmcp-toolbox-for-databases\u002Fv$VERSION\u002Fdarwin\u002Famd64\u002Ftoolbox\n> chmod +x toolbox\n> ```\n>\n> \u003C\u002Fdetails>\n> \u003Cdetails>\n> \u003Csummary>Windows (Command Prompt)\u003C\u002Fsummary>\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.1.0\n> curl -o toolbox.exe \"https:\u002F\u002Fstorage.googleapis.com\u002Fmcp-toolbox-for-databases\u002Fv%VERSION%\u002Fwindows\u002Famd64\u002Ftoolbox.exe\"\n> ```\n>\n> \u003C\u002Fdetails>\n> \u003Cdetails>\n> \u003Csummary>Windows (PowerShell)\u003C\u002Fsummary>\n>\n> To install Toolbox as a binary on Windows (PowerShell):\n>\n> ```powershell\n> # see releases page for other versions\n> $VERSION = \"1.1.0\"\n> curl.exe -o toolbox.exe \"https:\u002F\u002Fstorage.googleapis.com\u002Fmcp-toolbox-for-databases\u002Fv$VERSION\u002Fwindows\u002Famd64\u002Ftoolbox.exe\"\n> ```\n>\n> \u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Container image\u003C\u002Fsummary>\nYou can also install Toolbox as a container:\n\n```sh\n# see releases page for other versions\nexport VERSION=1.1.0\ndocker pull us-central1-docker.pkg.dev\u002Fdatabase-toolbox\u002Ftoolbox\u002Ftoolbox:$VERSION\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Homebrew\u003C\u002Fsummary>\n\nTo install Toolbox using Homebrew on macOS or Linux:\n\n```sh\nbrew install mcp-toolbox\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Compile from source\u003C\u002Fsummary>\n\nTo install from source, ensure you have the latest version of\n[Go installed](https:\u002F\u002Fgo.dev\u002Fdoc\u002Finstall), and then run the following command:\n\n```sh\ngo install github.com\u002Fgoogleapis\u002Fmcp-toolbox@v1.1.0\n```\n\u003C!-- {x-release-please-end} -->\n\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary>Gemini CLI\u003C\u002Fsummary>\nCheck out the [Gemini CLI extensions](https:\u002F\u002Fgeminicli.com\u002Fextensions\u002F) 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\u002Fgemini-cli\n# Install the extension\ngemini extensions install https:\u002F\u002Fgithub.com\u002Fgemini-cli-extensions\u002Fcloud-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:\u002F\u002Fgithub.com\u002Fgemini-cli-extensions\u002Fmcp-toolbox\n```\n\u003C\u002Fdetails>\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\u003Cdetails open>\n\u003Csummary>Binary\u003C\u002Fsummary>\n\nTo run Toolbox from binary:\n\n```sh\n.\u002Ftoolbox --config \"tools.yaml\"\n```\n\n> ⓘ Note  \n> Toolbox enables dynamic reloading by default. To disable, use the\n> `--disable-reload` flag.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\n\u003Csummary>Container image\u003C\u002Fsummary>\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)\u002Ftools.yaml:\u002Fapp\u002Ftools.yaml \\\nus-central1-docker.pkg.dev\u002Fdatabase-toolbox\u002Ftoolbox\u002Ftoolbox:$VERSION \\\n--config \"\u002Fapp\u002Ftools.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\u003C\u002Fdetails>\n\n\u003Cdetails>\n\n\u003Csummary>Source\u003C\u002Fsummary>\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](.\u002FDEVELOPER.md#building-the-binary).\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\n\u003Csummary>Homebrew\u003C\u002Fsummary>\n\nIf you installed Toolbox using [Homebrew](https:\u002F\u002Fbrew.sh\u002F), 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\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>NPM\u003C\u002Fsummary>\n\nTo run Toolbox directly without manually downloading the binary (requires Node.js):\n```sh\nnpx @toolbox-sdk\u002Fserver --config tools.yaml\n```\n\n\u003C\u002Fdetails>\n\u003Cdetails>\n\u003Csummary>Gemini CLI\u003C\u002Fsummary>\nAfter installing a [Gemini CLI extensions](https:\u002F\u002Fgeminicli.com\u002Fextensions\u002F), the prebuilt tools will be available during use.\n\n```sh\n# Run Gemini CLI\ngemini\n\n# List extensions\n\u002Fextensions list\n# List MCP servers\n\u002Fmcp list\n```\n\n\u003C\u002Fdetails>\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fdeploy-to\u002F)\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:\u002F\u002F127.0.0.1:5000\u002Fmcp\",\n    }\n  }\n}\n```\n\nIf you would like to connect to a specific toolset, replace url with \"http:\u002F\u002F127.0.0.1:5000\u002Fmcp\u002F{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\u003Cdetails open>\n  \u003Csummary>Python (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-python\">Github\u003C\u002Fa>)\u003C\u002Fsummary>\n  \u003Cbr>\n  \u003Cblockquote>\n\n  \u003Cdetails open>\n    \u003Csummary>Core\u003C\u002Fsummary>\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:\u002F\u002F127.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:\u002F\u002Fpypi.org\u002Fproject\u002Ftoolbox-core\u002F\n[toolbox-core-readme]: https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-python\u002Ftree\u002Fmain\u002Fpackages\u002Ftoolbox-core\u002FREADME.md\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>LangChain \u002F LangGraph\u003C\u002Fsummary>\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:\u002F\u002F127.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:\u002F\u002Fpypi.org\u002Fproject\u002Ftoolbox-langchain\u002F\n    [toolbox-langchain-readme]: https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-python\u002Fblob\u002Fmain\u002Fpackages\u002Ftoolbox-langchain\u002FREADME.md\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>LlamaIndex\u003C\u002Fsummary>\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:\u002F\u002F127.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:\u002F\u002Fpypi.org\u002Fproject\u002Ftoolbox-llamaindex\u002F\n    [toolbox-llamaindex-readme]: https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fgenai-toolbox-llamaindex-python\u002Fblob\u002Fmain\u002FREADME.md\n\n  \u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\u003C\u002Fblockquote>\n\u003Cdetails>\n  \u003Csummary>Javascript\u002FTypescript (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-js\">Github\u003C\u002Fa>)\u003C\u002Fsummary>\n  \u003Cbr>\n  \u003Cblockquote>\n\n  \u003Cdetails open>\n    \u003Csummary>Core\u003C\u002Fsummary>\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk\u002Fcore\n    ```\n\n1. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk\u002Fcore';\n\n    \u002F\u002F update the url to point to your server\n    const URL = 'http:\u002F\u002F127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    \u002F\u002F 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:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@toolbox-sdk\u002Fcore\n    [toolbox-core-js-readme]: https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-js\u002Fblob\u002Fmain\u002Fpackages\u002Ftoolbox-core\u002FREADME.md\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>LangChain \u002F LangGraph\u003C\u002Fsummary>\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk\u002Fcore\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk\u002Fcore';\n\n    \u002F\u002F update the url to point to your server\n    const URL = 'http:\u002F\u002F127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    \u002F\u002F these tools can be passed to your application!\n    const toolboxTools = await client.loadToolset('toolsetName');\n\n    \u002F\u002F 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    \u002F\u002F Use these tools in your Langchain\u002FLangraph applications\n    const tools = toolboxTools.map(getTool);\n    ```\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>Genkit\u003C\u002Fsummary>\n\n1. Install [Toolbox Core SDK][toolbox-core-js]:\n\n    ```bash\n    npm install @toolbox-sdk\u002Fcore\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk\u002Fcore';\n    import { genkit } from 'genkit';\n\n    \u002F\u002F 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    \u002F\u002F update the url to point to your server\n    const URL = 'http:\u002F\u002F127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    \u002F\u002F these tools can be passed to your application!\n    const toolboxTools = await client.loadToolset('toolsetName');\n\n    \u002F\u002F 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    \u002F\u002F Use these tools in your Genkit applications\n    const tools = toolboxTools.map(getTool);\n    ```\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>ADK\u003C\u002Fsummary>\n\n1. Install [Toolbox ADK SDK][toolbox-adk-js]:\n\n    ```bash\n    npm install @toolbox-sdk\u002Fadk\n    ```\n\n2. Load tools:\n\n    ```javascript\n    import { ToolboxClient } from '@toolbox-sdk\u002Fadk';\n\n    \u002F\u002F update the url to point to your server\n    const URL = 'http:\u002F\u002F127.0.0.1:5000';\n    let client = new ToolboxClient(URL);\n\n    \u002F\u002F 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:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@toolbox-sdk\u002Fadk\n    [toolbox-adk-js-readme]:\n       https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-js\u002Fblob\u002Fmain\u002Fpackages\u002Ftoolbox-adk\u002FREADME.md\n\n  \u003C\u002Fdetails>\n\u003C\u002Fdetails>\n\u003C\u002Fblockquote>\n\u003Cdetails>\n  \u003Csummary>Go (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\">Github\u003C\u002Fa>)\u003C\u002Fsummary>\n  \u003Cbr>\n  \u003Cblockquote>\n\n  \u003Cdetails>\n    \u003Csummary>Core\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\"\n      \"context\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F update the url to point to your server\n      URL := \"http:\u002F\u002F127.0.0.1:5000\";\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      \u002F\u002F 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:\u002F\u002Fpkg.go.dev\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\n    [toolbox-core-go-readme]: https:\u002F\u002Fgithub.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fblob\u002Fmain\u002Fcore\u002FREADME.md\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>LangChain Go\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding\u002Fjson\"\n\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\"\n      \"github.com\u002Ftmc\u002Flangchaingo\u002Fllms\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F update the url to point to your server\n      URL := \"http:\u002F\u002F127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      \u002F\u002F Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      \u002F\u002F 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      \u002F\u002F 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  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>Genkit\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n    import (\n      \"context\"\n      \"log\"\n\n      \"github.com\u002Ffirebase\u002Fgenkit\u002Fgo\u002Fgenkit\"\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\"\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Ftbgenkit\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F Update the url to point to your server\n      URL := \"http:\u002F\u002F127.0.0.1:5000\"\n      ctx := context.Background()\n      g := genkit.Init(ctx)\n\n      client, err := core.NewToolboxClient(URL)\n\n      \u002F\u002F Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      \u002F\u002F Convert the tool using the tbgenkit package\n      \u002F\u002F 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\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>Go GenAI\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding\u002Fjson\"\n\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\"\n      \"google.golang.org\u002Fgenai\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F Update the url to point to your server\n      URL := \"http:\u002F\u002F127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      \u002F\u002F Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      \u002F\u002F 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      \u002F\u002F Use this tool with Go GenAI\n      genAITool := &genai.Tool{\n        FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},\n      }\n    }\n    ```\n\n  \u003C\u002Fdetails>\n  \u003Cdetails>\n    \u003Csummary>OpenAI Go\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n2. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"context\"\n      \"encoding\u002Fjson\"\n\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Fcore\"\n      openai \"github.com\u002Fopenai\u002Fopenai-go\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F Update the url to point to your server\n      URL := \"http:\u002F\u002F127.0.0.1:5000\"\n      ctx := context.Background()\n\n      client, err := core.NewToolboxClient(URL)\n\n      \u002F\u002F Framework agnostic tool\n      tool, err := client.LoadTool(\"toolName\", ctx)\n\n      \u002F\u002F Fetch the tool's input schema\n      inputschema, err := tool.InputSchema()\n\n      var paramsSchema openai.FunctionParameters\n      _ = json.Unmarshal(inputschema, &paramsSchema)\n\n      \u002F\u002F 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\u002Fdetails>\n  \u003Cdetails open>\n    \u003Csummary>ADK Go\u003C\u002Fsummary>\n\n1. Install [Toolbox Go SDK][toolbox-go]:\n\n    ```bash\n    go get github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\n    ```\n\n1. Load tools:\n\n    ```go\n    package main\n\n    import (\n      \"github.com\u002Fgoogleapis\u002Fmcp-toolbox-sdk-go\u002Ftbadk\"\n      \"context\"\n    )\n\n    func main() {\n      \u002F\u002F Make sure to add the error checks\n      \u002F\u002F Update the url to point to your server\n      URL := \"http:\u002F\u002F127.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      \u002F\u002F 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\u002Fdetails>\n\u003C\u002Fdetails>\n\u003C\u002Fblockquote>\n\u003C\u002Fdetails>\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:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Ftoolbox-ui\u002F).\n\n```sh\n.\u002Ftoolbox --ui\n```\n\n### Telemetry\n\nToolbox emits traces and metrics via OpenTelemetry. Use `--telemetry-otlp=\u003Cendpoint>` \nto export to any OTLP-compatible backend like Google Cloud Monitoring, Agnost AI, or \nothers. See the [telemetry docs](https:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fmonitoring\u002Fexport_telemetry\u002F) 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:\u002F\u002Fagentskills.io\u002Fspecification). 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 .\u002Fskills\u002Fmy-skill\n```\n\nFor more details, see the [Generate Agent Skills guide](https:\u002F\u002Fmcp-toolbox.dev\u002Fdocumentation\u002Fconfiguration\u002Fskills\u002F).\n\n---\n\n## Versioning\n\nMCP Toolbox for Databases follows [Semantic Versioning](https:\u002F\u002Fsemver.org\u002F).\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:\u002F\u002Fmcp-toolbox.dev\u002Freference\u002Fversioning\u002F).\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:\u002F\u002Fdiscord.gg\u002FGQrFB3Ec3W) to connect with our developers!\n","MCP Toolbox for Databases 是一个开源的 Model Context Protocol (MCP) 服务器，旨在将 AI 代理、IDE 和应用程序直接连接到企业数据库。其核心功能包括预构建的通用工具和自定义工具框架，支持即时连接 Gemini CLI、Google Antigravity 等 MCP 客户端到数据库，实现数据查询、模式探索及代码生成等功能，无需编写繁琐的基础代码；同时提供强大的框架以构建安全的生产级 AI 工具，支持结构化查询、语义搜索和自然语言转 SQL 等能力。该项目使用 Go 语言开发，适用于需要高效整合 AI 技术与数据库管理的企业场景。",2,"2026-06-11 03:01:22","top_language"]