MCP 데이터베이스 툴박스는 데이터베이스 툴 개발을 간소화하고 연결 풀, 인증 등의 기능을 제공하는 오픈 소스 MCP 서버입니다.
Genai-toolbox 프로젝트 소개
프로젝트 개요
**MCP 데이터베이스 툴박스(MCP Toolbox for Databases)**는 Google에서 오픈 소스로 제공하는 데이터베이스 서버 도구로, Gen AI 도구 개발을 간소화하기 위해 설계되었습니다. 이 프로젝트를 통해 개발자는 데이터베이스 데이터에 액세스할 수 있는 AI 에이전트 도구를 더 쉽고, 빠르고, 안전하게 구축할 수 있습니다.
프로젝트 주소: https://github.com/googleapis/genai-toolbox
핵심 기능 및 특징
1. 개발 프로세스 간소화
- 빠른 통합: 10줄 미만의 코드로 도구를 에이전트에 통합 가능
- 도구 재사용: 여러 에이전트 또는 프레임워크 간에 도구 재사용 지원
- 간편한 배포: 도구의 새 버전을 더 쉽게 배포
2. 성능 최적화
- 연결 풀 관리: 내장된 연결 풀 메커니즘으로 데이터베이스 연결 성능 최적화
- 모범 사례: 데이터베이스 액세스 모범 사례 통합
- 효율적인 처리: 최적화된 데이터 처리 및 쿼리 실행
3. 보안 강화
- 통합 인증: 더 안전한 데이터 액세스 메커니즘 제공
- 보안 연결: 데이터베이스 연결 보안 보장
- 권한 제어: 세분화된 액세스 제어 지원
4. 엔드 투 엔드 가시성
- 내장 모니터링: 즉시 사용 가능한 지표 및 추적 기능 제공
- OpenTelemetry 지원: 내장된 OpenTelemetry 지원으로 모니터링 및 디버깅 용이
- 전체 링크 추적: 전체 요청 링크 추적 지원
아키텍처 설계
툴박스는 애플리케이션의 오케스트레이션 프레임워크와 데이터베이스 사이에 위치하여 도구를 수정, 배포 또는 호출하기 위한 제어 평면을 제공합니다. 도구를 저장하고 업데이트할 수 있는 중앙 위치를 제공하여 도구 관리를 간소화하고, 에이전트와 애플리케이션 간에 도구를 공유할 수 있도록 하며, 애플리케이션을 다시 배포하지 않고도 이러한 도구를 업데이트할 수 있습니다.
설치 방법
바이너리 설치
# 릴리스 페이지에서 다른 버전 확인
export VERSION=0.4.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
컨테이너 이미지
# 릴리스 페이지에서 다른 버전 확인
export VERSION=0.4.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION
소스 코드 컴파일
go install github.com/googleapis/genai-toolbox@v0.4.0
사용 방법
기본 사용 흐름
- tools.yaml 파일 구성: 도구 정의
- 서버 시작:
./toolbox --tools_file "tools.yaml"
- 애플리케이션에 도구 로드: 해당 SDK 사용
지원되는 클라이언트 SDK
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()
구성 설명
데이터 소스 구성
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password
도구 구성
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 || '%';
도구 세트 구성
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool
버전 관리
- MAJOR 버전: 호환되지 않는 API 변경
- MINOR 버전: 하위 호환되는 기능 추가
- PATCH 버전: 하위 호환되는 버그 수정
적용 시나리오
- AI 에이전트 개발: AI 에이전트를 위한 데이터베이스 액세스 도구 구축
- 데이터 통합: 애플리케이션과 데이터베이스의 통합 간소화
- 도구 관리: 데이터베이스 도구의 중앙 집중식 관리 및 배포
- 다중 프레임워크 지원: 다양한 AI 프레임워크 간에 도구 공유
프로젝트 장점
- 오픈 소스 무료: 완전한 오픈 소스, Google에서 유지 관리
- 성숙하고 안정적: Google의 모범 사례 기반
- 생태계 호환성: 주요 AI 프레임워크 지원
- 쉬운 확장: 유연한 구성 및 확장 메커니즘
- 엔터프라이즈급: 엔터프라이즈급 보안 및 가시성 제공
요약
MCP 데이터베이스 툴박스는 강력하고 사용하기 쉬운 오픈 소스 프로젝트로, 최신 AI 애플리케이션의 데이터베이스 통합 요구 사항을 위해 설계되었습니다. 간소화된 개발 경험, 최적화된 성능, 강화된 보안 및 포괄적인 가시성을 제공하여 개발자가 안정적인 AI 데이터베이스 도구를 빠르게 구축할 수 있도록 지원합니다.
AI 에이전트를 개발하든, 데이터 기반 애플리케이션을 구축하든, 여러 프레임워크 간에 데이터베이스 도구를 공유해야 하든, MCP 데이터베이스 툴박스는 고려해 볼 가치가 있는 솔루션입니다. 유연한 아키텍처 설계와 풍부한 SDK 지원을 통해 다양한 개발 시나리오와 요구 사항에 잘 적응할 수 있습니다.