MCP Toolbox for Databases

resmi

Veritabanları için kolay, hızlı ve güvenli araçlar konusunda uzmanlaşmış açık kaynaklı MCP sunucusu.

Toolbox For Databases MCP ile neler yapabilirsiniz?

  • Veritabanı şemalarını keşfedin — Yapay zekâ asistanınızdan list_tables gibi önceden oluşturulmuş araçları kullanarak tabloları listelemesini ve şema ayrıntılarını incelemesini isteyin.
  • SQL sorgularını günlük dille çalıştırın — Bağlantı kodu yazmadan, execute_sql aracılığıyla verilerinizi sohbet ederek sorgulayın.
  • Desteklenen veritabanlarına anında bağlanın — MCP istemcinizi mcp.json veya claude_desktop_config.json üzerinden PostgreSQL, BigQuery, MySQL, Spanner ya da AlloyDB gibi veritabanlarına yönlendirin.
  • Özel araçlar tanımlayın — Üretim ortamındaki ajanlar için yapılandırılmış sorguları, anlamsal aramayı ve NL2SQL araçlarını bir tools.yaml dosyasında yapılandırın.
  • Araçları araç kümelerinde gruplayın — Yapılandırmanızın toolsets bölümünü kullanarak her ajan veya uygulama için belirli araç gruplarını yükleyin.

Dokümantasyon

logo

MCP Toolbox for Databases

googleapis%2Fmcp-toolbox | Trendshift

Lisans: Apache
2.0 Docs Discord Medium

Python SDK JS/TS SDK Go SDK Java SDK

MCP Toolbox for Databases, yapay zekâ ajanlarınızı, IDE'lerinizi ve uygulamalarınızı kurumsal veritabanlarınıza doğrudan bağlayan açık kaynaklı bir Model Context Protocol (MCP) sunucusudur.

architecture

İki temel amaca hizmet eder:

  1. Kullanıma hazır MCP Sunucusu (Derleme Zamanı): Önceden oluşturulmuş genel amaçlı araçlarımızı kullanarak Gemini CLI, Google Antigravity, Claude Code, Codex veya diğer MCP istemcilerini veritabanlarınıza anında bağlayın. Verilerinizle konuşun, şemaları keşfedin ve kalıp kod yazmadan kod oluşturun.
  2. Özel Araçlar Çerçevesi (Çalışma Zamanı): Üretim ortamındaki ajanlarınız için özelleştirilmiş, son derece güvenli yapay zekâ araçları oluşturmanızı sağlayan güçlü bir çerçeve. Yapılandırılmış sorguları, anlamsal aramayı ve NL2SQL özelliklerini güvenli ve kolay bir şekilde tanımlayın.

Bu README kısa bir genel bakış sunar. Ayrıntılı bilgi için tam belgelere bakın.

[!IMPORTANT]
Depo Adı Güncellemesi: genai-toolbox deposunun adı resmî olarak mcp-toolbox olarak değiştirildi. Yerel ortamınızın yeni adı yansıtmasını sağlamak için uzak depoyu güncelleyebilirsiniz: git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

[!NOTE] Bu çözüm başlangıçta “Gen AI Toolbox for Databases” (github.com/googleapis/genai-toolbox) olarak adlandırılmıştı; ilk geliştirme çalışmaları MCP'den önce başladığı için adı MCP uyumluluğunu yansıtacak şekilde değiştirildi.

İçindekiler


Neden MCP Toolbox?

  • Kutudan Çıkar Çıkmaz Veritabanı Erişimi: IDE'nizden veya CLI'nizden doğrudan anında veri keşfi için önceden oluşturulmuş genel amaçlı araçlar (ör. list_tables, execute_sql).
  • Özel Araçlar Çerçevesi: Kısıtlı Erişim, Yapılandırılmış Sorgular ve Anlamsal Arama ile güvenliği sağlayarak kendi önceden tanımlanmış mantığınızı kullanan, üretime hazır araçlar oluşturun.
  • Basitleştirilmiş Geliştirme: Araçları Agent Development Kit (ADK), LangChain, LlamaIndex veya özel ajanlarınıza 10 satırdan kısa kodla entegre edin.
  • Daha İyi Performans: Bağlantı havuzunu, entegre kimlik doğrulamayı (IAM) ve uçtan uca gözlemlenebilirliği (OpenTelemetry) kutudan çıkar çıkmaz sağlar.
  • Gelişmiş Güvenlik: Verilerinize daha güvenli erişim için entegre kimlik doğrulama.
  • Uçtan Uca Gözlemlenebilirlik: OpenTelemetry için yerleşik destekle kutudan çıkar çıkmaz ölçümler ve izleme.

