googleapis/mcp-toolbox
GitHub: googleapis/mcp-toolbox
MCP Toolbox for Databases一个开源的 MCP 服务器,用于将 AI 智能体和 IDE 安全地连接到企业数据库,并提供预构建工具与自定义开发框架。
Stars: 14539 | Forks: 1453

# 用于数据库的 MCP Toolbox
[](https://goreportcard.com/report/github.com/googleapis/mcp-toolbox)
[](https://opensource.org/licenses/Apache-2.0)
[](https://mcp-toolbox.dev/)
[](https://discord.gg/Dmm69peqjh)
[](https://medium.com/@mcp_toolbox)
[](https://pypi.org/project/toolbox-core/)
[](https://www.npmjs.com/package/@toolbox-sdk/core)
[](https://pkg.go.dev/github.com/googleapis/mcp-toolbox-sdk-go)
[](https://mvnrepository.com/artifact/com.google.cloud.mcp/mcp-toolbox-sdk-java)
MCP Toolbox for Databases 是一个开源的 Model Context Protocol (MCP) 服务器,可将您的 AI 智能体、IDE 和应用程序直接连接到您的企业数据库。
二进制文件
要将 Toolbox 作为二进制文件安装:容器镜像
您也可以将 Toolbox 作为容器安装: ``` # 查看 releases page 了解其他版本 export VERSION=1.0.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION ```Homebrew
要在 macOS 或 Linux 上使用 Homebrew 安装 Toolbox: ``` brew install mcp-toolbox ```从源代码编译
要从源代码安装,请确保您已安装最新版本的 [Go](https://go.dev/doc/install),然后运行以下命令: ``` go install github.com/googleapis/mcp-toolbox@v1.0.0 ```Gemini CLI
查看 [Gemini CLI 扩展](https://geminicli.com/extensions/),将针对特定数据库(如 AlloyDB、BigQuery 和 Cloud SQL)的预构建工具直接安装到 Gemini CLI 中。 ``` # 安装 Gemini CLI npm install -g @google/gemini-cli # 安装扩展 gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres # 运行 Gemini CLI gemini ``` 通过 Gemini CLI 使用自然语言与您的自定义工具进行交互。 ``` # 安装扩展 gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox ```二进制文件
要从二进制文件运行 Toolbox: ``` ./toolbox --config "tools.yaml" ```容器镜像
拉取[容器镜像](#install-toolbox) 后运行服务器: ``` export VERSION=0.24.0 # Use the version you pulled docker run -p 5000:5000 \ -v $(pwd)/tools.yaml:/app/tools.yaml \ us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \ --config "/app/tools.yaml" ```源代码
要直接从源代码运行服务器,请导航到项目根目录 并运行: ``` go run . ```Homebrew
如果您使用 [Homebrew](https://brew.sh/) 安装了 Toolbox,则 `toolbox` 二进制文件已在您的系统路径中。您可以使用相同的 命令启动服务器: ``` toolbox --config "tools.yaml" ```NPM
要在无需手动下载二进制文件的情况下直接运行 Toolbox(需要 Node.js): ``` npx @toolbox-sdk/server --config tools.yaml ```Gemini CLI
安装 [Gemini CLI 扩展](https://geminicli.com/extensions/) 后,预构建工具将在使用期间可用。 ``` # 运行 Gemini CLI gemini # 列出扩展 /exttensions list # 列出 MCP 服务器 /mcp list ```Python (Github)
核心
1. 安装 [Toolbox Core SDK][toolbox-core]: pip install toolbox-core 2. 加载工具: from toolbox_core import ToolboxClient # 更新 url 以指向您的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给您的应用程序! tools = await client.load_toolset("toolset_name") 有关使用 Toolbox Core SDK 的更详细说明,请参阅 [项目的 README][toolbox-core-readme]。LangChain / LangGraph
1. 安装 [Toolbox LangChain SDK][toolbox-langchain]: pip install toolbox-langchain 2. 加载工具: from toolbox_langchain import ToolboxClient # 更新 url 以指向您的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给您的应用程序! tools = client.load_toolset() 有关使用 Toolbox LangChain SDK 的更详细说明,请参阅 [项目的 README][toolbox-langchain-readme]。LlamaIndex
1. 安装 [Toolbox Llamaindex SDK][toolbox-llamaindex]: pip install toolbox-llamaindex 2. 加载工具: from toolbox_llamaindex import ToolboxClient # 更新 url 以指向您的服务器 async with ToolboxClient("http://127.0.0.1:5000") as client: # 这些工具可以传递给您的应用程序! tools = client.load_toolset() 有关使用 Toolbox Llamaindex SDK 的更详细说明,请参阅 [项目的 README][toolbox-llamaindex-readme]。
Javascript/Typescript (Github)
核心
1. 安装 [Toolbox Core SDK][toolbox-core-js]: npm install @toolbox-sdk/core 2. 加载工具: import { ToolboxClient } from '@toolbox-sdk/core'; // 更新 url 以指向您的服务器 const URL =http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给您的应用程序! const tools = await client.loadToolset('toolsetName'); 有关使用 Toolbox Core SDK 的更详细说明,请参阅 [项目的 README][toolbox-core-js-readme]。LangChain / LangGraph
1. 安装 [Toolbox Core SDK][toolbox-core-js]: npm install @toolbox-sdk/core 2. 加载工具: import { ToolboxClient } from '@toolbox-sdk/core'; // 更新 url 以指向您的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给您的应用程序! const toolboxTools = await client.loadToolset('toolsetName'); // 定义工具的基础:名称、描述、schema 和核心逻辑 const getTool = (toolboxTool) => tool(currTool, { name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }); // 在您的 Langchain/Langgraph 应用程序中使用这些工具 const tools = toolboxTools.map(getTool);Genkit
1. 安装 [Toolbox Core SDK][toolbox-core-js]: npm install @toolbox-sdk/core 2. 加载工具: import { ToolboxClient } from '@toolbox-sdk/core'; import { genkit } from 'genkit'; // 初始化 genkit const ai = genkit({ plugins: [ googleAI({ apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY }) ], model: googleAI.model('gemini-2.0-flash'), }); // 更新 url 以指向您的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给您的应用程序! const toolboxTools = await client.loadToolset('toolsetName'); // 定义工具的基础:名称、描述、schema 和核心逻辑 const getTool = (toolboxTool) => ai.defineTool({ name: toolboxTool.getName(), description: toolboxTool.getDescription(), schema: toolboxTool.getParamSchema() }, toolboxTool) // 在您的 Genkit 应用程序中使用这些工具 const tools = toolboxTools.map(getTool);ADK
1. 安装 [Toolbox ADK SDK][toolbox-adk-js]: npm install @toolbox-sdk/adk 2. 加载工具: import { ToolboxClient } from '@toolbox-sdk/adk'; // 更新 url 以指向您的服务器 const URL = 'http://127.0.0.1:5000'; let client = new ToolboxClient(URL); // 这些工具可以传递给您的应用程序! const tools = await client.loadToolset('toolsetName'); 有关使用 Toolbox ADK SDK 的更详细说明,请参阅 [项目的 README][toolbox-adk-js-readme]。
Go (Github)
核心
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/core" "context" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000"; ctx := context.Background() client, err := core.NewToolboxClient(URL) // 框架无关的工具 tools, err := client.LoadToolset("toolsetName", ctx) } 有关使用 Toolbox Go SDK 的更详细说明,请参阅 [项目的 README][toolbox-core-go-readme]。LangChain Go
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/tmc/langchaingo/llms" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // 框架无关的工具 tool, err := client.LoadTool("toolName", ctx) // 获取工具的输入 schema inputschema, err := tool.InputSchema() var paramsSchema map[string]any _ = json.Unmarshal(inputschema, ¶msSchema) // 在 LangChainGo 中使用此工具 langChainTool := llms.Tool{ Type: "function", Function: &llms.FunctionDefinition{ Name: tool.Name(), Description: tool.Description(), Parameters: paramsSchema, }, } }Genkit
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "context" "log" "github.com/firebase/genkit/go/genkit" "github.com/googleapis/mcp-toolbox-sdk-go/core" "github.com/googleapis/mcp-toolbox-sdk-go/tbgenkit" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000" ctx := context.Background() g := genkit.Init(ctx) client, err := core.NewToolboxClient(URL) // 框架无关的工具 tool, err := client.LoadTool("toolName", ctx) // 使用 tbgenkit 包转换工具 // 在 Genkit Go 中使用此工具 genkitTool, err := tbgenkit.ToGenkitTool(tool, g) if err != nil { log.Fatalf("Failed to convert tool: %v\n", err) } log.Printf("Successfully converted tool: %s", genkitTool.Name()) }Go GenAI
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" "google.golang.org/genai" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // 框架无关的工具 tool, err := client.LoadTool("toolName", ctx) // 获取工具的输入 schema inputschema, err := tool.InputSchema() var schema *genai.Schema _ = json.Unmarshal(inputschema, &schema) funcDeclaration := &genai.FunctionDeclaration{ Name: tool.Name(), Description: tool.Description(), Parameters: schema, } // 在 Go GenAI 中使用此工具 genAITool := &genai.Tool{ FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration}, } }OpenAI Go
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "context" "encoding/json" "github.com/googleapis/mcp-toolbox-sdk-go/core" openai "github.com/openai/openai-go" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := core.NewToolboxClient(URL) // 框架无关的工具 tool, err := client.LoadTool("toolName", ctx) // 获取工具的输入 schema inputschema, err := tool.InputSchema() var paramsSchema openai.FunctionParameters _ = json.Unmarshal(inputschema, ¶msSchema) // 在 OpenAI Go 中使用此工具 openAITool := openai.ChatCompletionToolParam{ Function: openai.FunctionDefinitionParam{ Name: tool.Name(), Description: openai.String(tool.Description()), Parameters: paramsSchema, }, } }ADK Go
1. 安装 [Toolbox Go SDK][toolbox-go]: go get github.com/googleapis/mcp-toolbox-sdk-go 2. 加载工具: package main import ( "github.com/googleapis/mcp-toolbox-sdk-go/tbadk" "context" ) func main() { // 确保添加错误检查 // 更新 url 以指向您的服务器 URL := "http://127.0.0.1:5000" ctx := context.Background() client, err := tbadk.NewToolboxClient(URL) if err != nil { return fmt.Sprintln("Could not start Toolbox Client", err) } // 在 ADK Go 中使用此工具 tool, err := client.LoadTool("toolName", ctx) if err != nil { return fmt.Sprintln("Could not load Toolbox Tool", err) } } 有关使用 Toolbox Go SDK 的更详细说明,请参阅 [项目的 README][toolbox-core-go-readme]。
标签:AI代理, Apache 2.0, DNS解析, EVTX分析, Google, Go语言, IDE插件, JavaScript SDK, Java SDK, JS文件枚举, LLM工具, MCP服务器, MITM代理, Nuclei, Python SDK, SOC Prime, TypeScript SDK, 中间件, 云计算, 企业级数据库, 开发工具, 开源项目, 数据库, 数据访问层, 数据连接, 日志审计, 智能体集成, 模型上下文协议, 用户代理, 程序破解, 规则引擎, 请求拦截, 逆向工具