MCP Toolbox for Databases

officiel

Serveur MCP open source spécialisé dans des outils faciles, rapides et sécurisés pour les bases de données.

Que pouvez-vous faire avec Toolbox For Databases MCP ?

  • Explorer les schémas de base de données — Demandez à votre assistant de lister les tables disponibles et de comprendre la structure de votre base de données à l’aide de list_tables.
  • Exécuter des requêtes SQL en anglais courant — Faites traduire par votre assistant les questions en langage naturel en SQL et exécutez-les via execute_sql.
  • Créer des outils de base de données personnalisés — Définissez des instructions SQL paramétrées dans tools.yaml pour créer des outils sûrs et réutilisables pour vos agents.
  • Se connecter à n’importe quel client MCP — Configurez le serveur dans mcp.json ou claude_desktop_config.json pour l’utiliser avec Claude Code, Gemini CLI ou d’autres IDE.
  • Charger des outils dans les frameworks d’IA — Intégrez les outils Toolbox dans les applications LangChain, LlamaIndex ou ADK à l’aide des SDK fournis.

Documentation

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 est un serveur open source Model Context Protocol (MCP) qui connecte vos agents IA, vos IDE et vos applications directement à vos bases de données d'entreprise.

architecture

Il sert un double objectif :

  1. Serveur MCP prêt à l'emploi (au moment de la compilation) : Connectez instantanément Gemini CLI, Google Antigravity, Claude Code, Codex ou d'autres clients MCP à vos bases de données à l'aide de nos outils génériques préconstruits. Parlez à vos données, explorez les schémas et générez du code sans écrire de code standard.
  2. Framework d'outils personnalisés (au moment de l'exécution) : Un framework robuste pour créer des outils IA spécialisés et hautement sécurisés pour vos agents de production. Définissez des requêtes structurées, une recherche sémantique et des capacités NL2SQL de manière sûre et simple.

Ce README fournit un aperçu succinct. Pour des détails complets, consultez la documentation complète.

[!IMPORTANT]
Mise à jour du nom du dépôt : Le dépôt genai-toolbox a été officiellement renommé en mcp-toolbox. Pour vous assurer que votre environnement local reflète le nouveau nom, vous pouvez mettre à jour votre dépôt distant : git remote set-url origin https://github.com/googleapis/mcp-toolbox.git

[!NOTE] Cette solution s'appelait à l'origine « Gen AI Toolbox for Databases » (github.com/googleapis/genai-toolbox) car son développement initial a précédé MCP, mais elle a été renommée pour s'aligner sur la compatibilité MCP.

Table des matières


Pourquoi MCP Toolbox ?

  • Accès aux bases de données prêt à l'emploi : Outils génériques préconstruits pour une exploration instantanée des données (par exemple, list_tables, execute_sql) directement depuis votre IDE ou votre CLI.
  • Framework d'outils personnalisés : Créez des outils prêts pour la production avec votre propre logique prédéfinie, garantissant la sécurité grâce à l'accès restreint, aux requêtes structurées et à la recherche sémantique.
  • Développement simplifié : Intégrez des outils dans votre Agent Development Kit (ADK), LangChain, LlamaIndex ou des agents personnalisés en moins de 10 lignes de code.
  • Meilleures performances : Gère le pooling de connexions, l'authentification intégrée (IAM) et l'observabilité de bout en bout (OpenTelemetry) prêts à l'emploi.
  • Sécurité renforcée : Authentification intégrée pour un accès plus sécurisé à vos données.
  • Observabilité de bout en bout : Métriques et tracing prêts à l'emploi avec prise en charge intégrée d'OpenTelemetry.

Démarrage rapide : Outils préconstruits

Arrêtez de changer de contexte et laissez votre assistant IA devenir un véritable co-développeur. En connectant votre IDE à vos bases de données avec MCP Toolbox, vous pouvez interroger vos données en langage naturel, automatiser la découverte et la gestion des schémas, et générer du code adapté à vos bases de données.

Vous pouvez utiliser Toolbox dans n'importe quel IDE ou client compatible MCP (par exemple, Gemini CLI, Google Antigravity, Claude Code, Codex, etc.) en configurant le serveur MCP.