Hızlı Başlangıç: Önceden Oluşturulmuş Araçlar

Bağlam değiştirmeyi bırakın ve yapay zekâ asistanınızın gerçek bir ortak geliştirici olmasını sağlayın. IDE'nizi MCP Toolbox ile veritabanlarınıza bağlayarak verilerinizi günlük dille sorgulayabilir, şema keşfini ve yönetimini otomatikleştirebilir ve veritabanınızı dikkate alan kodlar oluşturabilirsiniz.

MCP sunucusunu yapılandırarak Toolbox'ı MCP uyumlu tüm IDE veya istemcilerde (ör. Gemini CLI, Google Antigravity, Claude Code, Codex vb.) kullanabilirsiniz.

Önceden oluşturulmuş araçlar, tek tıklamayla yükleme olanağı sunan Google Antigravity MCP Store üzerinden de kolayca kullanılabilir.

  1. İstemcinizin MCP yapılandırma dosyasına (genellikle mcp.json veya claude_desktop_config.json) aşağıdakileri ekleyin:

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. Bağlanmak için uygun ortam değişkenlerini ayarlayın; Önceden Oluşturulmuş Araçlar Başvurusu bölümüne bakın.

Toolbox'ı --prebuilt=<database> işaretiyle çalıştırdığınızda, ilgili veritabanıyla etkileşim kurmak için standart araçlara anında erişirsiniz. Ayrıca yalnızca belirli bir araç kümesini yüklemek için --prebuilt=<database>/<toolset> söz dizimini de belirtebilirsiniz (ör. yalnızca SQL araçlarını yüklemek için --prebuilt=postgres/data).

Şu anda desteklenen veritabanları:

  • Google Cloud: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (önceden Dataplex olarak biliniyordu).
  • Diğer Veritabanları: PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino ve daha fazlası.

Desteklenen tüm veritabanlarında kullanılabilen araçların ve özelliklerinin tam listesi için Önceden Oluşturulmuş Araçlar Başvurusu bölümüne bakın.

Docker veya ikili dosyalar gibi farklı çalıştırma yöntemleri için Toolbox sunucusunu yükleme ve çalıştırma bölümüne bakın.

[!TIP] Yönetilen bir çözüm arayan kullanıcılar için Google Cloud MCP Servers, önceden oluşturulmuş araçlarla yönetilen bir MCP deneyimi sunar; farklılıklar hakkında daha fazla bilgi edinebilirsiniz.


Hızlı Başlangıç: Özel Araçlar

Toolbox, özelleştirilmiş araçlar için bir çerçeve olarak da kullanılabilir. Toolbox'ı yapılandırmanın temel yolu tools.yaml dosyasıdır. Birden fazla dosyanız varsa, Toolbox'a hangisini yükleyeceğini --config tools.yaml işaretiyle belirtebilirsiniz.

Tüm kaynak türleriyle ilgili daha ayrıntılı başvuru belgelerini Kaynaklar bölümünde bulabilirsiniz.

Kaynaklar

tools.yaml dosyanızın sources bölümü, Toolbox'ınızın hangi veri kaynaklarına erişebileceğini tanımlar. Çoğu aracın üzerinde çalışacağı en az bir kaynağı olur.

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

Farklı kaynak türlerini yapılandırma hakkında daha fazla bilgi için Kaynaklar bölümüne bakın.

Araçlar

Bir tools.yaml dosyasının tools bölümü, bir ajanın gerçekleştirebileceği eylemleri tanımlar: aracın türü, hangi kaynakları etkilediği, kullandığı parametreler vb.

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 || '%';

