
데이터베이스용 MCP 도구 상자
데이터베이스용 MCP 도구 상자는 현재 베타 버전이며, 첫 번째 안정적인 릴리스(v1.0)가 나올 때까지 중요한 변경 사항이 있을 수 있습니다.
MCP Toolbox for Databases는 데이터베이스용 오픈 소스 MCP 서버입니다. 연결 풀링, 인증 등의 복잡한 작업을 처리하여 도구를 더 쉽고, 빠르고, 안전하게 개발할 수 있도록 지원합니다.
이 README는 간략한 개요를 제공합니다. 자세한 내용은 전체 문서를 참조하세요.
이 솔루션은 원래 MCP 이전에 개발되었기 때문에 "Gen AI Toolbox for Databases"라는 이름이었으나 최근 추가된 MCP 호환성에 맞춰 이름이 변경되었습니다.
목차
Related MCP server: MySQL MCP Server
왜 툴박스인가?
Toolbox는 상담원이 데이터베이스의 데이터에 접근할 수 있도록 하는 Gen AI 도구를 구축하는 데 도움을 줍니다. Toolbox는 다음과 같은 기능을 제공합니다.
간소화된 개발 : 10줄 미만의 코드로 에이전트에 도구를 통합하고, 여러 에이전트나 프레임워크 간에 도구를 재사용하고, 새로운 버전의 도구를 보다 쉽게 배포합니다.
더 나은 성능 : 연결 풀링, 인증 등의 모범 사례.
강화된 보안 : 데이터에 대한 보다 안전한 액세스를 위한 통합 인증
종단 간 관찰성 : OpenTelemetry에 대한 기본 지원을 통해 즉시 사용 가능한 메트릭과 추적 기능을 제공합니다.
일반 아키텍처
Toolbox는 애플리케이션의 오케스트레이션 프레임워크와 데이터베이스 사이에 위치하여 도구를 수정, 배포 또는 호출하는 데 사용되는 제어 영역을 제공합니다. 도구를 저장하고 업데이트할 수 있는 중앙 집중식 위치를 제공하여 도구 관리를 간소화하고, 에이전트와 애플리케이션 간에 도구를 공유하고 애플리케이션을 다시 배포하지 않고도 도구를 업데이트할 수 있도록 지원합니다.

시작하기
서버 설치
최신 버전을 확인하려면 릴리스 페이지를 확인하고 OS 및 CPU 아키텍처에 맞는 다음 지침을 따르세요.
Toolbox를 바이너리로 설치하려면:
지엑스피1
# see releases page for other versions
export VERSION=0.5.0
docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION소스에서 설치하려면 최신 버전의 Go가 설치되어 있는지 확인한 후 다음 명령을 실행하세요.
go install github.com/googleapis/genai-toolbox@v0.5.0서버 실행
tools.yaml 구성하여 도구를 정의한 다음, toolbox 실행하여 서버를 시작합니다.
./toolbox --tools-file "tools.yaml"전체 플래그 목록은 toolbox help 참조하세요! 서버를 중지하려면 종료 신호를 보내세요(대부분 플랫폼에서 ctrl+c ).
다양한 환경에 배포하는 방법에 대한 자세한 설명서는 방법 섹션 의 리소스를 확인하세요.
애플리케이션 통합
서버가 가동되면 도구를 애플리케이션에 로드할 수 있습니다. 다양한 프레임워크를 사용할 수 있는 클라이언트 SDK 목록은 아래에서 확인하세요.
Toolbox Core SDK 설치:
pip install toolbox-core도구 로드:
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")
Toolbox Core SDK 사용에 대한 자세한 지침은 해당 프로젝트의 README를 참조하세요.
pip install toolbox-langchain도구 로드:
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()
Toolbox LangChain SDK 사용에 대한 자세한 지침은 해당 프로젝트의 README를 참조하세요.
pip install toolbox-llamaindex도구 로드:
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()
Toolbox Llamaindex SDK 사용에 대한 자세한 지침은 해당 프로젝트의 README를 참조하세요.
구성
Toolbox를 구성하는 기본 방법은 tools.yaml 파일을 사용하는 것입니다. 파일이 여러 개인 경우, --tools-file tools.yaml 플래그를 사용하여 Toolbox에 어떤 파일을 로드할지 지정할 수 있습니다.
모든 리소스 유형에 대한 더 자세한 참조 문서는 리소스 에서 찾을 수 있습니다.
출처
tools.yaml 파일의 sources 섹션은 도구 상자가 접근할 수 있는 데이터 소스를 정의합니다. 대부분의 도구에는 실행할 소스가 하나 이상 있습니다.
sources:
my-pg-source:
kind: postgres
host: 127.0.0.1
port: 5432
database: toolbox_db
user: toolbox_user
password: my-password다양한 유형의 소스를 구성하는 방법에 대한 자세한 내용은 소스를 참조하세요.
도구
tools.yaml 의 tools 섹션은 에이전트가 취할 수 있는 작업을 정의합니다. 즉, 어떤 종류의 도구인지, 어떤 소스에 영향을 미치는지, 어떤 매개변수를 사용하는지 등을 정의합니다.
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 || '%';다양한 유형의 도구를 구성하는 방법에 대한 자세한 내용은 도구를 참조하세요.
도구 세트
tools.yaml 파일의 toolsets 섹션을 사용하면 함께 로드할 도구 그룹을 정의할 수 있습니다. 이는 에이전트나 애플리케이션별로 다른 그룹을 정의하는 데 유용할 수 있습니다.
toolsets:
my_first_toolset:
- my_first_tool
- my_second_tool
my_second_toolset:
- my_second_tool
- my_third_tool이름으로 도구 세트를 로드할 수 있습니다.
# 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")버전 관리
이 프로젝트에서는 MAJOR.MINOR.PATCH 버전 번호를 포함하여 다음과 같이 증가하는 의미적 버전을 사용합니다.
호환되지 않는 API 변경을 할 경우 MAJOR 버전
이전 버전과 호환되는 방식으로 기능을 추가할 때 MINOR 버전
이전 버전과 호환되는 버그 수정을 할 때 패치 버전을 제공합니다.
이것이 적용되는 공개 API는 Toolbox와 관련된 CLI, 공식 SDK와의 상호작용, tools.yaml 파일의 정의입니다.
기여하다
기여를 환영합니다. 시작하려면 CONTRIBUTING을 참조하세요.
이 프로젝트는 기여자 행동 강령을 준수합니다. 이 프로젝트에 참여함으로써 귀하는 해당 약관을 준수하는 데 동의하게 됩니다. 자세한 내용은 기여자 행동 강령을 참조하세요.