Les outils préconstruits sont également disponibles via le Google Antigravity MCP Store avec une expérience d'installation en un clic.

  1. Ajoutez ce qui suit au fichier de configuration MCP de votre client (généralement mcp.json ou claude_desktop_config.json) :

    {
      "mcpServers": {
        "toolbox-postgres": {
          "command": "npx",
          "args": [
            "-y",
            "@toolbox-sdk/server",
            "--prebuilt=postgres",
            "--stdio"
          ]
        }
      }
    }
    
  2. Définissez les variables d'environnement appropriées pour vous connecter, voir la Référence des outils préconstruits.

Lorsque vous exécutez Toolbox avec un indicateur --prebuilt=<database>, vous accédez instantanément à des outils standard pour interagir avec cette base de données. Vous pouvez également spécifier un ensemble d'outils particulier à l'aide de la syntaxe --prebuilt=<database>/<toolset> (par exemple, --prebuilt=postgres/data pour charger uniquement les outils SQL).

Les bases de données actuellement prises en charge incluent :

  • Google Cloud : AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (anciennement connu sous le nom de Dataplex).
  • Autres bases de données : PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, et plus encore.

Pour une liste complète des outils disponibles et de leurs capacités sur toutes les bases de données prises en charge, consultez la Référence des outils préconstruits.

Consultez la section Installer et exécuter le serveur Toolbox pour différentes méthodes d'exécution comme Docker ou les binaires.

[!TIP] Pour les utilisateurs recherchant une solution gérée, Google Cloud MCP Servers offrent une expérience MCP gérée avec des outils préconstruits ; vous pouvez en savoir plus sur les différences ici.


Démarrage rapide : Outils personnalisés

Toolbox peut également être utilisé comme framework pour des outils personnalisés. La principale façon de configurer Toolbox est via le fichier tools.yaml. Si vous avez plusieurs fichiers, vous pouvez indiquer à Toolbox lequel charger avec l'indicateur --config tools.yaml.

Vous trouverez une documentation de référence plus détaillée sur tous les types de ressources dans la section Resources.

Sources

La section sources de votre tools.yaml définit les sources de données auxquelles votre Toolbox doit avoir accès. La plupart des outils auront au moins une source sur laquelle s'exécuter.

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

Pour plus de détails sur la configuration des différents types de sources, consultez la section Sources.

Outils

La section tools d'un tools.yaml définit les actions qu'un agent peut entreprendre : le type d'outil, la ou les sources qu'il affecte, les paramètres qu'il utilise, etc.

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

Pour plus de détails sur la configuration des différents types d'outils, consultez la section Outils.

Ensembles d'outils

La section toolsets de votre tools.yaml vous permet de définir des groupes d'outils que vous souhaitez pouvoir charger ensemble. Cela peut être utile pour définir différents groupes en fonction de l'agent ou de l'application.

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

Invites

La section prompts d'un tools.yaml définit les invites qui peuvent être utilisées pour les interactions avec les 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"

Pour plus de détails sur la configuration des invites, consultez la section Invites.

Ressources

Les sections resources et resourceTemplates de votre tools.yaml définissent le contenu en lecture seule, les fichiers ou les arborescences de répertoires paramétrées qui peuvent être découverts et récupérés par les clients 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"

Pour plus de détails sur la configuration des ressources et des modèles de ressources, consultez Ressources.


Installer et exécuter le serveur Toolbox

Vous pouvez exécuter Toolbox directement avec un fichier de configuration :

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

Cela exécute la dernière version du serveur Toolbox avec votre fichier de configuration.

[!NOTE] Cette méthode est optimisée pour la commodité plutôt que pour les performances. Pour une installation plus standard et fiable, veuillez utiliser le binaire ou l'image conteneur comme décrit dans Installer et exécuter le serveur Toolbox.

Installer Toolbox

Pour la dernière version, consultez la page des versions et utilisez les instructions suivantes pour votre système d'exploitation et votre architecture CPU.

Binaire

Pour installer Toolbox en tant que binaire :

Linux (AMD64)

Pour installer Toolbox en tant que binaire sur Linux (AMD64) :

# voir la page des versions pour les autres versions
export VERSION=1.13.1
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
macOS (Apple Silicon)

Pour installer Toolbox en tant que binaire sur macOS (Apple Silicon) :