Farklı araç türlerini yapılandırma hakkında daha fazla bilgi için Araçlar bölümüne bakın.

Araç kümeleri

tools.yaml dosyanızın toolsets bölümü, birlikte yüklemek istediğiniz araç gruplarını tanımlamanızı sağlar. Bu, ajan veya uygulamaya göre farklı gruplar tanımlamak için yararlı olabilir.

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

İstemler

Bir tools.yaml dosyasının prompts bölümü, LLM'lerle etkileşimlerde kullanılabilecek istemleri tanımlar.

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"

İstemleri yapılandırma hakkında daha fazla bilgi için İstemler bölümüne bakın.

Kaynaklar

tools.yaml dosyanızın resources ve resourceTemplates bölümleri, MCP istemcileri tarafından keşfedilip alınabilen salt okunur içeriği, dosyaları veya parametreli dizin ağaçlarını tanımlar:

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"

Kaynakları ve kaynak şablonlarını yapılandırma hakkında daha fazla bilgi için Kaynaklar bölümüne bakın.


Toolbox sunucusunu yükleme ve çalıştırma

Toolbox'ı doğrudan bir yapılandırma dosyası ile çalıştırabilirsiniz:

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

Bu komut, Toolbox sunucusunun en son sürümünü yapılandırma dosyanızla çalıştırır.

[!NOTE] Bu yöntem performanstan çok kullanım kolaylığı için optimize edilmiştir. Daha standart ve güvenilir bir kurulum için Toolbox sunucusunu yükleme ve çalıştırma bölümünde açıklandığı gibi ikili dosyayı veya kapsayıcı görüntüsünü kullanın.

Toolbox'ı yükleme

En son sürüm için sürümler sayfasını kontrol edin ve işletim sisteminiz ile CPU mimarinize uygun aşağıdaki talimatları uygulayın.

İkili dosya

Toolbox'ı ikili dosya olarak yüklemek için:

Linux (AMD64)

Toolbox'ı Linux (AMD64) üzerinde ikili dosya olarak yüklemek için:

# diğer sürümler için sürümler sayfasına bakın
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS (Apple Silicon)

Toolbox'ı macOS (Apple Silicon) üzerinde ikili dosya olarak yüklemek için:

# diğer sürümler için sürümler sayfasına bakın
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS (Intel)

Toolbox'ı macOS (Intel) üzerinde ikili dosya olarak yüklemek için:

# diğer sürümler için sürümler sayfasına bakın
export VERSION=1.15.0
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows (Komut İstemi)

Toolbox'ı Windows (Komut İstemi) üzerinde ikili dosya olarak yüklemek için:

:: diğer sürümler için sürümler sayfasına bakın
set VERSION=1.15.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Toolbox'ı Windows (PowerShell) üzerinde ikili dosya olarak yüklemek için:

# diğer sürümler için sürümler sayfasına bakın
$VERSION = "1.15.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64 (Komut İstemi)

Toolbox'ı Windows ARM64 (Komut İstemi) üzerinde ikili dosya olarak yüklemek için:

:: diğer sürümler için sürümler sayfasına bakın
set VERSION=1.15.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Toolbox'ı Windows ARM64 (PowerShell) üzerinde ikili dosya olarak yüklemek için:

# diğer sürümler için sürümler sayfasına bakın
$VERSION = "1.15.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Kapsayıcı görüntüsü Toolbox'ı kapsayıcı olarak da yükleyebilirsiniz:
# see releases page for other versions
export VERSION=1.15.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Toolbox'ı macOS veya Linux'ta Homebrew kullanarak yüklemek için:

brew install mcp-toolbox
Kaynak koddan derleme

Kaynak koddan yüklemek için Go'nun en son sürümünün yüklü olduğundan emin olun ve ardından şu komutu çalıştırın:

go install github.com/googleapis/mcp-toolbox@v1.15.0
Gemini CLI AlloyDB, BigQuery ve Cloud SQL gibi belirli veritabanları için önceden oluşturulmuş araçları doğrudan Gemini CLI'ye yüklemek üzere [Gemini CLI uzantılarına](https://geminicli.com/extensions/) göz atın.
# 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

