MCP Toolbox for Databases

resmi

Server MCP sumber terbuka yang mengkhususkan diri pada alat yang mudah, cepat, dan aman untuk Basis Data.

Apa yang bisa Anda lakukan dengan Toolbox For Databases MCP?

  • Jelajahi skema database — Minta asisten Anda untuk membuat daftar tabel yang tersedia dan memahami struktur data Anda sebelum melakukan kueri.
  • Jalankan kueri SQL dalam bahasa Inggris sederhana — Minta asisten Anda untuk menerjemahkan pertanyaan bahasa alami menjadi panggilan execute_sql terhadap database yang terhubung.
  • Buat alat database khusus — Definisikan pernyataan SQL berparameter di tools.yaml untuk membuat alat yang aman dan dapat digunakan kembali bagi agen Anda.
  • Hubungkan ke klien MCP — Konfigurasikan server di mcp.json atau claude_desktop_config.json untuk digunakan dengan Gemini CLI, Claude Code, atau Codex.
  • Muat alat ke dalam kerangka kerja AI — Gunakan SDK Toolbox untuk mengintegrasikan alat database ke dalam aplikasi LangChain, LlamaIndex, atau ADK.

Dokumentasi

logo

MCP Toolbox for Databases

googleapis%2Fmcp-toolbox | Trendshift

License: Apache
2.0 Docs Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

MCP Toolbox for Databases adalah server Model Context Protocol (MCP) sumber terbuka yang menghubungkan agen AI, IDE, dan aplikasi Anda secara langsung ke database perusahaan Anda.

architecture

Server ini memiliki dua tujuan:

  1. Server MCP Siap Pakai (Build-Time): Hubungkan Gemini CLI, Google Antigravity, Claude Code, Codex, atau klien MCP lainnya ke database Anda menggunakan alat generik bawaan kami. Bicaralah dengan data Anda, jelajahi skema, dan buat kode tanpa menulis boilerplate.
  2. Framework Alat Kustom (Run-Time): Framework yang kokoh untuk membangun alat AI khusus yang sangat aman untuk agen produksi Anda. Definisikan kueri terstruktur, pencarian semantik, dan kemampuan NL2SQL dengan aman dan mudah.

README ini memberikan gambaran singkat. Untuk detail yang lebih lengkap, lihat dokumentasi lengkap.

[!IMPORTANT]
Pembaruan Nama Repositori: Repositori genai-toolbox telah resmi diubah namanya menjadi mcp-toolbox. Untuk memastikan lingkungan lokal Anda mencerminkan nama baru, Anda dapat memperbarui remote Anda: git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

[!NOTE] Solusi ini awalnya bernama "Gen AI Toolbox for Databases" (github.com/googleapis/genai-toolbox) karena pengembangan awalnya mendahului MCP, tetapi diubah namanya agar selaras dengan kompatibilitas MCP.

Daftar Isi


Mengapa MCP Toolbox?

  • Akses Database Siap Pakai: Alat generik bawaan untuk eksplorasi data instan (misalnya, list_tables, execute_sql) langsung dari IDE atau CLI Anda.
  • Framework Alat Kustom: Bangun alat siap produksi dengan logika bawaan Anda sendiri, memastikan keamanan melalui Akses Terbatas, Kueri Terstruktur, dan Pencarian Semantik.
  • Pengembangan yang Disederhanakan: Integrasikan alat ke dalam Agent Development Kit (ADK), LangChain, LlamaIndex, atau agen kustom Anda dalam kurang dari 10 baris kode.
  • Kinerja Lebih Baik: Menangani connection pooling, autentikasi terintegrasi (IAM), dan observabilitas ujung-ke-ujung (OpenTelemetry) secara langsung.
  • Keamanan yang Ditingkatkan: Autentikasi terintegrasi untuk akses yang lebih aman ke data Anda.
  • Observabilitas Ujung-ke-Ujung: Metrik dan pelacakan siap pakai dengan dukungan bawaan untuk OpenTelemetry.

Memulai Cepat: Alat Bawaan

