MCP Toolbox for Databases

Official

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.

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 도구 상자

[!NOTE] 데이터베이스용 MCP 도구 상자는 현재 베타 버전이며, 첫 번째 안정적인 릴리스(v1.0)가 나올 때까지 중요한 변경 사항이 있을 수 있습니다.

MCP Toolbox for Databases는 데이터베이스용 오픈 소스 MCP 서버입니다. 엔터프라이즈급 및 프로덕션급 품질을 염두에 두고 설계되었습니다. 연결 풀링, 인증 등의 복잡한 기능을 처리하여 도구를 더 쉽고, 빠르고, 안전하게 개발할 수 있도록 지원합니다.

이 README는 간략한 개요를 제공합니다. 자세한 내용은 전체 문서를 참조하세요.

[!NOTE] 이 제품은 원래 MCP 이전에 개발되었기 때문에 "Gen AI Toolbox for Databases"라는 이름이었으나 최근 추가된 MCP 호환성에 맞춰 이름이 변경되었습니다.

목차

왜 툴박스인가?

Toolbox는 상담원이 데이터베이스의 데이터에 접근할 수 있도록 하는 Gen AI 도구를 구축하는 데 도움을 줍니다. Toolbox는 다음과 같은 기능을 제공합니다.

  • 간소화된 개발 : 10줄 미만의 코드로 에이전트에 도구를 통합하고, 여러 에이전트나 프레임워크 간에 도구를 재사용하고, 새로운 버전의 도구를 보다 쉽게 배포합니다.
  • 더 나은 성능 : 연결 풀링, 인증 등의 모범 사례.
  • 강화된 보안 : 데이터에 대한 보다 안전한 액세스를 위한 통합 인증
  • 종단 간 관찰성 : OpenTelemetry에 대한 기본 지원을 통해 즉시 사용 가능한 메트릭과 추적 기능을 제공합니다.

일반 아키텍처

Toolbox는 애플리케이션의 오케스트레이션 프레임워크와 데이터베이스 사이에 위치하여 도구를 수정, 배포 또는 호출하는 데 사용되는 제어 영역을 제공합니다. 도구를 저장하고 업데이트할 수 있는 중앙 집중식 위치를 제공하여 도구 관리를 간소화하고, 에이전트와 애플리케이션 간에 도구를 공유하고 애플리케이션을 다시 배포하지 않고도 도구를 업데이트할 수 있도록 지원합니다.

시작하기

서버 설치

최신 버전을 확인하려면 릴리스 페이지를 확인하고 OS 및 CPU 아키텍처에 맞는 다음 지침을 따르세요.

Toolbox를 바이너리로 설치하려면:

지엑스피1

# see releases page for other versions export VERSION=0.3.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION

소스에서 설치하려면 최신 버전의 Go가 설치되어 있는지 확인한 후 다음 명령을 실행하세요.

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

서버 실행

tools.yaml 구성하여 도구를 정의한 다음, toolbox 실행하여 서버를 시작합니다.

./toolbox --tools_file "tools.yaml"

전체 플래그 목록은 toolbox help 참조하세요! 서버를 중지하려면 종료 신호를 보내세요(대부분 플랫폼에서 ctrl+c ).

다양한 환경에 배포하는 방법에 대한 자세한 설명서는 방법 섹션 의 리소스를 확인하세요.

애플리케이션 통합

서버가 가동되면 도구를 애플리케이션에 로드할 수 있습니다. 다양한 프레임워크를 사용할 수 있는 클라이언트 SDK 목록은 아래에서 확인하세요.

  1. Toolbox Core SDK 설치:
    pip install toolbox-core
  2. 도구 로드:
    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")

Toolbox Core SDK 사용에 대한 자세한 지침은 해당 프로젝트의 README를 참조하세요.

  1. Toolbox LangChain SDK 설치:
    pip install toolbox-langchain
  2. 도구 로드:
    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()

Toolbox LangChain SDK 사용에 대한 자세한 지침은 해당 프로젝트의 README를 참조하세요.

  1. Toolbox Llamaindex SDK 설치:
    pip install toolbox-llamaindex
  2. 도구 로드:
    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()

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.yamltools 섹션은 에이전트가 취할 수 있는 작업을 정의합니다. 즉, 어떤 종류의 도구인지, 어떤 소스에 영향을 미치는지, 어떤 매개변수를 사용하는지 등을 정의합니다.

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을 참조하세요.

이 프로젝트는 기여자 행동 강령을 준수합니다. 이 프로젝트에 참여함으로써 귀하는 해당 약관을 준수하는 데 동의하게 됩니다. 자세한 내용은 기여자 행동 강령을 참조하세요.

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

데이터베이스를 위한 쉽고 빠르며 안전한 도구를 전문으로 하는 오픈소스 MCP 서버입니다.

  1. Table of Contents
    1. Why Toolbox?
      1. General Architecture
        1. Getting Started
          1. Installing the server
          2. Running the server
          3. Integrating your application
        2. Configuration
          1. Sources
          2. Tools
          3. Toolsets
        3. Versioning
          1. Contributing
            ID: edji1s31y4