Gemini CLI üzerinden özel araçlarınızla doğal dil kullanarak etkileşim kurun.

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

Toolbox'ı çalıştırma

Araçlarınızı tanımlamak için bir tools.yaml yapılandırın, ardından sunucuyu başlatmak için toolbox komutunu çalıştırın:

İkili dosya

Toolbox'ı ikili dosyadan çalıştırmak için:

./toolbox --config "tools.yaml"

ⓘ Not
Toolbox, dinamik yeniden yüklemeyi varsayılan olarak etkinleştirir. Devre dışı bırakmak için --disable-reload işaretini kullanın.

Kapsayıcı görüntüsü

Kapsayıcı görüntüsünü çektikten sonra sunucuyu çalıştırmak için:

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"

ⓘ Not
-v işareti yerel tools.yaml dosyanızı kapsayıcıya bağlar; -p ise kapsayıcının 5000 bağlantı noktasını ana makinenizin 5000 bağlantı noktasına eşler.

Kaynak kod

Sunucuyu doğrudan kaynak koddan çalıştırmak için proje kök dizinine gidin ve şu komutu çalıştırın:

go run .

ⓘ Not
Bu komut projeyi kaynak koddan çalıştırır ve geliştirme ile test için daha uygundur. $GOPATH dizininizde ikili dosya derlemez. Bunun yerine ikili dosya derlemek istiyorsanız Geliştirici Belgeleri bölümüne bakın.

Homebrew

Toolbox'ı Homebrew kullanarak yüklediyseniz, toolbox ikili dosyası sistem yolunuzda kullanılabilir. Sunucuyu aynı komutla başlatabilirsiniz:

toolbox --config "tools.yaml"
NPM

İkili dosyayı elle indirmeden Toolbox'ı doğrudan çalıştırmak için (Node.js gerekir):

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI Bir [Gemini CLI extensions](https://geminicli.com/extensions/) yükledikten sonra, önceden oluşturulmuş araçlar kullanım sırasında kullanılabilir olur.
# Run Gemini CLI
gemini

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

Tüm işaretlerin listesini görmek için toolbox help kullanabilirsiniz! Sunucuyu durdurmak için bir sonlandırma sinyali gönderin (çoğu platformda ctrl+c).

Farklı ortamlara dağıtım hakkında daha ayrıntılı belgeler için Toolbox'ı Dağıtma bölümündeki kaynaklara göz atın.


Toolbox'a bağlanma

Toolbox sunucunuz çalışmaya başladıktan sonra araçları MCP uyumlu istemcinize veya uygulamanıza yükleyebilirsiniz.

MCP istemcisi

MCP istemci yapılandırmanıza aşağıdaki yapılandırmayı ekleyin:

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

Belirli bir araç kümesine bağlanmak istiyorsanız url değerini "http://127.0.0.1:5000/mcp/{toolset_name}" ile değiştirin.

Toolbox SDK'ları: Uygulamanızla tümleştirme

Toolbox İstemci SDK'ları, özel uygulamalarınızı MCP Toolbox sunucusuna bağlamak için kullanımı kolay yapı taşları ve gelişmiş özellikler sunar. Çeşitli çerçeveleri kullanmaya yönelik İstemci SDK'larının listesi aşağıdadır:

Python (Github)
Core
  1. Toolbox Core SDK paketini yükleyin:

    pip install toolbox-core
    
  2. Araçları yükleyin:

    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")
    

Toolbox Core SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

LangChain / LangGraph
  1. Toolbox LangChain SDK paketini yükleyin:

    pip install toolbox-langchain
    
  2. Araçları yükleyin:

    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()
    

    Toolbox LangChain SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

LlamaIndex
  1. Toolbox Llamaindex SDK paketini yükleyin:

    pip install toolbox-llamaindex
    
  2. Araçları yükleyin:

    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()
    

    Toolbox Llamaindex SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

Javascript/Typescript (Github)
Core
  1. Toolbox Core SDK paketini yükleyin:

    npm install @toolbox-sdk/core
    
  2. Araçları yükleyin:

    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');
    

    Toolbox Core SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

LangChain / LangGraph
  1. Toolbox Core SDK paketini yükleyin:

    npm install @toolbox-sdk/core
    
  2. Araçları yükleyin:

    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. Toolbox Core SDK paketini yükleyin:

    npm install @toolbox-sdk/core
    
  2. Araçları yükleyin:

    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. Toolbox ADK SDK paketini yükleyin:

    npm install @toolbox-sdk/adk
    
  2. Araçları yükleyin:

    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');
    

    Toolbox ADK SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

Go (Github)
Core
  1. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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)
    }
    

    Toolbox Go SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.