Berhentilah berpindah konteks dan biarkan asisten AI Anda menjadi rekan pengembang sejati. Dengan menghubungkan IDE Anda ke database menggunakan MCP Toolbox, Anda dapat membuat kueri data dalam bahasa Inggris sederhana, mengotomatiskan penemuan dan pengelolaan skema, serta menghasilkan kode yang sadar database.

Anda dapat menggunakan Toolbox di IDE atau klien mana pun yang kompatibel dengan MCP (misalnya, Gemini CLI, Google Antigravity, Claude Code, Codex, dll.) dengan mengonfigurasi server MCP.

Alat bawaan juga tersedia dengan mudah melalui Google Antigravity MCP Store dengan pengalaman klik-untuk-instal yang sederhana.

  1. Tambahkan berikut ini ke file konfigurasi MCP klien Anda (biasanya mcp.json atau claude_desktop_config.json):

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. Atur variabel lingkungan yang sesuai untuk terhubung, lihat Referensi Alat Bawaan.

Saat Anda menjalankan Toolbox dengan flag --prebuilt=<database>, Anda langsung mendapatkan akses ke alat standar untuk berinteraksi dengan database tersebut. Anda juga dapat menentukan toolset tertentu menggunakan sintaks --prebuilt=<database>/<toolset> (misalnya, --prebuilt=postgres/data untuk hanya memuat alat SQL).

Database yang didukung saat ini meliputi:

  • Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (sebelumnya dikenal sebagai Dataplex).
  • Database Lainnya: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, dan lainnya.

Untuk daftar lengkap alat yang tersedia dan kemampuannya di semua database yang didukung, lihat Referensi Alat Bawaan.

Lihat bagian Instal & Jalankan server Toolbox untuk metode eksekusi yang berbeda seperti Docker atau biner.

[!TIP] Bagi pengguna yang mencari solusi terkelola, Google Cloud MCP Servers menyediakan pengalaman MCP terkelola dengan alat bawaan; Anda dapat mempelajari lebih lanjut tentang perbedaannya di sini.


Memulai Cepat: Alat Kustom

Toolbox juga dapat digunakan sebagai framework untuk alat yang disesuaikan. Cara utama untuk mengonfigurasi Toolbox adalah melalui file tools.yaml. Jika Anda memiliki banyak file, Anda dapat memberi tahu Toolbox file mana yang akan dimuat dengan flag --config tools.yaml.

Anda dapat menemukan dokumentasi referensi yang lebih rinci untuk semua jenis sumber daya di Resources.

Sumber

Bagian sources dari tools.yaml Anda mendefinisikan sumber data yang harus diakses oleh Toolbox Anda. Sebagian besar alat akan memiliki setidaknya satu sumber untuk dieksekusi.

kind: source
name: my-pg-source
type: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password

Untuk detail lebih lanjut tentang mengonfigurasi berbagai jenis sumber, lihat Sumber.

Alat

Bagian tools dari tools.yaml mendefinisikan tindakan yang dapat dilakukan agen: jenis alat apa itu, sumber mana yang terpengaruh, parameter apa yang digunakan, dll.

kind: tool
name: search-hotels-by-name
type: postgres-sql
source: my-pg-source
description: Search for hotels based on name.
parameters:
  - name: name
    type: string
    description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';

Untuk detail lebih lanjut tentang mengonfigurasi berbagai jenis alat, lihat Alat.

Toolset

Bagian toolsets dari tools.yaml Anda memungkinkan Anda mendefinisikan grup alat yang ingin Anda muat bersama. Ini dapat berguna untuk mendefinisikan grup yang berbeda berdasarkan agen atau aplikasi.

kind: toolset
name: my_first_toolset
tools:
    - my_first_tool
    - my_second_tool
---
kind: toolset
name: my_second_toolset
tools:
    - my_second_tool
    - my_third_tool

Prompt

Bagian prompts dari tools.yaml mendefinisikan prompt yang dapat digunakan untuk interaksi dengan LLM.

kind: prompt
name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements."
messages:
  - content: >
         Please review the following code for quality, correctness,
         and potential improvements: \n\n{{.code}}
arguments:
  - name: "code"
    description: "The code to review"

