Skip to main content
Glama

OpenLink MCP Server for JDBC

Official

JDBC를 위한 Java 기반 모델 컨텍스트 프로토콜(MCP) 서버

Quakrus 로 구축된 JDBC용 경량 MCP(Model Context Protocol) 서버입니다. 이 서버는 Virtuoso DBMS 및 JDBC 드라이버가 있는 다른 DBMS 백엔드와 호환됩니다.

mcp-클라이언트-및-서버|648x499


특징

  • 스키마 가져오기 : 연결된 데이터베이스에서 모든 스키마 이름을 가져와 나열합니다.
  • 테이블 가져오기 : 특정 스키마 또는 모든 스키마에 대한 테이블 정보를 검색합니다.
  • 테이블 설명 : 다음을 포함하여 테이블 구조에 대한 자세한 설명을 생성합니다.
    • 열 이름 및 데이터 유형
    • Null 가능 속성
    • 기본 키와 외래 키
  • 테이블 검색 : 이름 하위 문자열을 기준으로 테이블을 필터링하고 검색합니다.
  • 저장 프로시저 실행 : Virtuoso 전용 기능입니다! 저장 프로시저를 실행하고 결과를 가져옵니다.
  • 쿼리 실행 :
    • JSONL 결과 형식: 구조화된 응답에 최적화되었습니다.
    • 마크다운 테이블 형식: 보고 및 시각화에 이상적입니다.

필수 조건

MCP 서버에는 Java 21 이상이 필요합니다.


설치

이 저장소를 복제하세요:

지엑스피1

환경 변수

다음 기본값을 재정의하여 선호도에 맞게 .env 를 업데이트하세요.

jdbc.url=jdbc:virtuoso://localhost:1111 jdbc.user=dba jdbc.password=dba jdbc.api_key=xxx

구성

Claude Desktop 사용자의 경우: claude_desktop_config.json 에 다음을 추가하세요.

