MCP Toolbox for Databases

by googleapis
Apache 2.0
870
  • Linux

Integrations

  • Enables integration with LangChain framework, allowing agents to leverage database tools and execute queries through the MCP Toolbox server.

  • Provides compatibility with LangGraph for building agent workflows that can access and manipulate database data using the tools defined in the MCP server.

  • Offers built-in support for OpenTelemetry, enabling end-to-end observability with metrics and tracing for database operations performed through the MCP server.

MCP Toolbox für Datenbanken

[!NOTE] MCP Toolbox für Datenbanken befindet sich derzeit in der Betaphase und kann bis zur ersten stabilen Version (v1.0) schwerwiegende Änderungen aufweisen.

MCP Toolbox for Databases ist ein Open-Source-MCP-Server für Datenbanken. Er ermöglicht Ihnen die einfachere, schnellere und sicherere Entwicklung von Tools, indem er komplexe Aufgaben wie Verbindungspooling, Authentifizierung und mehr übernimmt.

Diese README-Datei bietet einen kurzen Überblick. Ausführliche Informationen finden Sie in der vollständigen Dokumentation .

[!NOTE] Diese Lösung hieß ursprünglich „Gen AI Toolbox for Databases“, da ihre ursprüngliche Entwicklung vor MCP erfolgte. Sie wurde jedoch umbenannt, um sie an die kürzlich hinzugefügte MCP-Kompatibilität anzupassen.

Inhaltsverzeichnis

Warum Toolbox?

Toolbox unterstützt Sie bei der Entwicklung von Gen-AI-Tools, mit denen Ihre Agenten auf Daten in Ihrer Datenbank zugreifen können. Toolbox bietet:

  • Vereinfachte Entwicklung : Integrieren Sie Tools in weniger als 10 Codezeilen in Ihren Agenten, verwenden Sie Tools zwischen mehreren Agenten oder Frameworks wieder und stellen Sie neue Versionen von Tools einfacher bereit.
  • Bessere Leistung : Best Practices wie Verbindungspooling, Authentifizierung und mehr.
  • Verbesserte Sicherheit : Integrierte Authentifizierung für sichereren Zugriff auf Ihre Daten
  • End-to-End-Beobachtbarkeit : Sofort einsatzbereite Metriken und Ablaufverfolgung mit integrierter Unterstützung für OpenTelemetry.

Allgemeine Architektur

Toolbox sitzt zwischen dem Orchestrierungsframework Ihrer Anwendung und Ihrer Datenbank und bietet eine Steuerungsebene zum Ändern, Verteilen und Aufrufen von Tools. Es vereinfacht die Verwaltung Ihrer Tools, indem es Ihnen einen zentralen Ort zum Speichern und Aktualisieren von Tools bietet. So können Sie Tools zwischen Agenten und Anwendungen teilen und aktualisieren, ohne Ihre Anwendung neu bereitstellen zu müssen.

Erste Schritte

Installieren des Servers

Die neueste Version finden Sie auf der Release-Seite . Befolgen Sie die folgenden Anweisungen für Ihr Betriebssystem und Ihre CPU-Architektur.

So installieren Sie Toolbox als Binärdatei:

# see releases page for other versions export VERSION=0.5.0 curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox chmod +x toolbox
# see releases page for other versions export VERSION=0.5.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION

Um die Installation aus der Quelle durchzuführen, stellen Sie sicher, dass Sie die neueste Version von Go installiert haben, und führen Sie dann den folgenden Befehl aus:

go install github.com/googleapis/genai-toolbox@v0.5.0

Ausführen des Servers

Konfigurieren Sie eine tools.yaml , um Ihre Tools zu definieren, und führen Sie dann toolbox aus, um den Server zu starten:

./toolbox --tools-file "tools.yaml"

Eine vollständige Liste der Flags finden Sie in toolbox help . Um den Server zu stoppen, senden Sie ein Beendigungssignal (auf den meisten Plattformen ctrl+c ).

Ausführlichere Dokumentationen zur Bereitstellung in verschiedenen Umgebungen finden Sie in den Ressourcen im Abschnitt „Anleitungen“ .

Integrieren Ihrer Anwendung

Sobald Ihr Server betriebsbereit ist, können Sie die Tools in Ihre Anwendung laden. Nachfolgend finden Sie eine Liste der Client-SDKs für die Verwendung verschiedener Frameworks:

  1. Installieren Sie das Toolbox Core SDK :
    pip install toolbox-core
  2. Werkzeuge laden:
    from toolbox_core import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # these tools can be passed to your application! tools = await client.load_toolset("toolset_name")

Ausführlichere Anweisungen zur Verwendung des Toolbox Core SDK finden Sie in der README-Datei des Projekts .

  1. Installieren Sie das Toolbox LangChain SDK :
    pip install toolbox-langchain
  2. Werkzeuge laden:
    from toolbox_langchain import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # these tools can be passed to your application! tools = client.load_toolset()