Untuk detail lebih lanjut tentang mengonfigurasi prompt, lihat Prompt.

Sumber Daya

Bagian resources dan resourceTemplates dari tools.yaml Anda mendefinisikan konten hanya-baca, file, atau pohon direktori berparameter yang dapat ditemukan dan diambil oleh klien MCP:

kind: resource
name: database_schema_ddl
type: text
description: "Core table definitions and constraints."
mimeType: text/x-sql
text: |
  CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL
  );
---
kind: resource
name: database_schema
type: file
description: "PostgreSQL schema definition."
path: "./schema.sql"
---
kind: resourceTemplate
name: server_logs
type: file
description: "Application log files."
uriTemplate: "file:///var/log/{path}"
allowedPaths:
  - "/var/log"

Untuk detail lebih lanjut tentang mengonfigurasi sumber daya dan template sumber daya, lihat Sumber Daya.


Instal & Jalankan server Toolbox

Anda dapat menjalankan Toolbox langsung dengan file konfigurasi:

npx @toolbox-sdk/server --config tools.yaml

Ini menjalankan versi terbaru dari server Toolbox dengan file konfigurasi Anda.

[!NOTE] Metode ini dioptimalkan untuk kenyamanan daripada kinerja. Untuk instalasi yang lebih standar dan andal, gunakan biner atau image kontainer seperti yang dijelaskan di Instal & Jalankan server Toolbox.

Instal Toolbox

Untuk versi terbaru, periksa halaman rilis dan gunakan instruksi berikut untuk OS dan arsitektur CPU Anda.

Biner

Untuk menginstal Toolbox sebagai biner:

Linux (AMD64)

Untuk menginstal Toolbox sebagai biner di Linux (AMD64):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.12.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS (Apple Silicon)

Untuk menginstal Toolbox sebagai biner di macOS (Apple Silicon):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.12.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS (Intel)

Untuk menginstal Toolbox sebagai biner di macOS (Intel):

# lihat halaman rilis untuk versi lainnya
export VERSION=1.12.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows (Command Prompt)

Untuk menginstal Toolbox sebagai biner di Windows (Command Prompt):

:: lihat halaman rilis untuk versi lainnya
set VERSION=1.12.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Untuk menginstal Toolbox sebagai biner di Windows (PowerShell):

# lihat halaman rilis untuk versi lainnya
$VERSION = "1.12.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64 (Command Prompt)

Untuk menginstal Toolbox sebagai biner di Windows ARM64 (Command Prompt):

:: lihat halaman rilis untuk versi lainnya
set VERSION=1.12.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Untuk menginstal Toolbox sebagai biner di Windows ARM64 (PowerShell):

# lihat halaman rilis untuk versi lainnya
$VERSION = "1.12.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Image Kontainer Anda juga dapat menginstal Toolbox sebagai kontainer:
# see releases page for other versions
export VERSION=1.12.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Untuk menginstal Toolbox menggunakan Homebrew di macOS atau Linux:

brew install mcp-toolbox
Kompilasi dari sumber

Untuk menginstal dari sumber, pastikan Anda memiliki versi terbaru dari Go terinstal, lalu jalankan perintah berikut:

go install github.com/googleapis/mcp-toolbox@v1.12.0
Gemini CLI Lihat [ekstensi Gemini CLI](https://geminicli.com/extensions/) untuk menginstal alat bawaan untuk database tertentu seperti AlloyDB, BigQuery, dan Cloud SQL langsung ke Gemini CLI.
# Install Gemini CLI
npm install -g @google/gemini-cli
# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-postgres
# Run Gemini CLI
gemini

Berinteraksilah dengan alat kustom Anda menggunakan bahasa alami melalui Gemini CLI.

# Install the extension
gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox

Jalankan Toolbox

Konfigurasikan tools.yaml untuk mendefinisikan alat Anda, lalu jalankan toolbox untuk memulai server:

Biner

Untuk menjalankan Toolbox dari biner:

./toolbox --config "tools.yaml"

ⓘ Catatan
Toolbox mengaktifkan pemuatan ulang dinamis secara default. Untuk menonaktifkannya, gunakan flag --disable-reload.

Image Kontainer

Untuk menjalankan server setelah menarik image kontainer:

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"

ⓘ Catatan
Flag -v memasang tools.yaml lokal Anda ke dalam kontainer, dan -p memetakan port kontainer 5000 ke port host Anda 5000.

Sumber

Untuk menjalankan server langsung dari sumber, navigasikan ke direktori root proyek dan jalankan:

go run .

ⓘ Catatan
Perintah ini menjalankan proyek dari sumber, dan lebih cocok untuk pengembangan dan pengujian. Perintah ini tidak mengompilasi biner ke dalam $GOPATH Anda. Jika Anda ingin mengompilasi biner sebagai gantinya, lihat Dokumentasi Pengembang.

Homebrew

Jika Anda menginstal Toolbox menggunakan Homebrew, biner toolbox tersedia di path sistem Anda. Anda dapat memulai server dengan perintah yang sama:

toolbox --config "tools.yaml"
NPM

Untuk menjalankan Toolbox secara langsung tanpa mengunduh biner secara manual (memerlukan Node.js):

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI Setelah menginstal [ekstensi Gemini CLI](https://geminicli.com/extensions/), alat yang telah dibuat sebelumnya akan tersedia selama penggunaan.
# Run Gemini CLI
gemini

# List extensions
/extensions list
# List MCP servers
/mcp list

Anda dapat menggunakan toolbox help untuk daftar lengkap flag! Untuk menghentikan server, kirim sinyal terminate (ctrl+c di sebagian besar platform).

Untuk dokumentasi lebih detail tentang penerapan ke berbagai lingkungan, lihat sumber daya di https://mcp-toolbox.dev/documentation/deploy-to/


Hubungkan ke Toolbox

Setelah server Toolbox Anda berjalan, Anda dapat memuat alat ke klien atau aplikasi yang kompatibel dengan MCP.

Klien MCP

Tambahkan konfigurasi berikut ke konfigurasi klien MCP Anda:

{
  "mcpServers": {
    "toolbox": {
      "type": "http",
      "url": "http://127.0.0.1:5000/mcp",
    }
  }
}

Jika Anda ingin terhubung ke toolset tertentu, ganti url dengan "http://127.0.0.1:5000/mcp/{toolset_name}".

SDK Toolbox: Integrasikan dengan Aplikasi Anda

SDK Klien Toolbox menyediakan blok bangunan yang mudah digunakan dan fitur lanjutan untuk menghubungkan aplikasi kustom Anda ke server MCP Toolbox. Lihat daftar SDK Klien di bawah ini untuk menggunakan berbagai kerangka kerja:

Python (Github)
Core
  1. Instal Toolbox Core SDK:

    pip install toolbox-core
    
  2. Muat alat:

    from toolbox_core import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = await client.load_toolset("toolset_name")
    

Untuk instruksi lebih detail tentang penggunaan Toolbox Core SDK, lihat README proyek.

LangChain / LangGraph
  1. Instal Toolbox LangChain SDK:

    pip install toolbox-langchain
    
  2. Muat alat:

    from toolbox_langchain import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = client.load_toolset()
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox LangChain SDK, lihat README proyek.

LlamaIndex
  1. Instal Toolbox Llamaindex SDK:

    pip install toolbox-llamaindex
    
  2. Muat alat:

    from toolbox_llamaindex import ToolboxClient
    
    # update the url to point to your server
    async with ToolboxClient("http://127.0.0.1:5000") as client:
    
        # these tools can be passed to your application!
        tools = client.load_toolset()
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox Llamaindex SDK, lihat README proyek.

Javascript/Typescript (Github)
Core
  1. Instal Toolbox Core SDK:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

    import { ToolboxClient } from '@toolbox-sdk/core';
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const tools = await client.loadToolset('toolsetName');
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox Core SDK, lihat README proyek.

LangChain / LangGraph
  1. Instal Toolbox Core SDK:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

    import { ToolboxClient } from '@toolbox-sdk/core';
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const toolboxTools = await client.loadToolset('toolsetName');
    
    // Define the basics of the tool: name, description, schema and core logic
    const getTool = (toolboxTool) => tool(currTool, {
        name: toolboxTool.getName(),
        description: toolboxTool.getDescription(),
        schema: toolboxTool.getParamSchema()
    });
    
    // Use these tools in your Langchain/Langraph applications
    const tools = toolboxTools.map(getTool);
    
Genkit
  1. Instal Toolbox Core SDK:

    npm install @toolbox-sdk/core
    
  2. Muat alat:

    import { ToolboxClient } from '@toolbox-sdk/core';
    import { genkit } from 'genkit';
    
    // Initialise genkit
    const ai = genkit({
        plugins: [
            googleAI({
                apiKey: process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY
            })
        ],
        model: googleAI.model('gemini-2.0-flash'),
    });
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const toolboxTools = await client.loadToolset('toolsetName');
    
    // Define the basics of the tool: name, description, schema and core logic
    const getTool = (toolboxTool) => ai.defineTool({
        name: toolboxTool.getName(),
        description: toolboxTool.getDescription(),
        schema: toolboxTool.getParamSchema()
    }, toolboxTool)
    
    // Use these tools in your Genkit applications
    const tools = toolboxTools.map(getTool);
    
ADK
  1. Instal Toolbox ADK SDK:

    npm install @toolbox-sdk/adk
    
  2. Muat alat:

    import { ToolboxClient } from '@toolbox-sdk/adk';
    
    // update the url to point to your server
    const URL = 'http://127.0.0.1:5000';
    let client = new ToolboxClient(URL);
    
    // these tools can be passed to your application!
    const tools = await client.loadToolset('toolsetName');
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox ADK SDK, lihat README proyek.

Go (Github)
Core
  1. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    package main
    
    import (
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "context"
    )
    
    func main() {
      // Make sure to add the error checks
      // update the url to point to your server
      URL := "http://127.0.0.1:5000";
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // Framework agnostic tools
      tools, err := client.LoadToolset("toolsetName", ctx)
    }
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox Go SDK, lihat README proyek.

LangChain Go
  1. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "github.com/tmc/langchaingo/llms"
    )
    
    func main() {
      // Make sure to add the error checks
      // update the url to point to your server
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // Framework agnostic tool
      tool, err := client.LoadTool("toolName", ctx)
    
      // Fetch the tool's input schema
      inputschema, err := tool.InputSchema()
    
      var paramsSchema map[string]any
      _ = json.Unmarshal(inputschema, &paramsSchema)
    
      // Use this tool with LangChainGo
      langChainTool := llms.Tool{
        Type: "function",
        Function: &llms.FunctionDefinition{
          Name:        tool.Name(),
          Description: tool.Description(),
          Parameters:  paramsSchema,
        },
      }
    }
    
    
Genkit
  1. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    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() {
      // Make sure to add the error checks
      // Update the url to point to your server
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
      g := genkit.Init(ctx)
    
      client, err := core.NewToolboxClient(URL)
    
      // Framework agnostic tool
      tool, err := client.LoadTool("toolName", ctx)
    
      // Convert the tool using the tbgenkit package
      // Use this tool with 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. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      "google.golang.org/genai"
    )
    
    func main() {
      // Make sure to add the error checks
      // Update the url to point to your server
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // Framework agnostic tool
      tool, err := client.LoadTool("toolName", ctx)
    
      // Fetch the tool's input schema
      inputschema, err := tool.InputSchema()
    
      var schema *genai.Schema
      _ = json.Unmarshal(inputschema, &schema)
    
      funcDeclaration := &genai.FunctionDeclaration{
        Name:        tool.Name(),
        Description: tool.Description(),
        Parameters:  schema,
      }
    
      // Use this tool with Go GenAI
      genAITool := &genai.Tool{
        FunctionDeclarations: []*genai.FunctionDeclaration{funcDeclaration},
      }
    }
    
OpenAI Go
  1. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    package main
    
    import (
      "context"
      "encoding/json"
    
      "github.com/googleapis/mcp-toolbox-sdk-go/core"
      openai "github.com/openai/openai-go"
    )
    
    func main() {
      // Make sure to add the error checks
      // Update the url to point to your server
      URL := "http://127.0.0.1:5000"
      ctx := context.Background()
    
      client, err := core.NewToolboxClient(URL)
    
      // Framework agnostic tool
      tool, err := client.LoadTool("toolName", ctx)
    
      // Fetch the tool's input schema
      inputschema, err := tool.InputSchema()
    
      var paramsSchema openai.FunctionParameters
      _ = json.Unmarshal(inputschema, &paramsSchema)
    
      // Use this tool with OpenAI Go
      openAITool := openai.ChatCompletionToolParam{
        Function: openai.FunctionDefinitionParam{
          Name:        tool.Name(),
          Description: openai.String(tool.Description()),
          Parameters:  paramsSchema,
        },
      }
    
    }
    
ADK Go
  1. Instal Toolbox Go SDK:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Muat alat:

    package main
    
    import (
      "github.com/googleapis/mcp-toolbox-sdk-go/tbadk"
      "context"
    )
    
    func main() {
      // Make sure to add the error checks
      // Update the url to point to your server
      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)
      }
    
      // Use this tool with ADK Go
      tool, err := client.LoadTool("toolName", ctx)
      if err != nil {
        return fmt.Sprintln("Could not load Toolbox Tool", err)
      }
    }
    

    Untuk instruksi lebih detail tentang penggunaan Toolbox Go SDK, lihat README proyek.


