MCP Database Toolbox es un servidor MCP de código abierto que simplifica el desarrollo de herramientas de bases de datos, proporcionando funcionalidades como pool de conexiones y autenticación.
Introducción al proyecto Genai-toolbox
Resumen del proyecto
MCP Toolbox for Databases (Caja de herramientas MCP para bases de datos) es una herramienta de servidor de bases de datos de código abierto de Google, diseñada para simplificar el desarrollo de herramientas Gen AI. Este proyecto permite a los desarrolladores construir de manera más fácil, rápida y segura herramientas de agentes de IA que puedan acceder a datos de bases de datos.
Dirección del proyecto: https://github.com/googleapis/genai-toolbox
Funciones y características principales
1. Simplificación del flujo de desarrollo
- Integración rápida: Integra la herramienta en un agente con menos de 10 líneas de código.
- Reutilización de herramientas: Permite la reutilización de herramientas entre múltiples agentes o frameworks.
- Implementación sencilla: Facilita la implementación de nuevas versiones de las herramientas.
2. Optimización del rendimiento
- Gestión de pool de conexiones: Mecanismo de pool de conexiones incorporado para optimizar el rendimiento de la conexión a la base de datos.
- Mejores prácticas: Integra las mejores prácticas de acceso a bases de datos.
- Procesamiento eficiente: Procesamiento de datos y ejecución de consultas optimizados.
3. Seguridad mejorada
- Autenticación integrada: Proporciona un mecanismo de acceso a datos más seguro.
- Conexiones seguras: Garantiza la seguridad de las conexiones a la base de datos.
- Control de permisos: Admite un control de acceso granular.
4. Observabilidad de extremo a extremo
- Monitorización integrada: Proporciona métricas y funciones de seguimiento listas para usar.
- Soporte para OpenTelemetry: Soporte integrado para OpenTelemetry, lo que facilita la monitorización y la depuración.
- Seguimiento de ruta completa: Admite el seguimiento completo de la ruta de la solicitud.
Diseño de la arquitectura
La caja de herramientas se encuentra entre el framework de orquestación de la aplicación y la base de datos, proporcionando un plano de control para modificar, distribuir o invocar herramientas. Simplifica la gestión de herramientas al proporcionar una ubicación centralizada para almacenar y actualizar herramientas, permite compartir herramientas entre agentes y aplicaciones, y actualizar estas herramientas sin tener que volver a implementar las aplicaciones.
Método de instalación
Instalación binaria
# Consulte la página de lanzamiento para obtener otras versiones
export VERSION=0.4.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
Imagen de contenedor
# Consulte la página de lanzamiento para obtener otras versiones
export VERSION=0.4.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
Compilación desde el código fuente
go install github.com/googleapis/genai-toolbox@v0.4.0
Modo de uso
Flujo de uso básico
- Configure el archivo tools.yaml: Defina sus herramientas
- Inicie el servidor:
./toolbox --tools_file "tools.yaml"
- Cargue las herramientas en la aplicación: Utilice el SDK correspondiente
SDK de cliente compatibles
Core SDK
from toolbox_core import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = await client.load_toolset("toolset_name")
LangChain/LangGraph SDK
from toolbox_langchain import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = client.load_toolset()
LlamaIndex SDK
from toolbox_llamaindex import ToolboxClient
client = ToolboxClient("http://127.0.0.1:5000")
tools = client.load_toolset()
Descripción de la configuración
Configuración de la fuente de datos
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
Configuración de la herramienta
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 || '%';
Configuración del conjunto de herramientas
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool
Control de versiones
- Versión MAJOR: Cambios de API incompatibles
- Versión MINOR: Adición de funciones compatibles con versiones anteriores
- Versión PATCH: Correcciones de errores compatibles con versiones anteriores
Escenarios de aplicación
- Desarrollo de agentes de IA: Construir herramientas de acceso a bases de datos para agentes de IA
- Integración de datos: Simplificar la integración de aplicaciones con bases de datos
- Gestión de herramientas: Gestionar y distribuir herramientas de bases de datos de forma centralizada
- Soporte para múltiples frameworks: Compartir herramientas entre diferentes frameworks de IA
Ventajas del proyecto
- Código abierto y gratuito: Completamente de código abierto, mantenido por Google
- Maduro y estable: Basado en las mejores prácticas de Google
- Compatibilidad con el ecosistema: Soporta los principales frameworks de IA
- Fácil de extender: Configuración flexible y mecanismo de extensión
- Nivel empresarial: Proporciona seguridad y observabilidad de nivel empresarial
Resumen
MCP Toolbox for Databases es un proyecto de código abierto potente y fácil de usar, diseñado para las necesidades modernas de integración de bases de datos de aplicaciones de IA. Ayuda a los desarrolladores a construir rápidamente herramientas de bases de datos de IA fiables al proporcionar una experiencia de desarrollo simplificada, un rendimiento optimizado, una seguridad mejorada y una observabilidad completa.
Tanto si está desarrollando agentes de IA, construyendo aplicaciones basadas en datos o necesita compartir herramientas de bases de datos entre múltiples frameworks, MCP Toolbox for Databases es una solución que vale la pena considerar. Su diseño de arquitectura flexible y su rico soporte de SDK le permiten adaptarse bien a diversos escenarios y necesidades de desarrollo.