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 IA de répertorier les tables et d’examiner les détails des schémas à l’aide de l’outil prédéfini list_tables.
  • Exécuter des requêtes SQL — Interrogez vos données en langage courant dans les bases de données prises en charge à l’aide de l’outil prédéfini execute_sql.
  • Se connecter via des clients MCP — Configurez le serveur dans mcp.json ou claude_desktop_config.json pour l’utiliser depuis Gemini CLI, Claude Code, Codex ou d’autres clients MCP.
  • Définir des outils personnalisés — Créez des outils SQL structurés et paramétrés dans un fichier tools.yaml afin d’exposer en toute sécurité des requêtes spécifiques aux agents.
  • Regrouper les outils en ensembles d’outils — Organisez les outils associés en ensembles d’outils et chargez-les ensemble pour un agent ou une application spécifique.

Documentation

logo

MCP Toolbox for Databases

googleapis%2Fmcp-toolbox | Trendshift

Licence : 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 directement vos agents IA, IDE et applications à vos bases de données d’entreprise.

architecture

Il remplit un double rôle :

  1. Serveur MCP prêt à l’emploi (à la compilation) : Connectez instantanément Gemini CLI, Google Antigravity, Claude Code, Codex ou d’autres clients MCP à vos bases de données grâce à nos outils génériques préconstruits. Interagissez avec vos données, explorez les schémas et générez du code sans écrire de code passe-partout.
  2. Framework d’outils personnalisés (à l’exécution) : Un framework robuste pour créer des outils d’IA spécialisés et hautement sécurisés pour vos agents de production. Définissez facilement et en toute sécurité des requêtes structurées, la recherche sémantique et des fonctionnalités NL2SQL.

Ce fichier README fournit une brève présentation. Pour des informations complètes, consultez la documentation complète.

[!IMPORTANT]
Mise à jour du nom du dépôt : Le dépôt genai-toolbox a été officiellement renommé mcp-toolbox. Pour 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. Elle a été renommée pour refléter sa compatibilité avec MCP.

Table des matières


Pourquoi MCP Toolbox ?

  • Accès aux bases de données prêt à l’emploi : Des outils génériques préconstruits pour explorer instantanément les 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, en 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 à votre Agent Development Kit (ADK), LangChain, LlamaIndex ou à vos agents personnalisés en moins de 10 lignes de code.
  • Performances améliorées : La gestion du pool de connexions, l’authentification intégrée (IAM) et l’observabilité de bout en bout (OpenTelemetry) sont disponibles d’emblée.
  • Sécurité renforcée : Authentification intégrée pour accéder à vos données de manière plus sécurisée.
  • Observabilité de bout en bout : Métriques et traces disponibles d’emblée, avec prise en charge intégrée d’OpenTelemetry.

Démarrage rapide : outils préconstruits

Évitez de passer d’un contexte à l’autre et faites de votre assistant IA un véritable partenaire de développement. En connectant votre IDE à vos bases de données avec MCP Toolbox, vous pouvez interroger vos données en langage courant, automatiser la découverte et la gestion des schémas, et générer du code tenant compte de la base de données.

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

Les outils préconstruits sont également disponibles dans le Google Antigravity MCP Store, où leur installation se fait 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 ; consultez la référence des outils préconstruits.

Lorsque vous exécutez Toolbox avec l’option --prebuilt=<database>, vous accédez instantanément aux outils standard permettant d’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 sont les suivantes :

  • Google Cloud : AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, Knowledge Catalog (anciennement Dataplex).
  • Autres bases de données : PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, CockroachDB, ClickHouse, Couchbase, Neo4j, Snowflake, Trino, et bien d’autres.

Pour obtenir la liste complète des outils disponibles et de leurs fonctionnalités pour 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 découvrir différentes méthodes d’exécution, comme Docker ou les binaires.

[!TIP] Pour les utilisateurs qui recherchent une solution gérée, les serveurs MCP Google Cloud offrent une expérience MCP gérée avec des outils préconstruits ; découvrez ici les différences.


Démarrage rapide : outils personnalisés

Toolbox peut également servir de framework pour créer des outils personnalisés. La principale méthode de configuration de Toolbox consiste à utiliser le fichier tools.yaml. Si vous disposez de plusieurs fichiers, vous pouvez indiquer à Toolbox lequel charger avec l’option --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 fichier tools.yaml définit les sources de données auxquelles Toolbox doit avoir accès. La plupart des outils ont besoin d’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 en savoir plus sur la configuration des différents types de sources, consultez la section Sources.

Outils

La section tools d’un fichier tools.yaml définit les actions qu’un agent peut effectuer : le type d’outil, les sources concernées, les paramètres utilisés, 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 en savoir plus sur la configuration des différents types d’outils, consultez la section Tools.

Ensembles d’outils

La section toolsets de votre fichier 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 selon l’agent ou 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

Prompts

La section prompts d’un fichier tools.yaml définit les prompts utilisables pour interagir 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 en savoir plus sur la configuration des prompts, consultez la section Prompts.

Ressources

Les sections resources et resourceTemplates de votre fichier tools.yaml définissent du contenu en lecture seule, des fichiers ou des arborescences de répertoires paramétrées que les clients MCP peuvent découvrir et récupérer :

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 en savoir plus sur la configuration des ressources et des modèles de ressources, consultez la section Resources.


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

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