Fitur Tambahan

Uji alat dengan Toolbox UI

Untuk meluncurkan UI interaktif Toolbox, gunakan flag --ui. Ini memungkinkan Anda menguji alat dan toolset dengan fitur seperti parameter yang diotorisasi. Untuk mempelajari lebih lanjut, kunjungi Toolbox UI.

./toolbox --ui

Telemetri

Toolbox mengeluarkan trace dan metrik melalui OpenTelemetry. Gunakan --telemetry-otlp=<endpoint> untuk mengekspor ke backend yang kompatibel dengan OTLP seperti Google Cloud Monitoring, Agnost AI, atau lainnya. Lihat dokumen telemetri untuk detail.

Hasilkan Agent Skills

Perintah skills-generate memungkinkan Anda mengonversi toolset menjadi Agent Skill yang kompatibel dengan spesifikasi Agent Skill. Ini berguna untuk mendistribusikan alat sebagai paket skill portabel.

toolbox --config tools.yaml skills-generate \
  --name "my-skill" \
  --toolset "my_toolset" \
  --description "A skill containing multiple tools"

Setelah dibuat, Anda dapat menginstal skill ke Gemini CLI:

gemini skills install ./skills/my-skill

Untuk detail lebih lanjut, lihat panduan Hasilkan Agent Skills.

