mcp-jdbc

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows querying, modifying, and creating tables in MariaDB databases via JDBC, including SELECT, INSERT, UPDATE, and DELETE operations

  • Enables inspection and manipulation of MySQL database content through SQL queries, with support for table creation and management

  • Provides access to a sample Netflix movie database for exploration and querying through the JDBC interface

JDBC용 모델 컨텍스트 프로토콜 서버

이 모델 컨텍스트 프로토콜(MCP) 서버를 사용하면 대규모 언어 모델(LLM)이 Java 데이터베이스 연결(JDBC) URL만 주어지면 데이터베이스 콘텐츠를 검사, 쿼리, 생성 및 수정할 수 있습니다.

지원되는 데이터베이스로는 PostgresSQL, Oracle, MariaDB, Sqlite 등이 있습니다.

여기에서 비디오를 보세요.

일반적인 사용법

  1. jbang 설치
  2. 서버를 실행하도록 MCP 클라이언트를 구성하세요(아래 Claude Desktop Config 참조)

아래는 서버를 구성하는 데 사용할 수 있는 명령줄의 예입니다.

빈 데이터베이스(메모리 내 h2 데이터베이스)로 시작합니다.

지엑스피1

라이브 데이터베이스(일반적인 JDBC 호환 데이터베이스):

jbang jdbc@quarkiverse/quarkus-mcp-servers [jdbc_url]

예를 들어, 이미 실행 중인 Oracle 데이터베이스에 연결하려면 다음을 수행합니다.

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:oracle:thin:@localhost:1521:orcl

여기에서는 PostgreSQL 데이터베이스의 경우 사용자와 비밀번호를 별도로 지정할 수도 있습니다.

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:postgresql://localhost:5432/sakila -u sakila -p p_ssW0rd

다운로드 가능한 데이터베이스

JBang은 웹에서 파일을 다운로드하여 h2 및 sqlite와 같은 데이터베이스에 직접 제공할 수 있습니다.

이는 %{url} 구문을 사용하여 수행됩니다.

다음은 github에서 Chinook_Sqlite.sqlite 파일을 다운로드하여 SQLite에서 Chinook 데이터베이스에 연결하는 방법의 예입니다.

jbang jdbc@quarkiverse/quarkus-mcp-servers jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

데이터를 탐색하는 데 사용할 수 있는 흥미로운 샘플 데이터의 예가 온라인에서 제공됩니다.

아래는 이 서버에서 그대로 작동하는 것으로 알려진 데이터베이스와 예시 JDBC URL의 전체 목록이 아니며, 추가 구성이 필요하지 않습니다.

예제 데이터베이스

치누크

아티스트, 앨범, 트랙, 송장 등을 포함한 음악 매장 데이터 샘플

jdbc:sqlite:%{https://github.com/lerocha/chinook-database/raw/master/ChinookDatabase/DataSources/Chinook_Sqlite.sqlite}

노스윈드

고객, 주문, 제품 등이 포함된 클래식 Microsoft 샘플 데이터베이스입니다.

jdbc:sqlite:%{https://github.com/jpwhite3/northwind-SQLite3/raw/refs/heads/main/dist/northwind.db}

넷플릭스 영화

Netflix 카탈로그 기반 샘플 영화 데이터

jdbc:sqlite:%{https://github.com/lerocha/netflixdb/releases/download/v1.0.0/netflixdb.sqlite}

지원되는 JDBC 변형

데이터 베이스의존
마리아DBorg.mariadb.jdbc:mariadb-java-client:릴리스
MySQLmysql:mysql-connector-java:릴리스
포스트그레스큐엘org.postgresql:postgresql:릴리스
신탁com.oracle.database.jdbc:ojdbc10:릴리스
SQL 서버com.microsoft.sqlserver:mssql-jdbc:릴리스
SAP DBcom.sapcloud.db.jdbc:ngdbc:릴리스
인포믹스com.ibm.informix:jdbc:릴리스
파이어버드org.firebirdsql.jdbc:jaybird:릴리스
hsqldborg.hsqldb:hsqldb:릴리스
h2com.h2database:h2:릴리스
아파치 더비org.apache.derby:derby:릴리스
SQLiteorg.xerial:sqlite-jdbc:릴리스

구성 요소

이 서버에서 제공하는 MCP 구성 요소는 다음과 같습니다.

도구

  • read_query - 데이터베이스에 대한 SELECT 쿼리를 수행합니다.
  • write_query - 데이터베이스에 INSERT, UPDATE, DELETE 쿼리를 수행합니다.
  • create_table - 데이터베이스에 테이블 생성
  • list_tables - 데이터베이스의 모든 테이블 나열
  • describe_table - 테이블 설명

프롬프트

  • jdbc_demo - 서버 탐색을 시작하기 위한 예제 프롬프트(sqllite MCP의 프롬프트와 유사)

Claude Desktop Config 및 mcp-cli

claude_desktop_config.json 또는 server_config.json 파일에 다음을 추가하세요.

{ "mcpServers": { "jdbc": { "command": "jbang", "args": [ "jdbc@quarkiverse/quarkus-mcp-servers", "[jdbc_url]" ] } } }

문제 해결

jbang을 찾을 수 없습니다

  • jbang 설치되어 있고 PATH에 사용 가능한지 확인하세요.
  • 또는 jbang 실행 파일의 전체 경로를 사용하세요(예: /Users/username/.jbang/jbang )

더 많은 로깅을 얻으세요

더 자세한 로깅을 얻으려면 jbang 명령줄에 다음 매개변수를 추가할 수 있습니다.

-Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-server-jdbc.log

예:

jbang -Dquarkus.log.file.enable=true -Dquarkus.log.file.path=${user.home}/mcp-jdbc.log jdbc@quarkiverse/quarkus-mcp-servers jdbc:h2:mem:testdb

네이티브 이미지/실행 파일

서버를 네이티브 실행 파일로 컴파일할 수는 있지만, 관련 JDBC 드라이버를 동적으로 로드할 수 없으므로 권장하지는 않습니다.

하지만 특정 JDBC 드라이버를 대상으로 하는 서버를 컴파일할 수는 있지만, 이는 현재로서는 독자 여러분의 연습 과제로 남겨두겠습니다. 관심이 있으시면 이슈를 열거나 PR을 보내주세요.

어떻게 만들어졌나요?

MCP 서버는 Quarkus, Supersonic Subatomic Java Framework 및 해당 Model Context Protocol 지원을 사용합니다.

Quarkus MCP 서버 지원에 대해 자세히 알아보려면 이 블로그 게시물 과 Quarkus MCP 서버 확장 설명서를 참조하세요.

서버를 실행하고 JDBC URL의 마법 같은 설정을 처리하기 위해 jbang을 사용하여 Java를 설정하고 .jar 파일을 최대한 투명하게 실행합니다. uvx , pipx , npmx 등의 작동 방식과 매우 유사하며, Java에서만 작동합니다.

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

MCP는 Postgres, Oracle, mysql, mariadb, sqlite 등 JDBC를 통해 접근 가능한 모든 데이터베이스에 접근합니다.

  1. General Usage
    1. Downloadable databases
      1. Example databases
    2. Supported JDBC variants
      1. Components
        1. Tools
        2. Prompts
      2. Claude Desktop Config and mcp-cli
        1. Troubleshooting
      3. Native Image/Executable
        1. How was this made?
      ID: 2au072rrbc