# voir la page des versions pour les autres versions
export VERSION=1.13.1
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/arm64/toolbox
chmod +x toolbox
macOS (Intel)

Pour installer Toolbox en tant que binaire sur macOS (Intel) :

# voir la page des versions pour les autres versions
export VERSION=1.13.1
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/darwin/amd64/toolbox
chmod +x toolbox
Windows (Invite de commandes)

Pour installer Toolbox en tant que binaire sur Windows (Invite de commandes) :

:: voir la page des versions pour les autres versions
set VERSION=1.13.1
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Pour installer Toolbox en tant que binaire sur Windows (PowerShell) :

# voir la page des versions pour les autres versions
$VERSION = "1.13.1"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/amd64/toolbox.exe"
Windows ARM64 (Invite de commandes)

Pour installer Toolbox en tant que binaire sur Windows ARM64 (Invite de commandes) :

:: voir la page des versions pour les autres versions
set VERSION=1.13.1
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Pour installer Toolbox en tant que binaire sur Windows ARM64 (PowerShell) :

# voir la page des versions pour les autres versions
$VERSION = "1.13.1"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Image conteneur Vous pouvez également installer Toolbox en tant que conteneur :
# see releases page for other versions
export VERSION=1.13.1
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Pour installer Toolbox à l'aide de Homebrew sur macOS ou Linux :

brew install mcp-toolbox
Compiler à partir des sources

Pour installer à partir des sources, assurez-vous d'avoir la dernière version de Go installé, puis exécutez la commande suivante :