Ausführlichere Anweisungen zur Verwendung des Toolbox LangChain SDK finden Sie in der README-Datei des Projekts .

  1. Installieren Sie das Toolbox Llamaindex SDK :
    pip install toolbox-llamaindex
  2. Werkzeuge laden:
    from toolbox_llamaindex import ToolboxClient # update the url to point to your server client = ToolboxClient("http://127.0.0.1:5000") # these tools can be passed to your application! tools = client.load_toolset()

Ausführlichere Anweisungen zur Verwendung des Toolbox Llamaindex SDK finden Sie in der README-Datei des Projekts .

Konfiguration

Die primäre Methode zum Konfigurieren von Toolbox ist die Datei tools.yaml . Wenn Sie mehrere Dateien haben, können Sie Toolbox mit dem Flag --tools-file tools.yaml mitteilen, welche geladen werden soll.

Ausführlichere Referenzdokumentation zu allen Ressourcentypen finden Sie in den Ressourcen .

Quellen

Der Abschnitt sources Ihrer tools.yaml definiert, auf welche Datenquellen Ihre Toolbox Zugriff haben soll. Die meisten Tools verfügen über mindestens eine Quelle zur Ausführung.

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

Weitere Einzelheiten zum Konfigurieren unterschiedlicher Quellentypen finden Sie unter Quellen .

Werkzeuge

Der Abschnitt tools einer tools.yaml definiert die Aktionen, die ein Agent ausführen kann: um welche Art von Tool es sich handelt, welche Quelle(n) es betrifft, welche Parameter es verwendet usw.

tools: search-hotels-by-name: kind: 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 || '%';

Weitere Einzelheiten zum Konfigurieren unterschiedlicher Werkzeugtypen finden Sie unter „ Werkzeuge“ .

Werkzeugsätze

Im Abschnitt toolsets “ Ihrer tools.yaml können Sie Toolgruppen definieren, die gemeinsam geladen werden sollen. Dies kann nützlich sein, um verschiedene Gruppen basierend auf Agent oder Anwendung zu definieren.

toolsets: my_first_toolset: - my_first_tool - my_second_tool my_second_toolset: - my_second_tool - my_third_tool

Sie können Toolsets nach Namen laden:

# This will load all tools all_tools = client.load_toolset() # This will only load the tools listed in 'my_second_toolset' my_second_toolset = client.load_toolset("my_second_toolset")

Versionierung

Dieses Projekt verwendet eine semantische Versionierung , einschließlich einer MAJOR.MINOR.PATCH -Versionsnummer, die mit Folgendem erhöht wird:

  • HAUPTversion, wenn wir inkompatible API-Änderungen vornehmen
  • MINOR-Version, wenn wir Funktionen auf abwärtskompatible Weise hinzufügen
  • PATCH-Version, wenn wir abwärtskompatible Fehlerbehebungen vornehmen

Die öffentliche API, auf die dies zutrifft, ist die mit Toolbox verknüpfte CLI, die Interaktionen mit offiziellen SDKs und die Definitionen in der Datei tools.yaml .

Beitragen

Beiträge sind willkommen. Bitte lesen Sie den Abschnitt „Beitrag leisten“ , um loszulegen.

Bitte beachten Sie, dass für dieses Projekt ein Verhaltenskodex für Mitwirkende gilt. Mit der Teilnahme an diesem Projekt erklären Sie sich mit dessen Bedingungen einverstanden. Weitere Informationen finden Sie im Verhaltenskodex für Mitwirkende .

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Open-Source-MCP-Server, spezialisiert auf einfache, schnelle und sichere Tools für Datenbanken.

  1. Inhaltsverzeichnis
    1. Warum Toolbox?
      1. Allgemeine Architektur
        1. Erste Schritte
          1. Installieren des Servers
          2. Ausführen des Servers
          3. Integrieren Ihrer Anwendung
        2. Konfiguration
          1. Quellen
          2. Werkzeuge
          3. Werkzeugsätze
        3. Versionierung
          1. Beitragen

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              An MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.
              Last updated -
              14
              41
              JavaScript
              MIT License
            • -
              security
              A
              license
              -
              quality
              An MCP server that integrates with MySQL databases, enabling secure read and write operations through LLM-driven interfaces with support for transaction handling and performance monitoring.
              Last updated -
              48
              3
              JavaScript
              MIT License
            • A
              security
              A
              license
              A
              quality
              An MCP server that provides read-only access to MySQL databases.
              Last updated -
              4
              695
              17
              JavaScript
              MIT License
              • Linux
              • Apple

            View all related MCP servers

            ID: edji1s31y4