Repositori ini juga menyertakan Agent Skills siap pakai (misalnya alur kerja maintainer). Lihat skills/ untuk katalog dan instruksi instalasi.


Versioning

MCP Toolbox for Databases mengikuti Semantic Versioning.

API Publik mencakup Toolbox Server (CLI, manifest konfigurasi, dan toolset yang telah dibuat sebelumnya) dan SDK Klien.

  • Versi mayor ditingkatkan untuk perubahan yang merusak, seperti perubahan CLI atau manifest yang tidak kompatibel.
  • Versi minor ditingkatkan untuk fitur baru, termasuk modifikasi pada toolset yang telah dibuat sebelumnya atau fitur beta.
  • Versi patch ditingkatkan untuk perbaikan bug yang kompatibel mundur.

Untuk detail lebih lanjut, lihat Kebijakan Versioning Lengkap.


Berkontribusi

Kontribusi sangat diterima. Silakan lihat panduan CONTRIBUTING untuk memulai.

Untuk detail teknis tentang menyiapkan lingkungan untuk pengembangan Toolbox itu sendiri, lihat panduan DEVELOPER.

Harap dicatat bahwa proyek ini dirilis dengan Kode Etik Kontributor. Dengan berpartisipasi dalam proyek ini, Anda setuju untuk mematuhi ketentuannya. Lihat Kode Etik Kontributor untuk informasi lebih lanjut.


Komunitas

Bergabunglah dengan komunitas Discord kami untuk terhubung dengan pengembang kami!