Skip to main content
Glama
OpenLinkSoftware

OpenLink MCP Server for JDBC

Official

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

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

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


특징

  • 스키마 가져오기 : 연결된 데이터베이스에서 모든 스키마 이름을 가져와 나열합니다.

  • 테이블 가져오기 : 특정 스키마 또는 모든 스키마에 대한 테이블 정보를 검색합니다.

  • 테이블 설명 : 다음을 포함하여 테이블 구조에 대한 자세한 설명을 생성합니다.

    • 열 이름 및 데이터 유형

    • Null 가능 속성

    • 기본 키와 외래 키

  • 테이블 검색 : 이름 하위 문자열을 기준으로 테이블을 필터링하고 검색합니다.

  • 저장 프로시저 실행 : Virtuoso 전용 기능입니다! 저장 프로시저를 실행하고 결과를 가져옵니다.

  • 쿼리 실행 :

    • JSONL 결과 형식: 구조화된 응답에 최적화되었습니다.

    • 마크다운 테이블 형식: 보고 및 시각화에 이상적입니다.


Related MCP server: Joomla MCP Server

필수 조건

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_database

SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.

jdbc_execute_query

SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.

jdbc_execute_query_md

SQL 쿼리를 실행하고 결과를 마크다운 테이블 형식으로 반환합니다.

jdbc_spasql_query

Virtuoso 전용 기능! SPASQL 쿼리를 실행하고 결과를 반환합니다.

jdbc_sparql_query

Virtuoso 전용 기능! SPARQL 쿼리를 실행하고 결과를 반환합니다.

jdbc_virtuoso_support_ai

Virtuoso 전용 기능! 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

Latest Blog Posts

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