OpenLink MCP Server for JDBC

MIT License

Integrations

  • Supports configuration through .env files, allowing users to override default database connection settings with custom environment variables.

  • Provides ability to format database query results as Markdown tables, making data presentation more readable for reporting and visualization purposes.


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

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


특징

  • 스키마 가져오기 : 연결된 데이터베이스에서 모든 스키마 이름을 가져와 나열합니다.
  • 테이블 가져오기 : 특정 스키마 또는 모든 스키마에 대한 테이블 정보를 검색합니다.
  • 테이블 설명 : 다음을 포함하여 테이블 구조에 대한 자세한 설명을 생성합니다.
    • 열 이름 및 데이터 유형
    • 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" } } } }

용법

제공된 도구

성공적으로 설치하면 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 쿼리를 실행하고 결과를 Markdown 테이블 형식으로 반환합니다.
jdbc_spasql_쿼리SPASQL 쿼리를 실행하고 결과를 반환합니다.
jdbc_sparql_querySPARQL 쿼리를 실행하고 결과를 반환합니다.
jdbc_virtuoso_support_aiVirtuoso 지원 지원자/에이전트와 상호 작용 - LLM과 상호 작용하기 위한 Virtuoso 특정 기능

자세한 설명

  • 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_쿼리
    • SPASQL(SQL/SPARQL 하이브리드) 쿼리를 실행하여 결과를 반환합니다. 이는 Virtuoso 전용 기능입니다.
    • 입력 매개변수:
      • query (문자열, 필수): SPASQL 쿼리 문자열입니다.
      • max_rows (숫자, 선택 사항): 반환할 최대 행 수입니다. 기본값은 20입니다.
      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 기본 저장 프로시저 호출(예: Demo.demo.execute_spasql_query )의 결과를 반환합니다.
  • jdbc_sparql_query
    • SPARQL 쿼리를 실행하고 결과를 반환합니다. 이는 Virtuoso 전용 기능입니다.
    • 입력 매개변수:
      • query (문자열, 필수): SPARQL 쿼리 문자열.
      • format (문자열, 선택 사항): 원하는 결과 형식입니다. 기본값은 'json'입니다.
      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • 기본 함수 호출(예: "UB".dba."sparqlQuery" )의 결과를 반환합니다.
  • jdbc_virtuoso_support_ai
    • Virtuoso 전용 AI 어시스턴트 기능을 활용하여 프롬프트와 선택적 API 키를 전달합니다. 이는 Virtuoso 전용 기능입니다.
    • 입력 매개변수:
      • prompt (문자열, 필수): AI 함수에 대한 프롬프트 텍스트입니다.
      • api_key (문자열, 선택 사항): AI 서비스의 API 키입니다. 기본값은 "없음"입니다.
      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.
      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.
      • url (문자열, 선택 사항): JDBC URL 연결 문자열.
    • AI Support Assistant 함수 호출(예: DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )의 결과를 반환합니다.

문제 해결

간편한 문제 해결 방법:

  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에 접속하여 서버 상호작용 문제를 해결하세요.

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

JDBC용 OpenLink MCP 서버

  1. Features
    1. Prerequisites
      1. Installation
        1. Environment Variables
          1. Configuration
            1. Usage
              1. Tools Provided
              2. Troubleshooting
            ID: q412uvi27y