{ "mcpServers": { "my_database": { "command": "java", "args": ["-jar", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar"], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "username", "jdbc.password": "password", "jdbc.api_key": "sk-xxx" } } } }

다른 JDBC 드라이버나 드라이버 조합을 사용하는 Claude Desktop 사용자의 경우: claude_desktop_config.json 에 다음을 추가하세요.

"jdbc": { "command": "java", "args": [ "-cp", "/path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar:/path/to/jdbc_driver1.jar:/path/to/jdbc_driverN.jar", "io.quarkus.runner.GeneratedMain" ], "env": { "jdbc.url": "jdbc:virtuoso://localhost:1111", "jdbc.user": "dba", "jdbc.password": "dba" } }

사용

제공된 도구

성공적으로 설치하면 MCP 클라이언트 애플리케이션에서 다음 도구를 사용할 수 있습니다.

개요
이름설명
jdbc_get_schemas연결된 데이터베이스 관리 시스템(DBMS)에서 접근할 수 있는 데이터베이스 스키마를 나열합니다.
jdbc_get_tables선택한 데이터베이스 스키마와 연관된 테이블을 나열합니다.
jdbc_describe_table지정된 데이터베이스 스키마와 연결된 테이블에 대한 설명을 제공하세요. 여기에는 열 이름, 데이터 유형, Null 처리, 자동 증가, 기본 키 및 외래 키에 대한 정보가 포함됩니다.
jdbc_filter_table_names선택한 데이터베이스 스키마와 연관된 q 입력 필드의 하위 문자열 패턴을 기반으로 테이블을 나열합니다.
jdbc_query_databaseSQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.
jdbc_execute_querySQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.
jdbc_execute_query_mdSQL 쿼리를 실행하고 결과를 마크다운 테이블 형식으로 반환합니다.
jdbc_spasql_queryVirtuoso 전용 기능! SPASQL 쿼리를 실행하고 결과를 반환합니다.
jdbc_sparql_queryVirtuoso 전용 기능! SPARQL 쿼리를 실행하고 결과를 반환합니다.
jdbc_virtuoso_support_aiVirtuoso 전용 기능! Virtuoso 지원 지원/에이전트를 통해 LLM과 소통하세요.
자세한 설명
  • jdbc_get_schemas
    • 연결된 데이터베이스에서 모든 스키마 이름 목록을 검색하여 반환합니다.
    • 입력 매개변수:
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 스키마 이름의 JSON 문자열 배열을 반환합니다.
  • jdbc_get_tables
    • 지정된 스키마의 테이블 정보가 포함된 목록을 검색하여 반환합니다. 스키마가 제공되지 않으면 연결의 기본 스키마를 사용합니다.
    • 입력 매개변수:
      • schema (문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 테이블 정보(예: TABLE_CAT , TABLE_SCHEM , TABLE_NAME , TABLE_TYPE )를 포함하는 JSON 문자열을 반환합니다.
  • jdbc_filter_table_names
    • 이름에 특정 하위 문자열이 포함된 테이블에 대한 정보를 필터링하고 반환합니다.
    • 입력 매개변수:
      • q (문자열, 필수): 테이블 이름 내에서 검색할 하위 문자열입니다.
      • schema (문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 일치하는 테이블에 대한 정보가 포함된 JSON 문자열을 반환합니다.
  • jdbc_describe_table
    • 특정 테이블의 열에 대한 자세한 정보를 검색하여 반환합니다.
    • 입력 매개변수:
      • schema (문자열, 필수): 테이블이 포함된 데이터베이스 스키마 이름입니다.
      • table (문자열, 필수): 설명할 테이블의 이름입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 테이블의 열(예: COLUMN_NAME , TYPE_NAME , COLUMN_SIZE , IS_NULLABLE )을 설명하는 JSON 문자열을 반환합니다.
  • jdbc_query_database
    • 표준 SQL 쿼리를 실행하고 결과를 JSON 형식으로 반환합니다.
    • 입력 매개변수:
      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 쿼리 결과를 JSON 문자열로 반환합니다.
  • jdbc_query_database_md
    • 표준 SQL 쿼리를 실행하고 마크다운 테이블 형식으로 결과를 반환합니다.
    • 입력 매개변수:
      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 쿼리 결과를 마크다운 테이블 문자열로 반환합니다.
  • jdbc_query_database_jsonl
    • 표준 SQL 쿼리를 실행하고 JSON Lines(JSONL) 형식으로 결과를 반환합니다(줄당 JSON 개체 하나).
    • 입력 매개변수:
      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 쿼리 결과를 JSONL 문자열로 반환합니다.
  • jdbc_spasql_query
    • Virtuoso 전용 기능!
    • SPASQL(SQL/SPARQL 하이브리드) 쿼리를 실행하여 결과를 반환합니다.
    • 입력 매개변수:
      • query (문자열, 필수): SPASQL 쿼리 문자열입니다.
      • max_rows (숫자, 선택 사항): 반환할 최대 행 수입니다. 기본값은 20 입니다.
      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000 (즉, 30초)입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 기본 저장 프로시저 호출(예: Demo.demo.execute_spasql_query )의 결과를 반환합니다.
  • jdbc_sparql_query
    • Virtuoso 전용 기능!
    • SPARQL 쿼리를 실행하고 결과를 반환합니다.
    • 입력 매개변수:
      • query (문자열, 필수): SPARQL 쿼리 문자열.
      • format (문자열, 선택 사항): 원하는 결과 형식입니다. 기본값은 'json' 입니다.
      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000 (즉, 30초)입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 기본 함수 호출(예: "UB".dba."sparqlQuery" )의 결과를 반환합니다.
  • jdbc_virtuoso_support_ai
    • Virtuoso 전용 기능!
    • Virtuoso 전용 AI 어시스턴트 기능을 활용하여 프롬프트와 선택적 API 키를 전달합니다.
    • 입력 매개변수:
      • prompt (문자열, 필수): AI 함수에 대한 프롬프트 텍스트입니다.
      • api_key (문자열, 선택 사항): AI 서비스의 API 키입니다. 기본값은 "none" 입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo" 입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo" 입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • AI Support Assistant 함수 호출(예: DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )의 결과를 반환합니다.

기본 사용 및 문제 해결

Virtuoso의 ODBC 드라이버에 연결하는 MCP Inspector

기본적인 MCP 클라이언트 사용 및 문제 해결을 위해 다음과 같이 MCP Inspector를 사용하세요.

  1. MCP 검사기 설치:
    npm install -g @modelcontextprotocol/inspector
  2. 검사기를 시작합니다.
    npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar

검사자가 반환한 URL에 접근하여 MCP 서버 상호작용 문제를 해결합니다.

MCP 검사기가 추가 드라이버에 연결됨

기본적인 MCP 클라이언트 사용 및 문제 해결을 위해 다음과 같이 MCP Inspector를 사용하세요.

  1. JDBC 드라이버를 설치하고, 해당 JAR 파일이 $CLASSPATH 통해 호스트 운영 체제의 Java Virtual Machine(JVM)에 등록되었는지 확인하세요. 예를 들면 다음과 같습니다.
    export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar
  2. 다음 명령줄 인수를 사용하여 검사기를 시작합니다.
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar io.quarkus.runner.GeneratedMain
Oracle 및 Informix 드라이버 기반 예제 사용
  1. 다음과 같은 JDBC 드라이버 정보를 가정합니다.
    • Oracle JDBC 드라이버 URL 템플릿
      jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>
    • Informix JDBC 드라이버 URL 템플릿
      jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
  2. Oracle( ojdbc17.jar ) 및/또는 Informix( jdbc-15.0.0.1.1.jar ) JDBC 드라이버를 설치하고, 해당 JAR 파일이 $CLASSPATH 통해 호스트 운영 체제의 Java Virtual Machine(JVM)에 등록되어 있는지 확인하세요. 예를 들면 다음과 같습니다.
    export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/ojdbc17.jar
  3. 다음 명령줄 인수를 사용하여 검사기를 시작합니다.
    npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/Java/Extensions/ojdbc17.jar:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar io.quarkus.runner.GeneratedMain
  4. 검사기에서 반환된 URL에 액세스한 다음 jdbc_execute_query 작업을 사용하여 다음 입력 필드 템플릿에 대한 실제 값을 제공하여 대상 데이터베이스를 쿼리합니다.
    • JDBC URL
    • 사용자
    • 비밀번호
    • 질문
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

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

JDBC용 OpenLink MCP 서버

  1. 특징
    1. 필수 조건
      1. 설치
        1. 환경 변수
          1. 구성
            1. 사용
              1. 제공된 도구
              2. 기본 사용 및 문제 해결

            Related MCP Servers

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenLinkSoftware/mcp-jdbc-server'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server