go install github.com/googleapis/mcp-toolbox@v1.13.1
Gemini CLI Consultez les [extensions Gemini CLI](https://geminicli.com/extensions/) pour installer des outils préconstruits pour des bases de données spécifiques comme AlloyDB, BigQuery et Cloud SQL directement dans 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

Interagissez avec vos outils personnalisés en langage naturel via Gemini CLI.

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

Exécuter Toolbox

Configurez un tools.yaml pour définir vos outils, puis exécutez toolbox pour démarrer le serveur :

Binaire

Pour exécuter Toolbox à partir du binaire :

./toolbox --config "tools.yaml"

ⓘ Remarque
Toolbox active le rechargement dynamique par défaut. Pour le désactiver, utilisez l'indicateur --disable-reload.

Image conteneur

Pour exécuter le serveur après avoir extrait l'image conteneur :

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"

ⓘ Remarque
L'indicateur -v monte votre tools.yaml local dans le conteneur, et -p mappe le port 5000 du conteneur vers le port 5000 de votre hôte.

Source

Pour exécuter le serveur directement à partir des sources, accédez au répertoire racine du projet et exécutez :

go run .

ⓘ Remarque
Cette commande exécute le projet à partir des sources et est plus adaptée au développement et aux tests. Elle ne compile pas un binaire dans votre $GOPATH. Si vous souhaitez compiler un binaire à la place, consultez la Documentation développeur.

Homebrew

Si vous avez installé Toolbox via Homebrew, le binaire toolbox est disponible dans votre chemin système. Vous pouvez démarrer le serveur avec la même commande :

toolbox --config "tools.yaml"
NPM

Pour exécuter Toolbox directement sans télécharger manuellement le binaire (nécessite Node.js) :

npx @toolbox-sdk/server --config tools.yaml
Gemini CLI Après avoir installé une [extension Gemini CLI](https://geminicli.com/extensions/), les outils précompilés seront disponibles lors de l'utilisation.
# Run Gemini CLI
gemini

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

Vous pouvez utiliser toolbox help pour une liste complète des options ! Pour arrêter le serveur, envoyez un signal de terminaison (ctrl+c sur la plupart des plateformes).

Pour une documentation plus détaillée sur le déploiement dans différents environnements, consultez les ressources dans la https://mcp-toolbox.dev/documentation/deploy-to/


Connecter Toolbox

Une fois votre serveur Toolbox opérationnel, vous pouvez charger les outils dans votre client ou application compatible MCP.

Client MCP

Ajoutez la configuration suivante à votre configuration client MCP :

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

Si vous souhaitez vous connecter à un ensemble d'outils spécifique, remplacez l'URL par "http://127.0.0.1:5000/mcp/{toolset_name}".

SDK Toolbox : Intégrez à votre application

Les SDK clients Toolbox fournissent des blocs de construction faciles à utiliser et des fonctionnalités avancées pour connecter vos applications personnalisées au serveur MCP Toolbox. Voir ci-dessous la liste des SDK clients pour utiliser différents frameworks :

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

    pip install toolbox-core
    
  2. Chargez les outils :

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

Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox Core, consultez le README du projet.

LangChain / LangGraph
  1. Installez Toolbox LangChain SDK :

    pip install toolbox-langchain
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox LangChain, consultez le README du projet.

LlamaIndex
  1. Installez Toolbox Llamaindex SDK :

    pip install toolbox-llamaindex
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox Llamaindex, consultez le README du projet.

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

    npm install @toolbox-sdk/core
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox Core, consultez le README du projet.

LangChain / LangGraph
  1. Installez Toolbox Core SDK :

    npm install @toolbox-sdk/core
    
  2. Chargez les outils :

    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. Installez Toolbox Core SDK :

    npm install @toolbox-sdk/core
    
  2. Chargez les outils :

    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. Installez Toolbox ADK SDK :

    npm install @toolbox-sdk/adk
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox ADK, consultez le README du projet.

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

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox Go, consultez le README du projet.

LangChain Go
  1. Installez Toolbox Go SDK :

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

    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. Installez Toolbox Go SDK :

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

    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. Installez Toolbox Go SDK :

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

    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. Installez Toolbox Go SDK :

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

    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. Installez Toolbox Go SDK :

    go get github.com/googleapis/mcp-toolbox-sdk-go
    
  2. Chargez les outils :

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

    Pour des instructions plus détaillées sur l'utilisation du SDK Toolbox Go, consultez le README du projet.


Fonctionnalités supplémentaires

Tester les outils avec l'interface Toolbox

Pour lancer l'interface interactive de Toolbox, utilisez l'option --ui. Cela vous permet de tester les outils et ensembles d'outils avec des fonctionnalités telles que les paramètres autorisés. Pour en savoir plus, consultez Toolbox UI.

./toolbox --ui

Télémétrie

Toolbox émet des traces et des métriques via OpenTelemetry. Utilisez --telemetry-otlp=<endpoint> pour exporter vers tout backend compatible OTLP comme Google Cloud Monitoring, Agnost AI, ou d'autres. Consultez la documentation sur la télémétrie pour plus de détails.

Générer des compétences d'agent

La commande skills-generate vous permet de convertir un ensemble d'outils en compétence d'agent compatible avec la spécification des compétences d'agent. Cela est utile pour distribuer des outils sous forme de packages de compétences portables.

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

Une fois générée, vous pouvez installer la compétence dans le Gemini CLI :

gemini skills install ./skills/my-skill

Pour plus de détails, consultez le guide de génération de compétences d'agent.

Le dépôt inclut également des compétences d'agent prêtes à l'emploi (par exemple, des flux de travail de maintenance). Consultez skills/ pour le catalogue et les instructions d'installation.


Versioning

MCP Toolbox for Databases suit la gestion sémantique de version.

L'API publique inclut le serveur Toolbox (CLI, manifestes de configuration et ensembles d'outils précompilés) et les SDK clients.

  • Les versions majeures sont incrémentées pour les changements cassants, tels que des modifications incompatibles du CLI ou des manifestes.
  • Les versions mineures sont incrémentées pour les nouvelles fonctionnalités, y compris les modifications des ensembles d'outils précompilés ou les fonctionnalités bêta.
  • Les versions de correctif sont incrémentées pour les corrections de bugs rétrocompatibles.

Pour plus de détails, consultez notre politique complète de versioning.


Contribution

Les contributions sont les bienvenues. Veuillez consulter le guide CONTRIBUTING pour commencer.

Pour les détails techniques sur la configuration d'un environnement de développement pour Toolbox lui-même, consultez le guide DEVELOPER.

Veuillez noter que ce projet est publié avec un code de conduite pour les contributeurs. En participant à ce projet, vous acceptez de respecter ses termes. Consultez le Code de conduite des contributeurs pour plus d'informations.


Communauté

Rejoignez notre communauté Discord pour vous connecter avec nos développeurs !