[!NOTE] Cette méthode privilégie la simplicité d’utilisation plutôt que les performances. Pour une installation plus standard et fiable, utilisez le binaire ou l’image de conteneur, comme indiqué dans la section Installer et exécuter le serveur Toolbox.

Installer Toolbox

Pour obtenir la dernière version, consultez la page des versions et suivez les instructions correspondant à votre système d’exploitation et à l’architecture de votre processeur.

Binaire

Pour installer Toolbox sous forme de binaire :

Linux (AMD64)

Pour installer Toolbox sous forme de binaire sous Linux (AMD64) :

# see releases page for other versions
export VERSION=1.16.0
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 sous forme de binaire sous macOS (Apple Silicon) :

# see releases page for other versions
export VERSION=1.16.0
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 sous forme de binaire sous macOS (Intel) :

# see releases page for other versions
export VERSION=1.16.0
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 sous forme de binaire sous Windows (Invite de commandes) :

:: see releases page for other versions
set VERSION=1.16.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/amd64/toolbox.exe"
Windows (PowerShell)

Pour installer Toolbox sous forme de binaire sous Windows (PowerShell) :

# see releases page for other versions
$VERSION = "1.16.0"
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 sous forme de binaire sous Windows ARM64 (Invite de commandes) :

:: see releases page for other versions
set VERSION=1.16.0
curl -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v%VERSION%/windows/arm64/toolbox.exe"
Windows ARM64 (PowerShell)

Pour installer Toolbox sous forme de binaire sous Windows ARM64 (PowerShell) :

# see releases page for other versions
$VERSION = "1.16.0"
curl.exe -o toolbox.exe "https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/windows/arm64/toolbox.exe"
Image de conteneur Vous pouvez également installer Toolbox sous forme de conteneur :
# see releases page for other versions
export VERSION=1.16.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Homebrew

Pour installer Toolbox avec Homebrew sous 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.16.0
Gemini CLI Consultez les [extensions Gemini CLI](https://geminicli.com/extensions/) pour installer directement dans Gemini CLI des outils préconstruits pour des bases de données spécifiques, comme AlloyDB, BigQuery et Cloud SQL.
# 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’option --disable-reload.

Image de conteneur

Pour exécuter le serveur après avoir récupéré l’image de 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’option -v monte votre fichier tools.yaml local dans le conteneur, et -p associe le port 5000 du conteneur au port 5000 de votre hôte.

Sources

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 convient mieux au développement et aux tests. Elle ne compile pas de binaire dans votre $GOPATH. Pour compiler un binaire, consultez la documentation destinée aux développeurs.

Homebrew

Si vous avez installé Toolbox avec Homebrew, le binaire toolbox est disponible dans le 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 (Node.js requis) :

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 pendant l’utilisation.
# Run Gemini CLI
gemini

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

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

Pour obtenir une documentation plus détaillée sur le déploiement dans différents environnements, consultez les ressources de la section Déployer Toolbox


Se connecter à Toolbox

Une fois votre serveur Toolbox démarré, vous pouvez charger des outils dans votre client ou application compatible avec MCP.

Client MCP

Ajoutez la configuration suivante à la configuration de votre 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 url par "http://127.0.0.1:5000/mcp/{toolset_name}".

SDK Toolbox : intégrer à votre application

Les SDK clients Toolbox fournissent des composants faciles à utiliser et des fonctionnalités avancées pour connecter vos applications personnalisées au serveur MCP Toolbox. Vous trouverez ci-dessous la liste des SDK clients permettant d’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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox Core SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox LangChain SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox Llamaindex SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox Core SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox ADK SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox Go SDK, 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 obtenir des instructions plus détaillées sur l’utilisation de Toolbox Go SDK, consultez le README du projet.


Fonctionnalités supplémentaires

Tester les outils avec l’interface utilisateur Toolbox

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

./toolbox --ui

Télémétrie

Toolbox émet des traces et des métriques via OpenTelemetry. Utilisez --telemetry-otlp=<endpoint> pour exporter vers n’importe quel backend compatible avec 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 permet de convertir un ensemble d’outils en une compétence d’agent compatible avec la spécification Agent Skill. Cette fonctionnalité 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 Gemini CLI :

gemini skills install ./skills/my-skill

Pour plus de détails, consultez le guide de génération des compétences. Pour servir via MCP une compétence que vous possédez déjà, consultez Servir des compétences via MCP.

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


Gestion des versions

MCP Toolbox for Databases suit le versionnage sémantique.

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

  • Les versions majeures sont incrémentées en cas de changements incompatibles, 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 correctives sont incrémentées pour les corrections de bogues rétrocompatibles.

Pour plus de détails, notamment sur notre politique de balisage des conteneurs, consultez notre politique complète de gestion des versions.


Contributions

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

Pour obtenir des détails techniques sur la configuration d’un environnement de développement pour Toolbox, 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 d’en respecter les conditions. Consultez le code de conduite pour les contributeurs pour plus d’informations.


Communauté

Rejoignez notre communauté Discord pour échanger avec nos développeurs !