LangChain Go
  1. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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. Toolbox Go SDK paketini yükleyin:

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Araçları yükleyin:

    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)
      }
    }
    

    Toolbox Go SDK'yı kullanmaya ilişkin daha ayrıntılı talimatlar için projenin README dosyasına bakın.


Ek özellikler

Toolbox kullanıcı arayüzüyle araçları test etme

Toolbox'ın etkileşimli kullanıcı arayüzünü başlatmak için --ui işaretini kullanın. Bu, yetkilendirilmiş parametreler gibi özelliklerle araçları ve araç kümelerini test etmenizi sağlar. Daha fazla bilgi için Toolbox kullanıcı arayüzü sayfasını ziyaret edin.

./toolbox --ui

Telemetri

Toolbox, OpenTelemetry aracılığıyla izleri ve ölçümleri gönderir. Google Cloud Monitoring, Agnost AI veya diğerleri gibi OTLP uyumlu herhangi bir arka uca dışa aktarmak için --telemetry-otlp=<endpoint> kullanın. Ayrıntılar için telemetri belgelerine bakın.

Agent Skills oluşturma

skills-generate komutu, bir araç kümesini Agent Skill belirtimi ile uyumlu bir Agent Skill'e dönüştürmenizi sağlar. Bu, araçları taşınabilir beceri paketleri olarak dağıtmak için kullanışlıdır.

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

Oluşturduktan sonra beceriyi Gemini CLI'ye yükleyebilirsiniz:

gemini skills install ./skills/my-skill

Daha fazla bilgi için Beceri Oluşturma kılavuzuna bakın. Sahip olduğunuz bir beceriyi MCP üzerinden sunmak için Becerileri MCP üzerinden sunma sayfasına bakın.

Depoda ayrıca kullanıma hazır Agent Skills (ör. bakım iş akışları) bulunur. Katalog ve yükleme talimatları için skills/ sayfasına bakın.


Sürüm oluşturma

MCP Toolbox for Databases, Anlamsal Sürüm Oluşturma kurallarını izler.

Genel API; Toolbox Server'ı (CLI, yapılandırma manifestleri ve önceden oluşturulmuş araç kümeleri) ve İstemci SDK'larını kapsar.

  • Ana sürüm numaraları, uyumsuz CLI veya manifest değişiklikleri gibi geriye dönük uyumluluğu bozan değişikliklerde artırılır.
  • Ara sürüm numaraları, önceden oluşturulmuş araç kümelerinde yapılan değişiklikler veya beta özellikleri dâhil olmak üzere yeni özellikler eklendiğinde artırılır.
  • Yama sürüm numaraları, geriye dönük uyumlu hata düzeltmelerinde artırılır.

Container Tagging Policy dâhil daha fazla bilgi için Tam Sürüm Oluşturma Politikamıza bakın.


Katkıda bulunma

Katkılarınızı bekliyoruz. Başlamak için lütfen CONTRIBUTING kılavuzuna bakın.

Toolbox'ın kendisini geliştirmek için bir ortam kurmaya ilişkin teknik ayrıntılar için DEVELOPER kılavuzuna bakın.

Bu projenin Katkıda Bulunanlar Davranış Kuralları ile yayımlandığını lütfen unutmayın. Bu projeye katılarak kurallarına uymayı kabul etmiş olursunuz. Daha fazla bilgi için Katkıda Bulunanlar Davranış Kuralları sayfasına bakın.


Topluluk

Geliştiricilerimizle bağlantı kurmak için Discord topluluğumuza katılın!